diff options
Diffstat (limited to 'test/CodeGen/avx512f-builtins.c')
-rw-r--r-- | test/CodeGen/avx512f-builtins.c | 535 |
1 files changed, 530 insertions, 5 deletions
diff --git a/test/CodeGen/avx512f-builtins.c b/test/CodeGen/avx512f-builtins.c index 112dfd8..c1f4c0e 100644 --- a/test/CodeGen/avx512f-builtins.c +++ b/test/CodeGen/avx512f-builtins.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -O0 -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Werror | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Werror | FileCheck %s // Don't include mm_malloc.h, it's system specific. #define __MM_MALLOC_H @@ -772,8 +772,8 @@ __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) { } __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) { - // check-label: @test_mm512_cmp_ps_mask - // check: @llvm.x86.avx512.mask.cmp.ps.512 + // CHECK-LABEL: @test_mm512_cmp_ps_mask + // CHECKn: @llvm.x86.avx512.mask.cmp.ps.512 return _mm512_cmp_ps_mask(a, b, 0); } @@ -796,8 +796,8 @@ __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) { } __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) { - // check-label: @test_mm512_cmp_pd_mask - // check: @llvm.x86.avx512.mask.cmp.pd.512 + // CHECK-LABEL: @test_mm512_cmp_pd_mask + // CHECK: @llvm.x86.avx512.mask.cmp.pd.512 return _mm512_cmp_pd_mask(a, b, 0); } @@ -1374,3 +1374,528 @@ __m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) { //CHECK: mul <16 x i32> return _mm512_mullo_epi32(__A,__B); } + +__m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_add_round_pd + // CHECK: @llvm.x86.avx512.mask.add.pd.512 + return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_add_round_pd + // CHECK: @llvm.x86.avx512.mask.add.pd.512 + return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_add_round_pd + // CHECK: @llvm.x86.avx512.mask.add.pd.512 + return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_add_pd + // CHECK: @llvm.x86.avx512.mask.add.pd.512 + return _mm512_mask_add_pd(__W,__U,__A,__B); +} +__m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_add_pd + // CHECK: @llvm.x86.avx512.mask.add.pd.512 + return _mm512_maskz_add_pd(__U,__A,__B); +} +__m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_add_round_ps + // CHECK: @llvm.x86.avx512.mask.add.ps.512 + return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_add_round_ps + // CHECK: @llvm.x86.avx512.mask.add.ps.512 + return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_add_round_ps + // CHECK: @llvm.x86.avx512.mask.add.ps.512 + return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_add_ps + // CHECK: @llvm.x86.avx512.mask.add.ps.512 + return _mm512_mask_add_ps(__W,__U,__A,__B); +} +__m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_add_ps + // CHECK: @llvm.x86.avx512.mask.add.ps.512 + return _mm512_maskz_add_ps(__U,__A,__B); +} +__m128 test_mm_add_round_ss(__m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_add_round_ss + // CHECK: @llvm.x86.avx512.mask.add.ss.round + return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_add_round_ss + // CHECK: @llvm.x86.avx512.mask.add.ss.round + return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_add_round_ss + // CHECK: @llvm.x86.avx512.mask.add.ss.round + return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_add_ss + // CHECK: @llvm.x86.avx512.mask.add.ss.round + return _mm_mask_add_ss(__W,__U,__A,__B); +} +__m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_add_ss + // CHECK: @llvm.x86.avx512.mask.add.ss.round + return _mm_maskz_add_ss(__U,__A,__B); +} +__m128d test_mm_add_round_sd(__m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_add_round_sd + // CHECK: @llvm.x86.avx512.mask.add.sd.round + return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_add_round_sd + // CHECK: @llvm.x86.avx512.mask.add.sd.round + return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_add_round_sd + // CHECK: @llvm.x86.avx512.mask.add.sd.round + return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_add_sd + // CHECK: @llvm.x86.avx512.mask.add.sd.round + return _mm_mask_add_sd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_add_sd + // CHECK: @llvm.x86.avx512.mask.add.sd.round + return _mm_maskz_add_sd(__U,__A,__B); +} +__m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_sub_round_pd + // CHECK: @llvm.x86.avx512.mask.sub.pd.512 + return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_sub_round_pd + // CHECK: @llvm.x86.avx512.mask.sub.pd.512 + return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_sub_round_pd + // CHECK: @llvm.x86.avx512.mask.sub.pd.512 + return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_sub_pd + // CHECK: @llvm.x86.avx512.mask.sub.pd.512 + return _mm512_mask_sub_pd(__W,__U,__A,__B); +} +__m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_sub_pd + // CHECK: @llvm.x86.avx512.mask.sub.pd.512 + return _mm512_maskz_sub_pd(__U,__A,__B); +} +__m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_sub_round_ps + // CHECK: @llvm.x86.avx512.mask.sub.ps.512 + return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_sub_round_ps + // CHECK: @llvm.x86.avx512.mask.sub.ps.512 + return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_sub_round_ps + // CHECK: @llvm.x86.avx512.mask.sub.ps.512 + return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_sub_ps + // CHECK: @llvm.x86.avx512.mask.sub.ps.512 + return _mm512_mask_sub_ps(__W,__U,__A,__B); +} +__m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_sub_ps + // CHECK: @llvm.x86.avx512.mask.sub.ps.512 + return _mm512_maskz_sub_ps(__U,__A,__B); +} +__m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_sub_round_ss + // CHECK: @llvm.x86.avx512.mask.sub.ss.round + return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_sub_round_ss + // CHECK: @llvm.x86.avx512.mask.sub.ss.round + return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_sub_round_ss + // CHECK: @llvm.x86.avx512.mask.sub.ss.round + return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_sub_ss + // CHECK: @llvm.x86.avx512.mask.sub.ss.round + return _mm_mask_sub_ss(__W,__U,__A,__B); +} +__m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_sub_ss + // CHECK: @llvm.x86.avx512.mask.sub.ss.round + return _mm_maskz_sub_ss(__U,__A,__B); +} +__m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_sub_round_sd + // CHECK: @llvm.x86.avx512.mask.sub.sd.round + return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_sub_round_sd + // CHECK: @llvm.x86.avx512.mask.sub.sd.round + return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_sub_round_sd + // CHECK: @llvm.x86.avx512.mask.sub.sd.round + return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_sub_sd + // CHECK: @llvm.x86.avx512.mask.sub.sd.round + return _mm_mask_sub_sd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_sub_sd + // CHECK: @llvm.x86.avx512.mask.sub.sd.round + return _mm_maskz_sub_sd(__U,__A,__B); +} +__m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mul_round_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.512 + return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_mul_round_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.512 + return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_mul_round_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.512 + return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_mul_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.512 + return _mm512_mask_mul_pd(__W,__U,__A,__B); +} +__m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_mul_pd + // CHECK: @llvm.x86.avx512.mask.mul.pd.512 + return _mm512_maskz_mul_pd(__U,__A,__B); +} +__m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mul_round_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.512 + return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_mul_round_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.512 + return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_mul_round_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.512 + return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_mul_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.512 + return _mm512_mask_mul_ps(__W,__U,__A,__B); +} +__m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_mul_ps + // CHECK: @llvm.x86.avx512.mask.mul.ps.512 + return _mm512_maskz_mul_ps(__U,__A,__B); +} +__m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mul_round_ss + // CHECK: @llvm.x86.avx512.mask.mul.ss.round + return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_mul_round_ss + // CHECK: @llvm.x86.avx512.mask.mul.ss.round + return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_mul_round_ss + // CHECK: @llvm.x86.avx512.mask.mul.ss.round + return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_mul_ss + // CHECK: @llvm.x86.avx512.mask.mul.ss.round + return _mm_mask_mul_ss(__W,__U,__A,__B); +} +__m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_mul_ss + // CHECK: @llvm.x86.avx512.mask.mul.ss.round + return _mm_maskz_mul_ss(__U,__A,__B); +} +__m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mul_round_sd + // CHECK: @llvm.x86.avx512.mask.mul.sd.round + return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_mul_round_sd + // CHECK: @llvm.x86.avx512.mask.mul.sd.round + return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_mul_round_sd + // CHECK: @llvm.x86.avx512.mask.mul.sd.round + return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_mul_sd + // CHECK: @llvm.x86.avx512.mask.mul.sd.round + return _mm_mask_mul_sd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_mul_sd + // CHECK: @llvm.x86.avx512.mask.mul.sd.round + return _mm_maskz_mul_sd(__U,__A,__B); +} +__m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_div_round_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.512 + return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_div_round_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.512 + return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_div_round_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.512 + return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512d test_mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_mask_div_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.512 + return _mm512_mask_div_pd(__W,__U,__A,__B); +} +__m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) { + // CHECK-LABEL: @test_mm512_maskz_div_pd + // CHECK: @llvm.x86.avx512.mask.div.pd.512 + return _mm512_maskz_div_pd(__U,__A,__B); +} +__m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_div_round_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.512 + return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_div_round_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.512 + return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_div_round_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.512 + return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_mask_div_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.512 + return _mm512_mask_div_ps(__W,__U,__A,__B); +} +__m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) { + // CHECK-LABEL: @test_mm512_maskz_div_ps + // CHECK: @llvm.x86.avx512.mask.div.ps.512 + return _mm512_maskz_div_ps(__U,__A,__B); +} +__m128 test_mm_div_round_ss(__m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_div_round_ss + // CHECK: @llvm.x86.avx512.mask.div.ss.round + return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_div_round_ss + // CHECK: @llvm.x86.avx512.mask.div.ss.round + return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_div_round_ss + // CHECK: @llvm.x86.avx512.mask.div.ss.round + return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_div_ss + // CHECK: @llvm.x86.avx512.mask.div.ss.round + return _mm_mask_div_ss(__W,__U,__A,__B); +} +__m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_div_ss + // CHECK: @llvm.x86.avx512.mask.div.ss.round + return _mm_maskz_div_ss(__U,__A,__B); +} +__m128d test_mm_div_round_sd(__m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_div_round_sd + // CHECK: @llvm.x86.avx512.mask.div.sd.round + return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_div_round_sd + // CHECK: @llvm.x86.avx512.mask.div.sd.round + return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_div_round_sd + // CHECK: @llvm.x86.avx512.mask.div.sd.round + return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT); +} +__m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_div_sd + // CHECK: @llvm.x86.avx512.mask.div.sd.round + return _mm_mask_div_sd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_div_sd + // CHECK: @llvm.x86.avx512.mask.div.sd.round + return _mm_maskz_div_sd(__U,__A,__B); +} +__m128 test_mm_max_round_ss(__m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_max_round_ss + // CHECK: @llvm.x86.avx512.mask.max.ss.round + return _mm_max_round_ss(__A,__B,0x08); +} +__m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_max_round_ss + // CHECK: @llvm.x86.avx512.mask.max.ss.round + return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08); +} +__m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_max_round_ss + // CHECK: @llvm.x86.avx512.mask.max.ss.round + return _mm_maskz_max_round_ss(__U,__A,__B,0x08); +} +__m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_max_ss + // CHECK: @llvm.x86.avx512.mask.max.ss.round + return _mm_mask_max_ss(__W,__U,__A,__B); +} +__m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_max_ss + // CHECK: @llvm.x86.avx512.mask.max.ss.round + return _mm_maskz_max_ss(__U,__A,__B); +} +__m128d test_mm_max_round_sd(__m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_max_round_sd + // CHECK: @llvm.x86.avx512.mask.max.sd.round + return _mm_max_round_sd(__A,__B,0x08); +} +__m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_max_round_sd + // CHECK: @llvm.x86.avx512.mask.max.sd.round + return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08); +} +__m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_max_round_sd + // CHECK: @llvm.x86.avx512.mask.max.sd.round + return _mm_maskz_max_round_sd(__U,__A,__B,0x08); +} +__m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_max_sd + // CHECK: @llvm.x86.avx512.mask.max.sd.round + return _mm_mask_max_sd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_max_sd + // CHECK: @llvm.x86.avx512.mask.max.sd.round + return _mm_maskz_max_sd(__U,__A,__B); +} +__m128 test_mm_min_round_ss(__m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_min_round_ss + // CHECK: @llvm.x86.avx512.mask.min.ss.round + return _mm_min_round_ss(__A,__B,0x08); +} +__m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_min_round_ss + // CHECK: @llvm.x86.avx512.mask.min.ss.round + return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08); +} +__m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_min_round_ss + // CHECK: @llvm.x86.avx512.mask.min.ss.round + return _mm_maskz_min_round_ss(__U,__A,__B,0x08); +} +__m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_mask_min_ss + // CHECK: @llvm.x86.avx512.mask.min.ss.round + return _mm_mask_min_ss(__W,__U,__A,__B); +} +__m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) { + // CHECK-LABEL: @test_mm_maskz_min_ss + // CHECK: @llvm.x86.avx512.mask.min.ss.round + return _mm_maskz_min_ss(__U,__A,__B); +} +__m128d test_mm_min_round_sd(__m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_min_round_sd + // CHECK: @llvm.x86.avx512.mask.min.sd.round + return _mm_min_round_sd(__A,__B,0x08); +} +__m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_min_round_sd + // CHECK: @llvm.x86.avx512.mask.min.sd.round + return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08); +} +__m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_min_round_sd + // CHECK: @llvm.x86.avx512.mask.min.sd.round + return _mm_maskz_min_round_sd(__U,__A,__B,0x08); +} +__m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_mask_min_sd + // CHECK: @llvm.x86.avx512.mask.min.sd.round + return _mm_mask_min_sd(__W,__U,__A,__B); +} +__m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) { + // CHECK-LABEL: @test_mm_maskz_min_sd + // CHECK: @llvm.x86.avx512.mask.min.sd.round + return _mm_maskz_min_sd(__U,__A,__B); +} + +__m512 test_mm512_undefined() { + // CHECK-LABEL: @test_mm512_undefined + // CHECK: ret <16 x float> undef + return _mm512_undefined(); +} + +__m512 test_mm512_undefined_ps() { + // CHECK-LABEL: @test_mm512_undefined_ps + // CHECK: ret <16 x float> undef + return _mm512_undefined_ps(); +} + +__m512d test_mm512_undefined_pd() { + // CHECK-LABEL: @test_mm512_undefined_pd + // CHECK: ret <8 x double> undef + return _mm512_undefined_pd(); +} + +__m512i test_mm512_undefined_epi32() { + // CHECK-LABEL: @test_mm512_undefined_epi32 + // CHECK: ret <8 x i64> undef + return _mm512_undefined_epi32(); +} |