summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r--clang/test/CodeGen/avx512bw-builtins.c17
-rw-r--r--clang/test/CodeGen/avx512f-builtins.c91
-rw-r--r--clang/test/CodeGen/avx512vl-builtins.c121
-rw-r--r--clang/test/CodeGen/avx512vlbw-builtins.c23
4 files changed, 252 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512bw-builtins.c b/clang/test/CodeGen/avx512bw-builtins.c
index 7addd98b112..4bd829ee14b 100644
--- a/clang/test/CodeGen/avx512bw-builtins.c
+++ b/clang/test/CodeGen/avx512bw-builtins.c
@@ -1041,3 +1041,20 @@ __m512i test_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B)
return _mm512_maskz_unpacklo_epi16(__U, __A, __B);
}
+__m512i test_mm512_cvtepi8_epi16(__m256i __A) {
+ // CHECK-LABEL: @test_mm512_cvtepi8_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
+ return _mm512_cvtepi8_epi16(__A);
+}
+
+__m512i test_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
+ return _mm512_mask_cvtepi8_epi16(__W, __U, __A);
+}
+
+__m512i test_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
+ return _mm512_maskz_cvtepi8_epi16(__U, __A);
+}
diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c
index c1f4c0ecc52..0b161773ea0 100644
--- a/clang/test/CodeGen/avx512f-builtins.c
+++ b/clang/test/CodeGen/avx512f-builtins.c
@@ -1899,3 +1899,94 @@ __m512i test_mm512_undefined_epi32() {
// CHECK: ret <8 x i64> undef
return _mm512_undefined_epi32();
}
+
+__m512i test_mm512_cvtepi8_epi32(__m128i __A) {
+ // CHECK-LABEL: @test_mm512_cvtepi8_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
+ return _mm512_cvtepi8_epi32(__A);
+}
+
+__m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
+ return _mm512_mask_cvtepi8_epi32(__W, __U, __A);
+}
+
+__m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
+ return _mm512_maskz_cvtepi8_epi32(__U, __A);
+}
+
+__m512i test_mm512_cvtepi8_epi64(__m128i __A) {
+ // CHECK-LABEL: @test_mm512_cvtepi8_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
+ return _mm512_cvtepi8_epi64(__A);
+}
+
+__m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtepi8_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
+ return _mm512_mask_cvtepi8_epi64(__W, __U, __A);
+}
+
+__m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
+ return _mm512_maskz_cvtepi8_epi64(__U, __A);
+}
+
+__m512i test_mm512_cvtepi32_epi64(__m256i __X) {
+ // CHECK-LABEL: @test_mm512_cvtepi32_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
+ return _mm512_cvtepi32_epi64(__X);
+}
+
+__m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
+ // CHECK-LABEL: @test_mm512_mask_cvtepi32_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
+ return _mm512_mask_cvtepi32_epi64(__W, __U, __X);
+}
+
+__m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
+ return _mm512_maskz_cvtepi32_epi64(__U, __X);
+}
+
+__m512i test_mm512_cvtepi16_epi32(__m256i __A) {
+ // CHECK-LABEL: @test_mm512_cvtepi16_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
+ return _mm512_cvtepi16_epi32(__A);
+}
+
+__m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
+ return _mm512_mask_cvtepi16_epi32(__W, __U, __A);
+}
+
+__m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
+ return _mm512_maskz_cvtepi16_epi32(__U, __A);
+}
+
+__m512i test_mm512_cvtepi16_epi64(__m128i __A) {
+ // CHECK-LABEL: @test_mm512_cvtepi16_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
+ return _mm512_cvtepi16_epi64(__A);
+}
+
+__m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
+ return _mm512_mask_cvtepi16_epi64(__W, __U, __A);
+}
+
+__m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi64
+ // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
+ return _mm512_maskz_cvtepi16_epi64(__U, __A);
+}
+
diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c
index 445513ccfcc..778bd1badf9 100644
--- a/clang/test/CodeGen/avx512vl-builtins.c
+++ b/clang/test/CodeGen/avx512vl-builtins.c
@@ -3154,3 +3154,124 @@ __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i _
// CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.256
return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B);
}
+
+__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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ return _mm256_maskz_cvtepi16_epi64(__U, __A);
+}
+
diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c
index 11155f6cf81..01f5faf4fbb 100644
--- a/clang/test/CodeGen/avx512vlbw-builtins.c
+++ b/clang/test/CodeGen/avx512vlbw-builtins.c
@@ -1705,3 +1705,26 @@ __m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B)
return _mm256_maskz_unpacklo_epi16(__U, __A, __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
+ 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
+ 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
+ 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
+ return _mm256_maskz_cvtepi8_epi16(__U, __A);
+}
OpenPOWER on IntegriCloud