This revision was automatically updated to reflect the committed changes. Closed by commit rL314102: fixing a bug in mask[z]_set1 intrinsic (authored by jina.nahias).
Changed prior to commit: https://reviews.llvm.org/D38231?vs=116513&id=116545#toc Repository: rL LLVM https://reviews.llvm.org/D38231 Files: cfe/trunk/lib/Headers/avx512vlintrin.h cfe/trunk/test/CodeGen/avx512vl-builtins.c Index: cfe/trunk/lib/Headers/avx512vlintrin.h =================================================================== --- cfe/trunk/lib/Headers/avx512vlintrin.h +++ cfe/trunk/lib/Headers/avx512vlintrin.h @@ -5761,15 +5761,15 @@ _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); } 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()); } Index: cfe/trunk/test/CodeGen/avx512vl-builtins.c =================================================================== --- cfe/trunk/test/CodeGen/avx512vl-builtins.c +++ cfe/trunk/test/CodeGen/avx512vl-builtins.c @@ -4563,45 +4563,17 @@ #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); } __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);
Index: cfe/trunk/lib/Headers/avx512vlintrin.h =================================================================== --- cfe/trunk/lib/Headers/avx512vlintrin.h +++ cfe/trunk/lib/Headers/avx512vlintrin.h @@ -5761,15 +5761,15 @@ _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); } 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()); } Index: cfe/trunk/test/CodeGen/avx512vl-builtins.c =================================================================== --- cfe/trunk/test/CodeGen/avx512vl-builtins.c +++ cfe/trunk/test/CodeGen/avx512vl-builtins.c @@ -4563,45 +4563,17 @@ #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); } __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);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits