summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/avx512fintrin.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Headers/avx512fintrin.h')
-rw-r--r--clang/lib/Headers/avx512fintrin.h271
1 files changed, 271 insertions, 0 deletions
diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h
index 22a27299e24..e1f81a0e2a1 100644
--- a/clang/lib/Headers/avx512fintrin.h
+++ b/clang/lib/Headers/avx512fintrin.h
@@ -46,6 +46,21 @@ typedef unsigned short __mmask16;
#define _MM_FROUND_TO_ZERO 0x03
#define _MM_FROUND_CUR_DIRECTION 0x04
+typedef enum
+{
+ _MM_MANT_NORM_1_2, /* interval [1, 2) */
+ _MM_MANT_NORM_p5_2, /* interval [0.5, 2) */
+ _MM_MANT_NORM_p5_1, /* interval [0.5, 1) */
+ _MM_MANT_NORM_p75_1p5 /* interval [0.75, 1.5) */
+} _MM_MANTISSA_NORM_ENUM;
+
+typedef enum
+{
+ _MM_MANT_SIGN_src, /* sign = sign(SRC) */
+ _MM_MANT_SIGN_zero, /* sign = 0 */
+ _MM_MANT_SIGN_nan /* DEST = NaN if sign(SRC) = 1 */
+} _MM_MANTISSA_SIGN_ENUM;
+
/* Define the default attributes for the functions in this file. */
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512f")))
@@ -3695,6 +3710,262 @@ _mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)
(__mmask8) __U);
}
+#define _mm512_fixupimm_round_pd( __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmpd512_mask ((__v8df)( __A),\
+ (__v8df)( __B),\
+ (__v8di)( __C),\
+ (__imm),\
+ (__mmask8) -1, (__R));\
+})
+
+#define _mm512_mask_fixupimm_round_pd( __A, __U, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmpd512_mask ((__v8df)( __A),\
+ (__v8df)( __B),\
+ (__v8di)( __C),\
+ (__imm),\
+ (__mmask8)( __U), (__R));\
+})
+
+#define _mm512_fixupimm_pd( __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmpd512_mask ((__v8df)( __A),\
+ (__v8df)( __B),\
+ (__v8di)( __C),\
+ ( __imm),\
+ (__mmask8) -1,\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm512_mask_fixupimm_pd( __A, __U, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmpd512_mask ((__v8df)( __A),\
+ (__v8df)( __B),\
+ (__v8di)( __C),\
+ ( __imm),\
+ (__mmask8)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm512_maskz_fixupimm_round_pd( __U, __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmpd512_maskz ((__v8df)( __A),\
+ (__v8df)( __B),\
+ (__v8di)( __C),\
+ (__imm),\
+ (__mmask8)( __U), (__R));\
+})
+
+#define _mm512_maskz_fixupimm_pd( __U, __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmpd512_maskz ((__v8df)( __A),\
+ (__v8df)( __B),\
+ (__v8di)( __C),\
+ ( __imm),\
+ (__mmask8)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm512_fixupimm_round_ps( __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmps512_mask ((__v16sf)( __A),\
+ (__v16sf)( __B),\
+ (__v16si)( __C),\
+ (__imm),\
+ (__mmask16) -1, (__R));\
+})
+
+#define _mm512_mask_fixupimm_round_ps( __A, __U, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmps512_mask ((__v16sf)( __A),\
+ (__v16sf)( __B),\
+ (__v16si)( __C),\
+ (__imm),\
+ (__mmask16)( __U), (__R));\
+})
+
+#define _mm512_fixupimm_ps( __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmps512_mask ((__v16sf)( __A),\
+ (__v16sf)( __B),\
+ (__v16si)( __C),\
+ ( __imm),\
+ (__mmask16) -1,\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm512_mask_fixupimm_ps( __A, __U, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmps512_mask ((__v16sf)( __A),\
+ (__v16sf)( __B),\
+ (__v16si)( __C),\
+ ( __imm),\
+ (__mmask16)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm512_maskz_fixupimm_round_ps( __U, __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmps512_maskz ((__v16sf)( __A),\
+ (__v16sf)( __B),\
+ (__v16si)( __C),\
+ (__imm),\
+ (__mmask16)( __U), (__R));\
+})
+
+#define _mm512_maskz_fixupimm_ps( __U, __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmps512_maskz ((__v16sf)( __A),\
+ (__v16sf)( __B),\
+ (__v16si)( __C),\
+ ( __imm),\
+ (__mmask16)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_fixupimm_round_sd( __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmsd_mask ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (__v2di)( __C), __imm,\
+ (__mmask8) -1, (__R));\
+})
+
+#define _mm_mask_fixupimm_round_sd( __A, __U, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmsd_mask ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (__v2di)( __C), __imm,\
+ (__mmask8)( __U), (__R));\
+})
+
+#define _mm_fixupimm_sd( __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmsd_mask ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (__v2di)( __C),( __imm),\
+ (__mmask8) -1,\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_mask_fixupimm_sd( __A, __U, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmsd_mask ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (__v2di)( __C),( __imm),\
+ (__mmask8)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_maskz_fixupimm_round_sd( __U, __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmsd_maskz ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (__v2di)( __C),\
+ __imm,\
+ (__mmask8)( __U), (__R));\
+})
+
+#define _mm_maskz_fixupimm_sd( __U, __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmsd_maskz ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (__v2di)( __C),\
+ ( __imm),\
+ (__mmask8)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_fixupimm_round_ss( __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmss_mask ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ (__v4si)( __C), (__imm),\
+ (__mmask8) -1, (__R));\
+})
+
+#define _mm_mask_fixupimm_round_ss( __A, __U, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmss_mask ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ (__v4si)( __C), (__imm),\
+ (__mmask8)( __U), (__R));\
+})
+
+#define _mm_fixupimm_ss( __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmss_mask ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ (__v4si)( __C),( __imm),\
+ (__mmask8) -1,\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_mask_fixupimm_ss( __A, __U, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmss_mask ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ (__v4si)( __C),( __imm),\
+ (__mmask8)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_maskz_fixupimm_round_ss( __U, __A, __B, __C, __imm, __R) __extension__ ({ \
+__builtin_ia32_fixupimmss_maskz ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ (__v4si)( __C), (__imm),\
+ (__mmask8)( __U), (__R));\
+})
+
+#define _mm_maskz_fixupimm_ss( __U, __A, __B, __C, __imm) __extension__ ({ \
+__builtin_ia32_fixupimmss_maskz ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ (__v4si)( __C),( __imm),\
+ (__mmask8)( __U),\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_getexp_round_sd( __A, __B ,__R) __extension__ ({ \
+__builtin_ia32_getexpsd128_round_mask ((__v2df)(__A),\
+ (__v2df)( __B), (__v2df) _mm_setzero_pd(), (__mmask8) -1,\
+ ( __R));\
+})
+
+
+static __inline__ __m128d __DEFAULT_FN_ATTRS
+_mm_getexp_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d) __builtin_ia32_getexpsd128_round_mask ((__v2df) __A,
+ (__v2df) __B, (__v2df) _mm_setzero_pd(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);
+}
+
+#define _mm_getexp_round_ss( __A, __B, __R) __extension__ ({ \
+__builtin_ia32_getexpss128_round_mask ((__v4sf)( __A),\
+ (__v4sf)( __B), (__v4sf) _mm_setzero_ps(), (__mmask8) -1,\
+ ( __R));\
+})
+
+static __inline__ __m128 __DEFAULT_FN_ATTRS
+_mm_getexp_ss (__m128 __A, __m128 __B)
+{
+ return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,
+ (__v4sf) __B, (__v4sf) _mm_setzero_ps(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);
+}
+
+#define _mm_getmant_round_sd( __A, __B, __C, __D, __R) __extension__ ({ \
+__builtin_ia32_getmantsd_round_mask ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (( __D) << 2) |( __C), (__v2df) _mm_setzero_pd(), (__mmask8) -1,\
+ ( __R));\
+})
+
+#define _mm_getmant_sd( __A, __B, __C, __D) __extension__ ({ \
+__builtin_ia32_getmantsd_round_mask ((__v2df)( __A),\
+ (__v2df)( __B),\
+ (( __D) << 2) |( __C), (__v2df) _mm_setzero_pd(), (__mmask8) -1,\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+#define _mm_getmant_round_ss( __A, __B, __C, __D, __R) __extension__ ({ \
+__builtin_ia32_getmantss_round_mask ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ ((__D) << 2) |( __C), (__v4sf) _mm_setzero_ps(), (__mmask8) -1,\
+ ( __R));\
+})
+
+#define _mm_getmant_ss(__A, __B, __C, __D) __extension__ ({ \
+__builtin_ia32_getmantss_round_mask ((__v4sf)( __A),\
+ (__v4sf)( __B),\
+ ((__D) << 2) |( __C), (__v4sf) _mm_setzero_ps(), (__mmask8) -1,\
+ _MM_FROUND_CUR_DIRECTION);\
+})
+
+
+static __inline__ __mmask16 __DEFAULT_FN_ATTRS
+_mm512_kmov (__mmask16 __A)
+{
+ return __A;
+}
+
#define _mm_comi_round_sd(__A, __B, __P, __R) __extension__ ({\
__builtin_ia32_vcomisd ((__v2df) (__A), (__v2df) (__B), ( __P), ( __R));\
})
OpenPOWER on IntegriCloud