25 #error "Never use <fmaintrin.h> directly; include <immintrin.h> instead."
32 # error "FMA instruction set is not enabled"
36 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
39 _mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C)
41 return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
45 _mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C)
47 return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
51 _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C)
53 return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
57 _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C)
59 return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
63 _mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C)
65 return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
69 _mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C)
71 return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
75 _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C)
77 return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
81 _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C)
83 return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
87 _mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C)
89 return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
93 _mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C)
95 return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
99 _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C)
101 return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
105 _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C)
107 return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
111 _mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C)
113 return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
117 _mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C)
119 return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
123 _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C)
125 return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
129 _mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C)
131 return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
135 _mm_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C)
137 return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
141 _mm_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C)
143 return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
147 _mm_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C)
149 return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
153 _mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C)
155 return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
159 _mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C)
161 return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
165 _mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C)
167 return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
171 _mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C)
173 return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
177 _mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C)
179 return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
183 _mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C)
185 return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
189 _mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C)
191 return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
195 _mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C)
197 return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
201 _mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C)
203 return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
207 _mm256_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C)
209 return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
213 _mm256_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C)
215 return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
219 _mm256_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C)
221 return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
225 _mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C)
227 return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
230 #undef __DEFAULT_FN_ATTRS
#define __DEFAULT_FN_ATTRS