27 #ifndef _MMINTRIN_H_INCLUDED
28 #define _MMINTRIN_H_INCLUDED
31 # error "MMX instruction set not enabled"
35 typedef int __m64
__attribute__ ((__vector_size__ (8), __may_alias__));
41 typedef long long __v1di
__attribute__ ((__vector_size__ (8)));
45 extern __inline
void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
48 __builtin_ia32_emms ();
51 extern __inline
void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
58 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
59 _mm_cvtsi32_si64 (
int __i)
61 return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
64 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
67 return _mm_cvtsi32_si64 (__i);
74 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
75 _m_from_int64 (
long long __i)
80 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
81 _mm_cvtsi64_m64 (
long long __i)
87 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
88 _mm_cvtsi64x_si64 (
long long __i)
93 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
94 _mm_set_pi64x (
long long __i)
101 extern __inline
int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
102 _mm_cvtsi64_si32 (__m64 __i)
104 return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
107 extern __inline
int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
108 _m_to_int (__m64 __i)
110 return _mm_cvtsi64_si32 (__i);
117 extern __inline
long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
118 _m_to_int64 (__m64 __i)
120 return (
long long)__i;
123 extern __inline
long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
124 _mm_cvtm64_si64 (__m64 __i)
126 return (
long long)__i;
130 extern __inline
long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
131 _mm_cvtsi64_si64x (__m64 __i)
133 return (
long long)__i;
140 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
141 _mm_packs_pi16 (__m64 __m1, __m64 __m2)
143 return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
146 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
147 _m_packsswb (__m64 __m1, __m64 __m2)
149 return _mm_packs_pi16 (__m1, __m2);
155 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
156 _mm_packs_pi32 (__m64 __m1, __m64 __m2)
158 return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
161 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
162 _m_packssdw (__m64 __m1, __m64 __m2)
164 return _mm_packs_pi32 (__m1, __m2);
170 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
171 _mm_packs_pu16 (__m64 __m1, __m64 __m2)
173 return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
176 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
177 _m_packuswb (__m64 __m1, __m64 __m2)
179 return _mm_packs_pu16 (__m1, __m2);
184 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
185 _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
187 return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
190 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
191 _m_punpckhbw (__m64 __m1, __m64 __m2)
193 return _mm_unpackhi_pi8 (__m1, __m2);
198 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
199 _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
201 return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2);
204 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
205 _m_punpckhwd (__m64 __m1, __m64 __m2)
207 return _mm_unpackhi_pi16 (__m1, __m2);
212 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
213 _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
215 return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2);
218 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
219 _m_punpckhdq (__m64 __m1, __m64 __m2)
221 return _mm_unpackhi_pi32 (__m1, __m2);
226 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
227 _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
229 return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2);
232 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
233 _m_punpcklbw (__m64 __m1, __m64 __m2)
235 return _mm_unpacklo_pi8 (__m1, __m2);
240 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
241 _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
243 return (__m64) __builtin_ia32_punpcklwd ((__v4hi)__m1, (__v4hi)__m2);
246 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
247 _m_punpcklwd (__m64 __m1, __m64 __m2)
249 return _mm_unpacklo_pi16 (__m1, __m2);
254 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
255 _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
257 return (__m64) __builtin_ia32_punpckldq ((__v2si)__m1, (__v2si)__m2);
260 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
261 _m_punpckldq (__m64 __m1, __m64 __m2)
263 return _mm_unpacklo_pi32 (__m1, __m2);
267 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
268 _mm_add_pi8 (__m64 __m1, __m64 __m2)
270 return (__m64) __builtin_ia32_paddb ((__v8qi)__m1, (__v8qi)__m2);
273 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
274 _m_paddb (__m64 __m1, __m64 __m2)
276 return _mm_add_pi8 (__m1, __m2);
280 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
281 _mm_add_pi16 (__m64 __m1, __m64 __m2)
283 return (__m64) __builtin_ia32_paddw ((__v4hi)__m1, (__v4hi)__m2);
286 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
287 _m_paddw (__m64 __m1, __m64 __m2)
289 return _mm_add_pi16 (__m1, __m2);
293 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
294 _mm_add_pi32 (__m64 __m1, __m64 __m2)
296 return (__m64) __builtin_ia32_paddd ((__v2si)__m1, (__v2si)__m2);
299 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
300 _m_paddd (__m64 __m1, __m64 __m2)
302 return _mm_add_pi32 (__m1, __m2);
307 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
308 _mm_add_si64 (__m64 __m1, __m64 __m2)
310 return (__m64) __builtin_ia32_paddq ((__v1di)__m1, (__v1di)__m2);
316 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
317 _mm_adds_pi8 (__m64 __m1, __m64 __m2)
319 return (__m64) __builtin_ia32_paddsb ((__v8qi)__m1, (__v8qi)__m2);
322 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
323 _m_paddsb (__m64 __m1, __m64 __m2)
325 return _mm_adds_pi8 (__m1, __m2);
330 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
331 _mm_adds_pi16 (__m64 __m1, __m64 __m2)
333 return (__m64) __builtin_ia32_paddsw ((__v4hi)__m1, (__v4hi)__m2);
336 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
337 _m_paddsw (__m64 __m1, __m64 __m2)
339 return _mm_adds_pi16 (__m1, __m2);
344 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
345 _mm_adds_pu8 (__m64 __m1, __m64 __m2)
347 return (__m64) __builtin_ia32_paddusb ((__v8qi)__m1, (__v8qi)__m2);
350 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
351 _m_paddusb (__m64 __m1, __m64 __m2)
353 return _mm_adds_pu8 (__m1, __m2);
358 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
359 _mm_adds_pu16 (__m64 __m1, __m64 __m2)
361 return (__m64) __builtin_ia32_paddusw ((__v4hi)__m1, (__v4hi)__m2);
364 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
365 _m_paddusw (__m64 __m1, __m64 __m2)
367 return _mm_adds_pu16 (__m1, __m2);
371 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
372 _mm_sub_pi8 (__m64 __m1, __m64 __m2)
374 return (__m64) __builtin_ia32_psubb ((__v8qi)__m1, (__v8qi)__m2);
377 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
378 _m_psubb (__m64 __m1, __m64 __m2)
380 return _mm_sub_pi8 (__m1, __m2);
384 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
385 _mm_sub_pi16 (__m64 __m1, __m64 __m2)
387 return (__m64) __builtin_ia32_psubw ((__v4hi)__m1, (__v4hi)__m2);
390 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
391 _m_psubw (__m64 __m1, __m64 __m2)
393 return _mm_sub_pi16 (__m1, __m2);
397 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
398 _mm_sub_pi32 (__m64 __m1, __m64 __m2)
400 return (__m64) __builtin_ia32_psubd ((__v2si)__m1, (__v2si)__m2);
403 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
404 _m_psubd (__m64 __m1, __m64 __m2)
406 return _mm_sub_pi32 (__m1, __m2);
411 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
412 _mm_sub_si64 (__m64 __m1, __m64 __m2)
414 return (__m64) __builtin_ia32_psubq ((__v1di)__m1, (__v1di)__m2);
420 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
421 _mm_subs_pi8 (__m64 __m1, __m64 __m2)
423 return (__m64) __builtin_ia32_psubsb ((__v8qi)__m1, (__v8qi)__m2);
426 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
427 _m_psubsb (__m64 __m1, __m64 __m2)
429 return _mm_subs_pi8 (__m1, __m2);
434 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
435 _mm_subs_pi16 (__m64 __m1, __m64 __m2)
437 return (__m64) __builtin_ia32_psubsw ((__v4hi)__m1, (__v4hi)__m2);
440 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
441 _m_psubsw (__m64 __m1, __m64 __m2)
443 return _mm_subs_pi16 (__m1, __m2);
448 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
449 _mm_subs_pu8 (__m64 __m1, __m64 __m2)
451 return (__m64) __builtin_ia32_psubusb ((__v8qi)__m1, (__v8qi)__m2);
454 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
455 _m_psubusb (__m64 __m1, __m64 __m2)
457 return _mm_subs_pu8 (__m1, __m2);
462 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
463 _mm_subs_pu16 (__m64 __m1, __m64 __m2)
465 return (__m64) __builtin_ia32_psubusw ((__v4hi)__m1, (__v4hi)__m2);
468 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
469 _m_psubusw (__m64 __m1, __m64 __m2)
471 return _mm_subs_pu16 (__m1, __m2);
477 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
478 _mm_madd_pi16 (__m64 __m1, __m64 __m2)
480 return (__m64) __builtin_ia32_pmaddwd ((__v4hi)__m1, (__v4hi)__m2);
483 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
484 _m_pmaddwd (__m64 __m1, __m64 __m2)
486 return _mm_madd_pi16 (__m1, __m2);
491 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
492 _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
494 return (__m64) __builtin_ia32_pmulhw ((__v4hi)__m1, (__v4hi)__m2);
497 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
498 _m_pmulhw (__m64 __m1, __m64 __m2)
500 return _mm_mulhi_pi16 (__m1, __m2);
505 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
506 _mm_mullo_pi16 (__m64 __m1, __m64 __m2)
508 return (__m64) __builtin_ia32_pmullw ((__v4hi)__m1, (__v4hi)__m2);
511 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
512 _m_pmullw (__m64 __m1, __m64 __m2)
514 return _mm_mullo_pi16 (__m1, __m2);
518 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
519 _mm_sll_pi16 (__m64 __m, __m64 __count)
521 return (__m64) __builtin_ia32_psllw ((__v4hi)__m, (__v4hi)__count);
524 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
525 _m_psllw (__m64 __m, __m64 __count)
527 return _mm_sll_pi16 (__m, __count);
530 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
531 _mm_slli_pi16 (__m64 __m,
int __count)
533 return (__m64) __builtin_ia32_psllwi ((__v4hi)__m, __count);
536 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
537 _m_psllwi (__m64 __m,
int __count)
539 return _mm_slli_pi16 (__m, __count);
543 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
544 _mm_sll_pi32 (__m64 __m, __m64 __count)
546 return (__m64) __builtin_ia32_pslld ((__v2si)__m, (__v2si)__count);
549 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
550 _m_pslld (__m64 __m, __m64 __count)
552 return _mm_sll_pi32 (__m, __count);
555 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
556 _mm_slli_pi32 (__m64 __m,
int __count)
558 return (__m64) __builtin_ia32_pslldi ((__v2si)__m, __count);
561 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
562 _m_pslldi (__m64 __m,
int __count)
564 return _mm_slli_pi32 (__m, __count);
568 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
569 _mm_sll_si64 (__m64 __m, __m64 __count)
571 return (__m64) __builtin_ia32_psllq ((__v1di)__m, (__v1di)__count);
574 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
575 _m_psllq (__m64 __m, __m64 __count)
577 return _mm_sll_si64 (__m, __count);
580 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
581 _mm_slli_si64 (__m64 __m,
int __count)
583 return (__m64) __builtin_ia32_psllqi ((__v1di)__m, __count);
586 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
587 _m_psllqi (__m64 __m,
int __count)
589 return _mm_slli_si64 (__m, __count);
593 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
594 _mm_sra_pi16 (__m64 __m, __m64 __count)
596 return (__m64) __builtin_ia32_psraw ((__v4hi)__m, (__v4hi)__count);
599 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
600 _m_psraw (__m64 __m, __m64 __count)
602 return _mm_sra_pi16 (__m, __count);
605 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
606 _mm_srai_pi16 (__m64 __m,
int __count)
608 return (__m64) __builtin_ia32_psrawi ((__v4hi)__m, __count);
611 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
612 _m_psrawi (__m64 __m,
int __count)
614 return _mm_srai_pi16 (__m, __count);
618 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
619 _mm_sra_pi32 (__m64 __m, __m64 __count)
621 return (__m64) __builtin_ia32_psrad ((__v2si)__m, (__v2si)__count);
624 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
625 _m_psrad (__m64 __m, __m64 __count)
627 return _mm_sra_pi32 (__m, __count);
630 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
631 _mm_srai_pi32 (__m64 __m,
int __count)
633 return (__m64) __builtin_ia32_psradi ((__v2si)__m, __count);
636 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
637 _m_psradi (__m64 __m,
int __count)
639 return _mm_srai_pi32 (__m, __count);
643 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
644 _mm_srl_pi16 (__m64 __m, __m64 __count)
646 return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, (__v4hi)__count);
649 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
650 _m_psrlw (__m64 __m, __m64 __count)
652 return _mm_srl_pi16 (__m, __count);
655 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
656 _mm_srli_pi16 (__m64 __m,
int __count)
658 return (__m64) __builtin_ia32_psrlwi ((__v4hi)__m, __count);
661 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
662 _m_psrlwi (__m64 __m,
int __count)
664 return _mm_srli_pi16 (__m, __count);
668 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
669 _mm_srl_pi32 (__m64 __m, __m64 __count)
671 return (__m64) __builtin_ia32_psrld ((__v2si)__m, (__v2si)__count);
674 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
675 _m_psrld (__m64 __m, __m64 __count)
677 return _mm_srl_pi32 (__m, __count);
680 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
681 _mm_srli_pi32 (__m64 __m,
int __count)
683 return (__m64) __builtin_ia32_psrldi ((__v2si)__m, __count);
686 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
687 _m_psrldi (__m64 __m,
int __count)
689 return _mm_srli_pi32 (__m, __count);
693 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
694 _mm_srl_si64 (__m64 __m, __m64 __count)
696 return (__m64) __builtin_ia32_psrlq ((__v1di)__m, (__v1di)__count);
699 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
700 _m_psrlq (__m64 __m, __m64 __count)
702 return _mm_srl_si64 (__m, __count);
705 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
706 _mm_srli_si64 (__m64 __m,
int __count)
708 return (__m64) __builtin_ia32_psrlqi ((__v1di)__m, __count);
711 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
712 _m_psrlqi (__m64 __m,
int __count)
714 return _mm_srli_si64 (__m, __count);
718 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
719 _mm_and_si64 (__m64 __m1, __m64 __m2)
721 return __builtin_ia32_pand (__m1, __m2);
724 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
725 _m_pand (__m64 __m1, __m64 __m2)
727 return _mm_and_si64 (__m1, __m2);
732 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
733 _mm_andnot_si64 (__m64 __m1, __m64 __m2)
735 return __builtin_ia32_pandn (__m1, __m2);
738 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
739 _m_pandn (__m64 __m1, __m64 __m2)
741 return _mm_andnot_si64 (__m1, __m2);
745 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
746 _mm_or_si64 (__m64 __m1, __m64 __m2)
748 return __builtin_ia32_por (__m1, __m2);
751 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
752 _m_por (__m64 __m1, __m64 __m2)
754 return _mm_or_si64 (__m1, __m2);
758 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
759 _mm_xor_si64 (__m64 __m1, __m64 __m2)
761 return __builtin_ia32_pxor (__m1, __m2);
764 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
765 _m_pxor (__m64 __m1, __m64 __m2)
767 return _mm_xor_si64 (__m1, __m2);
772 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
773 _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
775 return (__m64) __builtin_ia32_pcmpeqb ((__v8qi)__m1, (__v8qi)__m2);
778 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
779 _m_pcmpeqb (__m64 __m1, __m64 __m2)
781 return _mm_cmpeq_pi8 (__m1, __m2);
784 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
785 _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
787 return (__m64) __builtin_ia32_pcmpgtb ((__v8qi)__m1, (__v8qi)__m2);
790 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
791 _m_pcmpgtb (__m64 __m1, __m64 __m2)
793 return _mm_cmpgt_pi8 (__m1, __m2);
798 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
799 _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
801 return (__m64) __builtin_ia32_pcmpeqw ((__v4hi)__m1, (__v4hi)__m2);
804 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
805 _m_pcmpeqw (__m64 __m1, __m64 __m2)
807 return _mm_cmpeq_pi16 (__m1, __m2);
810 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
811 _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
813 return (__m64) __builtin_ia32_pcmpgtw ((__v4hi)__m1, (__v4hi)__m2);
816 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
817 _m_pcmpgtw (__m64 __m1, __m64 __m2)
819 return _mm_cmpgt_pi16 (__m1, __m2);
824 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
825 _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
827 return (__m64) __builtin_ia32_pcmpeqd ((__v2si)__m1, (__v2si)__m2);
830 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
831 _m_pcmpeqd (__m64 __m1, __m64 __m2)
833 return _mm_cmpeq_pi32 (__m1, __m2);
836 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
837 _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
839 return (__m64) __builtin_ia32_pcmpgtd ((__v2si)__m1, (__v2si)__m2);
842 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
843 _m_pcmpgtd (__m64 __m1, __m64 __m2)
845 return _mm_cmpgt_pi32 (__m1, __m2);
849 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
850 _mm_setzero_si64 (
void)
856 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
857 _mm_set_pi32 (
int __i1,
int __i0)
859 return (__m64) __builtin_ia32_vec_init_v2si (__i0, __i1);
863 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
864 _mm_set_pi16 (
short __w3,
short __w2,
short __w1,
short __w0)
866 return (__m64) __builtin_ia32_vec_init_v4hi (__w0, __w1, __w2, __w3);
870 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
871 _mm_set_pi8 (
char __b7,
char __b6,
char __b5,
char __b4,
872 char __b3,
char __b2,
char __b1,
char __b0)
874 return (__m64) __builtin_ia32_vec_init_v8qi (__b0, __b1, __b2, __b3,
875 __b4, __b5, __b6, __b7);
879 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
880 _mm_setr_pi32 (
int __i0,
int __i1)
882 return _mm_set_pi32 (__i1, __i0);
885 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
886 _mm_setr_pi16 (
short __w0,
short __w1,
short __w2,
short __w3)
888 return _mm_set_pi16 (__w3, __w2, __w1, __w0);
891 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
892 _mm_setr_pi8 (
char __b0,
char __b1,
char __b2,
char __b3,
893 char __b4,
char __b5,
char __b6,
char __b7)
895 return _mm_set_pi8 (__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
899 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
900 _mm_set1_pi32 (
int __i)
902 return _mm_set_pi32 (__i, __i);
906 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
907 _mm_set1_pi16 (
short __w)
909 return _mm_set_pi16 (__w, __w, __w, __w);
913 extern __inline __m64
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
914 _mm_set1_pi8 (
char __b)
916 return _mm_set_pi8 (__b, __b, __b, __b, __b, __b, __b, __b);
double __v4df __attribute__((__vector_size__(32)))
Definition: avxintrin.h:32