diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-09-03 18:29:35 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-09-03 18:29:35 +0000 |
| commit | 0e18976b8d192e3fd2d9288fd1e6bf46d0c17272 (patch) | |
| tree | 519f4372894a7b4a0686de4e5807577c87171738 /clang/test | |
| parent | ac42ba8633dd4938facb5cdc664f8382ec6a203e (diff) | |
| download | bcm5719-llvm-0e18976b8d192e3fd2d9288fd1e6bf46d0c17272.tar.gz bcm5719-llvm-0e18976b8d192e3fd2d9288fd1e6bf46d0c17272.zip | |
[AVX-512] Remove masked integer add/sub builtins and replace with native IR.
llvm-svn: 280596
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGen/avx512bw-builtins.c | 24 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 24 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 50 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vlbw-builtins.c | 49 |
4 files changed, 98 insertions, 49 deletions
diff --git a/clang/test/CodeGen/avx512bw-builtins.c b/clang/test/CodeGen/avx512bw-builtins.c index 7cb2a70e353..ebf981447b8 100644 --- a/clang/test/CodeGen/avx512bw-builtins.c +++ b/clang/test/CodeGen/avx512bw-builtins.c @@ -378,13 +378,15 @@ __m512i test_mm512_add_epi8 (__m512i __A, __m512i __B) { __m512i test_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_mask_add_epi8 - //CHECK: @llvm.x86.avx512.mask.padd.b.512 + //CHECK: add <64 x i8> %{{.*}}, %{{.*}} + //CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}} return _mm512_mask_add_epi8(__W, __U, __A, __B); } __m512i test_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_add_epi8 - //CHECK: @llvm.x86.avx512.mask.padd.b.512 + //CHECK: add <64 x i8> %{{.*}}, %{{.*}} + //CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}} return _mm512_maskz_add_epi8(__U, __A, __B); } @@ -396,13 +398,15 @@ __m512i test_mm512_sub_epi8 (__m512i __A, __m512i __B) { __m512i test_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_mask_sub_epi8 - //CHECK: @llvm.x86.avx512.mask.psub.b.512 + //CHECK: sub <64 x i8> %{{.*}}, %{{.*}} + //CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}} return _mm512_mask_sub_epi8(__W, __U, __A, __B); } __m512i test_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_sub_epi8 - //CHECK: @llvm.x86.avx512.mask.psub.b.512 + //CHECK: sub <64 x i8> %{{.*}}, %{{.*}} + //CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}} return _mm512_maskz_sub_epi8(__U, __A, __B); } @@ -414,13 +418,15 @@ __m512i test_mm512_add_epi16 (__m512i __A, __m512i __B) { __m512i test_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_mask_add_epi16 - //CHECK: @llvm.x86.avx512.mask.padd.w.512 + //CHECK: add <32 x i16> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} return _mm512_mask_add_epi16(__W, __U, __A, __B); } __m512i test_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_add_epi16 - //CHECK: @llvm.x86.avx512.mask.padd.w.512 + //CHECK: add <32 x i16> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} return _mm512_maskz_add_epi16(__U, __A, __B); } @@ -432,13 +438,15 @@ __m512i test_mm512_sub_epi16 (__m512i __A, __m512i __B) { __m512i test_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_mask_sub_epi16 - //CHECK: @llvm.x86.avx512.mask.psub.w.512 + //CHECK: sub <32 x i16> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} return _mm512_mask_sub_epi16(__W, __U, __A, __B); } __m512i test_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_sub_epi16 - //CHECK: @llvm.x86.avx512.mask.psub.w.512 + //CHECK: sub <32 x i16> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} return _mm512_maskz_sub_epi16(__U, __A, __B); } diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index a51a485620e..46d0b1a3300 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -1587,14 +1587,16 @@ __m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) { __m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_sub_epi32 - //CHECK: @llvm.x86.avx512.mask.psub.d.512 + //CHECK: sub <16 x i32> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} return _mm512_maskz_sub_epi32(__k,__A,__B); } __m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) { //CHECK-LABEL: @test_mm512_mask_sub_epi32 - //CHECK: @llvm.x86.avx512.mask.psub.d.512 + //CHECK: sub <16 x i32> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} return _mm512_mask_sub_epi32(__src,__k,__A,__B); } @@ -1606,14 +1608,16 @@ __m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) { __m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_sub_epi64 - //CHECK: @llvm.x86.avx512.mask.psub.q.512 + //CHECK: sub <8 x i64> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_maskz_sub_epi64(__k,__A,__B); } __m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B, __m512i __src) { //CHECK-LABEL: @test_mm512_mask_sub_epi64 - //CHECK: @llvm.x86.avx512.mask.psub.q.512 + //CHECK: sub <8 x i64> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_mask_sub_epi64(__src,__k,__A,__B); } @@ -1625,14 +1629,16 @@ __m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) { __m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_add_epi32 - //CHECK: @llvm.x86.avx512.mask.padd.d.512 + //CHECK: add <16 x i32> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} return _mm512_maskz_add_epi32(__k,__A,__B); } __m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) { //CHECK-LABEL: @test_mm512_mask_add_epi32 - //CHECK: @llvm.x86.avx512.mask.padd.d.512 + //CHECK: add <16 x i32> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} return _mm512_mask_add_epi32(__src,__k,__A,__B); } @@ -1644,14 +1650,16 @@ __m512i test_mm512_add_epi32(__m512i __A, __m512i __B) { __m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) { //CHECK-LABEL: @test_mm512_maskz_add_epi64 - //CHECK: @llvm.x86.avx512.mask.padd.q.512 + //CHECK: add <8 x i64> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_maskz_add_epi64(__k,__A,__B); } __m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B, __m512i __src) { //CHECK-LABEL: @test_mm512_mask_add_epi64 - //CHECK: @llvm.x86.avx512.mask.padd.q.512 + //CHECK: add <8 x i64> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_mask_add_epi64(__src,__k,__A,__B); } diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c index d9031fe1680..11a927412e8 100644 --- a/clang/test/CodeGen/avx512vl-builtins.c +++ b/clang/test/CodeGen/avx512vl-builtins.c @@ -608,105 +608,121 @@ __mmask8 test_mm256_mask_cmp_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_add_epi32 - //CHECK: @llvm.x86.avx512.mask.padd.d.256 + //CHECK: add <8 x i32> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_mask_add_epi32(__W, __U, __A, __B); } __m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_add_epi32 - //CHECK: @llvm.x86.avx512.mask.padd.d.256 + //CHECK: add <8 x i32> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_maskz_add_epi32(__U, __A, __B); } __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_add_epi64 - //CHECK: @llvm.x86.avx512.mask.padd.q.256 + //CHECK: add <4 x i64> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_add_epi64(__W,__U,__A,__B); } __m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_add_epi64 - //CHECK: @llvm.x86.avx512.mask.padd.q.256 + //CHECK: add <4 x i64> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_add_epi64 (__U,__A,__B); } __m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_sub_epi32 - //CHECK: @llvm.x86.avx512.mask.psub.d.256 + //CHECK: sub <8 x i32> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_mask_sub_epi32 (__W,__U,__A,__B); } __m256i test_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_sub_epi32 - //CHECK: @llvm.x86.avx512.mask.psub.d.256 + //CHECK: sub <8 x i32> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_maskz_sub_epi32 (__U,__A,__B); } __m256i test_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_sub_epi64 - //CHECK: @llvm.x86.avx512.mask.psub.q.256 + //CHECK: sub <4 x i64> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_sub_epi64 (__W,__U,__A,__B); } __m256i test_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_sub_epi64 - //CHECK: @llvm.x86.avx512.mask.psub.q.256 + //CHECK: sub <4 x i64> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_sub_epi64 (__U,__A,__B); } __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_add_epi32 - //CHECK: @llvm.x86.avx512.mask.padd.d.128 + //CHECK: add <4 x i32> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_mask_add_epi32(__W,__U,__A,__B); } __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_add_epi32 - //CHECK: @llvm.x86.avx512.mask.padd.d.128 + //CHECK: add <4 x i32> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_maskz_add_epi32 (__U,__A,__B); } __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { -//CHECK-LABEL: @test_mm_mask_add_epi64 - //CHECK: @llvm.x86.avx512.mask.padd.q.128 + //CHECK-LABEL: @test_mm_mask_add_epi64 + //CHECK: add <2 x i64> %{{.*}}, %{{.*}} + //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_add_epi64 (__W,__U,__A,__B); } __m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_add_epi64 - //CHECK: @llvm.x86.avx512.mask.padd.q.128 + //CHECK: add <2 x i64> %{{.*}}, %{{.*}} + //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_add_epi64 (__U,__A,__B); } __m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_sub_epi32 - //CHECK: @llvm.x86.avx512.mask.psub.d.128 + //CHECK: sub <4 x i32> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_mask_sub_epi32(__W, __U, __A, __B); } __m128i test_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_sub_epi32 - //CHECK: @llvm.x86.avx512.mask.psub.d.128 + //CHECK: sub <4 x i32> %{{.*}}, %{{.*}} + //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_maskz_sub_epi32(__U, __A, __B); } __m128i test_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_sub_epi64 - //CHECK: @llvm.x86.avx512.mask.psub.q.128 + //CHECK: sub <2 x i64> %{{.*}}, %{{.*}} + //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_sub_epi64 (__W, __U, __A, __B); } __m128i test_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_sub_epi64 - //CHECK: @llvm.x86.avx512.mask.psub.q.128 + //CHECK: sub <2 x i64> %{{.*}}, %{{.*}} + //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_sub_epi64 (__U, __A, __B); } diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c index fd3f6f5f513..f3150eaf03e 100644 --- a/clang/test/CodeGen/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/avx512vlbw-builtins.c @@ -737,95 +737,112 @@ __mmask16 test_mm256_mask_cmp_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b __m256i test_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){ //CHECK-LABEL: @test_mm256_mask_add_epi8 - //CHECK: @llvm.x86.avx512.mask.padd.b.256 + //CHECK: add <32 x i8> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}} return _mm256_mask_add_epi8(__W, __U , __A, __B); } __m256i test_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_add_epi8 - //CHECK: @llvm.x86.avx512.mask.padd.b.256 + //CHECK: add <32 x i8> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}} return _mm256_maskz_add_epi8(__U , __A, __B); } __m256i test_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_add_epi16 - //CHECK: @llvm.x86.avx512.mask.padd.w.256 + //CHECK: add <16 x i16> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_mask_add_epi16(__W, __U , __A, __B); } __m256i test_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_add_epi16 - //CHECK: @llvm.x86.avx512.mask.padd.w.256 + //CHECK: add <16 x i16> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_maskz_add_epi16(__U , __A, __B); } __m256i test_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_sub_epi8 - //CHECK: @llvm.x86.avx512.mask.psub.b.256 + //CHECK: sub <32 x i8> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}} return _mm256_mask_sub_epi8(__W, __U , __A, __B); } __m256i test_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_sub_epi8 - //CHECK: @llvm.x86.avx512.mask.psub.b.256 + //CHECK: sub <32 x i8> %{{.*}}, %{{.*}} + //CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}} return _mm256_maskz_sub_epi8(__U , __A, __B); } __m256i test_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_mask_sub_epi16 - //CHECK: @llvm.x86.avx512.mask.psub.w.256 + //CHECK: sub <16 x i16> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_mask_sub_epi16(__W, __U , __A, __B); } __m256i test_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { //CHECK-LABEL: @test_mm256_maskz_sub_epi16 - //CHECK: @llvm.x86.avx512.mask.psub.w.256 + //CHECK: sub <16 x i16> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_maskz_sub_epi16(__U , __A, __B); } + __m128i test_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_add_epi8 - //CHECK: @llvm.x86.avx512.mask.padd.b.128 + //CHECK: add <16 x i8> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}} return _mm_mask_add_epi8(__W, __U , __A, __B); } __m128i test_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_add_epi8 - //CHECK: @llvm.x86.avx512.mask.padd.b.128 + //CHECK: add <16 x i8> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}} return _mm_maskz_add_epi8(__U , __A, __B); } __m128i test_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_add_epi16 - //CHECK: @llvm.x86.avx512.mask.padd.w.128 + //CHECK: add <8 x i16> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_mask_add_epi16(__W, __U , __A, __B); } __m128i test_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_add_epi16 - //CHECK: @llvm.x86.avx512.mask.padd.w.128 + //CHECK: add <8 x i16> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_maskz_add_epi16(__U , __A, __B); } __m128i test_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_sub_epi8 - //CHECK: @llvm.x86.avx512.mask.psub.b.128 + //CHECK: sub <16 x i8> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}} return _mm_mask_sub_epi8(__W, __U , __A, __B); } __m128i test_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_sub_epi8 - //CHECK: @llvm.x86.avx512.mask.psub.b.128 + //CHECK: sub <16 x i8> %{{.*}}, %{{.*}} + //CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}} return _mm_maskz_sub_epi8(__U , __A, __B); } __m128i test_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_mask_sub_epi16 - //CHECK: @llvm.x86.avx512.mask.psub.w.128 + //CHECK: sub <8 x i16> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_mask_sub_epi16(__W, __U , __A, __B); } __m128i test_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { //CHECK-LABEL: @test_mm_maskz_sub_epi16 - //CHECK: @llvm.x86.avx512.mask.psub.w.128 + //CHECK: sub <8 x i16> %{{.*}}, %{{.*}} + //CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_maskz_sub_epi16(__U , __A, __B); } |

