summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/avx512f-builtins.c
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2016-04-11 17:04:21 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2016-04-11 17:04:21 +0000
commit81f468c8599a0735d832ae7646128760c5820bc4 (patch)
tree8178cee7a6f73478ff8f1a6afe99a0c8a0780604 /clang/test/CodeGen/avx512f-builtins.c
parent88cbe5a1ccad5b8a937d5dd7488eabf4363317c8 (diff)
downloadbcm5719-llvm-81f468c8599a0735d832ae7646128760c5820bc4.tar.gz
bcm5719-llvm-81f468c8599a0735d832ae7646128760c5820bc4.zip
[Clang][AVX512][BuiltIn] Adding avx512 ( psll{d|q}512,psllv{16si|8di},psra{d|q}512,psrav{16si|8di},pternlog{d|q}{128|256|512} ) builtin to clang
Differential Revision: http://reviews.llvm.org/D18926 llvm-svn: 265964
Diffstat (limited to 'clang/test/CodeGen/avx512f-builtins.c')
-rw-r--r--clang/test/CodeGen/avx512f-builtins.c252
1 files changed, 252 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c
index 6f3c4dea6ad..2b08ba430d5 100644
--- a/clang/test/CodeGen/avx512f-builtins.c
+++ b/clang/test/CodeGen/avx512f-builtins.c
@@ -3287,3 +3287,255 @@ __m512i test_mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A) {
// CHECK: @llvm.x86.avx512.mask.psra.qi.512
return _mm512_maskz_srai_epi64(__U, __A, 5);
}
+
+__m512i test_mm512_sll_epi32(__m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_sll_epi32
+ // CHECK: @llvm.x86.avx512.mask.psll.d
+ return _mm512_sll_epi32(__A, __B);
+}
+
+__m512i test_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_mask_sll_epi32
+ // CHECK: @llvm.x86.avx512.mask.psll.d
+ return _mm512_mask_sll_epi32(__W, __U, __A, __B);
+}
+
+__m512i test_mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_maskz_sll_epi32
+ // CHECK: @llvm.x86.avx512.mask.psll.d
+ return _mm512_maskz_sll_epi32(__U, __A, __B);
+}
+
+__m512i test_mm512_sll_epi64(__m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_sll_epi64
+ // CHECK: @llvm.x86.avx512.mask.psll.q
+ return _mm512_sll_epi64(__A, __B);
+}
+
+__m512i test_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_mask_sll_epi64
+ // CHECK: @llvm.x86.avx512.mask.psll.q
+ return _mm512_mask_sll_epi64(__W, __U, __A, __B);
+}
+
+__m512i test_mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_maskz_sll_epi64
+ // CHECK: @llvm.x86.avx512.mask.psll.q
+ return _mm512_maskz_sll_epi64(__U, __A, __B);
+}
+
+__m512i test_mm512_sllv_epi32(__m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_sllv_epi32
+ // CHECK: @llvm.x86.avx512.mask.psllv.d
+ return _mm512_sllv_epi32(__X, __Y);
+}
+
+__m512i test_mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_mask_sllv_epi32
+ // CHECK: @llvm.x86.avx512.mask.psllv.d
+ return _mm512_mask_sllv_epi32(__W, __U, __X, __Y);
+}
+
+__m512i test_mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_maskz_sllv_epi32
+ // CHECK: @llvm.x86.avx512.mask.psllv.d
+ return _mm512_maskz_sllv_epi32(__U, __X, __Y);
+}
+
+__m512i test_mm512_sllv_epi64(__m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_sllv_epi64
+ // CHECK: @llvm.x86.avx512.mask.psllv.q
+ return _mm512_sllv_epi64(__X, __Y);
+}
+
+__m512i test_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_mask_sllv_epi64
+ // CHECK: @llvm.x86.avx512.mask.psllv.q
+ return _mm512_mask_sllv_epi64(__W, __U, __X, __Y);
+}
+
+__m512i test_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_maskz_sllv_epi64
+ // CHECK: @llvm.x86.avx512.mask.psllv.q
+ return _mm512_maskz_sllv_epi64(__U, __X, __Y);
+}
+
+__m512i test_mm512_sra_epi32(__m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_sra_epi32
+ // CHECK: @llvm.x86.avx512.mask.psra.d
+ return _mm512_sra_epi32(__A, __B);
+}
+
+__m512i test_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_mask_sra_epi32
+ // CHECK: @llvm.x86.avx512.mask.psra.d
+ return _mm512_mask_sra_epi32(__W, __U, __A, __B);
+}
+
+__m512i test_mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_maskz_sra_epi32
+ // CHECK: @llvm.x86.avx512.mask.psra.d
+ return _mm512_maskz_sra_epi32(__U, __A, __B);
+}
+
+__m512i test_mm512_sra_epi64(__m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_sra_epi64
+ // CHECK: @llvm.x86.avx512.mask.psra.q
+ return _mm512_sra_epi64(__A, __B);
+}
+
+__m512i test_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_mask_sra_epi64
+ // CHECK: @llvm.x86.avx512.mask.psra.q
+ return _mm512_mask_sra_epi64(__W, __U, __A, __B);
+}
+
+__m512i test_mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_maskz_sra_epi64
+ // CHECK: @llvm.x86.avx512.mask.psra.q
+ return _mm512_maskz_sra_epi64(__U, __A, __B);
+}
+
+__m512i test_mm512_srav_epi32(__m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_srav_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrav.d
+ return _mm512_srav_epi32(__X, __Y);
+}
+
+__m512i test_mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_mask_srav_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrav.d
+ return _mm512_mask_srav_epi32(__W, __U, __X, __Y);
+}
+
+__m512i test_mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_maskz_srav_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrav.d
+ return _mm512_maskz_srav_epi32(__U, __X, __Y);
+}
+
+__m512i test_mm512_srav_epi64(__m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_srav_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrav.q
+ return _mm512_srav_epi64(__X, __Y);
+}
+
+__m512i test_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_mask_srav_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrav.q
+ return _mm512_mask_srav_epi64(__W, __U, __X, __Y);
+}
+
+__m512i test_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_maskz_srav_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrav.q
+ return _mm512_maskz_srav_epi64(__U, __X, __Y);
+}
+
+__m512i test_mm512_srl_epi32(__m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_srl_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrl.d
+ return _mm512_srl_epi32(__A, __B);
+}
+
+__m512i test_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_mask_srl_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrl.d
+ return _mm512_mask_srl_epi32(__W, __U, __A, __B);
+}
+
+__m512i test_mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_maskz_srl_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrl.d
+ return _mm512_maskz_srl_epi32(__U, __A, __B);
+}
+
+__m512i test_mm512_srl_epi64(__m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_srl_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrl.q
+ return _mm512_srl_epi64(__A, __B);
+}
+
+__m512i test_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_mask_srl_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrl.q
+ return _mm512_mask_srl_epi64(__W, __U, __A, __B);
+}
+
+__m512i test_mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm512_maskz_srl_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrl.q
+ return _mm512_maskz_srl_epi64(__U, __A, __B);
+}
+
+__m512i test_mm512_srlv_epi32(__m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_srlv_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrlv.d
+ return _mm512_srlv_epi32(__X, __Y);
+}
+
+__m512i test_mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_mask_srlv_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrlv.d
+ return _mm512_mask_srlv_epi32(__W, __U, __X, __Y);
+}
+
+__m512i test_mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_maskz_srlv_epi32
+ // CHECK: @llvm.x86.avx512.mask.psrlv.d
+ return _mm512_maskz_srlv_epi32(__U, __X, __Y);
+}
+
+__m512i test_mm512_srlv_epi64(__m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_srlv_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrlv.q
+ return _mm512_srlv_epi64(__X, __Y);
+}
+
+__m512i test_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_mask_srlv_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrlv.q
+ return _mm512_mask_srlv_epi64(__W, __U, __X, __Y);
+}
+
+__m512i test_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) {
+ // CHECK-LABEL: @test_mm512_maskz_srlv_epi64
+ // CHECK: @llvm.x86.avx512.mask.psrlv.q
+ return _mm512_maskz_srlv_epi64(__U, __X, __Y);
+}
+
+__m512i test_mm512_ternarylogic_epi32(__m512i __A, __m512i __B, __m512i __C) {
+ // CHECK-LABEL: @test_mm512_ternarylogic_epi32
+ // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
+ return _mm512_ternarylogic_epi32(__A, __B, __C, 4);
+}
+
+__m512i test_mm512_mask_ternarylogic_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
+ // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi32
+ // CHECK: @llvm.x86.avx512.mask.pternlog.d.512
+ return _mm512_mask_ternarylogic_epi32(__A, __U, __B, __C, 4);
+}
+
+__m512i test_mm512_maskz_ternarylogic_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
+ // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi32
+ // CHECK: @llvm.x86.avx512.maskz.pternlog.d.512
+ return _mm512_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4);
+}
+
+__m512i test_mm512_ternarylogic_epi64(__m512i __A, __m512i __B, __m512i __C) {
+ // CHECK-LABEL: @test_mm512_ternarylogic_epi64
+ // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
+ return _mm512_ternarylogic_epi64(__A, __B, __C, 4);
+}
+
+__m512i test_mm512_mask_ternarylogic_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
+ // CHECK-LABEL: @test_mm512_mask_ternarylogic_epi64
+ // CHECK: @llvm.x86.avx512.mask.pternlog.q.512
+ return _mm512_mask_ternarylogic_epi64(__A, __U, __B, __C, 4);
+}
+
+__m512i test_mm512_maskz_ternarylogic_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
+ // CHECK-LABEL: @test_mm512_maskz_ternarylogic_epi64
+ // CHECK: @llvm.x86.avx512.maskz.pternlog.q.512
+ return _mm512_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4);
+}
OpenPOWER on IntegriCloud