summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2016-04-13 15:02:04 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2016-04-13 15:02:04 +0000
commite1680617b05785314f05e1bad08cc7c2084e40e9 (patch)
tree2d71521918aac06269a2826488e9ed07fbff673b /clang/test
parentfd00f48fba352b72fac9e165668e45a3a3e8ebe2 (diff)
downloadbcm5719-llvm-e1680617b05785314f05e1bad08cc7c2084e40e9.tar.gz
bcm5719-llvm-e1680617b05785314f05e1bad08cc7c2084e40e9.zip
[Clang][AVX512][Builtin] Adding support to intrinsics of pmovs{d|q}{b|w|d}{128|256|512} instruction set
Differential Revision: http://reviews.llvm.org/D19023 llvm-svn: 266202
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGen/avx512f-builtins.c118
-rw-r--r--clang/test/CodeGen/avx512vl-builtins.c240
2 files changed, 358 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c
index 541f87a17f7..a13d92e9816 100644
--- a/clang/test/CodeGen/avx512f-builtins.c
+++ b/clang/test/CodeGen/avx512f-builtins.c
@@ -3700,4 +3700,122 @@ __m128 test_mm_maskz_sqrt_round_ss(__mmask8 __U, __m128 __A, __m128 __B){
return _mm_maskz_sqrt_round_ss(__U,__A,__B,_MM_FROUND_CUR_DIRECTION);
}
+__m128i test_mm512_cvtsepi32_epi8(__m512i __A) {
+ // CHECK-LABEL: @test_mm512_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
+ return _mm512_cvtsepi32_epi8(__A);
+}
+
+__m128i test_mm512_mask_cvtsepi32_epi8(__m128i __O, __mmask16 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
+ return _mm512_mask_cvtsepi32_epi8(__O, __M, __A);
+}
+
+__m128i test_mm512_maskz_cvtsepi32_epi8(__mmask16 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.512
+ return _mm512_maskz_cvtsepi32_epi8(__M, __A);
+}
+
+void test_mm512_mask_cvtsepi32_storeu_epi8(void * __P, __mmask16 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.512
+ return _mm512_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
+}
+
+__m256i test_mm512_cvtsepi32_epi16(__m512i __A) {
+ // CHECK-LABEL: @test_mm512_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
+ return _mm512_cvtsepi32_epi16(__A);
+}
+
+__m256i test_mm512_mask_cvtsepi32_epi16(__m256i __O, __mmask16 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
+ return _mm512_mask_cvtsepi32_epi16(__O, __M, __A);
+}
+
+__m256i test_mm512_maskz_cvtsepi32_epi16(__mmask16 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.512
+ return _mm512_maskz_cvtsepi32_epi16(__M, __A);
+}
+
+void test_mm512_mask_cvtsepi32_storeu_epi16(void *__P, __mmask16 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi32_storeu_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.512
+ return _mm512_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
+}
+
+__m128i test_mm512_cvtsepi64_epi8(__m512i __A) {
+ // CHECK-LABEL: @test_mm512_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
+ return _mm512_cvtsepi64_epi8(__A);
+}
+
+__m128i test_mm512_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
+ return _mm512_mask_cvtsepi64_epi8(__O, __M, __A);
+}
+__m128i test_mm512_maskz_cvtsepi64_epi8(__mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.512
+ return _mm512_maskz_cvtsepi64_epi8(__M, __A);
+}
+
+void test_mm512_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.512
+ return _mm512_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
+}
+
+__m256i test_mm512_cvtsepi64_epi32(__m512i __A) {
+ // CHECK-LABEL: @test_mm512_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
+ return _mm512_cvtsepi64_epi32(__A);
+}
+
+__m256i test_mm512_mask_cvtsepi64_epi32(__m256i __O, __mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
+ return _mm512_mask_cvtsepi64_epi32(__O, __M, __A);
+}
+
+__m256i test_mm512_maskz_cvtsepi64_epi32(__mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.512
+ return _mm512_maskz_cvtsepi64_epi32(__M, __A);
+}
+
+void test_mm512_mask_cvtsepi64_storeu_epi32(void *__P, __mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.512
+ return _mm512_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
+}
+
+__m128i test_mm512_cvtsepi64_epi16(__m512i __A) {
+ // CHECK-LABEL: @test_mm512_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
+ return _mm512_cvtsepi64_epi16(__A);
+}
+
+__m128i test_mm512_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
+ return _mm512_mask_cvtsepi64_epi16(__O, __M, __A);
+}
+
+__m128i test_mm512_maskz_cvtsepi64_epi16(__mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_maskz_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.512
+ return _mm512_maskz_cvtsepi64_epi16(__M, __A);
+}
+
+void test_mm512_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m512i __A) {
+ // CHECK-LABEL: @test_mm512_mask_cvtsepi64_storeu_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.512
+ return _mm512_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
+}
diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c
index 6a2156d3bfc..229510430ff 100644
--- a/clang/test/CodeGen/avx512vl-builtins.c
+++ b/clang/test/CodeGen/avx512vl-builtins.c
@@ -5398,3 +5398,243 @@ __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) {
// CHECK: @llvm.x86.avx512.pbroadcastq.256
return _mm256_maskz_broadcastq_epi64(__M, __A);
}
+
+__m128i test_mm_cvtsepi32_epi8(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
+ return _mm_cvtsepi32_epi8(__A);
+}
+
+__m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
+ return _mm_mask_cvtsepi32_epi8(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.128
+ return _mm_maskz_cvtsepi32_epi8(__M, __A);
+}
+
+void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128
+ return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
+}
+
+__m128i test_mm256_cvtsepi32_epi8(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
+ return _mm256_cvtsepi32_epi8(__A);
+}
+
+__m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
+ return _mm256_mask_cvtsepi32_epi8(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.256
+ return _mm256_maskz_cvtsepi32_epi8(__M, __A);
+}
+
+void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256
+ return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A);
+}
+
+__m128i test_mm_cvtsepi32_epi16(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
+ return _mm_cvtsepi32_epi16(__A);
+}
+
+__m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
+ return _mm_mask_cvtsepi32_epi16(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128
+ return _mm_maskz_cvtsepi32_epi16(__M, __A);
+}
+
+void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128
+ return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
+}
+
+__m128i test_mm256_cvtsepi32_epi16(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
+ return _mm256_cvtsepi32_epi16(__A);
+}
+
+__m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
+ return _mm256_mask_cvtsepi32_epi16(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256
+ return _mm256_maskz_cvtsepi32_epi16(__M, __A);
+}
+
+void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256
+ return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A);
+}
+
+__m128i test_mm_cvtsepi64_epi8(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
+ return _mm_cvtsepi64_epi8(__A);
+}
+
+__m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
+ return _mm_mask_cvtsepi64_epi8(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128
+ return _mm_maskz_cvtsepi64_epi8(__M, __A);
+}
+
+void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128
+ return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
+}
+
+__m128i test_mm256_cvtsepi64_epi8(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
+ return _mm256_cvtsepi64_epi8(__A);
+}
+
+__m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
+ return _mm256_mask_cvtsepi64_epi8(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256
+ return _mm256_maskz_cvtsepi64_epi8(__M, __A);
+}
+
+void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256
+ return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A);
+}
+
+__m128i test_mm_cvtsepi64_epi32(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
+ return _mm_cvtsepi64_epi32(__A);
+}
+
+__m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
+ return _mm_mask_cvtsepi64_epi32(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128
+ return _mm_maskz_cvtsepi64_epi32(__M, __A);
+}
+
+void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128
+ return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
+}
+
+__m128i test_mm256_cvtsepi64_epi32(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
+ return _mm256_cvtsepi64_epi32(__A);
+}
+
+__m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
+ return _mm256_mask_cvtsepi64_epi32(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256
+ return _mm256_maskz_cvtsepi64_epi32(__M, __A);
+}
+
+void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256
+ return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A);
+}
+
+__m128i test_mm_cvtsepi64_epi16(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
+ return _mm_cvtsepi64_epi16(__A);
+}
+
+__m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
+ return _mm_mask_cvtsepi64_epi16(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128
+ return _mm_maskz_cvtsepi64_epi16(__M, __A);
+}
+
+void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128
+ return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
+}
+
+__m128i test_mm256_cvtsepi64_epi16(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
+ return _mm256_cvtsepi64_epi16(__A);
+}
+
+__m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
+ return _mm256_mask_cvtsepi64_epi16(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256
+ return _mm256_maskz_cvtsepi64_epi16(__M, __A);
+}
+
+void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256
+ return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A);
+}
OpenPOWER on IntegriCloud