If the ISA 2.07 additions to the vector/scalar (power8-vector) instruction set are available, the following additional functions are available for both 32-bit and 64-bit targets. For 64-bit targets, you can use `vector long`
instead of `vector long long`
, `vector bool long`
instead of `vector bool long long`
, and `vector unsigned long`
instead of `vector unsigned long long`
.

vector signed char vec_neg (vector signed char); vector signed short vec_neg (vector signed short); vector signed int vec_neg (vector signed int); vector signed long long vec_neg (vector signed long long); vector float char vec_neg (vector float); vector double vec_neg (vector double); vector signed int vec_signed2 (vector double, vector double); vector signed int vec_unsigned2 (vector double, vector double); vector long long vec_abs (vector long long); vector long long vec_add (vector long long, vector long long); vector unsigned long long vec_add (vector unsigned long long, vector unsigned long long); int vec_all_eq (vector long long, vector long long); int vec_all_eq (vector unsigned long long, vector unsigned long long); int vec_all_ge (vector long long, vector long long); int vec_all_ge (vector unsigned long long, vector unsigned long long); int vec_all_gt (vector long long, vector long long); int vec_all_gt (vector unsigned long long, vector unsigned long long); int vec_all_le (vector long long, vector long long); int vec_all_le (vector unsigned long long, vector unsigned long long); int vec_all_lt (vector long long, vector long long); int vec_all_lt (vector unsigned long long, vector unsigned long long); int vec_all_ne (vector long long, vector long long); int vec_all_ne (vector unsigned long long, vector unsigned long long); int vec_any_eq (vector long long, vector long long); int vec_any_eq (vector unsigned long long, vector unsigned long long); int vec_any_ge (vector long long, vector long long); int vec_any_ge (vector unsigned long long, vector unsigned long long); int vec_any_gt (vector long long, vector long long); int vec_any_gt (vector unsigned long long, vector unsigned long long); int vec_any_le (vector long long, vector long long); int vec_any_le (vector unsigned long long, vector unsigned long long); int vec_any_lt (vector long long, vector long long); int vec_any_lt (vector unsigned long long, vector unsigned long long); int vec_any_ne (vector long long, vector long long); int vec_any_ne (vector unsigned long long, vector unsigned long long); vector bool long long vec_cmpeq (vector bool long long, vector bool long long); vector long long vec_eqv (vector long long, vector long long); vector long long vec_eqv (vector bool long long, vector long long); vector long long vec_eqv (vector long long, vector bool long long); vector unsigned long long vec_eqv (vector unsigned long long, vector unsigned long long); vector unsigned long long vec_eqv (vector bool long long, vector unsigned long long); vector unsigned long long vec_eqv (vector unsigned long long, vector bool long long); vector int vec_eqv (vector int, vector int); vector int vec_eqv (vector bool int, vector int); vector int vec_eqv (vector int, vector bool int); vector unsigned int vec_eqv (vector unsigned int, vector unsigned int); vector unsigned int vec_eqv (vector bool unsigned int, vector unsigned int); vector unsigned int vec_eqv (vector unsigned int, vector bool unsigned int); vector short vec_eqv (vector short, vector short); vector short vec_eqv (vector bool short, vector short); vector short vec_eqv (vector short, vector bool short); vector unsigned short vec_eqv (vector unsigned short, vector unsigned short); vector unsigned short vec_eqv (vector bool unsigned short, vector unsigned short); vector unsigned short vec_eqv (vector unsigned short, vector bool unsigned short); vector signed char vec_eqv (vector signed char, vector signed char); vector signed char vec_eqv (vector bool signed char, vector signed char); vector signed char vec_eqv (vector signed char, vector bool signed char); vector unsigned char vec_eqv (vector unsigned char, vector unsigned char); vector unsigned char vec_eqv (vector bool unsigned char, vector unsigned char); vector unsigned char vec_eqv (vector unsigned char, vector bool unsigned char); vector long long vec_max (vector long long, vector long long); vector unsigned long long vec_max (vector unsigned long long, vector unsigned long long); vector signed int vec_mergee (vector signed int, vector signed int); vector unsigned int vec_mergee (vector unsigned int, vector unsigned int); vector bool int vec_mergee (vector bool int, vector bool int); vector signed int vec_mergeo (vector signed int, vector signed int); vector unsigned int vec_mergeo (vector unsigned int, vector unsigned int); vector bool int vec_mergeo (vector bool int, vector bool int); vector long long vec_min (vector long long, vector long long); vector unsigned long long vec_min (vector unsigned long long, vector unsigned long long); vector signed long long vec_nabs (vector signed long long); vector long long vec_nand (vector long long, vector long long); vector long long vec_nand (vector bool long long, vector long long); vector long long vec_nand (vector long long, vector bool long long); vector unsigned long long vec_nand (vector unsigned long long, vector unsigned long long); vector unsigned long long vec_nand (vector bool long long, vector unsigned long long); vector unsigned long long vec_nand (vector unsigned long long, vector bool long long); vector int vec_nand (vector int, vector int); vector int vec_nand (vector bool int, vector int); vector int vec_nand (vector int, vector bool int); vector unsigned int vec_nand (vector unsigned int, vector unsigned int); vector unsigned int vec_nand (vector bool unsigned int, vector unsigned int); vector unsigned int vec_nand (vector unsigned int, vector bool unsigned int); vector short vec_nand (vector short, vector short); vector short vec_nand (vector bool short, vector short); vector short vec_nand (vector short, vector bool short); vector unsigned short vec_nand (vector unsigned short, vector unsigned short); vector unsigned short vec_nand (vector bool unsigned short, vector unsigned short); vector unsigned short vec_nand (vector unsigned short, vector bool unsigned short); vector signed char vec_nand (vector signed char, vector signed char); vector signed char vec_nand (vector bool signed char, vector signed char); vector signed char vec_nand (vector signed char, vector bool signed char); vector unsigned char vec_nand (vector unsigned char, vector unsigned char); vector unsigned char vec_nand (vector bool unsigned char, vector unsigned char); vector unsigned char vec_nand (vector unsigned char, vector bool unsigned char); vector long long vec_orc (vector long long, vector long long); vector long long vec_orc (vector bool long long, vector long long); vector long long vec_orc (vector long long, vector bool long long); vector unsigned long long vec_orc (vector unsigned long long, vector unsigned long long); vector unsigned long long vec_orc (vector bool long long, vector unsigned long long); vector unsigned long long vec_orc (vector unsigned long long, vector bool long long); vector int vec_orc (vector int, vector int); vector int vec_orc (vector bool int, vector int); vector int vec_orc (vector int, vector bool int); vector unsigned int vec_orc (vector unsigned int, vector unsigned int); vector unsigned int vec_orc (vector bool unsigned int, vector unsigned int); vector unsigned int vec_orc (vector unsigned int, vector bool unsigned int); vector short vec_orc (vector short, vector short); vector short vec_orc (vector bool short, vector short); vector short vec_orc (vector short, vector bool short); vector unsigned short vec_orc (vector unsigned short, vector unsigned short); vector unsigned short vec_orc (vector bool unsigned short, vector unsigned short); vector unsigned short vec_orc (vector unsigned short, vector bool unsigned short); vector signed char vec_orc (vector signed char, vector signed char); vector signed char vec_orc (vector bool signed char, vector signed char); vector signed char vec_orc (vector signed char, vector bool signed char); vector unsigned char vec_orc (vector unsigned char, vector unsigned char); vector unsigned char vec_orc (vector bool unsigned char, vector unsigned char); vector unsigned char vec_orc (vector unsigned char, vector bool unsigned char); vector int vec_pack (vector long long, vector long long); vector unsigned int vec_pack (vector unsigned long long, vector unsigned long long); vector bool int vec_pack (vector bool long long, vector bool long long); vector float vec_pack (vector double, vector double); vector int vec_packs (vector long long, vector long long); vector unsigned int vec_packs (vector unsigned long long, vector unsigned long long); vector unsigned char vec_packsu (vector signed short, vector signed short) vector unsigned char vec_packsu (vector unsigned short, vector unsigned short) vector unsigned short int vec_packsu (vector signed int, vector signed int); vector unsigned short int vec_packsu (vector unsigned int, vector unsigned int); vector unsigned int vec_packsu (vector long long, vector long long); vector unsigned int vec_packsu (vector unsigned long long, vector unsigned long long); vector unsigned int vec_packsu (vector signed long long, vector signed long long); vector unsigned char vec_popcnt (vector signed char); vector unsigned char vec_popcnt (vector unsigned char); vector unsigned short vec_popcnt (vector signed short); vector unsigned short vec_popcnt (vector unsigned short); vector unsigned int vec_popcnt (vector signed int); vector unsigned int vec_popcnt (vector unsigned int); vector unsigned long long vec_popcnt (vector signed long long); vector unsigned long long vec_popcnt (vector unsigned long long); vector long long vec_rl (vector long long, vector unsigned long long); vector long long vec_rl (vector unsigned long long, vector unsigned long long); vector long long vec_sl (vector long long, vector unsigned long long); vector long long vec_sl (vector unsigned long long, vector unsigned long long); vector long long vec_sr (vector long long, vector unsigned long long); vector unsigned long long char vec_sr (vector unsigned long long, vector unsigned long long); vector long long vec_sra (vector long long, vector unsigned long long); vector unsigned long long vec_sra (vector unsigned long long, vector unsigned long long); vector long long vec_sub (vector long long, vector long long); vector unsigned long long vec_sub (vector unsigned long long, vector unsigned long long); vector long long vec_unpackh (vector int); vector unsigned long long vec_unpackh (vector unsigned int); vector long long vec_unpackl (vector int); vector unsigned long long vec_unpackl (vector unsigned int); vector long long vec_vaddudm (vector long long, vector long long); vector long long vec_vaddudm (vector bool long long, vector long long); vector long long vec_vaddudm (vector long long, vector bool long long); vector unsigned long long vec_vaddudm (vector unsigned long long, vector unsigned long long); vector unsigned long long vec_vaddudm (vector bool unsigned long long, vector unsigned long long); vector unsigned long long vec_vaddudm (vector unsigned long long, vector bool unsigned long long); vector long long vec_vbpermq (vector signed char, vector signed char); vector long long vec_vbpermq (vector unsigned char, vector unsigned char); vector unsigned char vec_bperm (vector unsigned char, vector unsigned char); vector unsigned char vec_bperm (vector unsigned long long, vector unsigned char); vector unsigned long long vec_bperm (vector unsigned __int128, vector unsigned char); vector long long vec_cntlz (vector long long); vector unsigned long long vec_cntlz (vector unsigned long long); vector int vec_cntlz (vector int); vector unsigned int vec_cntlz (vector int); vector short vec_cntlz (vector short); vector unsigned short vec_cntlz (vector unsigned short); vector signed char vec_cntlz (vector signed char); vector unsigned char vec_cntlz (vector unsigned char); vector long long vec_vclz (vector long long); vector unsigned long long vec_vclz (vector unsigned long long); vector int vec_vclz (vector int); vector unsigned int vec_vclz (vector int); vector short vec_vclz (vector short); vector unsigned short vec_vclz (vector unsigned short); vector signed char vec_vclz (vector signed char); vector unsigned char vec_vclz (vector unsigned char); vector signed char vec_vclzb (vector signed char); vector unsigned char vec_vclzb (vector unsigned char); vector long long vec_vclzd (vector long long); vector unsigned long long vec_vclzd (vector unsigned long long); vector short vec_vclzh (vector short); vector unsigned short vec_vclzh (vector unsigned short); vector int vec_vclzw (vector int); vector unsigned int vec_vclzw (vector int); vector signed char vec_vgbbd (vector signed char); vector unsigned char vec_vgbbd (vector unsigned char); vector long long vec_vmaxsd (vector long long, vector long long); vector unsigned long long vec_vmaxud (vector unsigned long long, unsigned vector long long); vector long long vec_vminsd (vector long long, vector long long); vector unsigned long long vec_vminud (vector long long, vector long long); vector int vec_vpksdss (vector long long, vector long long); vector unsigned int vec_vpksdss (vector long long, vector long long); vector unsigned int vec_vpkudus (vector unsigned long long, vector unsigned long long); vector int vec_vpkudum (vector long long, vector long long); vector unsigned int vec_vpkudum (vector unsigned long long, vector unsigned long long); vector bool int vec_vpkudum (vector bool long long, vector bool long long); vector long long vec_vpopcnt (vector long long); vector unsigned long long vec_vpopcnt (vector unsigned long long); vector int vec_vpopcnt (vector int); vector unsigned int vec_vpopcnt (vector int); vector short vec_vpopcnt (vector short); vector unsigned short vec_vpopcnt (vector unsigned short); vector signed char vec_vpopcnt (vector signed char); vector unsigned char vec_vpopcnt (vector unsigned char); vector signed char vec_vpopcntb (vector signed char); vector unsigned char vec_vpopcntb (vector unsigned char); vector long long vec_vpopcntd (vector long long); vector unsigned long long vec_vpopcntd (vector unsigned long long); vector short vec_vpopcnth (vector short); vector unsigned short vec_vpopcnth (vector unsigned short); vector int vec_vpopcntw (vector int); vector unsigned int vec_vpopcntw (vector int); vector long long vec_vrld (vector long long, vector unsigned long long); vector unsigned long long vec_vrld (vector unsigned long long, vector unsigned long long); vector long long vec_vsld (vector long long, vector unsigned long long); vector long long vec_vsld (vector unsigned long long, vector unsigned long long); vector long long vec_vsrad (vector long long, vector unsigned long long); vector unsigned long long vec_vsrad (vector unsigned long long, vector unsigned long long); vector long long vec_vsrd (vector long long, vector unsigned long long); vector unsigned long long char vec_vsrd (vector unsigned long long, vector unsigned long long); vector long long vec_vsubudm (vector long long, vector long long); vector long long vec_vsubudm (vector bool long long, vector long long); vector long long vec_vsubudm (vector long long, vector bool long long); vector unsigned long long vec_vsubudm (vector unsigned long long, vector unsigned long long); vector unsigned long long vec_vsubudm (vector bool long long, vector unsigned long long); vector unsigned long long vec_vsubudm (vector unsigned long long, vector bool long long); vector long long vec_vupkhsw (vector int); vector unsigned long long vec_vupkhsw (vector unsigned int); vector long long vec_vupklsw (vector int); vector unsigned long long vec_vupklsw (vector int);

If the ISA 2.07 additions to the vector/scalar (power8-vector) instruction set are available, the following additional functions are available for 64-bit targets. New vector types (`vector __int128`
and `vector __uint128`
) are available to hold the `__int128`
and `__uint128`
types to use these builtins.

The normal vector extract, and set operations work on `vector __int128`
and `vector __uint128`
types, but the index value must be 0.

vector __int128 vec_vaddcuq (vector __int128, vector __int128); vector __uint128 vec_vaddcuq (vector __uint128, vector __uint128); vector __int128 vec_vadduqm (vector __int128, vector __int128); vector __uint128 vec_vadduqm (vector __uint128, vector __uint128); vector __int128 vec_vaddecuq (vector __int128, vector __int128, vector __int128); vector __uint128 vec_vaddecuq (vector __uint128, vector __uint128, vector __uint128); vector __int128 vec_vaddeuqm (vector __int128, vector __int128, vector __int128); vector __uint128 vec_vaddeuqm (vector __uint128, vector __uint128, vector __uint128); vector __int128 vec_vsubecuq (vector __int128, vector __int128, vector __int128); vector __uint128 vec_vsubecuq (vector __uint128, vector __uint128, vector __uint128); vector __int128 vec_vsubeuqm (vector __int128, vector __int128, vector __int128); vector __uint128 vec_vsubeuqm (vector __uint128, vector __uint128, vector __uint128); vector __int128 vec_vsubcuq (vector __int128, vector __int128); vector __uint128 vec_vsubcuq (vector __uint128, vector __uint128); __int128 vec_vsubuqm (__int128, __int128); __uint128 vec_vsubuqm (__uint128, __uint128); vector __int128 __builtin_bcdadd (vector __int128, vector __int128, const int); int __builtin_bcdadd_lt (vector __int128, vector __int128, const int); int __builtin_bcdadd_eq (vector __int128, vector __int128, const int); int __builtin_bcdadd_gt (vector __int128, vector __int128, const int); int __builtin_bcdadd_ov (vector __int128, vector __int128, const int); vector __int128 __builtin_bcdsub (vector __int128, vector __int128, const int); int __builtin_bcdsub_lt (vector __int128, vector __int128, const int); int __builtin_bcdsub_eq (vector __int128, vector __int128, const int); int __builtin_bcdsub_gt (vector __int128, vector __int128, const int); int __builtin_bcdsub_ov (vector __int128, vector __int128, const int);