diff options
author | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-19 17:10:29 +0000 |
---|---|---|
committer | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-19 17:10:29 +0000 |
commit | 6fa512cecf40d3db247c161363f157dea6e03b31 (patch) | |
tree | e56e3c61daa1a658df8d71f41c58caa468765f95 /clang/test/CodeGen/avx512f-builtins.c | |
parent | a4810fac198c496d8e16c99da0fe57b89be8598e (diff) | |
download | bcm5719-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.c | 144 |
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); +} |