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 */
41typedef long long __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
42
43/* Internal data types for implementing the intrinsics.  */
44typedef int __v2si __attribute__ ((__vector_size__ (8)));
45typedef short __v4hi __attribute__ ((__vector_size__ (8)));
46typedef 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