Author: Ulrich Weigand Date: 2020-01-16T18:58:14+01:00 New Revision: cebba7ce3952c8f37a923fa3a10360fd4c463775
URL: https://github.com/llvm/llvm-project/commit/cebba7ce3952c8f37a923fa3a10360fd4c463775 DIFF: https://github.com/llvm/llvm-project/commit/cebba7ce3952c8f37a923fa3a10360fd4c463775.diff LOG: [SystemZ] Avoid unnecessary conversions in vecintrin.h Use floating-point instead of integer zero constants to avoid creating implicit conversions, which currently cause suboptimal code to be generated with -ffp-exception-behavior=strict. NFC otherwise. Added: Modified: clang/lib/Headers/vecintrin.h Removed: ################################################################################ diff --git a/clang/lib/Headers/vecintrin.h b/clang/lib/Headers/vecintrin.h index c71b76a3ee39..6f9b609f2dfe 100644 --- a/clang/lib/Headers/vecintrin.h +++ b/clang/lib/Headers/vecintrin.h @@ -290,7 +290,7 @@ vec_promote(unsigned long long __scalar, int __index) { #if __ARCH__ >= 12 static inline __ATTRS_o_ai vector float vec_promote(float __scalar, int __index) { - const vector float __zero = (vector float)0; + const vector float __zero = (vector float)0.0f; vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1); __vec[__index & 3] = __scalar; return __vec; @@ -299,7 +299,7 @@ vec_promote(float __scalar, int __index) { static inline __ATTRS_o_ai vector double vec_promote(double __scalar, int __index) { - const vector double __zero = (vector double)0; + const vector double __zero = (vector double)0.0; vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1); __vec[__index & 1] = __scalar; return __vec; @@ -366,7 +366,7 @@ vec_insert_and_zero(const unsigned long long *__ptr) { #if __ARCH__ >= 12 static inline __ATTRS_o_ai vector float vec_insert_and_zero(const float *__ptr) { - vector float __vec = (vector float)0; + vector float __vec = (vector float)0.0f; __vec[1] = *__ptr; return __vec; } @@ -374,7 +374,7 @@ vec_insert_and_zero(const float *__ptr) { static inline __ATTRS_o_ai vector double vec_insert_and_zero(const double *__ptr) { - vector double __vec = (vector double)0; + vector double __vec = (vector double)0.0; __vec[0] = *__ptr; return __vec; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits