amyk created this revision. amyk added reviewers: PowerPC, nemanjai, stefanp. amyk added projects: LLVM, PowerPC, clang. amyk requested review of this revision.
This patch updates the vec_popcnt builtins to take a signed int as the second parameter, as defined by the Power Vector Intrinsics Programming Reference. This patch is NFC and all existing tests pass. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D110934 Files: clang/lib/Headers/altivec.h Index: clang/lib/Headers/altivec.h =================================================================== --- clang/lib/Headers/altivec.h +++ clang/lib/Headers/altivec.h @@ -2482,7 +2482,7 @@ #ifdef __POWER8_VECTOR__ /* vec_popcnt */ -static __inline__ vector signed char __ATTRS_o_ai +static __inline__ vector unsigned char __ATTRS_o_ai vec_popcnt(vector signed char __a) { return __builtin_altivec_vpopcntb(__a); } @@ -2490,7 +2490,7 @@ vec_popcnt(vector unsigned char __a) { return __builtin_altivec_vpopcntb(__a); } -static __inline__ vector signed short __ATTRS_o_ai +static __inline__ vector unsigned short __ATTRS_o_ai vec_popcnt(vector signed short __a) { return __builtin_altivec_vpopcnth(__a); } @@ -2498,7 +2498,7 @@ vec_popcnt(vector unsigned short __a) { return __builtin_altivec_vpopcnth(__a); } -static __inline__ vector signed int __ATTRS_o_ai +static __inline__ vector unsigned int __ATTRS_o_ai vec_popcnt(vector signed int __a) { return __builtin_altivec_vpopcntw(__a); } @@ -2506,7 +2506,7 @@ vec_popcnt(vector unsigned int __a) { return __builtin_altivec_vpopcntw(__a); } -static __inline__ vector signed long long __ATTRS_o_ai +static __inline__ vector unsigned long long __ATTRS_o_ai vec_popcnt(vector signed long long __a) { return __builtin_altivec_vpopcntd(__a); }
Index: clang/lib/Headers/altivec.h =================================================================== --- clang/lib/Headers/altivec.h +++ clang/lib/Headers/altivec.h @@ -2482,7 +2482,7 @@ #ifdef __POWER8_VECTOR__ /* vec_popcnt */ -static __inline__ vector signed char __ATTRS_o_ai +static __inline__ vector unsigned char __ATTRS_o_ai vec_popcnt(vector signed char __a) { return __builtin_altivec_vpopcntb(__a); } @@ -2490,7 +2490,7 @@ vec_popcnt(vector unsigned char __a) { return __builtin_altivec_vpopcntb(__a); } -static __inline__ vector signed short __ATTRS_o_ai +static __inline__ vector unsigned short __ATTRS_o_ai vec_popcnt(vector signed short __a) { return __builtin_altivec_vpopcnth(__a); } @@ -2498,7 +2498,7 @@ vec_popcnt(vector unsigned short __a) { return __builtin_altivec_vpopcnth(__a); } -static __inline__ vector signed int __ATTRS_o_ai +static __inline__ vector unsigned int __ATTRS_o_ai vec_popcnt(vector signed int __a) { return __builtin_altivec_vpopcntw(__a); } @@ -2506,7 +2506,7 @@ vec_popcnt(vector unsigned int __a) { return __builtin_altivec_vpopcntw(__a); } -static __inline__ vector signed long long __ATTRS_o_ai +static __inline__ vector unsigned long long __ATTRS_o_ai vec_popcnt(vector signed long long __a) { return __builtin_altivec_vpopcntd(__a); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits