diff options
| author | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-28 12:47:30 +0000 |
|---|---|---|
| committer | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-28 12:47:30 +0000 |
| commit | 533e065bdc67dfcbdbb59b66d06429931b7053bc (patch) | |
| tree | c339413372261732b6c0f0da1d07c64492891f38 /clang/test | |
| parent | 947dbe3aae3b5bd23a23f3a874791af978e60d08 (diff) | |
| download | bcm5719-llvm-533e065bdc67dfcbdbb59b66d06429931b7053bc.tar.gz bcm5719-llvm-533e065bdc67dfcbdbb59b66d06429931b7053bc.zip | |
[Clang][BuiltIn][AVX512] Adding intrinsics fot align{d|q} and palignr instruction set
Differential Revision: http://reviews.llvm.org/D19588
llvm-svn: 267876
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGen/avx512bw-builtins.c | 20 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 28 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 72 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vlbw-builtins.c | 24 |
4 files changed, 144 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512bw-builtins.c b/clang/test/CodeGen/avx512bw-builtins.c index 3023e606004..8925cbadc06 100644 --- a/clang/test/CodeGen/avx512bw-builtins.c +++ b/clang/test/CodeGen/avx512bw-builtins.c @@ -1487,3 +1487,23 @@ __m512i test_mm512_mask_permutexvar_epi16(__m512i __W, __mmask32 __M, __m512i __ // CHECK: @llvm.x86.avx512.mask.permvar.hi.512 return _mm512_mask_permutexvar_epi16(__W, __M, __A, __B); } +__m512i test_mm512_alignr_epi8(__m512i __A,__m512i __B){ + // CHECK-LABEL: @test_mm512_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.512 + return _mm512_alignr_epi8(__A, __B, 2); +} + +__m512i test_mm512_mask_alignr_epi8(__m512i __W, __mmask64 __U, __m512i __A,__m512i __B){ + // CHECK-LABEL: @test_mm512_mask_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.512 + return _mm512_mask_alignr_epi8(__W, __U, __A, __B, 2); +} + +__m512i test_mm512_maskz_alignr_epi8(__mmask64 __U, __m512i __A,__m512i __B){ + // CHECK-LABEL: @test_mm512_maskz_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.512 + return _mm512_maskz_alignr_epi8(__U, __A, __B, 2); +} + + + diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index da3bf07668c..1f048d36b15 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -180,6 +180,20 @@ __m512i test_mm512_alignr_epi32(__m512i a, __m512i b) return _mm512_alignr_epi32(a, b, 2); } +__m512i test_mm512_mask_alignr_epi32(__m512i w, __mmask16 u, __m512i a, __m512i b) +{ + // CHECK-LABEL: @test_mm512_mask_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.512 + return _mm512_mask_alignr_epi32(w, u, a, b, 2); +} + +__m512i test_mm512_maskz_alignr_epi32( __mmask16 u, __m512i a, __m512i b) +{ + // CHECK-LABEL: @test_mm512_maskz_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.512 + return _mm512_maskz_alignr_epi32(u, a, b, 2); +} + __m512i test_mm512_alignr_epi64(__m512i a, __m512i b) { // CHECK-LABEL: @test_mm512_alignr_epi64 @@ -187,6 +201,20 @@ __m512i test_mm512_alignr_epi64(__m512i a, __m512i b) return _mm512_alignr_epi64(a, b, 2); } +__m512i test_mm512_mask_alignr_epi64(__m512i w, __mmask8 u, __m512i a, __m512i b) +{ + // CHECK-LABEL: @test_mm512_mask_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.512 + return _mm512_mask_alignr_epi64(w, u, a, b, 2); +} + +__m512i test_mm512_maskz_alignr_epi64( __mmask8 u, __m512i a, __m512i b) +{ + // CHECK-LABEL: @test_mm512_maskz_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.512 + return _mm512_maskz_alignr_epi64(u, a, b, 2); +} + __m512d test_mm512_broadcastsd_pd(__m128d a) { // CHECK-LABEL: @test_mm512_broadcastsd_pd diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c index 9ba949e7296..aea65bcb3ed 100644 --- a/clang/test/CodeGen/avx512vl-builtins.c +++ b/clang/test/CodeGen/avx512vl-builtins.c @@ -6461,3 +6461,75 @@ __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X // CHECK: @llvm.x86.avx512.mask.permvar.si.256 return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y); } + +__m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.128 + return _mm_alignr_epi32(__A, __B, 1); +} + +__m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_mask_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.128 + return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1); +} + +__m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_maskz_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.128 + return _mm_maskz_alignr_epi32(__U, __A, __B, 1); +} + +__m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.256 + return _mm256_alignr_epi32(__A, __B, 1); +} + +__m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_mask_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.256 + return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1); +} + +__m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_maskz_alignr_epi32 + // CHECK: @llvm.x86.avx512.mask.valign.d.256 + return _mm256_maskz_alignr_epi32(__U, __A, __B, 1); +} + +__m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.128 + return _mm_alignr_epi64(__A, __B, 1); +} + +__m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_mask_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.128 + return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1); +} + +__m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_maskz_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.128 + return _mm_maskz_alignr_epi64(__U, __A, __B, 1); +} + +__m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.256 + return _mm256_alignr_epi64(__A, __B, 1); +} + +__m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_mask_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.256 + return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1); +} + +__m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_maskz_alignr_epi64 + // CHECK: @llvm.x86.avx512.mask.valign.q.256 + return _mm256_maskz_alignr_epi64(__U, __A, __B, 1); +} diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c index f05b32d2fe6..f72363d8e9c 100644 --- a/clang/test/CodeGen/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/avx512vlbw-builtins.c @@ -2316,3 +2316,27 @@ __m256i test_mm256_mask_permutexvar_epi16(__m256i __W, __mmask16 __M, __m256i __ // CHECK: @llvm.x86.avx512.mask.permvar.hi.256 return _mm256_mask_permutexvar_epi16(__W, __M, __A, __B); } +__m128i test_mm_mask_alignr_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_mask_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.128 + return _mm_mask_alignr_epi8(__W, __U, __A, __B, 2); +} + +__m128i test_mm_maskz_alignr_epi8(__mmask16 __U, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_maskz_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.128 + return _mm_maskz_alignr_epi8(__U, __A, __B, 2); +} + +__m256i test_mm256_mask_alignr_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_mask_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.256 + return _mm256_mask_alignr_epi8(__W, __U, __A, __B, 2); +} + +__m256i test_mm256_maskz_alignr_epi8(__mmask32 __U, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_maskz_alignr_epi8 + // CHECK: @llvm.x86.avx512.mask.palignr.256 + return _mm256_maskz_alignr_epi8(__U, __A, __B, 2); +} + |

