diff options
author | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-11 17:04:21 +0000 |
---|---|---|
committer | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-11 17:04:21 +0000 |
commit | 81f468c8599a0735d832ae7646128760c5820bc4 (patch) | |
tree | 8178cee7a6f73478ff8f1a6afe99a0c8a0780604 /clang/test/CodeGen/avx512f-builtins.c | |
parent | 88cbe5a1ccad5b8a937d5dd7488eabf4363317c8 (diff) | |
download | bcm5719-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.c | 252 |
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); +} |