24 #ifndef _IMMINTRIN_H_INCLUDED
25 # error "Never use <fmaintrin.h> directly; include <immintrin.h> instead."
28 #ifndef _FMAINTRIN_H_INCLUDED
29 #define _FMAINTRIN_H_INCLUDED
32 # error "FMA instruction set not enabled"
35 extern __inline __m128d
36 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
37 _mm_fmadd_pd (__m128d
__A, __m128d
__B, __m128d
__C)
39 return (__m128d)__builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B,
43 extern __inline __m256d
44 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
45 _mm256_fmadd_pd (__m256d __A, __m256d __B, __m256d __C)
47 return (__m256d)__builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B,
51 extern __inline __m128
52 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
53 _mm_fmadd_ps (__m128 __A, __m128 __B, __m128 __C)
55 return (__m128)__builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B,
59 extern __inline __m256
60 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
61 _mm256_fmadd_ps (__m256 __A, __m256 __B, __m256 __C)
63 return (__m256)__builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B,
67 extern __inline __m128d
68 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
69 _mm_fmadd_sd (__m128d __A, __m128d __B, __m128d __C)
71 return (__m128d) __builtin_ia32_vfmaddsd3 ((__v2df)__A, (__v2df)__B,
75 extern __inline __m128
76 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
77 _mm_fmadd_ss (__m128 __A, __m128 __B, __m128 __C)
79 return (__m128) __builtin_ia32_vfmaddss3 ((__v4sf)__A, (__v4sf)__B,
83 extern __inline __m128d
84 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
85 _mm_fmsub_pd (__m128d __A, __m128d __B, __m128d __C)
87 return (__m128d)__builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B,
91 extern __inline __m256d
92 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
93 _mm256_fmsub_pd (__m256d __A, __m256d __B, __m256d __C)
95 return (__m256d)__builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B,
99 extern __inline __m128
100 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
101 _mm_fmsub_ps (__m128 __A, __m128 __B, __m128 __C)
103 return (__m128)__builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B,
107 extern __inline __m256
108 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
109 _mm256_fmsub_ps (__m256 __A, __m256 __B, __m256 __C)
111 return (__m256)__builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B,
115 extern __inline __m128d
116 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
117 _mm_fmsub_sd (__m128d __A, __m128d __B, __m128d __C)
119 return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, (__v2df)__B,
123 extern __inline __m128
124 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
125 _mm_fmsub_ss (__m128 __A, __m128 __B, __m128 __C)
127 return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, (__v4sf)__B,
131 extern __inline __m128d
132 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
133 _mm_fnmadd_pd (__m128d __A, __m128d __B, __m128d __C)
135 return (__m128d)__builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B,
139 extern __inline __m256d
140 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
141 _mm256_fnmadd_pd (__m256d __A, __m256d __B, __m256d __C)
143 return (__m256d)__builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B,
147 extern __inline __m128
148 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
149 _mm_fnmadd_ps (__m128 __A, __m128 __B, __m128 __C)
151 return (__m128)__builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B,
155 extern __inline __m256
156 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
157 _mm256_fnmadd_ps (__m256 __A, __m256 __B, __m256 __C)
159 return (__m256)__builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B,
163 extern __inline __m128d
164 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
165 _mm_fnmadd_sd (__m128d __A, __m128d __B, __m128d __C)
167 return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, -(__v2df)__B,
171 extern __inline __m128
172 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
173 _mm_fnmadd_ss (__m128 __A, __m128 __B, __m128 __C)
175 return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, -(__v4sf)__B,
179 extern __inline __m128d
180 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
181 _mm_fnmsub_pd (__m128d __A, __m128d __B, __m128d __C)
183 return (__m128d)__builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B,
187 extern __inline __m256d
188 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
189 _mm256_fnmsub_pd (__m256d __A, __m256d __B, __m256d __C)
191 return (__m256d)__builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B,
195 extern __inline __m128
196 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
197 _mm_fnmsub_ps (__m128 __A, __m128 __B, __m128 __C)
199 return (__m128)__builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B,
203 extern __inline __m256
204 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
205 _mm256_fnmsub_ps (__m256 __A, __m256 __B, __m256 __C)
207 return (__m256)__builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B,
211 extern __inline __m128d
212 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
213 _mm_fnmsub_sd (__m128d __A, __m128d __B, __m128d __C)
215 return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, -(__v2df)__B,
219 extern __inline __m128
220 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
221 _mm_fnmsub_ss (__m128 __A, __m128 __B, __m128 __C)
223 return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, -(__v4sf)__B,
227 extern __inline __m128d
228 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
229 _mm_fmaddsub_pd (__m128d __A, __m128d __B, __m128d __C)
231 return (__m128d)__builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B,
235 extern __inline __m256d
236 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
237 _mm256_fmaddsub_pd (__m256d __A, __m256d __B, __m256d __C)
239 return (__m256d)__builtin_ia32_vfmaddsubpd256 ((__v4df)__A,
244 extern __inline __m128
245 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
246 _mm_fmaddsub_ps (__m128 __A, __m128 __B, __m128 __C)
248 return (__m128)__builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B,
252 extern __inline __m256
253 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
254 _mm256_fmaddsub_ps (__m256 __A, __m256 __B, __m256 __C)
256 return (__m256)__builtin_ia32_vfmaddsubps256 ((__v8sf)__A,
261 extern __inline __m128d
262 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
263 _mm_fmsubadd_pd (__m128d __A, __m128d __B, __m128d __C)
265 return (__m128d)__builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B,
269 extern __inline __m256d
270 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
271 _mm256_fmsubadd_pd (__m256d __A, __m256d __B, __m256d __C)
273 return (__m256d)__builtin_ia32_vfmaddsubpd256 ((__v4df)__A,
278 extern __inline __m128
279 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
280 _mm_fmsubadd_ps (__m128 __A, __m128 __B, __m128 __C)
282 return (__m128)__builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B,
286 extern __inline __m256
287 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
288 _mm256_fmsubadd_ps (__m256 __A, __m256 __B, __m256 __C)
290 return (__m256)__builtin_ia32_vfmaddsubps256 ((__v8sf)__A,
__inline __m128d __m128i __C
Definition: avxintrin.h:576
__inline __m256i __m256i __B
Definition: avx2intrin.h:69
double __v4df __attribute__((__vector_size__(32)))
Definition: avxintrin.h:32
__inline void __m256d __A
Definition: avxintrin.h:828