summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2016-10-22 21:24:48 +0000
committerCraig Topper <craig.topper@gmail.com>2016-10-22 21:24:48 +0000
commit11dda924059452f31aa9e732f31313915bdf0743 (patch)
tree3186a3be4ea27a983215fbd643cb35d91e8022af /clang/test
parentf742445eb4f1afe8c8d57b144c0796471c7a3403 (diff)
downloadbcm5719-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.c120
-rw-r--r--clang/test/CodeGen/avx512vlbw-builtins.c24
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);
}
OpenPOWER on IntegriCloud