Home | History | Annotate | Download | only in include
      1 /* APPLE LOCAL file mainline 2005-06-30 Radar 4131077 */
      2 /* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
      3    Free Software Foundation, Inc.
      4 
      5    This file is part of GCC.
      6 
      7    GCC is free software; you can redistribute it and/or modify
      8    it under the terms of the GNU General Public License as published by
      9    the Free Software Foundation; either version 2, or (at your option)
     10    any later version.
     11 
     12    GCC is distributed in the hope that it will be useful,
     13    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15    GNU General Public License for more details.
     16 
     17    You should have received a copy of the GNU General Public License
     18    along with GCC; see the file COPYING.  If not, write to
     19    the Free Software Foundation, 51 Franklin Street, Fifth Floor,
     20    Boston, MA 02110-1301, USA.  */
     21 
     22 /* As a special exception, if you include this header file into source
     23    files compiled by GCC, this header file does not by itself cause
     24    the resulting executable to be covered by the GNU General Public
     25    License.  This exception does not however invalidate any other
     26    reasons why the executable file might be covered by the GNU General
     27    Public License.  */
     28 
     29 /* Implemented from the specification included in the Intel C++ Compiler
     30    User Guide and Reference, version 9.0.  */
     31 
     32 #ifndef _MMINTRIN_H_INCLUDED
     33 #define _MMINTRIN_H_INCLUDED
     34 
     35 #ifndef __MMX__
     36 # error "MMX instruction set not enabled"
     37 #else
     38 /* The Intel API is flexible enough that we must allow aliasing with other
     39    vector types, and their scalar components.  */
     40 /* APPLE LOCAL 4505813 */
     41 typedef long long __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
     42 
     43 /* Internal data types for implementing the intrinsics.  */
     44 typedef int __v2si __attribute__ ((__vector_size__ (8)));
     45 typedef short __v4hi __attribute__ ((__vector_size__ (8)));
     46 typedef char __v8qi __attribute__ ((__vector_size__ (8)));
     47 
     48 /* APPLE LOCAL begin nodebug inline 4152603 */
     49 #define __always_inline__ __always_inline__, __nodebug__
     50 /* APPLE LOCAL end nodebug inline 4152603 */
     51 
     52 /* APPLE LOCAL begin radar 5618945 */
     53 #undef __STATIC_INLINE
     54 #ifdef __GNUC_STDC_INLINE__
     55 #define __STATIC_INLINE __inline
     56 #else
     57 #define __STATIC_INLINE static __inline
     58 #endif
     59 /* APPLE LOCAL end radar 5618945 */
     60 
     61 /* Empty the multimedia state.  */
     62 /* APPLE LOCAL begin radar 4152603 */
     63 /* APPLE LOCAL begin radar 5618945 */
     64 __STATIC_INLINE void __attribute__((__always_inline__))
     65 /* APPLE LOCAL end radar 5618945 */
     66 _mm_empty (void)
     67 {
     68   __builtin_ia32_emms ();
     69 }
     70 
     71 /* APPLE LOCAL begin radar 5618945 */
     72 __STATIC_INLINE void __attribute__((__always_inline__))
     73 /* APPLE LOCAL end radar 5618945 */
     74 _m_empty (void)
     75 {
     76   _mm_empty ();
     77 }
     78 
     79 /* Convert I to a __m64 object.  The integer is zero-extended to 64-bits.  */
     80 /* APPLE LOCAL begin radar 5618945 */
     81 __STATIC_INLINE __m64  __attribute__((__always_inline__))
     82 /* APPLE LOCAL end radar 5618945 */
     83 _mm_cvtsi32_si64 (int __i)
     84 {
     85   return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
     86 }
     87 
     88 /* APPLE LOCAL begin radar 5618945 */
     89 __STATIC_INLINE __m64  __attribute__((__always_inline__))
     90 /* APPLE LOCAL end radar 5618945 */
     91 _m_from_int (int __i)
     92 {
     93   return _mm_cvtsi32_si64 (__i);
     94 }
     95 
     96 #ifdef __x86_64__
     97 /* Convert I to a __m64 object.  */
     98 
     99 /* Intel intrinsic.  */
    100 /* APPLE LOCAL begin radar 5618945 */
    101 __STATIC_INLINE __m64  __attribute__((__always_inline__))
    102 /* APPLE LOCAL end radar 5618945 */
    103 _m_from_int64 (long long __i)
    104 {
    105   return (__m64) __i;
    106 }
    107 
    108 /* APPLE LOCAL begin radar 5618945 */
    109 __STATIC_INLINE __m64  __attribute__((__always_inline__))
    110 /* APPLE LOCAL end radar 5618945 */
    111 _mm_cvtsi64_m64 (long long __i)
    112 {
    113   return (__m64) __i;
    114 }
    115 
    116 /* Microsoft intrinsic.  */
    117 /* APPLE LOCAL begin radar 5618945 */
    118 __STATIC_INLINE __m64  __attribute__((__always_inline__))
    119 /* APPLE LOCAL end radar 5618945 */
    120 _mm_cvtsi64x_si64 (long long __i)
    121 {
    122   return (__m64) __i;
    123 }
    124 
    125 /* APPLE LOCAL begin radar 5618945 */
    126 __STATIC_INLINE __m64  __attribute__((__always_inline__))
    127 /* APPLE LOCAL end radar 5618945 */
    128 _mm_set_pi64x (long long __i)
    129 {
    130   return (__m64) __i;
    131 }
    132 #endif
    133 
    134 /* Convert the lower 32 bits of the __m64 object into an integer.  */
    135 /* APPLE LOCAL begin radar 5618945 */
    136 __STATIC_INLINE int __attribute__((__always_inline__))
    137 /* APPLE LOCAL end radar 5618945 */
    138 _mm_cvtsi64_si32 (__m64 __i)
    139 {
    140   return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
    141 }
    142 
    143 /* APPLE LOCAL begin radar 5618945 */
    144 __STATIC_INLINE int __attribute__((__always_inline__))
    145 /* APPLE LOCAL end radar 5618945 */
    146 _m_to_int (__m64 __i)
    147 {
    148   return _mm_cvtsi64_si32 (__i);
    149 }
    150 
    151 #ifdef __x86_64__
    152 /* Convert the __m64 object to a 64bit integer.  */
    153 
    154 /* Intel intrinsic.  */
    155 /* APPLE LOCAL begin radar 5618945 */
    156 __STATIC_INLINE long long __attribute__((__always_inline__))
    157 /* APPLE LOCAL end radar 5618945 */
    158 _m_to_int64 (__m64 __i)
    159 {
    160   return (long long)__i;
    161 }
    162 
    163 /* APPLE LOCAL begin radar 5618945 */
    164 __STATIC_INLINE long long __attribute__((__always_inline__))
    165 /* APPLE LOCAL end radar 5618945 */
    166 _mm_cvtm64_si64 (__m64 __i)
    167 {
    168   return (long long)__i;
    169 }
    170 
    171 /* Microsoft intrinsic.  */
    172 /* APPLE LOCAL begin radar 5618945 */
    173 __STATIC_INLINE long long __attribute__((__always_inline__))
    174 /* APPLE LOCAL end radar 5618945 */
    175 _mm_cvtsi64_si64x (__m64 __i)
    176 {
    177   return (long long)__i;
    178 }
    179 #endif
    180 
    181 /* Pack the four 16-bit values from M1 into the lower four 8-bit values of
    182    the result, and the four 16-bit values from M2 into the upper four 8-bit
    183    values of the result, all with signed saturation.  */
    184 /* APPLE LOCAL begin radar 5618945 */
    185 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    186 /* APPLE LOCAL end radar 5618945 */
    187 _mm_packs_pi16 (__m64 __m1, __m64 __m2)
    188 {
    189   return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
    190 }
    191 
    192 /* APPLE LOCAL begin radar 5618945 */
    193 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    194 /* APPLE LOCAL end radar 5618945 */
    195 _m_packsswb (__m64 __m1, __m64 __m2)
    196 {
    197   return _mm_packs_pi16 (__m1, __m2);
    198 }
    199 
    200 /* Pack the two 32-bit values from M1 in to the lower two 16-bit values of
    201    the result, and the two 32-bit values from M2 into the upper two 16-bit
    202    values of the result, all with signed saturation.  */
    203 /* APPLE LOCAL begin radar 5618945 */
    204 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    205 /* APPLE LOCAL end radar 5618945 */
    206 _mm_packs_pi32 (__m64 __m1, __m64 __m2)
    207 {
    208   return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
    209 }
    210 
    211 /* APPLE LOCAL begin radar 5618945 */
    212 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    213 /* APPLE LOCAL end radar 5618945 */
    214 _m_packssdw (__m64 __m1, __m64 __m2)
    215 {
    216   return _mm_packs_pi32 (__m1, __m2);
    217 }
    218 
    219 /* Pack the four 16-bit values from M1 into the lower four 8-bit values of
    220    the result, and the four 16-bit values from M2 into the upper four 8-bit
    221    values of the result, all with unsigned saturation.  */
    222 /* APPLE LOCAL begin radar 5618945 */
    223 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    224 /* APPLE LOCAL end radar 5618945 */
    225 _mm_packs_pu16 (__m64 __m1, __m64 __m2)
    226 {
    227   return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
    228 }
    229 
    230 /* APPLE LOCAL begin radar 5618945 */
    231 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    232 /* APPLE LOCAL end radar 5618945 */
    233 _m_packuswb (__m64 __m1, __m64 __m2)
    234 {
    235   return _mm_packs_pu16 (__m1, __m2);
    236 }
    237 
    238 /* Interleave the four 8-bit values from the high half of M1 with the four
    239    8-bit values from the high half of M2.  */
    240 /* APPLE LOCAL begin radar 5618945 */
    241 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    242 /* APPLE LOCAL end radar 5618945 */
    243 _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
    244 {
    245   return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
    246 }
    247 
    248 /* APPLE LOCAL begin radar 5618945 */
    249 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    250 /* APPLE LOCAL end radar 5618945 */
    251 _m_punpckhbw (__m64 __m1, __m64 __m2)
    252 {
    253   return _mm_unpackhi_pi8 (__m1, __m2);
    254 }
    255 
    256 /* Interleave the two 16-bit values from the high half of M1 with the two
    257    16-bit values from the high half of M2.  */
    258 /* APPLE LOCAL begin radar 5618945 */
    259 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    260 /* APPLE LOCAL end radar 5618945 */
    261 _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
    262 {
    263   return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2);
    264 }
    265 
    266 /* APPLE LOCAL begin radar 5618945 */
    267 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    268 /* APPLE LOCAL end radar 5618945 */
    269 _m_punpckhwd (__m64 __m1, __m64 __m2)
    270 {
    271   return _mm_unpackhi_pi16 (__m1, __m2);
    272 }
    273 
    274 /* Interleave the 32-bit value from the high half of M1 with the 32-bit
    275    value from the high half of M2.  */
    276 /* APPLE LOCAL begin radar 5618945 */
    277 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    278 /* APPLE LOCAL end radar 5618945 */
    279 _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
    280 {
    281   return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2);
    282 }
    283 
    284 /* APPLE LOCAL begin radar 5618945 */
    285 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    286 /* APPLE LOCAL end radar 5618945 */
    287 _m_punpckhdq (__m64 __m1, __m64 __m2)
    288 {
    289   return _mm_unpackhi_pi32 (__m1, __m2);
    290 }
    291 
    292 /* Interleave the four 8-bit values from the low half of M1 with the four
    293    8-bit values from the low half of M2.  */
    294 /* APPLE LOCAL begin radar 5618945 */
    295 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    296 /* APPLE LOCAL end radar 5618945 */
    297 _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
    298 {
    299   return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2);
    300 }
    301 
    302 /* APPLE LOCAL begin radar 5618945 */
    303 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    304 /* APPLE LOCAL end radar 5618945 */
    305 _m_punpcklbw (__m64 __m1, __m64 __m2)
    306 {
    307   return _mm_unpacklo_pi8 (__m1, __m2);
    308 }
    309 
    310 /* Interleave the two 16-bit values from the low half of M1 with the two
    311    16-bit values from the low half of M2.  */
    312 /* APPLE LOCAL begin radar 5618945 */
    313 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    314 /* APPLE LOCAL end radar 5618945 */
    315 _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
    316 {
    317   return (__m64) __builtin_ia32_punpcklwd ((__v4hi)__m1, (__v4hi)__m2);
    318 }
    319 
    320 /* APPLE LOCAL begin radar 5618945 */
    321 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    322 /* APPLE LOCAL end radar 5618945 */
    323 _m_punpcklwd (__m64 __m1, __m64 __m2)
    324 {
    325   return _mm_unpacklo_pi16 (__m1, __m2);
    326 }
    327 
    328 /* Interleave the 32-bit value from the low half of M1 with the 32-bit
    329    value from the low half of M2.  */
    330 /* APPLE LOCAL begin radar 5618945 */
    331 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    332 /* APPLE LOCAL end radar 5618945 */
    333 _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
    334 {
    335   return (__m64) __builtin_ia32_punpckldq ((__v2si)__m1, (__v2si)__m2);
    336 }
    337 
    338 /* APPLE LOCAL begin radar 5618945 */
    339 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    340 /* APPLE LOCAL end radar 5618945 */
    341 _m_punpckldq (__m64 __m1, __m64 __m2)
    342 {
    343   return _mm_unpacklo_pi32 (__m1, __m2);
    344 }
    345 
    346 /* Add the 8-bit values in M1 to the 8-bit values in M2.  */
    347 /* APPLE LOCAL begin radar 5618945 */
    348 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    349 /* APPLE LOCAL end radar 5618945 */
    350 _mm_add_pi8 (__m64 __m1, __m64 __m2)
    351 {
    352   return (__m64) __builtin_ia32_paddb ((__v8qi)__m1, (__v8qi)__m2);
    353 }
    354 
    355 /* APPLE LOCAL begin radar 5618945 */
    356 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    357 /* APPLE LOCAL end radar 5618945 */
    358 _m_paddb (__m64 __m1, __m64 __m2)
    359 {
    360   return _mm_add_pi8 (__m1, __m2);
    361 }
    362 
    363 /* Add the 16-bit values in M1 to the 16-bit values in M2.  */
    364 /* APPLE LOCAL begin radar 5618945 */
    365 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    366 /* APPLE LOCAL end radar 5618945 */
    367 _mm_add_pi16 (__m64 __m1, __m64 __m2)
    368 {
    369   return (__m64) __builtin_ia32_paddw ((__v4hi)__m1, (__v4hi)__m2);
    370 }
    371 
    372 /* APPLE LOCAL begin radar 5618945 */
    373 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    374 /* APPLE LOCAL end radar 5618945 */
    375 _m_paddw (__m64 __m1, __m64 __m2)
    376 {
    377   return _mm_add_pi16 (__m1, __m2);
    378 }
    379 
    380 /* Add the 32-bit values in M1 to the 32-bit values in M2.  */
    381 /* APPLE LOCAL begin radar 5618945 */
    382 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    383 /* APPLE LOCAL end radar 5618945 */
    384 _mm_add_pi32 (__m64 __m1, __m64 __m2)
    385 {
    386   return (__m64) __builtin_ia32_paddd ((__v2si)__m1, (__v2si)__m2);
    387 }
    388 
    389 /* APPLE LOCAL begin radar 5618945 */
    390 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    391 /* APPLE LOCAL end radar 5618945 */
    392 _m_paddd (__m64 __m1, __m64 __m2)
    393 {
    394   return _mm_add_pi32 (__m1, __m2);
    395 }
    396 
    397 /* Add the 64-bit values in M1 to the 64-bit values in M2.  */
    398 #ifdef __SSE2__
    399 /* APPLE LOCAL begin radar 5618945 */
    400 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    401 /* APPLE LOCAL end radar 5618945 */
    402 _mm_add_si64 (__m64 __m1, __m64 __m2)
    403 {
    404   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    405   return (__m64) __builtin_ia32_paddq (__m1, __m2);
    406 }
    407 #endif
    408 
    409 /* Add the 8-bit values in M1 to the 8-bit values in M2 using signed
    410    saturated arithmetic.  */
    411 /* APPLE LOCAL begin radar 5618945 */
    412 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    413 /* APPLE LOCAL end radar 5618945 */
    414 _mm_adds_pi8 (__m64 __m1, __m64 __m2)
    415 {
    416   return (__m64) __builtin_ia32_paddsb ((__v8qi)__m1, (__v8qi)__m2);
    417 }
    418 
    419 /* APPLE LOCAL begin radar 5618945 */
    420 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    421 /* APPLE LOCAL end radar 5618945 */
    422 _m_paddsb (__m64 __m1, __m64 __m2)
    423 {
    424   return _mm_adds_pi8 (__m1, __m2);
    425 }
    426 
    427 /* Add the 16-bit values in M1 to the 16-bit values in M2 using signed
    428    saturated arithmetic.  */
    429 /* APPLE LOCAL begin radar 5618945 */
    430 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    431 /* APPLE LOCAL end radar 5618945 */
    432 _mm_adds_pi16 (__m64 __m1, __m64 __m2)
    433 {
    434   return (__m64) __builtin_ia32_paddsw ((__v4hi)__m1, (__v4hi)__m2);
    435 }
    436 
    437 /* APPLE LOCAL begin radar 5618945 */
    438 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    439 /* APPLE LOCAL end radar 5618945 */
    440 _m_paddsw (__m64 __m1, __m64 __m2)
    441 {
    442   return _mm_adds_pi16 (__m1, __m2);
    443 }
    444 
    445 /* Add the 8-bit values in M1 to the 8-bit values in M2 using unsigned
    446    saturated arithmetic.  */
    447 /* APPLE LOCAL begin radar 5618945 */
    448 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    449 /* APPLE LOCAL end radar 5618945 */
    450 _mm_adds_pu8 (__m64 __m1, __m64 __m2)
    451 {
    452   return (__m64) __builtin_ia32_paddusb ((__v8qi)__m1, (__v8qi)__m2);
    453 }
    454 
    455 /* APPLE LOCAL begin radar 5618945 */
    456 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    457 /* APPLE LOCAL end radar 5618945 */
    458 _m_paddusb (__m64 __m1, __m64 __m2)
    459 {
    460   return _mm_adds_pu8 (__m1, __m2);
    461 }
    462 
    463 /* Add the 16-bit values in M1 to the 16-bit values in M2 using unsigned
    464    saturated arithmetic.  */
    465 /* APPLE LOCAL begin radar 5618945 */
    466 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    467 /* APPLE LOCAL end radar 5618945 */
    468 _mm_adds_pu16 (__m64 __m1, __m64 __m2)
    469 {
    470   return (__m64) __builtin_ia32_paddusw ((__v4hi)__m1, (__v4hi)__m2);
    471 }
    472 
    473 /* APPLE LOCAL begin radar 5618945 */
    474 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    475 /* APPLE LOCAL end radar 5618945 */
    476 _m_paddusw (__m64 __m1, __m64 __m2)
    477 {
    478   return _mm_adds_pu16 (__m1, __m2);
    479 }
    480 
    481 /* Subtract the 8-bit values in M2 from the 8-bit values in M1.  */
    482 /* APPLE LOCAL begin radar 5618945 */
    483 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    484 /* APPLE LOCAL end radar 5618945 */
    485 _mm_sub_pi8 (__m64 __m1, __m64 __m2)
    486 {
    487   return (__m64) __builtin_ia32_psubb ((__v8qi)__m1, (__v8qi)__m2);
    488 }
    489 
    490 /* APPLE LOCAL begin radar 5618945 */
    491 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    492 /* APPLE LOCAL end radar 5618945 */
    493 _m_psubb (__m64 __m1, __m64 __m2)
    494 {
    495   return _mm_sub_pi8 (__m1, __m2);
    496 }
    497 
    498 /* Subtract the 16-bit values in M2 from the 16-bit values in M1.  */
    499 /* APPLE LOCAL begin radar 5618945 */
    500 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    501 /* APPLE LOCAL end radar 5618945 */
    502 _mm_sub_pi16 (__m64 __m1, __m64 __m2)
    503 {
    504   return (__m64) __builtin_ia32_psubw ((__v4hi)__m1, (__v4hi)__m2);
    505 }
    506 
    507 /* APPLE LOCAL begin radar 5618945 */
    508 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    509 /* APPLE LOCAL end radar 5618945 */
    510 _m_psubw (__m64 __m1, __m64 __m2)
    511 {
    512   return _mm_sub_pi16 (__m1, __m2);
    513 }
    514 
    515 /* Subtract the 32-bit values in M2 from the 32-bit values in M1.  */
    516 /* APPLE LOCAL begin radar 5618945 */
    517 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    518 /* APPLE LOCAL end radar 5618945 */
    519 _mm_sub_pi32 (__m64 __m1, __m64 __m2)
    520 {
    521   return (__m64) __builtin_ia32_psubd ((__v2si)__m1, (__v2si)__m2);
    522 }
    523 
    524 /* APPLE LOCAL begin radar 5618945 */
    525 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    526 /* APPLE LOCAL end radar 5618945 */
    527 _m_psubd (__m64 __m1, __m64 __m2)
    528 {
    529   return _mm_sub_pi32 (__m1, __m2);
    530 }
    531 
    532 /* Add the 64-bit values in M1 to the 64-bit values in M2.  */
    533 #ifdef __SSE2__
    534 /* APPLE LOCAL begin radar 5618945 */
    535 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    536 /* APPLE LOCAL end radar 5618945 */
    537 _mm_sub_si64 (__m64 __m1, __m64 __m2)
    538 {
    539   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    540   return (__m64) __builtin_ia32_psubq (__m1, __m2);
    541 }
    542 #endif
    543 
    544 /* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed
    545    saturating arithmetic.  */
    546 /* APPLE LOCAL begin radar 5618945 */
    547 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    548 /* APPLE LOCAL end radar 5618945 */
    549 _mm_subs_pi8 (__m64 __m1, __m64 __m2)
    550 {
    551   return (__m64) __builtin_ia32_psubsb ((__v8qi)__m1, (__v8qi)__m2);
    552 }
    553 
    554 /* APPLE LOCAL begin radar 5618945 */
    555 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    556 /* APPLE LOCAL end radar 5618945 */
    557 _m_psubsb (__m64 __m1, __m64 __m2)
    558 {
    559   return _mm_subs_pi8 (__m1, __m2);
    560 }
    561 
    562 /* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
    563    signed saturating arithmetic.  */
    564 /* APPLE LOCAL begin radar 5618945 */
    565 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    566 /* APPLE LOCAL end radar 5618945 */
    567 _mm_subs_pi16 (__m64 __m1, __m64 __m2)
    568 {
    569   return (__m64) __builtin_ia32_psubsw ((__v4hi)__m1, (__v4hi)__m2);
    570 }
    571 
    572 /* APPLE LOCAL begin radar 5618945 */
    573 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    574 /* APPLE LOCAL end radar 5618945 */
    575 _m_psubsw (__m64 __m1, __m64 __m2)
    576 {
    577   return _mm_subs_pi16 (__m1, __m2);
    578 }
    579 
    580 /* Subtract the 8-bit values in M2 from the 8-bit values in M1 using
    581    unsigned saturating arithmetic.  */
    582 /* APPLE LOCAL begin radar 5618945 */
    583 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    584 /* APPLE LOCAL end radar 5618945 */
    585 _mm_subs_pu8 (__m64 __m1, __m64 __m2)
    586 {
    587   return (__m64) __builtin_ia32_psubusb ((__v8qi)__m1, (__v8qi)__m2);
    588 }
    589 
    590 /* APPLE LOCAL begin radar 5618945 */
    591 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    592 /* APPLE LOCAL end radar 5618945 */
    593 _m_psubusb (__m64 __m1, __m64 __m2)
    594 {
    595   return _mm_subs_pu8 (__m1, __m2);
    596 }
    597 
    598 /* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
    599    unsigned saturating arithmetic.  */
    600 /* APPLE LOCAL begin radar 5618945 */
    601 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    602 /* APPLE LOCAL end radar 5618945 */
    603 _mm_subs_pu16 (__m64 __m1, __m64 __m2)
    604 {
    605   return (__m64) __builtin_ia32_psubusw ((__v4hi)__m1, (__v4hi)__m2);
    606 }
    607 
    608 /* APPLE LOCAL begin radar 5618945 */
    609 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    610 /* APPLE LOCAL end radar 5618945 */
    611 _m_psubusw (__m64 __m1, __m64 __m2)
    612 {
    613   return _mm_subs_pu16 (__m1, __m2);
    614 }
    615 
    616 /* Multiply four 16-bit values in M1 by four 16-bit values in M2 producing
    617    four 32-bit intermediate results, which are then summed by pairs to
    618    produce two 32-bit results.  */
    619 /* APPLE LOCAL begin radar 5618945 */
    620 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    621 /* APPLE LOCAL end radar 5618945 */
    622 _mm_madd_pi16 (__m64 __m1, __m64 __m2)
    623 {
    624   return (__m64) __builtin_ia32_pmaddwd ((__v4hi)__m1, (__v4hi)__m2);
    625 }
    626 
    627 /* APPLE LOCAL begin radar 5618945 */
    628 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    629 /* APPLE LOCAL end radar 5618945 */
    630 _m_pmaddwd (__m64 __m1, __m64 __m2)
    631 {
    632   return _mm_madd_pi16 (__m1, __m2);
    633 }
    634 
    635 /* Multiply four signed 16-bit values in M1 by four signed 16-bit values in
    636    M2 and produce the high 16 bits of the 32-bit results.  */
    637 /* APPLE LOCAL begin radar 5618945 */
    638 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    639 /* APPLE LOCAL end radar 5618945 */
    640 _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
    641 {
    642   return (__m64) __builtin_ia32_pmulhw ((__v4hi)__m1, (__v4hi)__m2);
    643 }
    644 
    645 /* APPLE LOCAL begin radar 5618945 */
    646 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    647 /* APPLE LOCAL end radar 5618945 */
    648 _m_pmulhw (__m64 __m1, __m64 __m2)
    649 {
    650   return _mm_mulhi_pi16 (__m1, __m2);
    651 }
    652 
    653 /* Multiply four 16-bit values in M1 by four 16-bit values in M2 and produce
    654    the low 16 bits of the results.  */
    655 /* APPLE LOCAL begin radar 5618945 */
    656 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    657 /* APPLE LOCAL end radar 5618945 */
    658 _mm_mullo_pi16 (__m64 __m1, __m64 __m2)
    659 {
    660   return (__m64) __builtin_ia32_pmullw ((__v4hi)__m1, (__v4hi)__m2);
    661 }
    662 
    663 /* APPLE LOCAL begin radar 5618945 */
    664 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    665 /* APPLE LOCAL end radar 5618945 */
    666 _m_pmullw (__m64 __m1, __m64 __m2)
    667 {
    668   return _mm_mullo_pi16 (__m1, __m2);
    669 }
    670 
    671 /* Shift four 16-bit values in M left by COUNT.  */
    672 /* APPLE LOCAL begin radar 5618945 */
    673 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    674 /* APPLE LOCAL end radar 5618945 */
    675 _mm_sll_pi16 (__m64 __m, __m64 __count)
    676 {
    677   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    678   return (__m64) __builtin_ia32_psllw ((__v4hi)__m, __count);
    679 }
    680 
    681 /* APPLE LOCAL begin radar 5618945 */
    682 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    683 /* APPLE LOCAL end radar 5618945 */
    684 _m_psllw (__m64 __m, __m64 __count)
    685 {
    686   return _mm_sll_pi16 (__m, __count);
    687 }
    688 
    689 /* APPLE LOCAL begin radar 5618945 */
    690 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    691 /* APPLE LOCAL end radar 5618945 */
    692 _mm_slli_pi16 (__m64 __m, int __count)
    693 {
    694   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    695   return (__m64) __builtin_ia32_psllwi ((__v4hi)__m, __count);
    696 }
    697 
    698 /* APPLE LOCAL begin radar 5618945 */
    699 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    700 /* APPLE LOCAL end radar 5618945 */
    701 _m_psllwi (__m64 __m, int __count)
    702 {
    703   return _mm_slli_pi16 (__m, __count);
    704 }
    705 
    706 /* Shift two 32-bit values in M left by COUNT.  */
    707 /* APPLE LOCAL begin radar 5618945 */
    708 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    709 /* APPLE LOCAL end radar 5618945 */
    710 _mm_sll_pi32 (__m64 __m, __m64 __count)
    711 {
    712   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    713   return (__m64) __builtin_ia32_pslld ((__v2si)__m, __count);
    714 }
    715 
    716 /* APPLE LOCAL begin radar 5618945 */
    717 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    718 /* APPLE LOCAL end radar 5618945 */
    719 _m_pslld (__m64 __m, __m64 __count)
    720 {
    721   return _mm_sll_pi32 (__m, __count);
    722 }
    723 
    724 /* APPLE LOCAL begin radar 5618945 */
    725 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    726 /* APPLE LOCAL end radar 5618945 */
    727 _mm_slli_pi32 (__m64 __m, int __count)
    728 {
    729   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    730   return (__m64) __builtin_ia32_pslldi ((__v2si)__m, __count);
    731 }
    732 
    733 /* APPLE LOCAL begin radar 5618945 */
    734 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    735 /* APPLE LOCAL end radar 5618945 */
    736 _m_pslldi (__m64 __m, int __count)
    737 {
    738   return _mm_slli_pi32 (__m, __count);
    739 }
    740 
    741 /* Shift the 64-bit value in M left by COUNT.  */
    742 /* APPLE LOCAL begin radar 5618945 */
    743 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    744 /* APPLE LOCAL end radar 5618945 */
    745 _mm_sll_si64 (__m64 __m, __m64 __count)
    746 {
    747   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    748   return (__m64) __builtin_ia32_psllq (__m, __count);
    749 }
    750 
    751 /* APPLE LOCAL begin radar 5618945 */
    752 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    753 /* APPLE LOCAL end radar 5618945 */
    754 _m_psllq (__m64 __m, __m64 __count)
    755 {
    756   return _mm_sll_si64 (__m, __count);
    757 }
    758 
    759 /* APPLE LOCAL begin radar 5618945 */
    760 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    761 /* APPLE LOCAL end radar 5618945 */
    762 _mm_slli_si64 (__m64 __m, int __count)
    763 {
    764   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    765   return (__m64) __builtin_ia32_psllqi (__m, __count);
    766 }
    767 
    768 /* APPLE LOCAL begin radar 5618945 */
    769 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    770 /* APPLE LOCAL end radar 5618945 */
    771 _m_psllqi (__m64 __m, int __count)
    772 {
    773   return _mm_slli_si64 (__m, __count);
    774 }
    775 
    776 /* Shift four 16-bit values in M right by COUNT; shift in the sign bit.  */
    777 /* APPLE LOCAL begin radar 5618945 */
    778 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    779 /* APPLE LOCAL end radar 5618945 */
    780 _mm_sra_pi16 (__m64 __m, __m64 __count)
    781 {
    782   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    783   return (__m64) __builtin_ia32_psraw ((__v4hi)__m, __count);
    784 }
    785 
    786 /* APPLE LOCAL begin radar 5618945 */
    787 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    788 /* APPLE LOCAL end radar 5618945 */
    789 _m_psraw (__m64 __m, __m64 __count)
    790 {
    791   return _mm_sra_pi16 (__m, __count);
    792 }
    793 
    794 /* APPLE LOCAL begin radar 5618945 */
    795 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    796 /* APPLE LOCAL end radar 5618945 */
    797 _mm_srai_pi16 (__m64 __m, int __count)
    798 {
    799   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    800   return (__m64) __builtin_ia32_psrawi ((__v4hi)__m, __count);
    801 }
    802 
    803 /* APPLE LOCAL begin radar 5618945 */
    804 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    805 /* APPLE LOCAL end radar 5618945 */
    806 _m_psrawi (__m64 __m, int __count)
    807 {
    808   return _mm_srai_pi16 (__m, __count);
    809 }
    810 
    811 /* Shift two 32-bit values in M right by COUNT; shift in the sign bit.  */
    812 /* APPLE LOCAL begin radar 5618945 */
    813 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    814 /* APPLE LOCAL end radar 5618945 */
    815 _mm_sra_pi32 (__m64 __m, __m64 __count)
    816 {
    817   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    818   return (__m64) __builtin_ia32_psrad ((__v2si)__m, __count);
    819 }
    820 
    821 /* APPLE LOCAL begin radar 5618945 */
    822 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    823 /* APPLE LOCAL end radar 5618945 */
    824 _m_psrad (__m64 __m, __m64 __count)
    825 {
    826   return _mm_sra_pi32 (__m, __count);
    827 }
    828 
    829 /* APPLE LOCAL begin radar 5618945 */
    830 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    831 /* APPLE LOCAL end radar 5618945 */
    832 _mm_srai_pi32 (__m64 __m, int __count)
    833 {
    834   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    835   return (__m64) __builtin_ia32_psradi ((__v2si)__m, __count);
    836 }
    837 
    838 /* APPLE LOCAL begin radar 5618945 */
    839 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    840 /* APPLE LOCAL end radar 5618945 */
    841 _m_psradi (__m64 __m, int __count)
    842 {
    843   return _mm_srai_pi32 (__m, __count);
    844 }
    845 
    846 /* Shift four 16-bit values in M right by COUNT; shift in zeros.  */
    847 /* APPLE LOCAL begin radar 5618945 */
    848 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    849 /* APPLE LOCAL end radar 5618945 */
    850 _mm_srl_pi16 (__m64 __m, __m64 __count)
    851 {
    852   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    853   return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, __count);
    854 }
    855 
    856 /* APPLE LOCAL begin radar 5618945 */
    857 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    858 /* APPLE LOCAL end radar 5618945 */
    859 _m_psrlw (__m64 __m, __m64 __count)
    860 {
    861   return _mm_srl_pi16 (__m, __count);
    862 }
    863 
    864 /* APPLE LOCAL begin radar 5618945 */
    865 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    866 /* APPLE LOCAL end radar 5618945 */
    867 _mm_srli_pi16 (__m64 __m, int __count)
    868 {
    869   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    870   return (__m64) __builtin_ia32_psrlwi ((__v4hi)__m, __count);
    871 }
    872 
    873 /* APPLE LOCAL begin radar 5618945 */
    874 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    875 /* APPLE LOCAL end radar 5618945 */
    876 _m_psrlwi (__m64 __m, int __count)
    877 {
    878   return _mm_srli_pi16 (__m, __count);
    879 }
    880 
    881 /* Shift two 32-bit values in M right by COUNT; shift in zeros.  */
    882 /* APPLE LOCAL begin radar 5618945 */
    883 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    884 /* APPLE LOCAL end radar 5618945 */
    885 _mm_srl_pi32 (__m64 __m, __m64 __count)
    886 {
    887   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    888   return (__m64) __builtin_ia32_psrld ((__v2si)__m, __count);
    889 }
    890 
    891 /* APPLE LOCAL begin radar 5618945 */
    892 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    893 /* APPLE LOCAL end radar 5618945 */
    894 _m_psrld (__m64 __m, __m64 __count)
    895 {
    896   return _mm_srl_pi32 (__m, __count);
    897 }
    898 
    899 /* APPLE LOCAL begin radar 5618945 */
    900 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    901 /* APPLE LOCAL end radar 5618945 */
    902 _mm_srli_pi32 (__m64 __m, int __count)
    903 {
    904   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    905   return (__m64) __builtin_ia32_psrldi ((__v2si)__m, __count);
    906 }
    907 
    908 /* APPLE LOCAL begin radar 5618945 */
    909 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    910 /* APPLE LOCAL end radar 5618945 */
    911 _m_psrldi (__m64 __m, int __count)
    912 {
    913   return _mm_srli_pi32 (__m, __count);
    914 }
    915 
    916 /* Shift the 64-bit value in M left by COUNT; shift in zeros.  */
    917 /* APPLE LOCAL begin radar 5618945 */
    918 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    919 /* APPLE LOCAL end radar 5618945 */
    920 _mm_srl_si64 (__m64 __m, __m64 __count)
    921 {
    922   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    923   return (__m64) __builtin_ia32_psrlq (__m, __count);
    924 }
    925 
    926 /* APPLE LOCAL begin radar 5618945 */
    927 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    928 /* APPLE LOCAL end radar 5618945 */
    929 _m_psrlq (__m64 __m, __m64 __count)
    930 {
    931   return _mm_srl_si64 (__m, __count);
    932 }
    933 
    934 /* APPLE LOCAL begin radar 5618945 */
    935 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    936 /* APPLE LOCAL end radar 5618945 */
    937 _mm_srli_si64 (__m64 __m, int __count)
    938 {
    939   /* APPLE LOCAL 4656532 use V1DImode for _m64 */
    940   return (__m64) __builtin_ia32_psrlqi (__m, __count);
    941 }
    942 
    943 /* APPLE LOCAL begin radar 5618945 */
    944 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    945 /* APPLE LOCAL end radar 5618945 */
    946 _m_psrlqi (__m64 __m, int __count)
    947 {
    948   return _mm_srli_si64 (__m, __count);
    949 }
    950 
    951 /* Bit-wise AND the 64-bit values in M1 and M2.  */
    952 /* APPLE LOCAL begin radar 5618945 */
    953 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    954 /* APPLE LOCAL end radar 5618945 */
    955 _mm_and_si64 (__m64 __m1, __m64 __m2)
    956 {
    957   return __builtin_ia32_pand (__m1, __m2);
    958 }
    959 
    960 /* APPLE LOCAL begin radar 5618945 */
    961 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    962 /* APPLE LOCAL end radar 5618945 */
    963 _m_pand (__m64 __m1, __m64 __m2)
    964 {
    965   return _mm_and_si64 (__m1, __m2);
    966 }
    967 
    968 /* Bit-wise complement the 64-bit value in M1 and bit-wise AND it with the
    969    64-bit value in M2.  */
    970 /* APPLE LOCAL begin radar 5618945 */
    971 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    972 /* APPLE LOCAL end radar 5618945 */
    973 _mm_andnot_si64 (__m64 __m1, __m64 __m2)
    974 {
    975   return __builtin_ia32_pandn (__m1, __m2);
    976 }
    977 
    978 /* APPLE LOCAL begin radar 5618945 */
    979 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    980 /* APPLE LOCAL end radar 5618945 */
    981 _m_pandn (__m64 __m1, __m64 __m2)
    982 {
    983   return _mm_andnot_si64 (__m1, __m2);
    984 }
    985 
    986 /* Bit-wise inclusive OR the 64-bit values in M1 and M2.  */
    987 /* APPLE LOCAL begin radar 5618945 */
    988 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    989 /* APPLE LOCAL end radar 5618945 */
    990 _mm_or_si64 (__m64 __m1, __m64 __m2)
    991 {
    992   return __builtin_ia32_por (__m1, __m2);
    993 }
    994 
    995 /* APPLE LOCAL begin radar 5618945 */
    996 __STATIC_INLINE __m64 __attribute__((__always_inline__))
    997 /* APPLE LOCAL end radar 5618945 */
    998 _m_por (__m64 __m1, __m64 __m2)
    999 {
   1000   return _mm_or_si64 (__m1, __m2);
   1001 }
   1002 
   1003 /* Bit-wise exclusive OR the 64-bit values in M1 and M2.  */
   1004 /* APPLE LOCAL begin radar 5618945 */
   1005 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1006 /* APPLE LOCAL end radar 5618945 */
   1007 _mm_xor_si64 (__m64 __m1, __m64 __m2)
   1008 {
   1009   return __builtin_ia32_pxor (__m1, __m2);
   1010 }
   1011 
   1012 /* APPLE LOCAL begin radar 5618945 */
   1013 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1014 /* APPLE LOCAL end radar 5618945 */
   1015 _m_pxor (__m64 __m1, __m64 __m2)
   1016 {
   1017   return _mm_xor_si64 (__m1, __m2);
   1018 }
   1019 
   1020 /* Compare eight 8-bit values.  The result of the comparison is 0xFF if the
   1021    test is true and zero if false.  */
   1022 /* APPLE LOCAL begin radar 5618945 */
   1023 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1024 /* APPLE LOCAL end radar 5618945 */
   1025 _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
   1026 {
   1027   return (__m64) __builtin_ia32_pcmpeqb ((__v8qi)__m1, (__v8qi)__m2);
   1028 }
   1029 
   1030 /* APPLE LOCAL begin radar 5618945 */
   1031 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1032 /* APPLE LOCAL end radar 5618945 */
   1033 _m_pcmpeqb (__m64 __m1, __m64 __m2)
   1034 {
   1035   return _mm_cmpeq_pi8 (__m1, __m2);
   1036 }
   1037 
   1038 /* APPLE LOCAL begin radar 5618945 */
   1039 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1040 /* APPLE LOCAL end radar 5618945 */
   1041 _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
   1042 {
   1043   return (__m64) __builtin_ia32_pcmpgtb ((__v8qi)__m1, (__v8qi)__m2);
   1044 }
   1045 
   1046 /* APPLE LOCAL begin radar 5618945 */
   1047 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1048 /* APPLE LOCAL end radar 5618945 */
   1049 _m_pcmpgtb (__m64 __m1, __m64 __m2)
   1050 {
   1051   return _mm_cmpgt_pi8 (__m1, __m2);
   1052 }
   1053 
   1054 /* Compare four 16-bit values.  The result of the comparison is 0xFFFF if
   1055    the test is true and zero if false.  */
   1056 /* APPLE LOCAL begin radar 5618945 */
   1057 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1058 /* APPLE LOCAL end radar 5618945 */
   1059 _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
   1060 {
   1061   return (__m64) __builtin_ia32_pcmpeqw ((__v4hi)__m1, (__v4hi)__m2);
   1062 }
   1063 
   1064 /* APPLE LOCAL begin radar 5618945 */
   1065 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1066 /* APPLE LOCAL end radar 5618945 */
   1067 _m_pcmpeqw (__m64 __m1, __m64 __m2)
   1068 {
   1069   return _mm_cmpeq_pi16 (__m1, __m2);
   1070 }
   1071 
   1072 /* APPLE LOCAL begin radar 5618945 */
   1073 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1074 /* APPLE LOCAL end radar 5618945 */
   1075 _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
   1076 {
   1077   return (__m64) __builtin_ia32_pcmpgtw ((__v4hi)__m1, (__v4hi)__m2);
   1078 }
   1079 
   1080 /* APPLE LOCAL begin radar 5618945 */
   1081 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1082 /* APPLE LOCAL end radar 5618945 */
   1083 _m_pcmpgtw (__m64 __m1, __m64 __m2)
   1084 {
   1085   return _mm_cmpgt_pi16 (__m1, __m2);
   1086 }
   1087 
   1088 /* Compare two 32-bit values.  The result of the comparison is 0xFFFFFFFF if
   1089    the test is true and zero if false.  */
   1090 /* APPLE LOCAL begin radar 5618945 */
   1091 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1092 /* APPLE LOCAL end radar 5618945 */
   1093 _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
   1094 {
   1095   return (__m64) __builtin_ia32_pcmpeqd ((__v2si)__m1, (__v2si)__m2);
   1096 }
   1097 
   1098 /* APPLE LOCAL begin radar 5618945 */
   1099 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1100 /* APPLE LOCAL end radar 5618945 */
   1101 _m_pcmpeqd (__m64 __m1, __m64 __m2)
   1102 {
   1103   return _mm_cmpeq_pi32 (__m1, __m2);
   1104 }
   1105 
   1106 /* APPLE LOCAL begin radar 5618945 */
   1107 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1108 /* APPLE LOCAL end radar 5618945 */
   1109 _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
   1110 {
   1111   return (__m64) __builtin_ia32_pcmpgtd ((__v2si)__m1, (__v2si)__m2);
   1112 }
   1113 
   1114 /* APPLE LOCAL begin radar 5618945 */
   1115 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1116 /* APPLE LOCAL end radar 5618945 */
   1117 _m_pcmpgtd (__m64 __m1, __m64 __m2)
   1118 {
   1119   return _mm_cmpgt_pi32 (__m1, __m2);
   1120 }
   1121 
   1122 /* Creates a 64-bit zero.  */
   1123 /* APPLE LOCAL begin radar 5618945 */
   1124 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1125 /* APPLE LOCAL end radar 5618945 */
   1126 _mm_setzero_si64 (void)
   1127 {
   1128   return (__m64)0LL;
   1129 }
   1130 
   1131 /* Creates a vector of two 32-bit values; I0 is least significant.  */
   1132 /* APPLE LOCAL begin radar 5618945 */
   1133 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1134 /* APPLE LOCAL end radar 5618945 */
   1135 _mm_set_pi32 (int __i1, int __i0)
   1136 {
   1137   return (__m64) __builtin_ia32_vec_init_v2si (__i0, __i1);
   1138 }
   1139 
   1140 /* Creates a vector of four 16-bit values; W0 is least significant.  */
   1141 /* APPLE LOCAL begin radar 5618945 */
   1142 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1143 /* APPLE LOCAL end radar 5618945 */
   1144 _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0)
   1145 {
   1146   return (__m64) __builtin_ia32_vec_init_v4hi (__w0, __w1, __w2, __w3);
   1147 }
   1148 
   1149 /* Creates a vector of eight 8-bit values; B0 is least significant.  */
   1150 /* APPLE LOCAL begin radar 5618945 */
   1151 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1152 /* APPLE LOCAL end radar 5618945 */
   1153 _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4,
   1154 	     char __b3, char __b2, char __b1, char __b0)
   1155 {
   1156   return (__m64) __builtin_ia32_vec_init_v8qi (__b0, __b1, __b2, __b3,
   1157 					       __b4, __b5, __b6, __b7);
   1158 }
   1159 
   1160 /* Similar, but with the arguments in reverse order.  */
   1161 /* APPLE LOCAL begin radar 5618945 */
   1162 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1163 /* APPLE LOCAL end radar 5618945 */
   1164 _mm_setr_pi32 (int __i0, int __i1)
   1165 {
   1166   return _mm_set_pi32 (__i1, __i0);
   1167 }
   1168 
   1169 /* APPLE LOCAL begin radar 5618945 */
   1170 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1171 /* APPLE LOCAL end radar 5618945 */
   1172 _mm_setr_pi16 (short __w0, short __w1, short __w2, short __w3)
   1173 {
   1174   return _mm_set_pi16 (__w3, __w2, __w1, __w0);
   1175 }
   1176 
   1177 /* APPLE LOCAL begin radar 5618945 */
   1178 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1179 /* APPLE LOCAL end radar 5618945 */
   1180 _mm_setr_pi8 (char __b0, char __b1, char __b2, char __b3,
   1181 	      char __b4, char __b5, char __b6, char __b7)
   1182 {
   1183   return _mm_set_pi8 (__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
   1184 }
   1185 
   1186 /* Creates a vector of two 32-bit values, both elements containing I.  */
   1187 /* APPLE LOCAL begin radar 5618945 */
   1188 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1189 /* APPLE LOCAL end radar 5618945 */
   1190 _mm_set1_pi32 (int __i)
   1191 {
   1192   return _mm_set_pi32 (__i, __i);
   1193 }
   1194 
   1195 /* Creates a vector of four 16-bit values, all elements containing W.  */
   1196 /* APPLE LOCAL begin radar 5618945 */
   1197 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1198 /* APPLE LOCAL end radar 5618945 */
   1199 _mm_set1_pi16 (short __w)
   1200 {
   1201   return _mm_set_pi16 (__w, __w, __w, __w);
   1202 }
   1203 
   1204 /* Creates a vector of eight 8-bit values, all elements containing B.  */
   1205 /* APPLE LOCAL begin radar 5618945 */
   1206 __STATIC_INLINE __m64 __attribute__((__always_inline__))
   1207 /* APPLE LOCAL end radar 5618945 */
   1208 _mm_set1_pi8 (char __b)
   1209 {
   1210   return _mm_set_pi8 (__b, __b, __b, __b, __b, __b, __b, __b);
   1211 }
   1212 /* APPLE LOCAL end radar 4152603 */
   1213 
   1214 /* APPLE LOCAL begin nodebug inline 4152603 */
   1215 #undef __always_inline__
   1216 /* APPLE LOCAL end nodebug inline 4152603 */
   1217 
   1218 #endif /* __MMX__ */
   1219 #endif /* _MMINTRIN_H_INCLUDED */
   1220