diff options
author | Jina Nahias <jina.nahias@intel.com> | 2017-09-25 13:38:08 +0000 |
---|---|---|
committer | Jina Nahias <jina.nahias@intel.com> | 2017-09-25 13:38:08 +0000 |
commit | 0f4b29667460bb4069a3f0bf08510ec91252c296 (patch) | |
tree | 9878ae165ead27fe9d700c088100324b66be8aa7 | |
parent | ce93d4af3891b2cf5f73988a4f0a06dd222a1a02 (diff) |
fixing a bug in mask[z]_set1 intrinsic
Differential Revision: https://reviews.llvm.org/D38231
Change-Id: I80bbff9cbe93e4be54d8a761ef9723edf3f57c57
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314102 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Headers/avx512vlintrin.h | 4 | ||||
-rw-r--r-- | test/CodeGen/avx512vl-builtins.c | 36 |
2 files changed, 6 insertions, 34 deletions
diff --git a/lib/Headers/avx512vlintrin.h b/lib/Headers/avx512vlintrin.h index da79b201b7..7e17cff05f 100644 --- a/lib/Headers/avx512vlintrin.h +++ b/lib/Headers/avx512vlintrin.h @@ -5761,7 +5761,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) { return (__m128i) __builtin_ia32_selectq_128(__M, - (__v2di) _mm_set1_epi8(__A), + (__v2di) _mm_set1_epi64x(__A), (__v2di) __O); } @@ -5769,7 +5769,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_maskz_set1_epi64 (__mmask8 __M, long long __A) { return (__m128i) __builtin_ia32_selectq_128(__M, - (__v2di) _mm_set1_epi8(__A), + (__v2di) _mm_set1_epi64x(__A), (__v2di) _mm_setzero_si128()); } diff --git a/test/CodeGen/avx512vl-builtins.c b/test/CodeGen/avx512vl-builtins.c index 7efaf8a5cf..b489033807 100644 --- a/test/CodeGen/avx512vl-builtins.c +++ b/test/CodeGen/avx512vl-builtins.c @@ -4563,22 +4563,8 @@ __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) { #ifdef __x86_64__ __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) { // CHECK-LABEL: @test_mm_mask_set1_epi64 - // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15 + // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0 + // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1> // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_set1_epi64(__O, __M, __A); @@ -4586,22 +4572,8 @@ __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) { __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) { // CHECK-LABEL: @test_mm_maskz_set1_epi64 - // CHECK: insertelement <16 x i8> undef, i8 %{{.*}}, i32 0 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 1 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 2 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 3 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 4 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 5 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 6 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 7 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 8 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 9 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 10 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 11 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 12 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 13 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 14 - // CHECK: insertelement <16 x i8> %{{.*}}, i8 %{{.*}}, i32 15 + // CHECK: insertelement <2 x i64> undef, i64 %{{.*}}, i32 0 + // CHECK: insertelement <2 x i64> %{{.*}}, i64 %{{.*}}, i32 1 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <2 x i32> <i32 0, i32 1> // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_set1_epi64(__M, __A); |