diff options
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r-- | clang/test/CodeGen/avx512bw-builtins.c | 17 | ||||
-rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 108 | ||||
-rw-r--r-- | clang/test/CodeGen/avx512vbmi-builtins.c | 19 | ||||
-rw-r--r-- | clang/test/CodeGen/avx512vbmivl-builtin.c | 35 | ||||
-rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 103 | ||||
-rw-r--r-- | clang/test/CodeGen/avx512vlbw-builtins.c | 35 |
6 files changed, 316 insertions, 1 deletions
diff --git a/clang/test/CodeGen/avx512bw-builtins.c b/clang/test/CodeGen/avx512bw-builtins.c index 5de57929dc6..3023e606004 100644 --- a/clang/test/CodeGen/avx512bw-builtins.c +++ b/clang/test/CodeGen/avx512bw-builtins.c @@ -1470,3 +1470,20 @@ __m512i test_mm512_maskz_set1_epi16(__mmask32 __M, short __A) { // CHECK: @llvm.x86.avx512.mask.pbroadcast.w.gpr.512 return _mm512_maskz_set1_epi16(__M, __A); } +__m512i test_mm512_permutexvar_epi16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.512 + return _mm512_permutexvar_epi16(__A, __B); +} + +__m512i test_mm512_maskz_permutexvar_epi16(__mmask32 __M, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.512 + return _mm512_maskz_permutexvar_epi16(__M, __A, __B); +} + +__m512i test_mm512_mask_permutexvar_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.512 + return _mm512_mask_permutexvar_epi16(__W, __M, __A, __B); +} diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index 21d116cfe1f..e869f51872f 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -4801,3 +4801,111 @@ __m128d test_mm_mask3_fnmsub_round_sd(__m128d __W, __m128d __X, __m128d __Y, __m // CHECK: @llvm.x86.avx512.mask3.vfmadd.sd return _mm_mask3_fnmsub_round_sd(__W, __X, __Y, __U, _MM_FROUND_CUR_DIRECTION); } + +__m512d test_mm512_permutex_pd(__m512d __X) { + // CHECK-LABEL: @test_mm512_permutex_pd + // CHECK: @llvm.x86.avx512.mask.perm.df.512 + return _mm512_permutex_pd(__X, 0); +} + +__m512d test_mm512_mask_permutex_pd(__m512d __W, __mmask8 __U, __m512d __X) { + // CHECK-LABEL: @test_mm512_mask_permutex_pd + // CHECK: @llvm.x86.avx512.mask.perm.df.512 + return _mm512_mask_permutex_pd(__W, __U, __X, 0); +} + +__m512d test_mm512_maskz_permutex_pd(__mmask8 __U, __m512d __X) { + // CHECK-LABEL: @test_mm512_maskz_permutex_pd + // CHECK: @llvm.x86.avx512.mask.perm.df.512 + return _mm512_maskz_permutex_pd(__U, __X, 0); +} + +__m512i test_mm512_permutex_epi64(__m512i __X) { + // CHECK-LABEL: @test_mm512_permutex_epi64 + // CHECK: @llvm.x86.avx512.mask.perm.di.512 + return _mm512_permutex_epi64(__X, 0); +} + +__m512i test_mm512_mask_permutex_epi64(__m512i __W, __mmask8 __M, __m512i __X) { + // CHECK-LABEL: @test_mm512_mask_permutex_epi64 + // CHECK: @llvm.x86.avx512.mask.perm.di.512 + return _mm512_mask_permutex_epi64(__W, __M, __X, 0); +} + +__m512i test_mm512_maskz_permutex_epi64(__mmask8 __M, __m512i __X) { + // CHECK-LABEL: @test_mm512_maskz_permutex_epi64 + // CHECK: @llvm.x86.avx512.mask.perm.di.512 + return _mm512_maskz_permutex_epi64(__M, __X, 0); +} + +__m512d test_mm512_permutexvar_pd(__m512i __X, __m512d __Y) { + // CHECK-LABEL: @test_mm512_permutexvar_pd + // CHECK: @llvm.x86.avx512.mask.permvar.df.512 + return _mm512_permutexvar_pd(__X, __Y); +} + +__m512d test_mm512_mask_permutexvar_pd(__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) { + // CHECK-LABEL: @test_mm512_mask_permutexvar_pd + // CHECK: @llvm.x86.avx512.mask.permvar.df.512 + return _mm512_mask_permutexvar_pd(__W, __U, __X, __Y); +} + +__m512d test_mm512_maskz_permutexvar_pd(__mmask8 __U, __m512i __X, __m512d __Y) { + // CHECK-LABEL: @test_mm512_maskz_permutexvar_pd + // CHECK: @llvm.x86.avx512.mask.permvar.df.512 + return _mm512_maskz_permutexvar_pd(__U, __X, __Y); +} + +__m512i test_mm512_maskz_permutexvar_epi64(__mmask8 __M, __m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi64 + // CHECK: @llvm.x86.avx512.mask.permvar.di.512 + return _mm512_maskz_permutexvar_epi64(__M, __X, __Y); +} + +__m512i test_mm512_permutexvar_epi64(__m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_permutexvar_epi64 + // CHECK: @llvm.x86.avx512.mask.permvar.di.512 + return _mm512_permutexvar_epi64(__X, __Y); +} + +__m512i test_mm512_mask_permutexvar_epi64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_mask_permutexvar_epi64 + // CHECK: @llvm.x86.avx512.mask.permvar.di.512 + return _mm512_mask_permutexvar_epi64(__W, __M, __X, __Y); +} + +__m512 test_mm512_permutexvar_ps(__m512i __X, __m512 __Y) { + // CHECK-LABEL: @test_mm512_permutexvar_ps + // CHECK: @llvm.x86.avx512.mask.permvar.sf.512 + return _mm512_permutexvar_ps(__X, __Y); +} + +__m512 test_mm512_mask_permutexvar_ps(__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) { + // CHECK-LABEL: @test_mm512_mask_permutexvar_ps + // CHECK: @llvm.x86.avx512.mask.permvar.sf.512 + return _mm512_mask_permutexvar_ps(__W, __U, __X, __Y); +} + +__m512 test_mm512_maskz_permutexvar_ps(__mmask16 __U, __m512i __X, __m512 __Y) { + // CHECK-LABEL: @test_mm512_maskz_permutexvar_ps + // CHECK: @llvm.x86.avx512.mask.permvar.sf.512 + return _mm512_maskz_permutexvar_ps(__U, __X, __Y); +} + +__m512i test_mm512_maskz_permutexvar_epi32(__mmask16 __M, __m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi32 + // CHECK: @llvm.x86.avx512.mask.permvar.si.512 + return _mm512_maskz_permutexvar_epi32(__M, __X, __Y); +} + +__m512i test_mm512_permutexvar_epi32(__m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_permutexvar_epi32 + // CHECK: @llvm.x86.avx512.mask.permvar.si.512 + return _mm512_permutexvar_epi32(__X, __Y); +} + +__m512i test_mm512_mask_permutexvar_epi32(__m512i __W, __mmask16 __M, __m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_mask_permutexvar_epi32 + // CHECK: @llvm.x86.avx512.mask.permvar.si.512 + return _mm512_mask_permutexvar_epi32(__W, __M, __X, __Y); +} diff --git a/clang/test/CodeGen/avx512vbmi-builtins.c b/clang/test/CodeGen/avx512vbmi-builtins.c index 73ed969e48e..c1aa04cc191 100644 --- a/clang/test/CodeGen/avx512vbmi-builtins.c +++ b/clang/test/CodeGen/avx512vbmi-builtins.c @@ -25,7 +25,24 @@ __m512i test_mm512_mask_permutex2var_epi8(__m512i __A, __mmask64 __U, __m512i __ __m512i test_mm512_maskz_permutex2var_epi8(__mmask64 __U, __m512i __A, __m512i __I, __m512i __B) { // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi8 - // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.512 + // CHECK: @llvm.x86.avx512.maskz.vpermt2var.qi.512 return _mm512_maskz_permutex2var_epi8(__U, __A, __I, __B); } +__m512i test_mm512_permutexvar_epi8(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.512 + return _mm512_permutexvar_epi8(__A, __B); +} + +__m512i test_mm512_maskz_permutexvar_epi8(__mmask64 __M, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.512 + return _mm512_maskz_permutexvar_epi8(__M, __A, __B); +} + +__m512i test_mm512_mask_permutexvar_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.512 + return _mm512_mask_permutexvar_epi8(__W, __M, __A, __B); +} diff --git a/clang/test/CodeGen/avx512vbmivl-builtin.c b/clang/test/CodeGen/avx512vbmivl-builtin.c index 90c5b4cc74a..29864eccdf2 100644 --- a/clang/test/CodeGen/avx512vbmivl-builtin.c +++ b/clang/test/CodeGen/avx512vbmivl-builtin.c @@ -5,6 +5,41 @@ #include <immintrin.h> +__m128i test_mm_permutexvar_epi8(__m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.128 + return _mm_permutexvar_epi8(__A, __B); +} + +__m128i test_mm_maskz_permutexvar_epi8(__mmask16 __M, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_maskz_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.128 + return _mm_maskz_permutexvar_epi8(__M, __A, __B); +} + +__m128i test_mm_mask_permutexvar_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_mask_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.128 + return _mm_mask_permutexvar_epi8(__W, __M, __A, __B); +} + +__m256i test_mm256_permutexvar_epi8(__m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.256 + return _mm256_permutexvar_epi8(__A, __B); +} + +__m256i test_mm256_maskz_permutexvar_epi8(__mmask32 __M, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.256 + return _mm256_maskz_permutexvar_epi8(__M, __A, __B); +} + +__m256i test_mm256_mask_permutexvar_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_mask_permutexvar_epi8 + // CHECK: @llvm.x86.avx512.mask.permvar.qi.256 + return _mm256_mask_permutexvar_epi8(__W, __M, __A, __B); +} __m128i test_mm_mask2_permutex2var_epi8(__m128i __A, __m128i __I, __mmask16 __U, __m128i __B) { // CHECK-LABEL: @test_mm_mask2_permutex2var_epi8 diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c index 167d79bd2d5..9ba949e7296 100644 --- a/clang/test/CodeGen/avx512vl-builtins.c +++ b/clang/test/CodeGen/avx512vl-builtins.c @@ -6358,3 +6358,106 @@ __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m25 // CHECK: @llvm.x86.avx512.gather3siv8.si return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2); } + +__m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) { + // CHECK-LABEL: @test_mm256_mask_permutex_pd + // CHECK: @llvm.x86.avx512.mask.perm.df.256 + return _mm256_mask_permutex_pd(__W, __U, __X, 1); +} + +__m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) { + // CHECK-LABEL: @test_mm256_maskz_permutex_pd + // CHECK: @llvm.x86.avx512.mask.perm.df.256 + return _mm256_maskz_permutex_pd(__U, __X, 1); +} + +__m256d test_mm256_permutex_pd(__m256d __X) { + // CHECK-LABEL: @test_mm256_permutex_pd + // CHECK: @llvm.x86.avx512.mask.perm.df.256 + return _mm256_permutex_pd(__X, 3); +} + + +__m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) { + // CHECK-LABEL: @test_mm256_mask_permutex_epi64 + // CHECK: @llvm.x86.avx512.mask.perm.di.256 + return _mm256_mask_permutex_epi64(__W, __M, __X, 3); +} + +__m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) { + // CHECK-LABEL: @test_mm256_maskz_permutex_epi64 + // CHECK: @llvm.x86.avx512.mask.perm.di.256 + return _mm256_maskz_permutex_epi64(__M, __X, 3); +} + +__m256i test_mm256_permutex_epi64( __m256i __X) { + // CHECK-LABEL: @test_mm256_permutex_epi64 + // CHECK: @llvm.x86.avx512.mask.perm.di.256 + return _mm256_permutex_epi64(__X, 3); +} + +__m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) { + // CHECK-LABEL: @test_mm256_permutexvar_pd + // CHECK: @llvm.x86.avx512.mask.permvar.df.256 + return _mm256_permutexvar_pd(__X, __Y); +} + +__m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) { + // CHECK-LABEL: @test_mm256_mask_permutexvar_pd + // CHECK: @llvm.x86.avx512.mask.permvar.df.256 + return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y); +} + +__m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) { + // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd + // CHECK: @llvm.x86.avx512.mask.permvar.df.256 + return _mm256_maskz_permutexvar_pd(__U, __X, __Y); +} + +__m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) { + // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64 + // CHECK: @llvm.x86.avx512.mask.permvar.di.256 + return _mm256_maskz_permutexvar_epi64(__M, __X, __Y); +} + +__m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { + // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64 + // CHECK: @llvm.x86.avx512.mask.permvar.di.256 + return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y); +} + +__m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) { + // CHECK-LABEL: @test_mm256_mask_permutexvar_ps + // CHECK: @llvm.x86.avx512.mask.permvar.sf.256 + return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y); +} + +__m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) { + // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps + // CHECK: @llvm.x86.avx512.mask.permvar.sf.256 + return _mm256_maskz_permutexvar_ps(__U, __X, __Y); +} + +__m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) { + // CHECK-LABEL: @test_mm256_permutexvar_ps + // CHECK: @llvm.x86.avx512.mask.permvar.sf.256 + return _mm256_permutexvar_ps( __X, __Y); +} + +__m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) { + // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32 + // CHECK: @llvm.x86.avx512.mask.permvar.si.256 + return _mm256_maskz_permutexvar_epi32(__M, __X, __Y); +} + +__m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) { + // CHECK-LABEL: @test_mm256_permutexvar_epi32 + // CHECK: @llvm.x86.avx512.mask.permvar.si.256 + return _mm256_permutexvar_epi32(__X, __Y); +} + +__m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { + // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32 + // CHECK: @llvm.x86.avx512.mask.permvar.si.256 + return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y); +} diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c index b063badf2b5..f05b32d2fe6 100644 --- a/clang/test/CodeGen/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/avx512vlbw-builtins.c @@ -2281,3 +2281,38 @@ __m128i test_mm_maskz_set1_epi16(__mmask8 __M, short __A) { // CHECK: @llvm.x86.avx512.mask.pbroadcast.w.gpr.128 return _mm_maskz_set1_epi16(__M, __A); } +__m128i test_mm_permutexvar_epi16(__m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.128 + return _mm_permutexvar_epi16(__A, __B); +} + +__m128i test_mm_maskz_permutexvar_epi16(__mmask8 __M, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_maskz_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.128 + return _mm_maskz_permutexvar_epi16(__M, __A, __B); +} + +__m128i test_mm_mask_permutexvar_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { + // CHECK-LABEL: @test_mm_mask_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.128 + return _mm_mask_permutexvar_epi16(__W, __M, __A, __B); +} + +__m256i test_mm256_permutexvar_epi16(__m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.256 + return _mm256_permutexvar_epi16(__A, __B); +} + +__m256i test_mm256_maskz_permutexvar_epi16(__mmask16 __M, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.256 + return _mm256_maskz_permutexvar_epi16(__M, __A, __B); +} + +__m256i test_mm256_mask_permutexvar_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { + // CHECK-LABEL: @test_mm256_mask_permutexvar_epi16 + // CHECK: @llvm.x86.avx512.mask.permvar.hi.256 + return _mm256_mask_permutexvar_epi16(__W, __M, __A, __B); +} |