diff options
| author | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-25 14:48:23 +0000 |
|---|---|---|
| committer | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-25 14:48:23 +0000 |
| commit | edc82fe3ef21a036fee1e97dc687e88ad260f0f6 (patch) | |
| tree | 676649792d5831b2a8e12857cfdeaee15a93fb09 /clang/lib | |
| parent | 70247e69b1f1fde7f11b6cd81bc50162f9b79ab2 (diff) | |
| download | bcm5719-llvm-edc82fe3ef21a036fee1e97dc687e88ad260f0f6.tar.gz bcm5719-llvm-edc82fe3ef21a036fee1e97dc687e88ad260f0f6.zip | |
[Clang][Builtin][AVX512]Adding intrinsics for vfpclass{sd|ss} vfpclass{pd|ps} instruction set
Differential Revision: http://reviews.llvm.org/D19476
llvm-svn: 267414
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Headers/avx512dqintrin.h | 39 | ||||
| -rw-r--r-- | clang/lib/Headers/avx512vldqintrin.h | 44 |
2 files changed, 83 insertions, 0 deletions
diff --git a/clang/lib/Headers/avx512dqintrin.h b/clang/lib/Headers/avx512dqintrin.h index 7e91ed24b94..ab970f149f4 100644 --- a/clang/lib/Headers/avx512dqintrin.h +++ b/clang/lib/Headers/avx512dqintrin.h @@ -1099,6 +1099,45 @@ __builtin_ia32_inserti64x2_512_mask ((__v8di)( __A),\ (__mmask8) ( __U));\ }) +#define _mm512_mask_fpclass_ps_mask( __U, __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassps512_mask ((__v16sf)( __A),\ + ( __imm),\ + ( __U));\ +}) + +#define _mm512_fpclass_ps_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassps512_mask ((__v16sf)( __A),\ + ( __imm),\ + (__mmask16) -1);\ +}) + +#define _mm512_mask_fpclass_pd_mask( __U, __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasspd512_mask ((__v8df)( __A),\ + ( __imm),( __U));\ +}) + +#define _mm512_fpclass_pd_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasspd512_mask ((__v8df)( __A),\ + ( __imm),\ + (__mmask8) -1);\ +}) + +#define _mm_fpclass_sd_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasssd_mask ((__v2df)( __A), ( __imm), (__mmask8) -1);\ +}) + +#define _mm_mask_fpclass_sd_mask( __U,__A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasssd_mask ((__v2df)( __A), ( __imm), (__mmask8) __U);\ +}) + +#define _mm_fpclass_ss_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassss_mask ((__v4sf)( __A), ( __imm), (__mmask8) -1);\ +}) + +#define _mm_mask_fpclass_ss_mask(__U ,__A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassss_mask ((__v4sf)( __A), ( __imm), (__mmask8) __U);\ +}) + #undef __DEFAULT_FN_ATTRS #endif diff --git a/clang/lib/Headers/avx512vldqintrin.h b/clang/lib/Headers/avx512vldqintrin.h index 12bf5280b8a..3c28df80fe5 100644 --- a/clang/lib/Headers/avx512vldqintrin.h +++ b/clang/lib/Headers/avx512vldqintrin.h @@ -1206,6 +1206,50 @@ __builtin_ia32_inserti64x2_256_mask ((__v4di)( __A),\ (__mmask8) ( __U));\ }) +#define _mm_mask_fpclass_pd_mask( __U, __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasspd128_mask ((__v2df)( __A),\ + ( __imm),( __U));\ +}) + +#define _mm_fpclass_pd_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasspd128_mask ((__v2df)( __A),\ + ( __imm),\ + (__mmask8) -1);\ +}) + +#define _mm256_mask_fpclass_pd_mask( __U, __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasspd256_mask ((__v4df)( __A),\ + ( __imm),( __U));\ +}) + +#define _mm256_fpclass_pd_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclasspd256_mask ((__v4df)( __A),\ + ( __imm),\ + (__mmask8) -1);\ +}) + +#define _mm_mask_fpclass_ps_mask( __U, __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassps128_mask ((__v4sf)( __A),\ + ( __imm),( __U));\ +}) + +#define _mm_fpclass_ps_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassps128_mask ((__v4sf)( __A),\ + ( __imm),\ + (__mmask8) -1);\ +}) + +#define _mm256_mask_fpclass_ps_mask( __U, __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassps256_mask ((__v8sf)( __A),\ + ( __imm),( __U));\ +}) + +#define _mm256_fpclass_ps_mask( __A, __imm) __extension__ ({ \ +__builtin_ia32_fpclassps256_mask ((__v8sf)( __A),\ + ( __imm),\ + (__mmask8) -1);\ +}) + #undef __DEFAULT_FN_ATTRS #endif |

