24 #ifndef _X86INTRIN_H_INCLUDED
25 # error "Never use <xopintrin.h> directly; include <x86intrin.h> instead."
28 #ifndef _XOPMMINTRIN_H_INCLUDED
29 #define _XOPMMINTRIN_H_INCLUDED
32 # error "XOP instruction set not enabled"
38 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
39 _mm_maccs_epi16(__m128i
__A, __m128i
__B, __m128i
__C)
41 return (__m128i) __builtin_ia32_vpmacssww ((__v8hi)__A,(__v8hi)__B, (__v8hi)__C);
44 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
45 _mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C)
47 return (__m128i) __builtin_ia32_vpmacsww ((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
50 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
51 _mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C)
53 return (__m128i) __builtin_ia32_vpmacsswd ((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
56 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
57 _mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C)
59 return (__m128i) __builtin_ia32_vpmacswd ((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
62 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
63 _mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C)
65 return (__m128i) __builtin_ia32_vpmacssdd ((__v4si)__A, (__v4si)__B, (__v4si)__C);
68 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
69 _mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C)
71 return (__m128i) __builtin_ia32_vpmacsdd ((__v4si)__A, (__v4si)__B, (__v4si)__C);
74 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
75 _mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C)
77 return (__m128i) __builtin_ia32_vpmacssdql ((__v4si)__A, (__v4si)__B, (__v2di)__C);
80 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
81 _mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C)
83 return (__m128i) __builtin_ia32_vpmacsdql ((__v4si)__A, (__v4si)__B, (__v2di)__C);
86 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
87 _mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C)
89 return (__m128i) __builtin_ia32_vpmacssdqh ((__v4si)__A, (__v4si)__B, (__v2di)__C);
92 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
93 _mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C)
95 return (__m128i) __builtin_ia32_vpmacsdqh ((__v4si)__A, (__v4si)__B, (__v2di)__C);
98 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
99 _mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C)
101 return (__m128i) __builtin_ia32_vpmadcsswd ((__v8hi)__A,(__v8hi)__B,(__v4si)__C);
104 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
105 _mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C)
107 return (__m128i) __builtin_ia32_vpmadcswd ((__v8hi)__A,(__v8hi)__B,(__v4si)__C);
111 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
112 _mm_haddw_epi8(__m128i __A)
114 return (__m128i) __builtin_ia32_vphaddbw ((__v16qi)__A);
117 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
118 _mm_haddd_epi8(__m128i __A)
120 return (__m128i) __builtin_ia32_vphaddbd ((__v16qi)__A);
123 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
124 _mm_haddq_epi8(__m128i __A)
126 return (__m128i) __builtin_ia32_vphaddbq ((__v16qi)__A);
129 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
130 _mm_haddd_epi16(__m128i __A)
132 return (__m128i) __builtin_ia32_vphaddwd ((__v8hi)__A);
135 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
136 _mm_haddq_epi16(__m128i __A)
138 return (__m128i) __builtin_ia32_vphaddwq ((__v8hi)__A);
141 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
142 _mm_haddq_epi32(__m128i __A)
144 return (__m128i) __builtin_ia32_vphadddq ((__v4si)__A);
147 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
148 _mm_haddw_epu8(__m128i __A)
150 return (__m128i) __builtin_ia32_vphaddubw ((__v16qi)__A);
153 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
154 _mm_haddd_epu8(__m128i __A)
156 return (__m128i) __builtin_ia32_vphaddubd ((__v16qi)__A);
159 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
160 _mm_haddq_epu8(__m128i __A)
162 return (__m128i) __builtin_ia32_vphaddubq ((__v16qi)__A);
165 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
166 _mm_haddd_epu16(__m128i __A)
168 return (__m128i) __builtin_ia32_vphadduwd ((__v8hi)__A);
171 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
172 _mm_haddq_epu16(__m128i __A)
174 return (__m128i) __builtin_ia32_vphadduwq ((__v8hi)__A);
177 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
178 _mm_haddq_epu32(__m128i __A)
180 return (__m128i) __builtin_ia32_vphaddudq ((__v4si)__A);
183 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
184 _mm_hsubw_epi8(__m128i __A)
186 return (__m128i) __builtin_ia32_vphsubbw ((__v16qi)__A);
189 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
190 _mm_hsubd_epi16(__m128i __A)
192 return (__m128i) __builtin_ia32_vphsubwd ((__v8hi)__A);
195 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
196 _mm_hsubq_epi32(__m128i __A)
198 return (__m128i) __builtin_ia32_vphsubdq ((__v4si)__A);
203 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
204 _mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C)
206 return (__m128i) __builtin_ia32_vpcmov (__A, __B, __C);
209 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
210 _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
212 return (__m128i) __builtin_ia32_vpperm ((__v16qi)__A, (__v16qi)__B, (__v16qi)__C);
218 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
219 _mm_rot_epi8(__m128i __A, __m128i __B)
221 return (__m128i) __builtin_ia32_vprotb ((__v16qi)__A, (__v16qi)__B);
224 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
225 _mm_rot_epi16(__m128i __A, __m128i __B)
227 return (__m128i) __builtin_ia32_vprotw ((__v8hi)__A, (__v8hi)__B);
230 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
231 _mm_rot_epi32(__m128i __A, __m128i __B)
233 return (__m128i) __builtin_ia32_vprotd ((__v4si)__A, (__v4si)__B);
236 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
237 _mm_rot_epi64(__m128i __A, __m128i __B)
239 return (__m128i) __builtin_ia32_vprotq ((__v2di)__A, (__v2di)__B);
245 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
246 _mm_roti_epi8(__m128i __A, const
int __B)
248 return (__m128i) __builtin_ia32_vprotbi ((__v16qi)__A, __B);
251 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
252 _mm_roti_epi16(__m128i __A, const
int __B)
254 return (__m128i) __builtin_ia32_vprotwi ((__v8hi)__A, __B);
257 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
258 _mm_roti_epi32(__m128i __A, const
int __B)
260 return (__m128i) __builtin_ia32_vprotdi ((__v4si)__A, __B);
263 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
264 _mm_roti_epi64(__m128i __A, const
int __B)
266 return (__m128i) __builtin_ia32_vprotqi ((__v2di)__A, __B);
269 #define _mm_roti_epi8(A, N) \
270 ((__m128i) __builtin_ia32_vprotbi ((__v16qi)(__m128i)(A), (int)(N)))
271 #define _mm_roti_epi16(A, N) \
272 ((__m128i) __builtin_ia32_vprotwi ((__v8hi)(__m128i)(A), (int)(N)))
273 #define _mm_roti_epi32(A, N) \
274 ((__m128i) __builtin_ia32_vprotdi ((__v4si)(__m128i)(A), (int)(N)))
275 #define _mm_roti_epi64(A, N) \
276 ((__m128i) __builtin_ia32_vprotqi ((__v2di)(__m128i)(A), (int)(N)))
281 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
282 _mm_shl_epi8(__m128i __A, __m128i __B)
284 return (__m128i) __builtin_ia32_vpshlb ((__v16qi)__A, (__v16qi)__B);
287 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
288 _mm_shl_epi16(__m128i __A, __m128i __B)
290 return (__m128i) __builtin_ia32_vpshlw ((__v8hi)__A, (__v8hi)__B);
293 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
294 _mm_shl_epi32(__m128i __A, __m128i __B)
296 return (__m128i) __builtin_ia32_vpshld ((__v4si)__A, (__v4si)__B);
299 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
300 _mm_shl_epi64(__m128i __A, __m128i __B)
302 return (__m128i) __builtin_ia32_vpshlq ((__v2di)__A, (__v2di)__B);
306 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
307 _mm_sha_epi8(__m128i __A, __m128i __B)
309 return (__m128i) __builtin_ia32_vpshab ((__v16qi)__A, (__v16qi)__B);
312 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
313 _mm_sha_epi16(__m128i __A, __m128i __B)
315 return (__m128i) __builtin_ia32_vpshaw ((__v8hi)__A, (__v8hi)__B);
318 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
319 _mm_sha_epi32(__m128i __A, __m128i __B)
321 return (__m128i) __builtin_ia32_vpshad ((__v4si)__A, (__v4si)__B);
324 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
325 _mm_sha_epi64(__m128i __A, __m128i __B)
327 return (__m128i) __builtin_ia32_vpshaq ((__v2di)__A, (__v2di)__B);
333 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
334 _mm_comlt_epu8(__m128i __A, __m128i __B)
336 return (__m128i) __builtin_ia32_vpcomltub ((__v16qi)__A, (__v16qi)__B);
339 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
340 _mm_comle_epu8(__m128i __A, __m128i __B)
342 return (__m128i) __builtin_ia32_vpcomleub ((__v16qi)__A, (__v16qi)__B);
345 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
346 _mm_comgt_epu8(__m128i __A, __m128i __B)
348 return (__m128i) __builtin_ia32_vpcomgtub ((__v16qi)__A, (__v16qi)__B);
351 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
352 _mm_comge_epu8(__m128i __A, __m128i __B)
354 return (__m128i) __builtin_ia32_vpcomgeub ((__v16qi)__A, (__v16qi)__B);
357 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
358 _mm_comeq_epu8(__m128i __A, __m128i __B)
360 return (__m128i) __builtin_ia32_vpcomequb ((__v16qi)__A, (__v16qi)__B);
363 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
364 _mm_comneq_epu8(__m128i __A, __m128i __B)
366 return (__m128i) __builtin_ia32_vpcomnequb ((__v16qi)__A, (__v16qi)__B);
369 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
370 _mm_comfalse_epu8(__m128i __A, __m128i __B)
372 return (__m128i) __builtin_ia32_vpcomfalseub ((__v16qi)__A, (__v16qi)__B);
375 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
376 _mm_comtrue_epu8(__m128i __A, __m128i __B)
378 return (__m128i) __builtin_ia32_vpcomtrueub ((__v16qi)__A, (__v16qi)__B);
383 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
384 _mm_comlt_epu16(__m128i __A, __m128i __B)
386 return (__m128i) __builtin_ia32_vpcomltuw ((__v8hi)__A, (__v8hi)__B);
389 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
390 _mm_comle_epu16(__m128i __A, __m128i __B)
392 return (__m128i) __builtin_ia32_vpcomleuw ((__v8hi)__A, (__v8hi)__B);
395 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
396 _mm_comgt_epu16(__m128i __A, __m128i __B)
398 return (__m128i) __builtin_ia32_vpcomgtuw ((__v8hi)__A, (__v8hi)__B);
401 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
402 _mm_comge_epu16(__m128i __A, __m128i __B)
404 return (__m128i) __builtin_ia32_vpcomgeuw ((__v8hi)__A, (__v8hi)__B);
407 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
408 _mm_comeq_epu16(__m128i __A, __m128i __B)
410 return (__m128i) __builtin_ia32_vpcomequw ((__v8hi)__A, (__v8hi)__B);
413 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
414 _mm_comneq_epu16(__m128i __A, __m128i __B)
416 return (__m128i) __builtin_ia32_vpcomnequw ((__v8hi)__A, (__v8hi)__B);
419 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
420 _mm_comfalse_epu16(__m128i __A, __m128i __B)
422 return (__m128i) __builtin_ia32_vpcomfalseuw ((__v8hi)__A, (__v8hi)__B);
425 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
426 _mm_comtrue_epu16(__m128i __A, __m128i __B)
428 return (__m128i) __builtin_ia32_vpcomtrueuw ((__v8hi)__A, (__v8hi)__B);
433 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
434 _mm_comlt_epu32(__m128i __A, __m128i __B)
436 return (__m128i) __builtin_ia32_vpcomltud ((__v4si)__A, (__v4si)__B);
439 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
440 _mm_comle_epu32(__m128i __A, __m128i __B)
442 return (__m128i) __builtin_ia32_vpcomleud ((__v4si)__A, (__v4si)__B);
445 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
446 _mm_comgt_epu32(__m128i __A, __m128i __B)
448 return (__m128i) __builtin_ia32_vpcomgtud ((__v4si)__A, (__v4si)__B);
451 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
452 _mm_comge_epu32(__m128i __A, __m128i __B)
454 return (__m128i) __builtin_ia32_vpcomgeud ((__v4si)__A, (__v4si)__B);
457 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
458 _mm_comeq_epu32(__m128i __A, __m128i __B)
460 return (__m128i) __builtin_ia32_vpcomequd ((__v4si)__A, (__v4si)__B);
463 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
464 _mm_comneq_epu32(__m128i __A, __m128i __B)
466 return (__m128i) __builtin_ia32_vpcomnequd ((__v4si)__A, (__v4si)__B);
469 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
470 _mm_comfalse_epu32(__m128i __A, __m128i __B)
472 return (__m128i) __builtin_ia32_vpcomfalseud ((__v4si)__A, (__v4si)__B);
475 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
476 _mm_comtrue_epu32(__m128i __A, __m128i __B)
478 return (__m128i) __builtin_ia32_vpcomtrueud ((__v4si)__A, (__v4si)__B);
483 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
484 _mm_comlt_epu64(__m128i __A, __m128i __B)
486 return (__m128i) __builtin_ia32_vpcomltuq ((__v2di)__A, (__v2di)__B);
489 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
490 _mm_comle_epu64(__m128i __A, __m128i __B)
492 return (__m128i) __builtin_ia32_vpcomleuq ((__v2di)__A, (__v2di)__B);
495 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
496 _mm_comgt_epu64(__m128i __A, __m128i __B)
498 return (__m128i) __builtin_ia32_vpcomgtuq ((__v2di)__A, (__v2di)__B);
501 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
502 _mm_comge_epu64(__m128i __A, __m128i __B)
504 return (__m128i) __builtin_ia32_vpcomgeuq ((__v2di)__A, (__v2di)__B);
507 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
508 _mm_comeq_epu64(__m128i __A, __m128i __B)
510 return (__m128i) __builtin_ia32_vpcomequq ((__v2di)__A, (__v2di)__B);
513 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
514 _mm_comneq_epu64(__m128i __A, __m128i __B)
516 return (__m128i) __builtin_ia32_vpcomnequq ((__v2di)__A, (__v2di)__B);
519 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
520 _mm_comfalse_epu64(__m128i __A, __m128i __B)
522 return (__m128i) __builtin_ia32_vpcomfalseuq ((__v2di)__A, (__v2di)__B);
525 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
526 _mm_comtrue_epu64(__m128i __A, __m128i __B)
528 return (__m128i) __builtin_ia32_vpcomtrueuq ((__v2di)__A, (__v2di)__B);
533 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
534 _mm_comlt_epi8(__m128i __A, __m128i __B)
536 return (__m128i) __builtin_ia32_vpcomltb ((__v16qi)__A, (__v16qi)__B);
539 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
540 _mm_comle_epi8(__m128i __A, __m128i __B)
542 return (__m128i) __builtin_ia32_vpcomleb ((__v16qi)__A, (__v16qi)__B);
545 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
546 _mm_comgt_epi8(__m128i __A, __m128i __B)
548 return (__m128i) __builtin_ia32_vpcomgtb ((__v16qi)__A, (__v16qi)__B);
551 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
552 _mm_comge_epi8(__m128i __A, __m128i __B)
554 return (__m128i) __builtin_ia32_vpcomgeb ((__v16qi)__A, (__v16qi)__B);
557 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
558 _mm_comeq_epi8(__m128i __A, __m128i __B)
560 return (__m128i) __builtin_ia32_vpcomeqb ((__v16qi)__A, (__v16qi)__B);
563 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
564 _mm_comneq_epi8(__m128i __A, __m128i __B)
566 return (__m128i) __builtin_ia32_vpcomneqb ((__v16qi)__A, (__v16qi)__B);
569 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
570 _mm_comfalse_epi8(__m128i __A, __m128i __B)
572 return (__m128i) __builtin_ia32_vpcomfalseb ((__v16qi)__A, (__v16qi)__B);
575 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
576 _mm_comtrue_epi8(__m128i __A, __m128i __B)
578 return (__m128i) __builtin_ia32_vpcomtrueb ((__v16qi)__A, (__v16qi)__B);
583 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
584 _mm_comlt_epi16(__m128i __A, __m128i __B)
586 return (__m128i) __builtin_ia32_vpcomltw ((__v8hi)__A, (__v8hi)__B);
589 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
590 _mm_comle_epi16(__m128i __A, __m128i __B)
592 return (__m128i) __builtin_ia32_vpcomlew ((__v8hi)__A, (__v8hi)__B);
595 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
596 _mm_comgt_epi16(__m128i __A, __m128i __B)
598 return (__m128i) __builtin_ia32_vpcomgtw ((__v8hi)__A, (__v8hi)__B);
601 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
602 _mm_comge_epi16(__m128i __A, __m128i __B)
604 return (__m128i) __builtin_ia32_vpcomgew ((__v8hi)__A, (__v8hi)__B);
607 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
608 _mm_comeq_epi16(__m128i __A, __m128i __B)
610 return (__m128i) __builtin_ia32_vpcomeqw ((__v8hi)__A, (__v8hi)__B);
613 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
614 _mm_comneq_epi16(__m128i __A, __m128i __B)
616 return (__m128i) __builtin_ia32_vpcomneqw ((__v8hi)__A, (__v8hi)__B);
619 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
620 _mm_comfalse_epi16(__m128i __A, __m128i __B)
622 return (__m128i) __builtin_ia32_vpcomfalsew ((__v8hi)__A, (__v8hi)__B);
625 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
626 _mm_comtrue_epi16(__m128i __A, __m128i __B)
628 return (__m128i) __builtin_ia32_vpcomtruew ((__v8hi)__A, (__v8hi)__B);
633 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
634 _mm_comlt_epi32(__m128i __A, __m128i __B)
636 return (__m128i) __builtin_ia32_vpcomltd ((__v4si)__A, (__v4si)__B);
639 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
640 _mm_comle_epi32(__m128i __A, __m128i __B)
642 return (__m128i) __builtin_ia32_vpcomled ((__v4si)__A, (__v4si)__B);
645 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
646 _mm_comgt_epi32(__m128i __A, __m128i __B)
648 return (__m128i) __builtin_ia32_vpcomgtd ((__v4si)__A, (__v4si)__B);
651 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
652 _mm_comge_epi32(__m128i __A, __m128i __B)
654 return (__m128i) __builtin_ia32_vpcomged ((__v4si)__A, (__v4si)__B);
657 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
658 _mm_comeq_epi32(__m128i __A, __m128i __B)
660 return (__m128i) __builtin_ia32_vpcomeqd ((__v4si)__A, (__v4si)__B);
663 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
664 _mm_comneq_epi32(__m128i __A, __m128i __B)
666 return (__m128i) __builtin_ia32_vpcomneqd ((__v4si)__A, (__v4si)__B);
669 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
670 _mm_comfalse_epi32(__m128i __A, __m128i __B)
672 return (__m128i) __builtin_ia32_vpcomfalsed ((__v4si)__A, (__v4si)__B);
675 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
676 _mm_comtrue_epi32(__m128i __A, __m128i __B)
678 return (__m128i) __builtin_ia32_vpcomtrued ((__v4si)__A, (__v4si)__B);
683 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
684 _mm_comlt_epi64(__m128i __A, __m128i __B)
686 return (__m128i) __builtin_ia32_vpcomltq ((__v2di)__A, (__v2di)__B);
689 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
690 _mm_comle_epi64(__m128i __A, __m128i __B)
692 return (__m128i) __builtin_ia32_vpcomleq ((__v2di)__A, (__v2di)__B);
695 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
696 _mm_comgt_epi64(__m128i __A, __m128i __B)
698 return (__m128i) __builtin_ia32_vpcomgtq ((__v2di)__A, (__v2di)__B);
701 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
702 _mm_comge_epi64(__m128i __A, __m128i __B)
704 return (__m128i) __builtin_ia32_vpcomgeq ((__v2di)__A, (__v2di)__B);
707 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
708 _mm_comeq_epi64(__m128i __A, __m128i __B)
710 return (__m128i) __builtin_ia32_vpcomeqq ((__v2di)__A, (__v2di)__B);
713 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
714 _mm_comneq_epi64(__m128i __A, __m128i __B)
716 return (__m128i) __builtin_ia32_vpcomneqq ((__v2di)__A, (__v2di)__B);
719 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
720 _mm_comfalse_epi64(__m128i __A, __m128i __B)
722 return (__m128i) __builtin_ia32_vpcomfalseq ((__v2di)__A, (__v2di)__B);
725 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
726 _mm_comtrue_epi64(__m128i __A, __m128i __B)
728 return (__m128i) __builtin_ia32_vpcomtrueq ((__v2di)__A, (__v2di)__B);
733 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
734 _mm_frcz_ps (__m128 __A)
736 return (__m128) __builtin_ia32_vfrczps ((__v4sf)__A);
739 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
740 _mm_frcz_pd (__m128d __A)
742 return (__m128d) __builtin_ia32_vfrczpd ((__v2df)__A);
745 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
746 _mm_frcz_ss (__m128 __A, __m128 __B)
748 return (__m128) __builtin_ia32_movss ((__v4sf)__A,
750 __builtin_ia32_vfrczss ((__v4sf)__B));
753 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
754 _mm_frcz_sd (__m128d __A, __m128d __B)
756 return (__m128d) __builtin_ia32_movsd ((__v2df)__A,
758 __builtin_ia32_vfrczsd ((__v2df)__B));
761 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
762 _mm256_frcz_ps (__m256 __A)
764 return (__m256) __builtin_ia32_vfrczps256 ((__v8sf)__A);
767 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
768 _mm256_frcz_pd (__m256d __A)
770 return (__m256d) __builtin_ia32_vfrczpd256 ((__v4df)__A);
776 extern __inline __m128d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
777 _mm_permute2_pd (__m128d
__X, __m128d
__Y, __m128i __C, const
int __I)
779 return (__m128d) __builtin_ia32_vpermil2pd ((__v2df)__X,
785 extern __inline __m256d
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
786 _mm256_permute2_pd (__m256d __X, __m256d __Y, __m256i __C, const
int __I)
788 return (__m256d) __builtin_ia32_vpermil2pd256 ((__v4df)__X,
794 extern __inline __m128
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
795 _mm_permute2_ps (__m128 __X, __m128 __Y, __m128i __C, const
int __I)
797 return (__m128) __builtin_ia32_vpermil2ps ((__v4sf)__X,
803 extern __inline __m256
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
804 _mm256_permute2_ps (__m256 __X, __m256 __Y, __m256i __C, const
int __I)
806 return (__m256) __builtin_ia32_vpermil2ps256 ((__v8sf)__X,
812 #define _mm_permute2_pd(X, Y, C, I) \
813 ((__m128d) __builtin_ia32_vpermil2pd ((__v2df)(__m128d)(X), \
814 (__v2df)(__m128d)(Y), \
815 (__v2di)(__m128d)(C), \
818 #define _mm256_permute2_pd(X, Y, C, I) \
819 ((__m256d) __builtin_ia32_vpermil2pd256 ((__v4df)(__m256d)(X), \
820 (__v4df)(__m256d)(Y), \
821 (__v4di)(__m256d)(C), \
824 #define _mm_permute2_ps(X, Y, C, I) \
825 ((__m128) __builtin_ia32_vpermil2ps ((__v4sf)(__m128)(X), \
826 (__v4sf)(__m128)(Y), \
827 (__v4si)(__m128)(C), \
830 #define _mm256_permute2_ps(X, Y, C, I) \
831 ((__m256) __builtin_ia32_vpermil2ps256 ((__v8sf)(__m256)(X), \
832 (__v8sf)(__m256)(Y), \
833 (__v8si)(__m256)(C), \
__inline unsigned char unsigned int unsigned int __Y
Definition: adxintrin.h:33
__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
__inline unsigned char unsigned int __X
Definition: adxintrin.h:33