xref: /aosp_15_r20/prebuilts/sdk/renderscript/clang-include/fma4intrin.h (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker /*===---- fma4intrin.h - FMA4 intrinsics -----------------------------------===
2*344a7f5eSAndroid Build Coastguard Worker  *
3*344a7f5eSAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a copy
4*344a7f5eSAndroid Build Coastguard Worker  * of this software and associated documentation files (the "Software"), to deal
5*344a7f5eSAndroid Build Coastguard Worker  * in the Software without restriction, including without limitation the rights
6*344a7f5eSAndroid Build Coastguard Worker  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*344a7f5eSAndroid Build Coastguard Worker  * copies of the Software, and to permit persons to whom the Software is
8*344a7f5eSAndroid Build Coastguard Worker  * furnished to do so, subject to the following conditions:
9*344a7f5eSAndroid Build Coastguard Worker  *
10*344a7f5eSAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included in
11*344a7f5eSAndroid Build Coastguard Worker  * all copies or substantial portions of the Software.
12*344a7f5eSAndroid Build Coastguard Worker  *
13*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14*344a7f5eSAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15*344a7f5eSAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16*344a7f5eSAndroid Build Coastguard Worker  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17*344a7f5eSAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18*344a7f5eSAndroid Build Coastguard Worker  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE.
20*344a7f5eSAndroid Build Coastguard Worker  *
21*344a7f5eSAndroid Build Coastguard Worker  *===-----------------------------------------------------------------------===
22*344a7f5eSAndroid Build Coastguard Worker  */
23*344a7f5eSAndroid Build Coastguard Worker 
24*344a7f5eSAndroid Build Coastguard Worker #ifndef __X86INTRIN_H
25*344a7f5eSAndroid Build Coastguard Worker #error "Never use <fma4intrin.h> directly; include <x86intrin.h> instead."
26*344a7f5eSAndroid Build Coastguard Worker #endif
27*344a7f5eSAndroid Build Coastguard Worker 
28*344a7f5eSAndroid Build Coastguard Worker #ifndef __FMA4INTRIN_H
29*344a7f5eSAndroid Build Coastguard Worker #define __FMA4INTRIN_H
30*344a7f5eSAndroid Build Coastguard Worker 
31*344a7f5eSAndroid Build Coastguard Worker #include <pmmintrin.h>
32*344a7f5eSAndroid Build Coastguard Worker 
33*344a7f5eSAndroid Build Coastguard Worker /* Define the default attributes for the functions in this file. */
34*344a7f5eSAndroid Build Coastguard Worker #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("fma4")))
35*344a7f5eSAndroid Build Coastguard Worker 
36*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_macc_ps(__m128 __A,__m128 __B,__m128 __C)37*344a7f5eSAndroid Build Coastguard Worker _mm_macc_ps(__m128 __A, __m128 __B, __m128 __C)
38*344a7f5eSAndroid Build Coastguard Worker {
39*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
40*344a7f5eSAndroid Build Coastguard Worker }
41*344a7f5eSAndroid Build Coastguard Worker 
42*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_macc_pd(__m128d __A,__m128d __B,__m128d __C)43*344a7f5eSAndroid Build Coastguard Worker _mm_macc_pd(__m128d __A, __m128d __B, __m128d __C)
44*344a7f5eSAndroid Build Coastguard Worker {
45*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
46*344a7f5eSAndroid Build Coastguard Worker }
47*344a7f5eSAndroid Build Coastguard Worker 
48*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_macc_ss(__m128 __A,__m128 __B,__m128 __C)49*344a7f5eSAndroid Build Coastguard Worker _mm_macc_ss(__m128 __A, __m128 __B, __m128 __C)
50*344a7f5eSAndroid Build Coastguard Worker {
51*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfmaddss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
52*344a7f5eSAndroid Build Coastguard Worker }
53*344a7f5eSAndroid Build Coastguard Worker 
54*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_macc_sd(__m128d __A,__m128d __B,__m128d __C)55*344a7f5eSAndroid Build Coastguard Worker _mm_macc_sd(__m128d __A, __m128d __B, __m128d __C)
56*344a7f5eSAndroid Build Coastguard Worker {
57*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfmaddsd((__v2df)__A, (__v2df)__B, (__v2df)__C);
58*344a7f5eSAndroid Build Coastguard Worker }
59*344a7f5eSAndroid Build Coastguard Worker 
60*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_msub_ps(__m128 __A,__m128 __B,__m128 __C)61*344a7f5eSAndroid Build Coastguard Worker _mm_msub_ps(__m128 __A, __m128 __B, __m128 __C)
62*344a7f5eSAndroid Build Coastguard Worker {
63*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfmsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
64*344a7f5eSAndroid Build Coastguard Worker }
65*344a7f5eSAndroid Build Coastguard Worker 
66*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_msub_pd(__m128d __A,__m128d __B,__m128d __C)67*344a7f5eSAndroid Build Coastguard Worker _mm_msub_pd(__m128d __A, __m128d __B, __m128d __C)
68*344a7f5eSAndroid Build Coastguard Worker {
69*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfmsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
70*344a7f5eSAndroid Build Coastguard Worker }
71*344a7f5eSAndroid Build Coastguard Worker 
72*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_msub_ss(__m128 __A,__m128 __B,__m128 __C)73*344a7f5eSAndroid Build Coastguard Worker _mm_msub_ss(__m128 __A, __m128 __B, __m128 __C)
74*344a7f5eSAndroid Build Coastguard Worker {
75*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfmsubss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
76*344a7f5eSAndroid Build Coastguard Worker }
77*344a7f5eSAndroid Build Coastguard Worker 
78*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_msub_sd(__m128d __A,__m128d __B,__m128d __C)79*344a7f5eSAndroid Build Coastguard Worker _mm_msub_sd(__m128d __A, __m128d __B, __m128d __C)
80*344a7f5eSAndroid Build Coastguard Worker {
81*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfmsubsd((__v2df)__A, (__v2df)__B, (__v2df)__C);
82*344a7f5eSAndroid Build Coastguard Worker }
83*344a7f5eSAndroid Build Coastguard Worker 
84*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_nmacc_ps(__m128 __A,__m128 __B,__m128 __C)85*344a7f5eSAndroid Build Coastguard Worker _mm_nmacc_ps(__m128 __A, __m128 __B, __m128 __C)
86*344a7f5eSAndroid Build Coastguard Worker {
87*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfnmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
88*344a7f5eSAndroid Build Coastguard Worker }
89*344a7f5eSAndroid Build Coastguard Worker 
90*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_nmacc_pd(__m128d __A,__m128d __B,__m128d __C)91*344a7f5eSAndroid Build Coastguard Worker _mm_nmacc_pd(__m128d __A, __m128d __B, __m128d __C)
92*344a7f5eSAndroid Build Coastguard Worker {
93*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfnmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
94*344a7f5eSAndroid Build Coastguard Worker }
95*344a7f5eSAndroid Build Coastguard Worker 
96*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_nmacc_ss(__m128 __A,__m128 __B,__m128 __C)97*344a7f5eSAndroid Build Coastguard Worker _mm_nmacc_ss(__m128 __A, __m128 __B, __m128 __C)
98*344a7f5eSAndroid Build Coastguard Worker {
99*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfnmaddss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
100*344a7f5eSAndroid Build Coastguard Worker }
101*344a7f5eSAndroid Build Coastguard Worker 
102*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_nmacc_sd(__m128d __A,__m128d __B,__m128d __C)103*344a7f5eSAndroid Build Coastguard Worker _mm_nmacc_sd(__m128d __A, __m128d __B, __m128d __C)
104*344a7f5eSAndroid Build Coastguard Worker {
105*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfnmaddsd((__v2df)__A, (__v2df)__B, (__v2df)__C);
106*344a7f5eSAndroid Build Coastguard Worker }
107*344a7f5eSAndroid Build Coastguard Worker 
108*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_nmsub_ps(__m128 __A,__m128 __B,__m128 __C)109*344a7f5eSAndroid Build Coastguard Worker _mm_nmsub_ps(__m128 __A, __m128 __B, __m128 __C)
110*344a7f5eSAndroid Build Coastguard Worker {
111*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfnmsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
112*344a7f5eSAndroid Build Coastguard Worker }
113*344a7f5eSAndroid Build Coastguard Worker 
114*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_nmsub_pd(__m128d __A,__m128d __B,__m128d __C)115*344a7f5eSAndroid Build Coastguard Worker _mm_nmsub_pd(__m128d __A, __m128d __B, __m128d __C)
116*344a7f5eSAndroid Build Coastguard Worker {
117*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfnmsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
118*344a7f5eSAndroid Build Coastguard Worker }
119*344a7f5eSAndroid Build Coastguard Worker 
120*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_nmsub_ss(__m128 __A,__m128 __B,__m128 __C)121*344a7f5eSAndroid Build Coastguard Worker _mm_nmsub_ss(__m128 __A, __m128 __B, __m128 __C)
122*344a7f5eSAndroid Build Coastguard Worker {
123*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfnmsubss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
124*344a7f5eSAndroid Build Coastguard Worker }
125*344a7f5eSAndroid Build Coastguard Worker 
126*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_nmsub_sd(__m128d __A,__m128d __B,__m128d __C)127*344a7f5eSAndroid Build Coastguard Worker _mm_nmsub_sd(__m128d __A, __m128d __B, __m128d __C)
128*344a7f5eSAndroid Build Coastguard Worker {
129*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfnmsubsd((__v2df)__A, (__v2df)__B, (__v2df)__C);
130*344a7f5eSAndroid Build Coastguard Worker }
131*344a7f5eSAndroid Build Coastguard Worker 
132*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maddsub_ps(__m128 __A,__m128 __B,__m128 __C)133*344a7f5eSAndroid Build Coastguard Worker _mm_maddsub_ps(__m128 __A, __m128 __B, __m128 __C)
134*344a7f5eSAndroid Build Coastguard Worker {
135*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
136*344a7f5eSAndroid Build Coastguard Worker }
137*344a7f5eSAndroid Build Coastguard Worker 
138*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maddsub_pd(__m128d __A,__m128d __B,__m128d __C)139*344a7f5eSAndroid Build Coastguard Worker _mm_maddsub_pd(__m128d __A, __m128d __B, __m128d __C)
140*344a7f5eSAndroid Build Coastguard Worker {
141*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
142*344a7f5eSAndroid Build Coastguard Worker }
143*344a7f5eSAndroid Build Coastguard Worker 
144*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_msubadd_ps(__m128 __A,__m128 __B,__m128 __C)145*344a7f5eSAndroid Build Coastguard Worker _mm_msubadd_ps(__m128 __A, __m128 __B, __m128 __C)
146*344a7f5eSAndroid Build Coastguard Worker {
147*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfmsubaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
148*344a7f5eSAndroid Build Coastguard Worker }
149*344a7f5eSAndroid Build Coastguard Worker 
150*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_msubadd_pd(__m128d __A,__m128d __B,__m128d __C)151*344a7f5eSAndroid Build Coastguard Worker _mm_msubadd_pd(__m128d __A, __m128d __B, __m128d __C)
152*344a7f5eSAndroid Build Coastguard Worker {
153*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfmsubaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
154*344a7f5eSAndroid Build Coastguard Worker }
155*344a7f5eSAndroid Build Coastguard Worker 
156*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_macc_ps(__m256 __A,__m256 __B,__m256 __C)157*344a7f5eSAndroid Build Coastguard Worker _mm256_macc_ps(__m256 __A, __m256 __B, __m256 __C)
158*344a7f5eSAndroid Build Coastguard Worker {
159*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
160*344a7f5eSAndroid Build Coastguard Worker }
161*344a7f5eSAndroid Build Coastguard Worker 
162*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_macc_pd(__m256d __A,__m256d __B,__m256d __C)163*344a7f5eSAndroid Build Coastguard Worker _mm256_macc_pd(__m256d __A, __m256d __B, __m256d __C)
164*344a7f5eSAndroid Build Coastguard Worker {
165*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
166*344a7f5eSAndroid Build Coastguard Worker }
167*344a7f5eSAndroid Build Coastguard Worker 
168*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_msub_ps(__m256 __A,__m256 __B,__m256 __C)169*344a7f5eSAndroid Build Coastguard Worker _mm256_msub_ps(__m256 __A, __m256 __B, __m256 __C)
170*344a7f5eSAndroid Build Coastguard Worker {
171*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfmsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
172*344a7f5eSAndroid Build Coastguard Worker }
173*344a7f5eSAndroid Build Coastguard Worker 
174*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_msub_pd(__m256d __A,__m256d __B,__m256d __C)175*344a7f5eSAndroid Build Coastguard Worker _mm256_msub_pd(__m256d __A, __m256d __B, __m256d __C)
176*344a7f5eSAndroid Build Coastguard Worker {
177*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfmsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
178*344a7f5eSAndroid Build Coastguard Worker }
179*344a7f5eSAndroid Build Coastguard Worker 
180*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_nmacc_ps(__m256 __A,__m256 __B,__m256 __C)181*344a7f5eSAndroid Build Coastguard Worker _mm256_nmacc_ps(__m256 __A, __m256 __B, __m256 __C)
182*344a7f5eSAndroid Build Coastguard Worker {
183*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfnmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
184*344a7f5eSAndroid Build Coastguard Worker }
185*344a7f5eSAndroid Build Coastguard Worker 
186*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_nmacc_pd(__m256d __A,__m256d __B,__m256d __C)187*344a7f5eSAndroid Build Coastguard Worker _mm256_nmacc_pd(__m256d __A, __m256d __B, __m256d __C)
188*344a7f5eSAndroid Build Coastguard Worker {
189*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfnmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
190*344a7f5eSAndroid Build Coastguard Worker }
191*344a7f5eSAndroid Build Coastguard Worker 
192*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_nmsub_ps(__m256 __A,__m256 __B,__m256 __C)193*344a7f5eSAndroid Build Coastguard Worker _mm256_nmsub_ps(__m256 __A, __m256 __B, __m256 __C)
194*344a7f5eSAndroid Build Coastguard Worker {
195*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfnmsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
196*344a7f5eSAndroid Build Coastguard Worker }
197*344a7f5eSAndroid Build Coastguard Worker 
198*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_nmsub_pd(__m256d __A,__m256d __B,__m256d __C)199*344a7f5eSAndroid Build Coastguard Worker _mm256_nmsub_pd(__m256d __A, __m256d __B, __m256d __C)
200*344a7f5eSAndroid Build Coastguard Worker {
201*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfnmsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
202*344a7f5eSAndroid Build Coastguard Worker }
203*344a7f5eSAndroid Build Coastguard Worker 
204*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_maddsub_ps(__m256 __A,__m256 __B,__m256 __C)205*344a7f5eSAndroid Build Coastguard Worker _mm256_maddsub_ps(__m256 __A, __m256 __B, __m256 __C)
206*344a7f5eSAndroid Build Coastguard Worker {
207*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
208*344a7f5eSAndroid Build Coastguard Worker }
209*344a7f5eSAndroid Build Coastguard Worker 
210*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_maddsub_pd(__m256d __A,__m256d __B,__m256d __C)211*344a7f5eSAndroid Build Coastguard Worker _mm256_maddsub_pd(__m256d __A, __m256d __B, __m256d __C)
212*344a7f5eSAndroid Build Coastguard Worker {
213*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
214*344a7f5eSAndroid Build Coastguard Worker }
215*344a7f5eSAndroid Build Coastguard Worker 
216*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_msubadd_ps(__m256 __A,__m256 __B,__m256 __C)217*344a7f5eSAndroid Build Coastguard Worker _mm256_msubadd_ps(__m256 __A, __m256 __B, __m256 __C)
218*344a7f5eSAndroid Build Coastguard Worker {
219*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfmsubaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
220*344a7f5eSAndroid Build Coastguard Worker }
221*344a7f5eSAndroid Build Coastguard Worker 
222*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_msubadd_pd(__m256d __A,__m256d __B,__m256d __C)223*344a7f5eSAndroid Build Coastguard Worker _mm256_msubadd_pd(__m256d __A, __m256d __B, __m256d __C)
224*344a7f5eSAndroid Build Coastguard Worker {
225*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfmsubaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
226*344a7f5eSAndroid Build Coastguard Worker }
227*344a7f5eSAndroid Build Coastguard Worker 
228*344a7f5eSAndroid Build Coastguard Worker #undef __DEFAULT_FN_ATTRS
229*344a7f5eSAndroid Build Coastguard Worker 
230*344a7f5eSAndroid Build Coastguard Worker #endif /* __FMA4INTRIN_H */
231