summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/avx512f-builtins.c
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2016-04-19 17:10:29 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2016-04-19 17:10:29 +0000
commit6fa512cecf40d3db247c161363f157dea6e03b31 (patch)
treee56e3c61daa1a658df8d71f41c58caa468765f95 /clang/test/CodeGen/avx512f-builtins.c
parenta4810fac198c496d8e16c99da0fe57b89be8598e (diff)
downloadbcm5719-llvm-6fa512cecf40d3db247c161363f157dea6e03b31.tar.gz
bcm5719-llvm-6fa512cecf40d3db247c161363f157dea6e03b31.zip
[Clang][Builtin][AVX512] Adding intrinsics for VGETMANT{PD|PS} and VGETEXP{PD|PS} instruction set
Differential Revision: http://reviews.llvm.org/D19197 llvm-svn: 266763
Diffstat (limited to 'clang/test/CodeGen/avx512f-builtins.c')
-rw-r--r--clang/test/CodeGen/avx512f-builtins.c144
1 files changed, 144 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c
index fcda48bd4b4..dc41309a6bb 100644
--- a/clang/test/CodeGen/avx512f-builtins.c
+++ b/clang/test/CodeGen/avx512f-builtins.c
@@ -4131,3 +4131,147 @@ __m512i test_mm512_maskz_inserti64x4(__mmask8 __U, __m512i __A, __m256i __B) {
// CHECK: @llvm.x86.avx512.mask.inserti64x4
return _mm512_maskz_inserti64x4(__U, __A, __B, 1);
}
+
+__m512d test_mm512_getmant_round_pd(__m512d __A) {
+ // CHECK-LABEL: @test_mm512_getmant_round_pd
+ // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
+ return _mm512_getmant_round_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512d test_mm512_mask_getmant_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_mask_getmant_round_pd
+ // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
+ return _mm512_mask_getmant_round_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512d test_mm512_maskz_getmant_round_pd(__mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getmant_round_pd
+ // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
+ return _mm512_maskz_getmant_round_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512d test_mm512_getmant_pd(__m512d __A) {
+ // CHECK-LABEL: @test_mm512_getmant_pd
+ // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
+ return _mm512_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
+}
+
+__m512d test_mm512_mask_getmant_pd(__m512d __W, __mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_mask_getmant_pd
+ // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
+ return _mm512_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
+}
+
+__m512d test_mm512_maskz_getmant_pd(__mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getmant_pd
+ // CHECK: @llvm.x86.avx512.mask.getmant.pd.512
+ return _mm512_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
+}
+
+__m512 test_mm512_getmant_round_ps(__m512 __A) {
+ // CHECK-LABEL: @test_mm512_getmant_round_ps
+ // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
+ return _mm512_getmant_round_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512 test_mm512_mask_getmant_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_mask_getmant_round_ps
+ // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
+ return _mm512_mask_getmant_round_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512 test_mm512_maskz_getmant_round_ps(__mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getmant_round_ps
+ // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
+ return _mm512_maskz_getmant_round_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512 test_mm512_getmant_ps(__m512 __A) {
+ // CHECK-LABEL: @test_mm512_getmant_ps
+ // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
+ return _mm512_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
+}
+
+__m512 test_mm512_mask_getmant_ps(__m512 __W, __mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_mask_getmant_ps
+ // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
+ return _mm512_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
+}
+
+__m512 test_mm512_maskz_getmant_ps(__mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getmant_ps
+ // CHECK: @llvm.x86.avx512.mask.getmant.ps.512
+ return _mm512_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan);
+}
+
+__m512d test_mm512_getexp_round_pd(__m512d __A) {
+ // CHECK-LABEL: @test_mm512_getexp_round_pd
+ // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
+ return _mm512_getexp_round_pd(__A, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512d test_mm512_mask_getexp_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_mask_getexp_round_pd
+ // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
+ return _mm512_mask_getexp_round_pd(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512d test_mm512_maskz_getexp_round_pd(__mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getexp_round_pd
+ // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
+ return _mm512_maskz_getexp_round_pd(__U, __A, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512d test_mm512_getexp_pd(__m512d __A) {
+ // CHECK-LABEL: @test_mm512_getexp_pd
+ // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
+ return _mm512_getexp_pd(__A);
+}
+
+__m512d test_mm512_mask_getexp_pd(__m512d __W, __mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_mask_getexp_pd
+ // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
+ return _mm512_mask_getexp_pd(__W, __U, __A);
+}
+
+__m512d test_mm512_maskz_getexp_pd(__mmask8 __U, __m512d __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getexp_pd
+ // CHECK: @llvm.x86.avx512.mask.getexp.pd.512
+ return _mm512_maskz_getexp_pd(__U, __A);
+}
+
+__m512 test_mm512_getexp_round_ps(__m512 __A) {
+ // CHECK-LABEL: @test_mm512_getexp_round_ps
+ // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
+ return _mm512_getexp_round_ps(__A, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512 test_mm512_mask_getexp_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_mask_getexp_round_ps
+ // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
+ return _mm512_mask_getexp_round_ps(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512 test_mm512_maskz_getexp_round_ps(__mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getexp_round_ps
+ // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
+ return _mm512_maskz_getexp_round_ps(__U, __A, _MM_FROUND_CUR_DIRECTION);
+}
+
+__m512 test_mm512_getexp_ps(__m512 __A) {
+ // CHECK-LABEL: @test_mm512_getexp_ps
+ // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
+ return _mm512_getexp_ps(__A);
+}
+
+__m512 test_mm512_mask_getexp_ps(__m512 __W, __mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_mask_getexp_ps
+ // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
+ return _mm512_mask_getexp_ps(__W, __U, __A);
+}
+
+__m512 test_mm512_maskz_getexp_ps(__mmask16 __U, __m512 __A) {
+ // CHECK-LABEL: @test_mm512_maskz_getexp_ps
+ // CHECK: @llvm.x86.avx512.mask.getexp.ps.512
+ return _mm512_maskz_getexp_ps(__U, __A);
+}
OpenPOWER on IntegriCloud