diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-10-22 21:24:48 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-10-22 21:24:48 +0000 |
| commit | 11dda924059452f31aa9e732f31313915bdf0743 (patch) | |
| tree | 3186a3be4ea27a983215fbd643cb35d91e8022af /clang/test | |
| parent | f742445eb4f1afe8c8d57b144c0796471c7a3403 (diff) | |
| download | bcm5719-llvm-11dda924059452f31aa9e732f31313915bdf0743.tar.gz bcm5719-llvm-11dda924059452f31aa9e732f31313915bdf0743.zip | |
[AVX-512] Replace masked 128/256-bit vpmovzx/vpmovsx builtins with native IR.
llvm-svn: 284927
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 120 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vlbw-builtins.c | 24 |
2 files changed, 96 insertions, 48 deletions
diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c index b7e1856b4e5..0898bc58c8b 100644 --- a/clang/test/CodeGen/avx512vl-builtins.c +++ b/clang/test/CodeGen/avx512vl-builtins.c @@ -3248,241 +3248,281 @@ __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i _ __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.128 + // CHECK: sext <4 x i8> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_mask_cvtepi8_epi32(__W, __U, __A); } __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.128 + // CHECK: sext <4 x i8> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_maskz_cvtepi8_epi32(__U, __A); } __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.256 + // CHECK: sext <8 x i8> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_mask_cvtepi8_epi32(__W, __U, __A); } __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.256 + // CHECK: sext <8 x i8> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_maskz_cvtepi8_epi32(__U, __A); } __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.128 + // CHECK: sext <2 x i8> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_cvtepi8_epi64(__W, __U, __A); } __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.128 + // CHECK: sext <2 x i8> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_cvtepi8_epi64(__U, __A); } __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.256 + // CHECK: sext <4 x i8> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_cvtepi8_epi64(__W, __U, __A); } __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.256 + // CHECK: sext <4 x i8> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_cvtepi8_epi64(__U, __A); } __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.128 + // CHECK: sext <2 x i32> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_cvtepi32_epi64(__W, __U, __X); } __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.128 + // CHECK: sext <2 x i32> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_cvtepi32_epi64(__U, __X); } __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.256 + // CHECK: sext <4 x i32> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_cvtepi32_epi64(__W, __U, __X); } __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.256 + // CHECK: sext <4 x i32> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_cvtepi32_epi64(__U, __X); } __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.128 + // CHECK: sext <4 x i16> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_mask_cvtepi16_epi32(__W, __U, __A); } __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.128 + // CHECK: sext <4 x i16> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_maskz_cvtepi16_epi32(__U, __A); } __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.256 + // CHECK: sext <8 x i16> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_mask_cvtepi16_epi32(__W, __U, __A); } __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.256 + // CHECK: sext <8 x i16> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_maskz_cvtepi16_epi32(__U, __A); } __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.128 + // CHECK: sext <2 x i16> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_cvtepi16_epi64(__W, __U, __A); } __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.128 + // CHECK: sext <2 x i16> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_cvtepi16_epi64(__U, __A); } __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.256 + // CHECK: sext <4 x i16> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_cvtepi16_epi64(__W, __U, __A); } __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.256 + // CHECK: sext <4 x i16> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_cvtepi16_epi64(__U, __A); } __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.128 + // CHECK: zext <4 x i8> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_mask_cvtepu8_epi32(__W, __U, __A); } __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.128 + // CHECK: zext <4 x i8> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_maskz_cvtepu8_epi32(__U, __A); } __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.256 + // CHECK: zext <8 x i8> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_mask_cvtepu8_epi32(__W, __U, __A); } __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.256 + // CHECK: zext <8 x i8> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_maskz_cvtepu8_epi32(__U, __A); } __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.128 + // CHECK: zext <2 x i8> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_cvtepu8_epi64(__W, __U, __A); } __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.128 + // CHECK: zext <2 x i8> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_cvtepu8_epi64(__U, __A); } __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.256 + // CHECK: zext <4 x i8> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_cvtepu8_epi64(__W, __U, __A); } __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.256 + // CHECK: zext <4 x i8> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_cvtepu8_epi64(__U, __A); } __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.128 + // CHECK: zext <2 x i32> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_cvtepu32_epi64(__W, __U, __X); } __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.128 + // CHECK: zext <2 x i32> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_cvtepu32_epi64(__U, __X); } __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.256 + // CHECK: zext <4 x i32> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_cvtepu32_epi64(__W, __U, __X); } __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) { // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.256 + // CHECK: zext <4 x i32> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_cvtepu32_epi64(__U, __X); } __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.128 + // CHECK: zext <4 x i16> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_mask_cvtepu16_epi32(__W, __U, __A); } __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.128 + // CHECK: zext <4 x i16> %{{.*}} to <4 x i32> + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm_maskz_cvtepu16_epi32(__U, __A); } __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.256 + // CHECK: zext <8 x i16> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_mask_cvtepu16_epi32(__W, __U, __A); } __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.256 + // CHECK: zext <8 x i16> %{{.*}} to <8 x i32> + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} return _mm256_maskz_cvtepu16_epi32(__U, __A); } __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.128 + // CHECK: zext <2 x i16> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_cvtepu16_epi64(__W, __U, __A); } __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.128 + // CHECK: zext <2 x i16> %{{.*}} to <2 x i64> + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_cvtepu16_epi64(__U, __A); } __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.256 + // CHECK: zext <4 x i16> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_cvtepu16_epi64(__W, __U, __A); } __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64 - // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.256 + // CHECK: zext <4 x i16> %{{.*}} to <4 x i64> + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_cvtepu16_epi64(__U, __A); } diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c index b1f78a6819c..621b6f6ee21 100644 --- a/clang/test/CodeGen/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/avx512vlbw-builtins.c @@ -1810,49 +1810,57 @@ __m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) __m128i test_mm_mask_cvtepi8_epi16(__m128i __W, __mmask32 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepi8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.128 + // CHECK: sext <8 x i8> %{{.*}} to <8 x i16> + // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_mask_cvtepi8_epi16(__W, __U, __A); } __m128i test_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.128 + // CHECK: sext <8 x i8> %{{.*}} to <8 x i16> + // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_maskz_cvtepi8_epi16(__U, __A); } __m256i test_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask32 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.256 + // CHECK: sext <16 x i8> %{{.*}} to <16 x i16> + // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_mask_cvtepi8_epi16(__W, __U, __A); } __m256i test_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.256 + // CHECK: sext <16 x i8> %{{.*}} to <16 x i16> + // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_maskz_cvtepi8_epi16(__U, __A); } __m128i test_mm_mask_cvtepu8_epi16(__m128i __W, __mmask32 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_cvtepu8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.128 + // CHECK: zext <8 x i8> %{{.*}} to <8 x i16> + // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_mask_cvtepu8_epi16(__W, __U, __A); } __m128i test_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.128 + // CHECK: zext <8 x i8> %{{.*}} to <8 x i16> + // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} return _mm_maskz_cvtepu8_epi16(__U, __A); } __m256i test_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask32 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.256 + // CHECK: zext <16 x i8> %{{.*}} to <16 x i16> + // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_mask_cvtepu8_epi16(__W, __U, __A); } __m256i test_mm256_maskz_cvtepu8_epi16(__mmask16 __U, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi16 - // CHECK: @llvm.x86.avx512.mask.pmovzxb.w.256 + // CHECK: zext <16 x i8> %{{.*}} to <16 x i16> + // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} return _mm256_maskz_cvtepu8_epi16(__U, __A); } |

