xref: /aosp_15_r20/prebuilts/sdk/renderscript/clang-include/xopintrin.h (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker /*===---- xopintrin.h - XOP 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 <xopintrin.h> directly; include <x86intrin.h> instead."
26*344a7f5eSAndroid Build Coastguard Worker #endif
27*344a7f5eSAndroid Build Coastguard Worker 
28*344a7f5eSAndroid Build Coastguard Worker #ifndef __XOPINTRIN_H
29*344a7f5eSAndroid Build Coastguard Worker #define __XOPINTRIN_H
30*344a7f5eSAndroid Build Coastguard Worker 
31*344a7f5eSAndroid Build Coastguard Worker #include <fma4intrin.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__("xop")))
35*344a7f5eSAndroid Build Coastguard Worker 
36*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maccs_epi16(__m128i __A,__m128i __B,__m128i __C)37*344a7f5eSAndroid Build Coastguard Worker _mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C)
38*344a7f5eSAndroid Build Coastguard Worker {
39*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacssww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
40*344a7f5eSAndroid Build Coastguard Worker }
41*344a7f5eSAndroid Build Coastguard Worker 
42*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_macc_epi16(__m128i __A,__m128i __B,__m128i __C)43*344a7f5eSAndroid Build Coastguard Worker _mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C)
44*344a7f5eSAndroid Build Coastguard Worker {
45*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacsww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
46*344a7f5eSAndroid Build Coastguard Worker }
47*344a7f5eSAndroid Build Coastguard Worker 
48*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maccsd_epi16(__m128i __A,__m128i __B,__m128i __C)49*344a7f5eSAndroid Build Coastguard Worker _mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C)
50*344a7f5eSAndroid Build Coastguard Worker {
51*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
52*344a7f5eSAndroid Build Coastguard Worker }
53*344a7f5eSAndroid Build Coastguard Worker 
54*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maccd_epi16(__m128i __A,__m128i __B,__m128i __C)55*344a7f5eSAndroid Build Coastguard Worker _mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C)
56*344a7f5eSAndroid Build Coastguard Worker {
57*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
58*344a7f5eSAndroid Build Coastguard Worker }
59*344a7f5eSAndroid Build Coastguard Worker 
60*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maccs_epi32(__m128i __A,__m128i __B,__m128i __C)61*344a7f5eSAndroid Build Coastguard Worker _mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C)
62*344a7f5eSAndroid Build Coastguard Worker {
63*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacssdd((__v4si)__A, (__v4si)__B, (__v4si)__C);
64*344a7f5eSAndroid Build Coastguard Worker }
65*344a7f5eSAndroid Build Coastguard Worker 
66*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_macc_epi32(__m128i __A,__m128i __B,__m128i __C)67*344a7f5eSAndroid Build Coastguard Worker _mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C)
68*344a7f5eSAndroid Build Coastguard Worker {
69*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacsdd((__v4si)__A, (__v4si)__B, (__v4si)__C);
70*344a7f5eSAndroid Build Coastguard Worker }
71*344a7f5eSAndroid Build Coastguard Worker 
72*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maccslo_epi32(__m128i __A,__m128i __B,__m128i __C)73*344a7f5eSAndroid Build Coastguard Worker _mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C)
74*344a7f5eSAndroid Build Coastguard Worker {
75*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacssdql((__v4si)__A, (__v4si)__B, (__v2di)__C);
76*344a7f5eSAndroid Build Coastguard Worker }
77*344a7f5eSAndroid Build Coastguard Worker 
78*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_macclo_epi32(__m128i __A,__m128i __B,__m128i __C)79*344a7f5eSAndroid Build Coastguard Worker _mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C)
80*344a7f5eSAndroid Build Coastguard Worker {
81*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacsdql((__v4si)__A, (__v4si)__B, (__v2di)__C);
82*344a7f5eSAndroid Build Coastguard Worker }
83*344a7f5eSAndroid Build Coastguard Worker 
84*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maccshi_epi32(__m128i __A,__m128i __B,__m128i __C)85*344a7f5eSAndroid Build Coastguard Worker _mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C)
86*344a7f5eSAndroid Build Coastguard Worker {
87*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacssdqh((__v4si)__A, (__v4si)__B, (__v2di)__C);
88*344a7f5eSAndroid Build Coastguard Worker }
89*344a7f5eSAndroid Build Coastguard Worker 
90*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_macchi_epi32(__m128i __A,__m128i __B,__m128i __C)91*344a7f5eSAndroid Build Coastguard Worker _mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C)
92*344a7f5eSAndroid Build Coastguard Worker {
93*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmacsdqh((__v4si)__A, (__v4si)__B, (__v2di)__C);
94*344a7f5eSAndroid Build Coastguard Worker }
95*344a7f5eSAndroid Build Coastguard Worker 
96*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maddsd_epi16(__m128i __A,__m128i __B,__m128i __C)97*344a7f5eSAndroid Build Coastguard Worker _mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C)
98*344a7f5eSAndroid Build Coastguard Worker {
99*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmadcsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
100*344a7f5eSAndroid Build Coastguard Worker }
101*344a7f5eSAndroid Build Coastguard Worker 
102*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_maddd_epi16(__m128i __A,__m128i __B,__m128i __C)103*344a7f5eSAndroid Build Coastguard Worker _mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C)
104*344a7f5eSAndroid Build Coastguard Worker {
105*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpmadcswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
106*344a7f5eSAndroid Build Coastguard Worker }
107*344a7f5eSAndroid Build Coastguard Worker 
108*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddw_epi8(__m128i __A)109*344a7f5eSAndroid Build Coastguard Worker _mm_haddw_epi8(__m128i __A)
110*344a7f5eSAndroid Build Coastguard Worker {
111*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddbw((__v16qi)__A);
112*344a7f5eSAndroid Build Coastguard Worker }
113*344a7f5eSAndroid Build Coastguard Worker 
114*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddd_epi8(__m128i __A)115*344a7f5eSAndroid Build Coastguard Worker _mm_haddd_epi8(__m128i __A)
116*344a7f5eSAndroid Build Coastguard Worker {
117*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddbd((__v16qi)__A);
118*344a7f5eSAndroid Build Coastguard Worker }
119*344a7f5eSAndroid Build Coastguard Worker 
120*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddq_epi8(__m128i __A)121*344a7f5eSAndroid Build Coastguard Worker _mm_haddq_epi8(__m128i __A)
122*344a7f5eSAndroid Build Coastguard Worker {
123*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddbq((__v16qi)__A);
124*344a7f5eSAndroid Build Coastguard Worker }
125*344a7f5eSAndroid Build Coastguard Worker 
126*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddd_epi16(__m128i __A)127*344a7f5eSAndroid Build Coastguard Worker _mm_haddd_epi16(__m128i __A)
128*344a7f5eSAndroid Build Coastguard Worker {
129*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddwd((__v8hi)__A);
130*344a7f5eSAndroid Build Coastguard Worker }
131*344a7f5eSAndroid Build Coastguard Worker 
132*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddq_epi16(__m128i __A)133*344a7f5eSAndroid Build Coastguard Worker _mm_haddq_epi16(__m128i __A)
134*344a7f5eSAndroid Build Coastguard Worker {
135*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddwq((__v8hi)__A);
136*344a7f5eSAndroid Build Coastguard Worker }
137*344a7f5eSAndroid Build Coastguard Worker 
138*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddq_epi32(__m128i __A)139*344a7f5eSAndroid Build Coastguard Worker _mm_haddq_epi32(__m128i __A)
140*344a7f5eSAndroid Build Coastguard Worker {
141*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphadddq((__v4si)__A);
142*344a7f5eSAndroid Build Coastguard Worker }
143*344a7f5eSAndroid Build Coastguard Worker 
144*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddw_epu8(__m128i __A)145*344a7f5eSAndroid Build Coastguard Worker _mm_haddw_epu8(__m128i __A)
146*344a7f5eSAndroid Build Coastguard Worker {
147*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddubw((__v16qi)__A);
148*344a7f5eSAndroid Build Coastguard Worker }
149*344a7f5eSAndroid Build Coastguard Worker 
150*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddd_epu8(__m128i __A)151*344a7f5eSAndroid Build Coastguard Worker _mm_haddd_epu8(__m128i __A)
152*344a7f5eSAndroid Build Coastguard Worker {
153*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddubd((__v16qi)__A);
154*344a7f5eSAndroid Build Coastguard Worker }
155*344a7f5eSAndroid Build Coastguard Worker 
156*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddq_epu8(__m128i __A)157*344a7f5eSAndroid Build Coastguard Worker _mm_haddq_epu8(__m128i __A)
158*344a7f5eSAndroid Build Coastguard Worker {
159*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddubq((__v16qi)__A);
160*344a7f5eSAndroid Build Coastguard Worker }
161*344a7f5eSAndroid Build Coastguard Worker 
162*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddd_epu16(__m128i __A)163*344a7f5eSAndroid Build Coastguard Worker _mm_haddd_epu16(__m128i __A)
164*344a7f5eSAndroid Build Coastguard Worker {
165*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphadduwd((__v8hi)__A);
166*344a7f5eSAndroid Build Coastguard Worker }
167*344a7f5eSAndroid Build Coastguard Worker 
168*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddq_epu16(__m128i __A)169*344a7f5eSAndroid Build Coastguard Worker _mm_haddq_epu16(__m128i __A)
170*344a7f5eSAndroid Build Coastguard Worker {
171*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphadduwq((__v8hi)__A);
172*344a7f5eSAndroid Build Coastguard Worker }
173*344a7f5eSAndroid Build Coastguard Worker 
174*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_haddq_epu32(__m128i __A)175*344a7f5eSAndroid Build Coastguard Worker _mm_haddq_epu32(__m128i __A)
176*344a7f5eSAndroid Build Coastguard Worker {
177*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphaddudq((__v4si)__A);
178*344a7f5eSAndroid Build Coastguard Worker }
179*344a7f5eSAndroid Build Coastguard Worker 
180*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_hsubw_epi8(__m128i __A)181*344a7f5eSAndroid Build Coastguard Worker _mm_hsubw_epi8(__m128i __A)
182*344a7f5eSAndroid Build Coastguard Worker {
183*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphsubbw((__v16qi)__A);
184*344a7f5eSAndroid Build Coastguard Worker }
185*344a7f5eSAndroid Build Coastguard Worker 
186*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_hsubd_epi16(__m128i __A)187*344a7f5eSAndroid Build Coastguard Worker _mm_hsubd_epi16(__m128i __A)
188*344a7f5eSAndroid Build Coastguard Worker {
189*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphsubwd((__v8hi)__A);
190*344a7f5eSAndroid Build Coastguard Worker }
191*344a7f5eSAndroid Build Coastguard Worker 
192*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_hsubq_epi32(__m128i __A)193*344a7f5eSAndroid Build Coastguard Worker _mm_hsubq_epi32(__m128i __A)
194*344a7f5eSAndroid Build Coastguard Worker {
195*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vphsubdq((__v4si)__A);
196*344a7f5eSAndroid Build Coastguard Worker }
197*344a7f5eSAndroid Build Coastguard Worker 
198*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_cmov_si128(__m128i __A,__m128i __B,__m128i __C)199*344a7f5eSAndroid Build Coastguard Worker _mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C)
200*344a7f5eSAndroid Build Coastguard Worker {
201*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpcmov((__v2di)__A, (__v2di)__B, (__v2di)__C);
202*344a7f5eSAndroid Build Coastguard Worker }
203*344a7f5eSAndroid Build Coastguard Worker 
204*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm256_cmov_si256(__m256i __A,__m256i __B,__m256i __C)205*344a7f5eSAndroid Build Coastguard Worker _mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C)
206*344a7f5eSAndroid Build Coastguard Worker {
207*344a7f5eSAndroid Build Coastguard Worker   return (__m256i)__builtin_ia32_vpcmov_256((__v4di)__A, (__v4di)__B, (__v4di)__C);
208*344a7f5eSAndroid Build Coastguard Worker }
209*344a7f5eSAndroid Build Coastguard Worker 
210*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_perm_epi8(__m128i __A,__m128i __B,__m128i __C)211*344a7f5eSAndroid Build Coastguard Worker _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
212*344a7f5eSAndroid Build Coastguard Worker {
213*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpperm((__v16qi)__A, (__v16qi)__B, (__v16qi)__C);
214*344a7f5eSAndroid Build Coastguard Worker }
215*344a7f5eSAndroid Build Coastguard Worker 
216*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_rot_epi8(__m128i __A,__m128i __B)217*344a7f5eSAndroid Build Coastguard Worker _mm_rot_epi8(__m128i __A, __m128i __B)
218*344a7f5eSAndroid Build Coastguard Worker {
219*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vprotb((__v16qi)__A, (__v16qi)__B);
220*344a7f5eSAndroid Build Coastguard Worker }
221*344a7f5eSAndroid Build Coastguard Worker 
222*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_rot_epi16(__m128i __A,__m128i __B)223*344a7f5eSAndroid Build Coastguard Worker _mm_rot_epi16(__m128i __A, __m128i __B)
224*344a7f5eSAndroid Build Coastguard Worker {
225*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vprotw((__v8hi)__A, (__v8hi)__B);
226*344a7f5eSAndroid Build Coastguard Worker }
227*344a7f5eSAndroid Build Coastguard Worker 
228*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_rot_epi32(__m128i __A,__m128i __B)229*344a7f5eSAndroid Build Coastguard Worker _mm_rot_epi32(__m128i __A, __m128i __B)
230*344a7f5eSAndroid Build Coastguard Worker {
231*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vprotd((__v4si)__A, (__v4si)__B);
232*344a7f5eSAndroid Build Coastguard Worker }
233*344a7f5eSAndroid Build Coastguard Worker 
234*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_rot_epi64(__m128i __A,__m128i __B)235*344a7f5eSAndroid Build Coastguard Worker _mm_rot_epi64(__m128i __A, __m128i __B)
236*344a7f5eSAndroid Build Coastguard Worker {
237*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vprotq((__v2di)__A, (__v2di)__B);
238*344a7f5eSAndroid Build Coastguard Worker }
239*344a7f5eSAndroid Build Coastguard Worker 
240*344a7f5eSAndroid Build Coastguard Worker #define _mm_roti_epi8(A, N) __extension__ ({ \
241*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vprotbi((__v16qi)(__m128i)(A), (N)); })
242*344a7f5eSAndroid Build Coastguard Worker 
243*344a7f5eSAndroid Build Coastguard Worker #define _mm_roti_epi16(A, N) __extension__ ({ \
244*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vprotwi((__v8hi)(__m128i)(A), (N)); })
245*344a7f5eSAndroid Build Coastguard Worker 
246*344a7f5eSAndroid Build Coastguard Worker #define _mm_roti_epi32(A, N) __extension__ ({ \
247*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vprotdi((__v4si)(__m128i)(A), (N)); })
248*344a7f5eSAndroid Build Coastguard Worker 
249*344a7f5eSAndroid Build Coastguard Worker #define _mm_roti_epi64(A, N) __extension__ ({ \
250*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vprotqi((__v2di)(__m128i)(A), (N)); })
251*344a7f5eSAndroid Build Coastguard Worker 
252*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_shl_epi8(__m128i __A,__m128i __B)253*344a7f5eSAndroid Build Coastguard Worker _mm_shl_epi8(__m128i __A, __m128i __B)
254*344a7f5eSAndroid Build Coastguard Worker {
255*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshlb((__v16qi)__A, (__v16qi)__B);
256*344a7f5eSAndroid Build Coastguard Worker }
257*344a7f5eSAndroid Build Coastguard Worker 
258*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_shl_epi16(__m128i __A,__m128i __B)259*344a7f5eSAndroid Build Coastguard Worker _mm_shl_epi16(__m128i __A, __m128i __B)
260*344a7f5eSAndroid Build Coastguard Worker {
261*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshlw((__v8hi)__A, (__v8hi)__B);
262*344a7f5eSAndroid Build Coastguard Worker }
263*344a7f5eSAndroid Build Coastguard Worker 
264*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_shl_epi32(__m128i __A,__m128i __B)265*344a7f5eSAndroid Build Coastguard Worker _mm_shl_epi32(__m128i __A, __m128i __B)
266*344a7f5eSAndroid Build Coastguard Worker {
267*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshld((__v4si)__A, (__v4si)__B);
268*344a7f5eSAndroid Build Coastguard Worker }
269*344a7f5eSAndroid Build Coastguard Worker 
270*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_shl_epi64(__m128i __A,__m128i __B)271*344a7f5eSAndroid Build Coastguard Worker _mm_shl_epi64(__m128i __A, __m128i __B)
272*344a7f5eSAndroid Build Coastguard Worker {
273*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshlq((__v2di)__A, (__v2di)__B);
274*344a7f5eSAndroid Build Coastguard Worker }
275*344a7f5eSAndroid Build Coastguard Worker 
276*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_sha_epi8(__m128i __A,__m128i __B)277*344a7f5eSAndroid Build Coastguard Worker _mm_sha_epi8(__m128i __A, __m128i __B)
278*344a7f5eSAndroid Build Coastguard Worker {
279*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshab((__v16qi)__A, (__v16qi)__B);
280*344a7f5eSAndroid Build Coastguard Worker }
281*344a7f5eSAndroid Build Coastguard Worker 
282*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_sha_epi16(__m128i __A,__m128i __B)283*344a7f5eSAndroid Build Coastguard Worker _mm_sha_epi16(__m128i __A, __m128i __B)
284*344a7f5eSAndroid Build Coastguard Worker {
285*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshaw((__v8hi)__A, (__v8hi)__B);
286*344a7f5eSAndroid Build Coastguard Worker }
287*344a7f5eSAndroid Build Coastguard Worker 
288*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_sha_epi32(__m128i __A,__m128i __B)289*344a7f5eSAndroid Build Coastguard Worker _mm_sha_epi32(__m128i __A, __m128i __B)
290*344a7f5eSAndroid Build Coastguard Worker {
291*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshad((__v4si)__A, (__v4si)__B);
292*344a7f5eSAndroid Build Coastguard Worker }
293*344a7f5eSAndroid Build Coastguard Worker 
294*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_sha_epi64(__m128i __A,__m128i __B)295*344a7f5eSAndroid Build Coastguard Worker _mm_sha_epi64(__m128i __A, __m128i __B)
296*344a7f5eSAndroid Build Coastguard Worker {
297*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_ia32_vpshaq((__v2di)__A, (__v2di)__B);
298*344a7f5eSAndroid Build Coastguard Worker }
299*344a7f5eSAndroid Build Coastguard Worker 
300*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epu8(A, B, N) __extension__ ({ \
301*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomub((__v16qi)(__m128i)(A), \
302*344a7f5eSAndroid Build Coastguard Worker                                   (__v16qi)(__m128i)(B), (N)); })
303*344a7f5eSAndroid Build Coastguard Worker 
304*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epu16(A, B, N) __extension__ ({ \
305*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomuw((__v8hi)(__m128i)(A), \
306*344a7f5eSAndroid Build Coastguard Worker                                   (__v8hi)(__m128i)(B), (N)); })
307*344a7f5eSAndroid Build Coastguard Worker 
308*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epu32(A, B, N) __extension__ ({ \
309*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomud((__v4si)(__m128i)(A), \
310*344a7f5eSAndroid Build Coastguard Worker                                   (__v4si)(__m128i)(B), (N)); })
311*344a7f5eSAndroid Build Coastguard Worker 
312*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epu64(A, B, N) __extension__ ({ \
313*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomuq((__v2di)(__m128i)(A), \
314*344a7f5eSAndroid Build Coastguard Worker                                   (__v2di)(__m128i)(B), (N)); })
315*344a7f5eSAndroid Build Coastguard Worker 
316*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epi8(A, B, N) __extension__ ({ \
317*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomb((__v16qi)(__m128i)(A), \
318*344a7f5eSAndroid Build Coastguard Worker                                  (__v16qi)(__m128i)(B), (N)); })
319*344a7f5eSAndroid Build Coastguard Worker 
320*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epi16(A, B, N) __extension__ ({ \
321*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomw((__v8hi)(__m128i)(A), \
322*344a7f5eSAndroid Build Coastguard Worker                                  (__v8hi)(__m128i)(B), (N)); })
323*344a7f5eSAndroid Build Coastguard Worker 
324*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epi32(A, B, N) __extension__ ({ \
325*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomd((__v4si)(__m128i)(A), \
326*344a7f5eSAndroid Build Coastguard Worker                                  (__v4si)(__m128i)(B), (N)); })
327*344a7f5eSAndroid Build Coastguard Worker 
328*344a7f5eSAndroid Build Coastguard Worker #define _mm_com_epi64(A, B, N) __extension__ ({ \
329*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_vpcomq((__v2di)(__m128i)(A), \
330*344a7f5eSAndroid Build Coastguard Worker                                  (__v2di)(__m128i)(B), (N)); })
331*344a7f5eSAndroid Build Coastguard Worker 
332*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_LT    0
333*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_LE    1
334*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_GT    2
335*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_GE    3
336*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_EQ    4
337*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_NEQ   5
338*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_FALSE 6
339*344a7f5eSAndroid Build Coastguard Worker #define _MM_PCOMCTRL_TRUE  7
340*344a7f5eSAndroid Build Coastguard Worker 
341*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epu8(__m128i __A,__m128i __B)342*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epu8(__m128i __A, __m128i __B)
343*344a7f5eSAndroid Build Coastguard Worker {
344*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LT);
345*344a7f5eSAndroid Build Coastguard Worker }
346*344a7f5eSAndroid Build Coastguard Worker 
347*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epu8(__m128i __A,__m128i __B)348*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epu8(__m128i __A, __m128i __B)
349*344a7f5eSAndroid Build Coastguard Worker {
350*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LE);
351*344a7f5eSAndroid Build Coastguard Worker }
352*344a7f5eSAndroid Build Coastguard Worker 
353*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epu8(__m128i __A,__m128i __B)354*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epu8(__m128i __A, __m128i __B)
355*344a7f5eSAndroid Build Coastguard Worker {
356*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GT);
357*344a7f5eSAndroid Build Coastguard Worker }
358*344a7f5eSAndroid Build Coastguard Worker 
359*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epu8(__m128i __A,__m128i __B)360*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epu8(__m128i __A, __m128i __B)
361*344a7f5eSAndroid Build Coastguard Worker {
362*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GE);
363*344a7f5eSAndroid Build Coastguard Worker }
364*344a7f5eSAndroid Build Coastguard Worker 
365*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epu8(__m128i __A,__m128i __B)366*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epu8(__m128i __A, __m128i __B)
367*344a7f5eSAndroid Build Coastguard Worker {
368*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_EQ);
369*344a7f5eSAndroid Build Coastguard Worker }
370*344a7f5eSAndroid Build Coastguard Worker 
371*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epu8(__m128i __A,__m128i __B)372*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epu8(__m128i __A, __m128i __B)
373*344a7f5eSAndroid Build Coastguard Worker {
374*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_NEQ);
375*344a7f5eSAndroid Build Coastguard Worker }
376*344a7f5eSAndroid Build Coastguard Worker 
377*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epu8(__m128i __A,__m128i __B)378*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epu8(__m128i __A, __m128i __B)
379*344a7f5eSAndroid Build Coastguard Worker {
380*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_FALSE);
381*344a7f5eSAndroid Build Coastguard Worker }
382*344a7f5eSAndroid Build Coastguard Worker 
383*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epu8(__m128i __A,__m128i __B)384*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epu8(__m128i __A, __m128i __B)
385*344a7f5eSAndroid Build Coastguard Worker {
386*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_TRUE);
387*344a7f5eSAndroid Build Coastguard Worker }
388*344a7f5eSAndroid Build Coastguard Worker 
389*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epu16(__m128i __A,__m128i __B)390*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epu16(__m128i __A, __m128i __B)
391*344a7f5eSAndroid Build Coastguard Worker {
392*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LT);
393*344a7f5eSAndroid Build Coastguard Worker }
394*344a7f5eSAndroid Build Coastguard Worker 
395*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epu16(__m128i __A,__m128i __B)396*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epu16(__m128i __A, __m128i __B)
397*344a7f5eSAndroid Build Coastguard Worker {
398*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LE);
399*344a7f5eSAndroid Build Coastguard Worker }
400*344a7f5eSAndroid Build Coastguard Worker 
401*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epu16(__m128i __A,__m128i __B)402*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epu16(__m128i __A, __m128i __B)
403*344a7f5eSAndroid Build Coastguard Worker {
404*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GT);
405*344a7f5eSAndroid Build Coastguard Worker }
406*344a7f5eSAndroid Build Coastguard Worker 
407*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epu16(__m128i __A,__m128i __B)408*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epu16(__m128i __A, __m128i __B)
409*344a7f5eSAndroid Build Coastguard Worker {
410*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GE);
411*344a7f5eSAndroid Build Coastguard Worker }
412*344a7f5eSAndroid Build Coastguard Worker 
413*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epu16(__m128i __A,__m128i __B)414*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epu16(__m128i __A, __m128i __B)
415*344a7f5eSAndroid Build Coastguard Worker {
416*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_EQ);
417*344a7f5eSAndroid Build Coastguard Worker }
418*344a7f5eSAndroid Build Coastguard Worker 
419*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epu16(__m128i __A,__m128i __B)420*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epu16(__m128i __A, __m128i __B)
421*344a7f5eSAndroid Build Coastguard Worker {
422*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_NEQ);
423*344a7f5eSAndroid Build Coastguard Worker }
424*344a7f5eSAndroid Build Coastguard Worker 
425*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epu16(__m128i __A,__m128i __B)426*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epu16(__m128i __A, __m128i __B)
427*344a7f5eSAndroid Build Coastguard Worker {
428*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_FALSE);
429*344a7f5eSAndroid Build Coastguard Worker }
430*344a7f5eSAndroid Build Coastguard Worker 
431*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epu16(__m128i __A,__m128i __B)432*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epu16(__m128i __A, __m128i __B)
433*344a7f5eSAndroid Build Coastguard Worker {
434*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_TRUE);
435*344a7f5eSAndroid Build Coastguard Worker }
436*344a7f5eSAndroid Build Coastguard Worker 
437*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epu32(__m128i __A,__m128i __B)438*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epu32(__m128i __A, __m128i __B)
439*344a7f5eSAndroid Build Coastguard Worker {
440*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LT);
441*344a7f5eSAndroid Build Coastguard Worker }
442*344a7f5eSAndroid Build Coastguard Worker 
443*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epu32(__m128i __A,__m128i __B)444*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epu32(__m128i __A, __m128i __B)
445*344a7f5eSAndroid Build Coastguard Worker {
446*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LE);
447*344a7f5eSAndroid Build Coastguard Worker }
448*344a7f5eSAndroid Build Coastguard Worker 
449*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epu32(__m128i __A,__m128i __B)450*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epu32(__m128i __A, __m128i __B)
451*344a7f5eSAndroid Build Coastguard Worker {
452*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GT);
453*344a7f5eSAndroid Build Coastguard Worker }
454*344a7f5eSAndroid Build Coastguard Worker 
455*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epu32(__m128i __A,__m128i __B)456*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epu32(__m128i __A, __m128i __B)
457*344a7f5eSAndroid Build Coastguard Worker {
458*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GE);
459*344a7f5eSAndroid Build Coastguard Worker }
460*344a7f5eSAndroid Build Coastguard Worker 
461*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epu32(__m128i __A,__m128i __B)462*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epu32(__m128i __A, __m128i __B)
463*344a7f5eSAndroid Build Coastguard Worker {
464*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_EQ);
465*344a7f5eSAndroid Build Coastguard Worker }
466*344a7f5eSAndroid Build Coastguard Worker 
467*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epu32(__m128i __A,__m128i __B)468*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epu32(__m128i __A, __m128i __B)
469*344a7f5eSAndroid Build Coastguard Worker {
470*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_NEQ);
471*344a7f5eSAndroid Build Coastguard Worker }
472*344a7f5eSAndroid Build Coastguard Worker 
473*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epu32(__m128i __A,__m128i __B)474*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epu32(__m128i __A, __m128i __B)
475*344a7f5eSAndroid Build Coastguard Worker {
476*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_FALSE);
477*344a7f5eSAndroid Build Coastguard Worker }
478*344a7f5eSAndroid Build Coastguard Worker 
479*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epu32(__m128i __A,__m128i __B)480*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epu32(__m128i __A, __m128i __B)
481*344a7f5eSAndroid Build Coastguard Worker {
482*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_TRUE);
483*344a7f5eSAndroid Build Coastguard Worker }
484*344a7f5eSAndroid Build Coastguard Worker 
485*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epu64(__m128i __A,__m128i __B)486*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epu64(__m128i __A, __m128i __B)
487*344a7f5eSAndroid Build Coastguard Worker {
488*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LT);
489*344a7f5eSAndroid Build Coastguard Worker }
490*344a7f5eSAndroid Build Coastguard Worker 
491*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epu64(__m128i __A,__m128i __B)492*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epu64(__m128i __A, __m128i __B)
493*344a7f5eSAndroid Build Coastguard Worker {
494*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LE);
495*344a7f5eSAndroid Build Coastguard Worker }
496*344a7f5eSAndroid Build Coastguard Worker 
497*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epu64(__m128i __A,__m128i __B)498*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epu64(__m128i __A, __m128i __B)
499*344a7f5eSAndroid Build Coastguard Worker {
500*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GT);
501*344a7f5eSAndroid Build Coastguard Worker }
502*344a7f5eSAndroid Build Coastguard Worker 
503*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epu64(__m128i __A,__m128i __B)504*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epu64(__m128i __A, __m128i __B)
505*344a7f5eSAndroid Build Coastguard Worker {
506*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GE);
507*344a7f5eSAndroid Build Coastguard Worker }
508*344a7f5eSAndroid Build Coastguard Worker 
509*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epu64(__m128i __A,__m128i __B)510*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epu64(__m128i __A, __m128i __B)
511*344a7f5eSAndroid Build Coastguard Worker {
512*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_EQ);
513*344a7f5eSAndroid Build Coastguard Worker }
514*344a7f5eSAndroid Build Coastguard Worker 
515*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epu64(__m128i __A,__m128i __B)516*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epu64(__m128i __A, __m128i __B)
517*344a7f5eSAndroid Build Coastguard Worker {
518*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_NEQ);
519*344a7f5eSAndroid Build Coastguard Worker }
520*344a7f5eSAndroid Build Coastguard Worker 
521*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epu64(__m128i __A,__m128i __B)522*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epu64(__m128i __A, __m128i __B)
523*344a7f5eSAndroid Build Coastguard Worker {
524*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_FALSE);
525*344a7f5eSAndroid Build Coastguard Worker }
526*344a7f5eSAndroid Build Coastguard Worker 
527*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epu64(__m128i __A,__m128i __B)528*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epu64(__m128i __A, __m128i __B)
529*344a7f5eSAndroid Build Coastguard Worker {
530*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_TRUE);
531*344a7f5eSAndroid Build Coastguard Worker }
532*344a7f5eSAndroid Build Coastguard Worker 
533*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epi8(__m128i __A,__m128i __B)534*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epi8(__m128i __A, __m128i __B)
535*344a7f5eSAndroid Build Coastguard Worker {
536*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LT);
537*344a7f5eSAndroid Build Coastguard Worker }
538*344a7f5eSAndroid Build Coastguard Worker 
539*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epi8(__m128i __A,__m128i __B)540*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epi8(__m128i __A, __m128i __B)
541*344a7f5eSAndroid Build Coastguard Worker {
542*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LE);
543*344a7f5eSAndroid Build Coastguard Worker }
544*344a7f5eSAndroid Build Coastguard Worker 
545*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epi8(__m128i __A,__m128i __B)546*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epi8(__m128i __A, __m128i __B)
547*344a7f5eSAndroid Build Coastguard Worker {
548*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GT);
549*344a7f5eSAndroid Build Coastguard Worker }
550*344a7f5eSAndroid Build Coastguard Worker 
551*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epi8(__m128i __A,__m128i __B)552*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epi8(__m128i __A, __m128i __B)
553*344a7f5eSAndroid Build Coastguard Worker {
554*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GE);
555*344a7f5eSAndroid Build Coastguard Worker }
556*344a7f5eSAndroid Build Coastguard Worker 
557*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epi8(__m128i __A,__m128i __B)558*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epi8(__m128i __A, __m128i __B)
559*344a7f5eSAndroid Build Coastguard Worker {
560*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_EQ);
561*344a7f5eSAndroid Build Coastguard Worker }
562*344a7f5eSAndroid Build Coastguard Worker 
563*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epi8(__m128i __A,__m128i __B)564*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epi8(__m128i __A, __m128i __B)
565*344a7f5eSAndroid Build Coastguard Worker {
566*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_NEQ);
567*344a7f5eSAndroid Build Coastguard Worker }
568*344a7f5eSAndroid Build Coastguard Worker 
569*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epi8(__m128i __A,__m128i __B)570*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epi8(__m128i __A, __m128i __B)
571*344a7f5eSAndroid Build Coastguard Worker {
572*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_FALSE);
573*344a7f5eSAndroid Build Coastguard Worker }
574*344a7f5eSAndroid Build Coastguard Worker 
575*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epi8(__m128i __A,__m128i __B)576*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epi8(__m128i __A, __m128i __B)
577*344a7f5eSAndroid Build Coastguard Worker {
578*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_TRUE);
579*344a7f5eSAndroid Build Coastguard Worker }
580*344a7f5eSAndroid Build Coastguard Worker 
581*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epi16(__m128i __A,__m128i __B)582*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epi16(__m128i __A, __m128i __B)
583*344a7f5eSAndroid Build Coastguard Worker {
584*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LT);
585*344a7f5eSAndroid Build Coastguard Worker }
586*344a7f5eSAndroid Build Coastguard Worker 
587*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epi16(__m128i __A,__m128i __B)588*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epi16(__m128i __A, __m128i __B)
589*344a7f5eSAndroid Build Coastguard Worker {
590*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LE);
591*344a7f5eSAndroid Build Coastguard Worker }
592*344a7f5eSAndroid Build Coastguard Worker 
593*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epi16(__m128i __A,__m128i __B)594*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epi16(__m128i __A, __m128i __B)
595*344a7f5eSAndroid Build Coastguard Worker {
596*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GT);
597*344a7f5eSAndroid Build Coastguard Worker }
598*344a7f5eSAndroid Build Coastguard Worker 
599*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epi16(__m128i __A,__m128i __B)600*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epi16(__m128i __A, __m128i __B)
601*344a7f5eSAndroid Build Coastguard Worker {
602*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GE);
603*344a7f5eSAndroid Build Coastguard Worker }
604*344a7f5eSAndroid Build Coastguard Worker 
605*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epi16(__m128i __A,__m128i __B)606*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epi16(__m128i __A, __m128i __B)
607*344a7f5eSAndroid Build Coastguard Worker {
608*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_EQ);
609*344a7f5eSAndroid Build Coastguard Worker }
610*344a7f5eSAndroid Build Coastguard Worker 
611*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epi16(__m128i __A,__m128i __B)612*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epi16(__m128i __A, __m128i __B)
613*344a7f5eSAndroid Build Coastguard Worker {
614*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_NEQ);
615*344a7f5eSAndroid Build Coastguard Worker }
616*344a7f5eSAndroid Build Coastguard Worker 
617*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epi16(__m128i __A,__m128i __B)618*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epi16(__m128i __A, __m128i __B)
619*344a7f5eSAndroid Build Coastguard Worker {
620*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_FALSE);
621*344a7f5eSAndroid Build Coastguard Worker }
622*344a7f5eSAndroid Build Coastguard Worker 
623*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epi16(__m128i __A,__m128i __B)624*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epi16(__m128i __A, __m128i __B)
625*344a7f5eSAndroid Build Coastguard Worker {
626*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_TRUE);
627*344a7f5eSAndroid Build Coastguard Worker }
628*344a7f5eSAndroid Build Coastguard Worker 
629*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epi32(__m128i __A,__m128i __B)630*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epi32(__m128i __A, __m128i __B)
631*344a7f5eSAndroid Build Coastguard Worker {
632*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LT);
633*344a7f5eSAndroid Build Coastguard Worker }
634*344a7f5eSAndroid Build Coastguard Worker 
635*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epi32(__m128i __A,__m128i __B)636*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epi32(__m128i __A, __m128i __B)
637*344a7f5eSAndroid Build Coastguard Worker {
638*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LE);
639*344a7f5eSAndroid Build Coastguard Worker }
640*344a7f5eSAndroid Build Coastguard Worker 
641*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epi32(__m128i __A,__m128i __B)642*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epi32(__m128i __A, __m128i __B)
643*344a7f5eSAndroid Build Coastguard Worker {
644*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GT);
645*344a7f5eSAndroid Build Coastguard Worker }
646*344a7f5eSAndroid Build Coastguard Worker 
647*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epi32(__m128i __A,__m128i __B)648*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epi32(__m128i __A, __m128i __B)
649*344a7f5eSAndroid Build Coastguard Worker {
650*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GE);
651*344a7f5eSAndroid Build Coastguard Worker }
652*344a7f5eSAndroid Build Coastguard Worker 
653*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epi32(__m128i __A,__m128i __B)654*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epi32(__m128i __A, __m128i __B)
655*344a7f5eSAndroid Build Coastguard Worker {
656*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_EQ);
657*344a7f5eSAndroid Build Coastguard Worker }
658*344a7f5eSAndroid Build Coastguard Worker 
659*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epi32(__m128i __A,__m128i __B)660*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epi32(__m128i __A, __m128i __B)
661*344a7f5eSAndroid Build Coastguard Worker {
662*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_NEQ);
663*344a7f5eSAndroid Build Coastguard Worker }
664*344a7f5eSAndroid Build Coastguard Worker 
665*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epi32(__m128i __A,__m128i __B)666*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epi32(__m128i __A, __m128i __B)
667*344a7f5eSAndroid Build Coastguard Worker {
668*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_FALSE);
669*344a7f5eSAndroid Build Coastguard Worker }
670*344a7f5eSAndroid Build Coastguard Worker 
671*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epi32(__m128i __A,__m128i __B)672*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epi32(__m128i __A, __m128i __B)
673*344a7f5eSAndroid Build Coastguard Worker {
674*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_TRUE);
675*344a7f5eSAndroid Build Coastguard Worker }
676*344a7f5eSAndroid Build Coastguard Worker 
677*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comlt_epi64(__m128i __A,__m128i __B)678*344a7f5eSAndroid Build Coastguard Worker _mm_comlt_epi64(__m128i __A, __m128i __B)
679*344a7f5eSAndroid Build Coastguard Worker {
680*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LT);
681*344a7f5eSAndroid Build Coastguard Worker }
682*344a7f5eSAndroid Build Coastguard Worker 
683*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comle_epi64(__m128i __A,__m128i __B)684*344a7f5eSAndroid Build Coastguard Worker _mm_comle_epi64(__m128i __A, __m128i __B)
685*344a7f5eSAndroid Build Coastguard Worker {
686*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LE);
687*344a7f5eSAndroid Build Coastguard Worker }
688*344a7f5eSAndroid Build Coastguard Worker 
689*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comgt_epi64(__m128i __A,__m128i __B)690*344a7f5eSAndroid Build Coastguard Worker _mm_comgt_epi64(__m128i __A, __m128i __B)
691*344a7f5eSAndroid Build Coastguard Worker {
692*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GT);
693*344a7f5eSAndroid Build Coastguard Worker }
694*344a7f5eSAndroid Build Coastguard Worker 
695*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comge_epi64(__m128i __A,__m128i __B)696*344a7f5eSAndroid Build Coastguard Worker _mm_comge_epi64(__m128i __A, __m128i __B)
697*344a7f5eSAndroid Build Coastguard Worker {
698*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GE);
699*344a7f5eSAndroid Build Coastguard Worker }
700*344a7f5eSAndroid Build Coastguard Worker 
701*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comeq_epi64(__m128i __A,__m128i __B)702*344a7f5eSAndroid Build Coastguard Worker _mm_comeq_epi64(__m128i __A, __m128i __B)
703*344a7f5eSAndroid Build Coastguard Worker {
704*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_EQ);
705*344a7f5eSAndroid Build Coastguard Worker }
706*344a7f5eSAndroid Build Coastguard Worker 
707*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comneq_epi64(__m128i __A,__m128i __B)708*344a7f5eSAndroid Build Coastguard Worker _mm_comneq_epi64(__m128i __A, __m128i __B)
709*344a7f5eSAndroid Build Coastguard Worker {
710*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_NEQ);
711*344a7f5eSAndroid Build Coastguard Worker }
712*344a7f5eSAndroid Build Coastguard Worker 
713*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comfalse_epi64(__m128i __A,__m128i __B)714*344a7f5eSAndroid Build Coastguard Worker _mm_comfalse_epi64(__m128i __A, __m128i __B)
715*344a7f5eSAndroid Build Coastguard Worker {
716*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_FALSE);
717*344a7f5eSAndroid Build Coastguard Worker }
718*344a7f5eSAndroid Build Coastguard Worker 
719*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm_comtrue_epi64(__m128i __A,__m128i __B)720*344a7f5eSAndroid Build Coastguard Worker _mm_comtrue_epi64(__m128i __A, __m128i __B)
721*344a7f5eSAndroid Build Coastguard Worker {
722*344a7f5eSAndroid Build Coastguard Worker   return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_TRUE);
723*344a7f5eSAndroid Build Coastguard Worker }
724*344a7f5eSAndroid Build Coastguard Worker 
725*344a7f5eSAndroid Build Coastguard Worker #define _mm_permute2_pd(X, Y, C, I) __extension__ ({ \
726*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vpermil2pd((__v2df)(__m128d)(X), \
727*344a7f5eSAndroid Build Coastguard Worker                                      (__v2df)(__m128d)(Y), \
728*344a7f5eSAndroid Build Coastguard Worker                                      (__v2di)(__m128i)(C), (I)); })
729*344a7f5eSAndroid Build Coastguard Worker 
730*344a7f5eSAndroid Build Coastguard Worker #define _mm256_permute2_pd(X, Y, C, I) __extension__ ({ \
731*344a7f5eSAndroid Build Coastguard Worker   (__m256d)__builtin_ia32_vpermil2pd256((__v4df)(__m256d)(X), \
732*344a7f5eSAndroid Build Coastguard Worker                                         (__v4df)(__m256d)(Y), \
733*344a7f5eSAndroid Build Coastguard Worker                                         (__v4di)(__m256i)(C), (I)); })
734*344a7f5eSAndroid Build Coastguard Worker 
735*344a7f5eSAndroid Build Coastguard Worker #define _mm_permute2_ps(X, Y, C, I) __extension__ ({ \
736*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vpermil2ps((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), \
737*344a7f5eSAndroid Build Coastguard Worker                                     (__v4si)(__m128i)(C), (I)); })
738*344a7f5eSAndroid Build Coastguard Worker 
739*344a7f5eSAndroid Build Coastguard Worker #define _mm256_permute2_ps(X, Y, C, I) __extension__ ({ \
740*344a7f5eSAndroid Build Coastguard Worker   (__m256)__builtin_ia32_vpermil2ps256((__v8sf)(__m256)(X), \
741*344a7f5eSAndroid Build Coastguard Worker                                        (__v8sf)(__m256)(Y), \
742*344a7f5eSAndroid Build Coastguard Worker                                        (__v8si)(__m256i)(C), (I)); })
743*344a7f5eSAndroid Build Coastguard Worker 
744*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_frcz_ss(__m128 __A)745*344a7f5eSAndroid Build Coastguard Worker _mm_frcz_ss(__m128 __A)
746*344a7f5eSAndroid Build Coastguard Worker {
747*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfrczss((__v4sf)__A);
748*344a7f5eSAndroid Build Coastguard Worker }
749*344a7f5eSAndroid Build Coastguard Worker 
750*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_frcz_sd(__m128d __A)751*344a7f5eSAndroid Build Coastguard Worker _mm_frcz_sd(__m128d __A)
752*344a7f5eSAndroid Build Coastguard Worker {
753*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfrczsd((__v2df)__A);
754*344a7f5eSAndroid Build Coastguard Worker }
755*344a7f5eSAndroid Build Coastguard Worker 
756*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_frcz_ps(__m128 __A)757*344a7f5eSAndroid Build Coastguard Worker _mm_frcz_ps(__m128 __A)
758*344a7f5eSAndroid Build Coastguard Worker {
759*344a7f5eSAndroid Build Coastguard Worker   return (__m128)__builtin_ia32_vfrczps((__v4sf)__A);
760*344a7f5eSAndroid Build Coastguard Worker }
761*344a7f5eSAndroid Build Coastguard Worker 
762*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_frcz_pd(__m128d __A)763*344a7f5eSAndroid Build Coastguard Worker _mm_frcz_pd(__m128d __A)
764*344a7f5eSAndroid Build Coastguard Worker {
765*344a7f5eSAndroid Build Coastguard Worker   return (__m128d)__builtin_ia32_vfrczpd((__v2df)__A);
766*344a7f5eSAndroid Build Coastguard Worker }
767*344a7f5eSAndroid Build Coastguard Worker 
768*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm256_frcz_ps(__m256 __A)769*344a7f5eSAndroid Build Coastguard Worker _mm256_frcz_ps(__m256 __A)
770*344a7f5eSAndroid Build Coastguard Worker {
771*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vfrczps256((__v8sf)__A);
772*344a7f5eSAndroid Build Coastguard Worker }
773*344a7f5eSAndroid Build Coastguard Worker 
774*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256d __DEFAULT_FN_ATTRS
_mm256_frcz_pd(__m256d __A)775*344a7f5eSAndroid Build Coastguard Worker _mm256_frcz_pd(__m256d __A)
776*344a7f5eSAndroid Build Coastguard Worker {
777*344a7f5eSAndroid Build Coastguard Worker   return (__m256d)__builtin_ia32_vfrczpd256((__v4df)__A);
778*344a7f5eSAndroid Build Coastguard Worker }
779*344a7f5eSAndroid Build Coastguard Worker 
780*344a7f5eSAndroid Build Coastguard Worker #undef __DEFAULT_FN_ATTRS
781*344a7f5eSAndroid Build Coastguard Worker 
782*344a7f5eSAndroid Build Coastguard Worker #endif /* __XOPINTRIN_H */
783