24 #ifndef _X86INTRIN_H_INCLUDED
25 # error "Never use <fma4intrin.h> directly; include <x86intrin.h> instead."
28 #ifndef _FMA4INTRIN_H_INCLUDED
29 #define _FMA4INTRIN_H_INCLUDED
32 # error "FMA4 instruction set not enabled"
39 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
40 _mm_macc_ps (__m128
__A, __m128
__B, __m128
__C)
42 return (__m128) __builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
45 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
46 _mm_macc_pd (__m128d __A, __m128d __B, __m128d __C)
48 return (__m128d) __builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B, (__v2df)__C);
51 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
52 _mm_macc_ss (__m128 __A, __m128 __B, __m128 __C)
54 return (__m128) __builtin_ia32_vfmaddss ((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
57 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
58 _mm_macc_sd (__m128d __A, __m128d __B, __m128d __C)
60 return (__m128d) __builtin_ia32_vfmaddsd ((__v2df)__A, (__v2df)__B, (__v2df)__C);
63 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
64 _mm_msub_ps (__m128 __A, __m128 __B, __m128 __C)
67 return (__m128) __builtin_ia32_vfmaddps ((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
70 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
71 _mm_msub_pd (__m128d __A, __m128d __B, __m128d __C)
73 return (__m128d) __builtin_ia32_vfmaddpd ((__v2df)__A, (__v2df)__B, -(__v2df)__C);
76 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
77 _mm_msub_ss (__m128 __A, __m128 __B, __m128 __C)
79 return (__m128) __builtin_ia32_vfmaddss ((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
82 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
83 _mm_msub_sd (__m128d __A, __m128d __B, __m128d __C)
85 return (__m128d) __builtin_ia32_vfmaddsd ((__v2df)__A, (__v2df)__B, -(__v2df)__C);
88 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
89 _mm_nmacc_ps (__m128 __A, __m128 __B, __m128 __C)
91 return (__m128) __builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
94 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
95 _mm_nmacc_pd (__m128d __A, __m128d __B, __m128d __C)
97 return (__m128d) __builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B, (__v2df)__C);
100 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
101 _mm_nmacc_ss (__m128 __A, __m128 __B, __m128 __C)
103 return (__m128) __builtin_ia32_vfmaddss (-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
106 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
107 _mm_nmacc_sd (__m128d __A, __m128d __B, __m128d __C)
109 return (__m128d) __builtin_ia32_vfmaddsd (-(__v2df)__A, (__v2df)__B, (__v2df)__C);
112 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
113 _mm_nmsub_ps (__m128 __A, __m128 __B, __m128 __C)
115 return (__m128) __builtin_ia32_vfmaddps (-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
118 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
119 _mm_nmsub_pd (__m128d __A, __m128d __B, __m128d __C)
121 return (__m128d) __builtin_ia32_vfmaddpd (-(__v2df)__A, (__v2df)__B, -(__v2df)__C);
124 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
125 _mm_nmsub_ss (__m128 __A, __m128 __B, __m128 __C)
127 return (__m128) __builtin_ia32_vfmaddss (-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
130 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
131 _mm_nmsub_sd (__m128d __A, __m128d __B, __m128d __C)
133 return (__m128d) __builtin_ia32_vfmaddsd (-(__v2df)__A, (__v2df)__B, -(__v2df)__C);
136 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
137 _mm_maddsub_ps (__m128 __A, __m128 __B, __m128 __C)
139 return (__m128) __builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
142 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
143 _mm_maddsub_pd (__m128d __A, __m128d __B, __m128d __C)
145 return (__m128d) __builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B, (__v2df)__C);
148 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
149 _mm_msubadd_ps (__m128 __A, __m128 __B, __m128 __C)
151 return (__m128) __builtin_ia32_vfmaddsubps ((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
154 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
155 _mm_msubadd_pd (__m128d __A, __m128d __B, __m128d __C)
157 return (__m128d) __builtin_ia32_vfmaddsubpd ((__v2df)__A, (__v2df)__B, -(__v2df)__C);
161 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
162 _mm256_macc_ps (__m256 __A, __m256 __B, __m256 __C)
164 return (__m256) __builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
167 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
168 _mm256_macc_pd (__m256d __A, __m256d __B, __m256d __C)
170 return (__m256d) __builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B, (__v4df)__C);
173 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
174 _mm256_msub_ps (__m256 __A, __m256 __B, __m256 __C)
177 return (__m256) __builtin_ia32_vfmaddps256 ((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
180 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
181 _mm256_msub_pd (__m256d __A, __m256d __B, __m256d __C)
183 return (__m256d) __builtin_ia32_vfmaddpd256 ((__v4df)__A, (__v4df)__B, -(__v4df)__C);
186 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
187 _mm256_nmacc_ps (__m256 __A, __m256 __B, __m256 __C)
189 return (__m256) __builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
192 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
193 _mm256_nmacc_pd (__m256d __A, __m256d __B, __m256d __C)
195 return (__m256d) __builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B, (__v4df)__C);
198 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
199 _mm256_nmsub_ps (__m256 __A, __m256 __B, __m256 __C)
201 return (__m256) __builtin_ia32_vfmaddps256 (-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
204 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
205 _mm256_nmsub_pd (__m256d __A, __m256d __B, __m256d __C)
207 return (__m256d) __builtin_ia32_vfmaddpd256 (-(__v4df)__A, (__v4df)__B, -(__v4df)__C);
210 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
211 _mm256_maddsub_ps (__m256 __A, __m256 __B, __m256 __C)
213 return (__m256) __builtin_ia32_vfmaddsubps256 ((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
216 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
217 _mm256_maddsub_pd (__m256d __A, __m256d __B, __m256d __C)
219 return (__m256d) __builtin_ia32_vfmaddsubpd256 ((__v4df)__A, (__v4df)__B, (__v4df)__C);
222 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
223 _mm256_msubadd_ps (__m256 __A, __m256 __B, __m256 __C)
225 return (__m256) __builtin_ia32_vfmaddsubps256 ((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
228 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
229 _mm256_msubadd_pd (__m256d __A, __m256d __B, __m256d __C)
231 return (__m256d) __builtin_ia32_vfmaddsubpd256 ((__v4df)__A, (__v4df)__B, -(__v4df)__C);
__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