#### 5.47.1 Alpha Built-in Functions

These built-in functions are available for the Alpha family of processors, depending on the command-line switches used.

The following built-in functions are always available. They all generate the machine instruction that is part of the name.

         long __builtin_alpha_implver (void)
         long __builtin_alpha_rpcc (void)
         long __builtin_alpha_amask (long)
         long __builtin_alpha_cmpbge (long, long)
         long __builtin_alpha_extbl (long, long)
         long __builtin_alpha_extwl (long, long)
         long __builtin_alpha_extll (long, long)
         long __builtin_alpha_extql (long, long)
         long __builtin_alpha_extwh (long, long)
         long __builtin_alpha_extlh (long, long)
         long __builtin_alpha_extqh (long, long)
         long __builtin_alpha_insbl (long, long)
         long __builtin_alpha_inswl (long, long)
         long __builtin_alpha_insll (long, long)
         long __builtin_alpha_insql (long, long)
         long __builtin_alpha_inswh (long, long)
         long __builtin_alpha_inslh (long, long)
         long __builtin_alpha_insqh (long, long)
         long __builtin_alpha_mskbl (long, long)
         long __builtin_alpha_mskwl (long, long)
         long __builtin_alpha_mskll (long, long)
         long __builtin_alpha_mskql (long, long)
         long __builtin_alpha_mskwh (long, long)
         long __builtin_alpha_msklh (long, long)
         long __builtin_alpha_mskqh (long, long)
         long __builtin_alpha_umulh (long, long)
         long __builtin_alpha_zap (long, long)
         long __builtin_alpha_zapnot (long, long)

The following built-in functions are always with `-mmax` or `-mcpu= cpu` where cpu is `pca56` or later. They all generate the machine instruction that is part of the name.

         long __builtin_alpha_pklb (long)
         long __builtin_alpha_pkwb (long)
         long __builtin_alpha_unpkbl (long)
         long __builtin_alpha_unpkbw (long)
         long __builtin_alpha_minub8 (long, long)
         long __builtin_alpha_minsb8 (long, long)
         long __builtin_alpha_minuw4 (long, long)
         long __builtin_alpha_minsw4 (long, long)
         long __builtin_alpha_maxub8 (long, long)
         long __builtin_alpha_maxsb8 (long, long)
         long __builtin_alpha_maxuw4 (long, long)
         long __builtin_alpha_maxsw4 (long, long)
         long __builtin_alpha_perr (long, long)

The following built-in functions are always with `-mcix` or `-mcpu= cpu` where cpu is `ev67` or later. They all generate the machine instruction that is part of the name.

         long __builtin_alpha_cttz (long)
         long __builtin_alpha_ctlz (long)
         long __builtin_alpha_ctpop (long)

The following builtins are available on systems that use the OSF/1 PALcode. Normally they invoke the `rduniq` and `wruniq` PAL calls, but when invoked with `-mtls-kernel` , they invoke `rdval` and `wrval`.

         void *__builtin_thread_pointer (void)
         void __builtin_set_thread_pointer (void *)