summaryrefslogtreecommitdiff
path: root/lib/Headers/avx512fintrin.h
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-06-04 19:28:09 +0000
committerCraig Topper <craig.topper@intel.com>2018-06-04 19:28:09 +0000
commitedfb78dee78bc88f0e0aa12f1967b24f5d8f45ee (patch)
tree2ac550b60010deaf72e0428e0c6e0738f899333f /lib/Headers/avx512fintrin.h
parent51f877dbebe07f539f3f24acb88ef4f3f0737339 (diff)
downloadclang-edfb78dee78bc88f0e0aa12f1967b24f5d8f45ee.tar.gz
[X86] Avoid passing _mm_undefined* to builtin_shufflevector if we are able to pass the first input a second time.
This is more consistent with other usages of builtin_shufflevector. Later optimization passes or codegen will detect the duplicate vector and replace it with undef. Using _mm_undefined just puts a zeroinitializer that still needs to be optimized out later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@333944 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Headers/avx512fintrin.h')
-rw-r--r--lib/Headers/avx512fintrin.h12
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/Headers/avx512fintrin.h b/lib/Headers/avx512fintrin.h
index abf2da25f2..9f514bc41a 100644
--- a/lib/Headers/avx512fintrin.h
+++ b/lib/Headers/avx512fintrin.h
@@ -212,8 +212,7 @@ _mm512_undefined_epi32(void)
static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcastd_epi32 (__m128i __A)
{
- return (__m512i)__builtin_shufflevector((__v4si) __A,
- (__v4si)_mm_undefined_si128(),
+ return (__m512i)__builtin_shufflevector((__v4si) __A, (__v4si) __A,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
@@ -236,8 +235,7 @@ _mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)
static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcastq_epi64 (__m128i __A)
{
- return (__m512i)__builtin_shufflevector((__v2di) __A,
- (__v2di) _mm_undefined_si128(),
+ return (__m512i)__builtin_shufflevector((__v2di) __A, (__v2di) __A,
0, 0, 0, 0, 0, 0, 0, 0);
}
@@ -344,8 +342,7 @@ _mm512_maskz_set1_epi64(__mmask8 __M, long long __A)
static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_broadcastss_ps(__m128 __A)
{
- return (__m512)__builtin_shufflevector((__v4sf) __A,
- (__v4sf)_mm_undefined_ps(),
+ return (__m512)__builtin_shufflevector((__v4sf) __A, (__v4sf) __A,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
@@ -395,8 +392,7 @@ _mm512_set4_ps (float __A, float __B, float __C, float __D)
static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_broadcastsd_pd(__m128d __A)
{
- return (__m512d)__builtin_shufflevector((__v2df) __A,
- (__v2df) _mm_undefined_pd(),
+ return (__m512d)__builtin_shufflevector((__v2df) __A, (__v2df) __A,
0, 0, 0, 0, 0, 0, 0, 0);
}