24 #if !defined _X86INTRIN_H_INCLUDED && !defined _IMMINTRIN_H_INCLUDED
25 # error "Never use <f16intrin.h> directly; include <x86intrin.h> or <immintrin.h> instead."
29 # error "F16C instruction set not enabled"
32 #ifndef _F16CINTRIN_H_INCLUDED
33 #define _F16CINTRIN_H_INCLUDED
35 extern __inline
float __attribute__((__gnu_inline__, __always_inline__, __artificial__))
36 _cvtsh_ss (
unsigned short __S)
38 __v8hi
__H = __extension__ (__v8hi){ (short) __S, 0, 0, 0, 0, 0, 0, 0 };
39 __v4sf
__A = __builtin_ia32_vcvtph2ps (__H);
40 return __builtin_ia32_vec_ext_v4sf (__A, 0);
43 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
44 _mm_cvtph_ps (__m128i
__A)
46 return (__m128) __builtin_ia32_vcvtph2ps ((__v8hi) __A);
49 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
50 _mm256_cvtph_ps (__m128i __A)
52 return (__m256) __builtin_ia32_vcvtph2ps256 ((__v8hi) __A);
56 extern __inline
unsigned short __attribute__((__gnu_inline__, __always_inline__, __artificial__))
57 _cvtss_sh (
float __F, const
int __I)
59 __v4sf __A = __extension__ (__v4sf){
__F, 0, 0, 0 };
60 __v8hi __H = __builtin_ia32_vcvtps2ph (__A, __I);
61 return (
unsigned short) __builtin_ia32_vec_ext_v8hi (__H, 0);
64 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
65 _mm_cvtps_ph (__m128 __A, const
int __I)
67 return (__m128i) __builtin_ia32_vcvtps2ph ((__v4sf) __A, __I);
70 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
71 _mm256_cvtps_ph (__m256 __A, const
int __I)
73 return (__m128i) __builtin_ia32_vcvtps2ph256 ((__v8sf) __A, __I);
76 #define _cvtss_sh(__F, __I) \
79 __v4sf __A = __extension__ (__v4sf){ __F, 0, 0, 0 }; \
80 __v8hi __H = __builtin_ia32_vcvtps2ph (__A, __I); \
81 (unsigned short) __builtin_ia32_vec_ext_v8hi (__H, 0); \
84 #define _mm_cvtps_ph(A, I) \
85 ((__m128i) __builtin_ia32_vcvtps2ph ((__v4sf)(__m128) A, (int) (I)))
87 #define _mm256_cvtps_ph(A, I) \
88 ((__m128i) __builtin_ia32_vcvtps2ph256 ((__v8sf)(__m256) A, (int) (I)))
double __v4df __attribute__((__vector_size__(32)))
Definition: avxintrin.h:32
__inline void __m256d __A
Definition: avxintrin.h:828
__inline __m256 float float float float float __F
Definition: avxintrin.h:1189
__inline __m256 float float float float float float float __H
Definition: avxintrin.h:1191