1/* APPLE LOCAL file mainline 2005-06-30 Radar 4131077 */
2/* Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
3
4   This file is part of GCC.
5
6   GCC is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   GCC is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with GCC; see the file COPYING.  If not, write to
18   the Free Software Foundation, 51 Franklin Street, Fifth Floor,
19   Boston, MA 02110-1301, USA.  */
20
21/* As a special exception, if you include this header file into source
22   files compiled by GCC, this header file does not by itself cause
23   the resulting executable to be covered by the GNU General Public
24   License.  This exception does not however invalidate any other
25   reasons why the executable file might be covered by the GNU General
26   Public License.  */
27
28/* Implemented from the specification included in the Intel C++ Compiler
29   User Guide and Reference, version 9.0.  */
30
31#ifndef _EMMINTRIN_H_INCLUDED
32#define _EMMINTRIN_H_INCLUDED
33
34#ifdef __SSE2__
35#include <xmmintrin.h>
36
37/* SSE2 */
38typedef double __v2df __attribute__ ((__vector_size__ (16)));
39typedef long long __v2di __attribute__ ((__vector_size__ (16)));
40typedef int __v4si __attribute__ ((__vector_size__ (16)));
41typedef short __v8hi __attribute__ ((__vector_size__ (16)));
42typedef char __v16qi __attribute__ ((__vector_size__ (16)));
43
44/* The Intel API is flexible enough that we must allow aliasing with other
45   vector types, and their scalar components.  */
46typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
47typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
48
49#if defined(__clang__) && defined(WITH_SYNTAX_CHECK)
50/* Workaround for "clang -fsyntax-only" happens to use this header, but may
51 * choke on something not supported in clang
52 */
53__m128d __builtin_ia32_addpd (__v2df, __v2df);
54__m128d __builtin_ia32_addsd (__v2df, __v2df);
55__m128d __builtin_ia32_andnpd (__v2df, __v2df);
56__m128d __builtin_ia32_andpd (__v2df, __v2df);
57__m128d __builtin_ia32_cmpeqpd (__v2df, __v2df);
58__m128d __builtin_ia32_cmpeqsd (__v2df, __v2df);
59__m128d __builtin_ia32_cmpgepd (__v2df, __v2df);
60__m128d __builtin_ia32_cmpgtpd (__v2df, __v2df);
61__m128d __builtin_ia32_cmplepd (__v2df, __v2df);
62__m128d __builtin_ia32_cmplesd (__v2df, __v2df);
63__m128d __builtin_ia32_cmpltpd (__v2df, __v2df);
64__m128d __builtin_ia32_cmpltsd (__v2df, __v2df);
65__m128d __builtin_ia32_cmpneqpd (__v2df, __v2df);
66__m128d __builtin_ia32_cmpneqsd (__v2df, __v2df);
67__m128d __builtin_ia32_cmpngepd (__v2df, __v2df);
68__m128d __builtin_ia32_cmpngtpd (__v2df, __v2df);
69__m128d __builtin_ia32_cmpnlepd (__v2df, __v2df);
70__m128d __builtin_ia32_cmpnlesd (__v2df, __v2df);
71__m128d __builtin_ia32_cmpnltpd (__v2df, __v2df);
72__m128d __builtin_ia32_cmpnltsd (__v2df, __v2df);
73__m128d __builtin_ia32_cmpordpd (__v2df, __v2df);
74__m128d __builtin_ia32_cmpordsd (__v2df, __v2df);
75__m128d __builtin_ia32_cmpunordpd (__v2df, __v2df);
76__m128d __builtin_ia32_cmpunordsd (__v2df, __v2df);
77__m128d __builtin_ia32_cvtsi2sd (__v2df, int);
78__m128d __builtin_ia32_cvtss2sd (__v2df, __v4sf);
79__m128d __builtin_ia32_divpd (__v2df, __v2df);
80__m128d __builtin_ia32_divsd (__v2df, __v2df);
81__m128d __builtin_ia32_loadhpd (__v2df, double const *);
82__m128d __builtin_ia32_loadlpd (__v2df, double const *);
83__m128d __builtin_ia32_movsd (__v2df, __v2df);
84__m128d __builtin_ia32_mulpd (__v2df, __v2df);
85__m128d __builtin_ia32_mulsd (__v2df, __v2df);
86__m128d __builtin_ia32_orpd (__v2df, __v2df);
87__m128d __builtin_ia32_shufpd (__v2df, __v2df, const int);
88__m128d __builtin_ia32_subpd (__v2df, __v2df);
89__m128d __builtin_ia32_subsd (__v2df, __v2df);
90__m128d __builtin_ia32_unpckhpd (__v2df, __v2df);
91__m128d __builtin_ia32_unpcklpd (__v2df, __v2df);
92__m128d __builtin_ia32_xorpd (__v2df, __v2df);
93__m128i  __builtin_ia32_loaddqu (char const *);
94__m128i __builtin_ia32_movq128 (__v2di);
95__m128i __builtin_ia32_paddb128 (__v16qi, __v16qi);
96__m128i __builtin_ia32_paddd128 (__v4si, __v4si);
97__m128i __builtin_ia32_paddq128 (__v2di, __v2di);
98__m128i __builtin_ia32_paddw128 (__v8hi, __v8hi);
99__m128i __builtin_ia32_pand128 (__v2di, __v2di);
100__m128i __builtin_ia32_pandn128 (__v2di, __v2di);
101__m128i __builtin_ia32_pcmpeqb128 (__v16qi, __v16qi);
102__m128i __builtin_ia32_pcmpeqd128 (__v4si, __v4si);
103__m128i __builtin_ia32_pcmpeqw128 (__v8hi, __v8hi);
104__m128i __builtin_ia32_pcmpgtb128 (__v16qi, __v16qi);
105__m128i __builtin_ia32_pcmpgtb128 (__v16qi, __v16qi);
106__m128i __builtin_ia32_pcmpgtd128 (__v4si, __v4si);
107__m128i __builtin_ia32_pcmpgtd128 (__v4si, __v4si);
108__m128i __builtin_ia32_pcmpgtw128 (__v8hi, __v8hi);
109__m128i __builtin_ia32_pcmpgtw128 (__v8hi, __v8hi);
110__m128i __builtin_ia32_pmullw128 (__v8hi, __v8hi);
111__m128i __builtin_ia32_por128 (__v2di, __v2di);
112__m128i __builtin_ia32_pshufd (__v4si, const int);
113__m128i __builtin_ia32_pshufhw (__v8hi, const int);
114__m128i __builtin_ia32_pshuflw (__v8hi, const int);
115__m128i __builtin_ia32_pslldqi128 (__m128i, const int);
116__m128i __builtin_ia32_psrldqi128 (__m128i, const int);
117__m128i __builtin_ia32_psubb128 (__v16qi, __v16qi);
118__m128i __builtin_ia32_psubd128 (__v4si, __v4si);
119__m128i __builtin_ia32_psubq128 (__v2di, __v2di);
120__m128i __builtin_ia32_psubw128 (__v8hi, __v8hi);
121__m128i __builtin_ia32_punpckhbw128 (__v16qi, __v16qi);
122__m128i __builtin_ia32_punpckhdq128 (__v4si, __v4si);
123__m128i __builtin_ia32_punpckhqdq128 (__v2di, __v2di);
124__m128i __builtin_ia32_punpckhwd128 (__v8hi, __v8hi);
125__m128i __builtin_ia32_punpcklbw128 (__v16qi, __v16qi);
126__m128i __builtin_ia32_punpckldq128 (__v4si, __v4si);
127__m128i __builtin_ia32_punpcklqdq128 (__v2di, __v2di);
128__m128i __builtin_ia32_punpcklwd128 (__v8hi, __v8hi);
129__m128i __builtin_ia32_pxor128 (__v2di, __v2di);
130__m128i __builtin_ia32_vec_set_v8hi (__v8hi, const int, const int);
131__m128d __builtin_ia32_loadupd (double const *);
132int __builtin_ia32_cvttsd2si (__v2df);
133double __builtin_ia32_vec_ext_v2df (__m128d, const int);
134int __builtin_ia32_vec_ext_v4si (__v4si, const int);
135__m128 __builtin_ia32_cvtsd2ss (__v4sf, __v2df);
136long long __builtin_ia32_vec_ext_v2di (__v2di, const int);
137unsigned short __builtin_ia32_vec_ext_v8hi (__v8hi, const int);
138long long __builtin_ia32_cvttsd2si64 (__v2df);
139__m128d __builtin_ia32_cvtsi642sd (__v2df, long long);
140__m128i __builtin_ia32_loadlv4si (__v2si *);
141__m128i __builtin_ia32_movqv4si (__v4si);
142void __builtin_ia32_storelv4si (__v2si *, __m128i);
143#endif
144
145/* Create a selector for use with the SHUFPD instruction.  */
146#define _MM_SHUFFLE2(fp1,fp0) \
147 (((fp1) << 1) | (fp0))
148
149/* APPLE LOCAL begin nodebug inline 4152603 */
150#define __always_inline__ __always_inline__, __nodebug__
151/* APPLE LOCAL end nodebug inline 4152603 */
152
153/* APPLE LOCAL begin radar 5618945 */
154#undef __STATIC_INLINE
155#ifdef __GNUC_STDC_INLINE__
156#define __STATIC_INLINE __inline
157#else
158#define __STATIC_INLINE static __inline
159#endif
160/* APPLE LOCAL end radar 5618945 */
161
162/* APPLE LOCAL begin radar 4152603 */
163/* Create a vector with element 0 as F and the rest zero.  */
164/* APPLE LOCAL begin radar 5618945 */
165__STATIC_INLINE __m128d __attribute__((__always_inline__))
166/* APPLE LOCAL end radar 5618945 */
167_mm_set_sd (double __F)
168{
169  return __extension__ (__m128d){ __F, 0 };
170}
171
172/* Create a vector with both elements equal to F.  */
173/* APPLE LOCAL begin radar 5618945 */
174__STATIC_INLINE __m128d __attribute__((__always_inline__))
175/* APPLE LOCAL end radar 5618945 */
176_mm_set1_pd (double __F)
177{
178  return __extension__ (__m128d){ __F, __F };
179}
180
181/* APPLE LOCAL begin radar 5618945 */
182__STATIC_INLINE __m128d __attribute__((__always_inline__))
183/* APPLE LOCAL end radar 5618945 */
184_mm_set_pd1 (double __F)
185{
186  return _mm_set1_pd (__F);
187}
188
189/* Create a vector with the lower value X and upper value W.  */
190/* APPLE LOCAL begin radar 5618945 */
191__STATIC_INLINE __m128d __attribute__((__always_inline__))
192/* APPLE LOCAL end radar 5618945 */
193_mm_set_pd (double __W, double __X)
194{
195  return __extension__ (__m128d){ __X, __W };
196}
197
198/* Create a vector with the lower value W and upper value X.  */
199/* APPLE LOCAL begin radar 5618945 */
200__STATIC_INLINE __m128d __attribute__((__always_inline__))
201/* APPLE LOCAL end radar 5618945 */
202_mm_setr_pd (double __W, double __X)
203{
204  return __extension__ (__m128d){ __W, __X };
205}
206
207/* Create a vector of zeros.  */
208/* APPLE LOCAL begin radar 5618945 */
209__STATIC_INLINE __m128d __attribute__((__always_inline__))
210/* APPLE LOCAL end radar 5618945 */
211_mm_setzero_pd (void)
212{
213  return __extension__ (__m128d){ 0.0, 0.0 };
214}
215
216/* Sets the low DPFP value of A from the low value of B.  */
217/* APPLE LOCAL begin radar 5618945 */
218__STATIC_INLINE __m128d __attribute__((__always_inline__))
219/* APPLE LOCAL end radar 5618945 */
220_mm_move_sd (__m128d __A, __m128d __B)
221{
222  return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
223}
224
225/* Load two DPFP values from P.  The address must be 16-byte aligned.  */
226/* APPLE LOCAL begin radar 5618945 */
227__STATIC_INLINE __m128d __attribute__((__always_inline__))
228/* APPLE LOCAL end radar 5618945 */
229_mm_load_pd (double const *__P)
230{
231  return *(__m128d *)__P;
232}
233
234/* Load two DPFP values from P.  The address need not be 16-byte aligned.  */
235/* APPLE LOCAL begin radar 5618945 */
236__STATIC_INLINE __m128d __attribute__((__always_inline__))
237/* APPLE LOCAL end radar 5618945 */
238_mm_loadu_pd (double const *__P)
239{
240  return __builtin_ia32_loadupd (__P);
241}
242
243/* Create a vector with all two elements equal to *P.  */
244/* APPLE LOCAL begin radar 5618945 */
245__STATIC_INLINE __m128d __attribute__((__always_inline__))
246/* APPLE LOCAL end radar 5618945 */
247_mm_load1_pd (double const *__P)
248{
249  return _mm_set1_pd (*__P);
250}
251
252/* Create a vector with element 0 as *P and the rest zero.  */
253/* APPLE LOCAL begin radar 5618945 */
254__STATIC_INLINE __m128d __attribute__((__always_inline__))
255/* APPLE LOCAL end radar 5618945 */
256_mm_load_sd (double const *__P)
257{
258  return _mm_set_sd (*__P);
259}
260
261/* APPLE LOCAL begin radar 5618945 */
262__STATIC_INLINE __m128d __attribute__((__always_inline__))
263/* APPLE LOCAL end radar 5618945 */
264_mm_load_pd1 (double const *__P)
265{
266  return _mm_load1_pd (__P);
267}
268
269/* Load two DPFP values in reverse order.  The address must be aligned.  */
270/* APPLE LOCAL begin radar 5618945 */
271__STATIC_INLINE __m128d __attribute__((__always_inline__))
272/* APPLE LOCAL end radar 5618945 */
273_mm_loadr_pd (double const *__P)
274{
275  __m128d __tmp = _mm_load_pd (__P);
276  return __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,1));
277}
278
279/* Store two DPFP values.  The address must be 16-byte aligned.  */
280/* APPLE LOCAL begin radar 5618945 */
281__STATIC_INLINE void __attribute__((__always_inline__))
282/* APPLE LOCAL end radar 5618945 */
283_mm_store_pd (double *__P, __m128d __A)
284{
285  *(__m128d *)__P = __A;
286}
287
288/* Store two DPFP values.  The address need not be 16-byte aligned.  */
289/* APPLE LOCAL begin radar 5618945 */
290__STATIC_INLINE void __attribute__((__always_inline__))
291/* APPLE LOCAL end radar 5618945 */
292_mm_storeu_pd (double *__P, __m128d __A)
293{
294  __builtin_ia32_storeupd (__P, __A);
295}
296
297/* Stores the lower DPFP value.  */
298/* APPLE LOCAL begin radar 5618945 */
299__STATIC_INLINE void __attribute__((__always_inline__))
300/* APPLE LOCAL end radar 5618945 */
301_mm_store_sd (double *__P, __m128d __A)
302{
303  *__P = __builtin_ia32_vec_ext_v2df (__A, 0);
304}
305
306/* APPLE LOCAL begin radar 5618945 */
307__STATIC_INLINE double __attribute__((__always_inline__))
308/* APPLE LOCAL end radar 5618945 */
309_mm_cvtsd_f64 (__m128d __A)
310{
311  return __builtin_ia32_vec_ext_v2df (__A, 0);
312}
313
314/* APPLE LOCAL begin radar 5618945 */
315__STATIC_INLINE void __attribute__((__always_inline__))
316/* APPLE LOCAL end radar 5618945 */
317_mm_storel_pd (double *__P, __m128d __A)
318{
319  _mm_store_sd (__P, __A);
320}
321
322/* Stores the upper DPFP value.  */
323/* APPLE LOCAL begin radar 5618945 */
324__STATIC_INLINE void __attribute__((__always_inline__))
325/* APPLE LOCAL end radar 5618945 */
326_mm_storeh_pd (double *__P, __m128d __A)
327{
328  *__P = __builtin_ia32_vec_ext_v2df (__A, 1);
329}
330
331/* Store the lower DPFP value across two words.
332   The address must be 16-byte aligned.  */
333/* APPLE LOCAL begin radar 5618945 */
334__STATIC_INLINE void __attribute__((__always_inline__))
335/* APPLE LOCAL end radar 5618945 */
336_mm_store1_pd (double *__P, __m128d __A)
337{
338  _mm_store_pd (__P, __builtin_ia32_shufpd (__A, __A, _MM_SHUFFLE2 (0,0)));
339}
340
341/* APPLE LOCAL begin radar 5618945 */
342__STATIC_INLINE void __attribute__((__always_inline__))
343/* APPLE LOCAL end radar 5618945 */
344_mm_store_pd1 (double *__P, __m128d __A)
345{
346  _mm_store1_pd (__P, __A);
347}
348
349/* Store two DPFP values in reverse order.  The address must be aligned.  */
350/* APPLE LOCAL begin radar 5618945 */
351__STATIC_INLINE void __attribute__((__always_inline__))
352/* APPLE LOCAL end radar 5618945 */
353_mm_storer_pd (double *__P, __m128d __A)
354{
355  _mm_store_pd (__P, __builtin_ia32_shufpd (__A, __A, _MM_SHUFFLE2 (0,1)));
356}
357
358/* APPLE LOCAL begin radar 5618945 */
359__STATIC_INLINE int __attribute__((__always_inline__))
360/* APPLE LOCAL end radar 5618945 */
361_mm_cvtsi128_si32 (__m128i __A)
362{
363  return __builtin_ia32_vec_ext_v4si ((__v4si)__A, 0);
364}
365
366#ifdef __x86_64__
367/* Intel intrinsic.  */
368/* APPLE LOCAL begin radar 5618945 */
369__STATIC_INLINE long long __attribute__((__always_inline__))
370/* APPLE LOCAL end radar 5618945 */
371_mm_cvtsi128_si64 (__m128i __A)
372{
373  return __builtin_ia32_vec_ext_v2di ((__v2di)__A, 0);
374}
375
376/* Microsoft intrinsic.  */
377/* APPLE LOCAL begin radar 5618945 */
378__STATIC_INLINE long long __attribute__((__always_inline__))
379/* APPLE LOCAL end radar 5618945 */
380_mm_cvtsi128_si64x (__m128i __A)
381{
382  return __builtin_ia32_vec_ext_v2di ((__v2di)__A, 0);
383}
384#endif
385
386/* APPLE LOCAL begin radar 5618945 */
387__STATIC_INLINE __m128d __attribute__((__always_inline__))
388/* APPLE LOCAL end radar 5618945 */
389_mm_add_pd (__m128d __A, __m128d __B)
390{
391  return (__m128d)__builtin_ia32_addpd ((__v2df)__A, (__v2df)__B);
392}
393
394/* APPLE LOCAL begin radar 5618945 */
395__STATIC_INLINE __m128d __attribute__((__always_inline__))
396/* APPLE LOCAL end radar 5618945 */
397_mm_add_sd (__m128d __A, __m128d __B)
398{
399  return (__m128d)__builtin_ia32_addsd ((__v2df)__A, (__v2df)__B);
400}
401
402/* APPLE LOCAL begin radar 5618945 */
403__STATIC_INLINE __m128d __attribute__((__always_inline__))
404/* APPLE LOCAL end radar 5618945 */
405_mm_sub_pd (__m128d __A, __m128d __B)
406{
407  return (__m128d)__builtin_ia32_subpd ((__v2df)__A, (__v2df)__B);
408}
409
410/* APPLE LOCAL begin radar 5618945 */
411__STATIC_INLINE __m128d __attribute__((__always_inline__))
412/* APPLE LOCAL end radar 5618945 */
413_mm_sub_sd (__m128d __A, __m128d __B)
414{
415  return (__m128d)__builtin_ia32_subsd ((__v2df)__A, (__v2df)__B);
416}
417
418/* APPLE LOCAL begin radar 5618945 */
419__STATIC_INLINE __m128d __attribute__((__always_inline__))
420/* APPLE LOCAL end radar 5618945 */
421_mm_mul_pd (__m128d __A, __m128d __B)
422{
423  return (__m128d)__builtin_ia32_mulpd ((__v2df)__A, (__v2df)__B);
424}
425
426/* APPLE LOCAL begin radar 5618945 */
427__STATIC_INLINE __m128d __attribute__((__always_inline__))
428/* APPLE LOCAL end radar 5618945 */
429_mm_mul_sd (__m128d __A, __m128d __B)
430{
431  return (__m128d)__builtin_ia32_mulsd ((__v2df)__A, (__v2df)__B);
432}
433
434/* APPLE LOCAL begin radar 5618945 */
435__STATIC_INLINE __m128d __attribute__((__always_inline__))
436/* APPLE LOCAL end radar 5618945 */
437_mm_div_pd (__m128d __A, __m128d __B)
438{
439  return (__m128d)__builtin_ia32_divpd ((__v2df)__A, (__v2df)__B);
440}
441
442/* APPLE LOCAL begin radar 5618945 */
443__STATIC_INLINE __m128d __attribute__((__always_inline__))
444/* APPLE LOCAL end radar 5618945 */
445_mm_div_sd (__m128d __A, __m128d __B)
446{
447  return (__m128d)__builtin_ia32_divsd ((__v2df)__A, (__v2df)__B);
448}
449
450/* APPLE LOCAL begin radar 5618945 */
451__STATIC_INLINE __m128d __attribute__((__always_inline__))
452/* APPLE LOCAL end radar 5618945 */
453_mm_sqrt_pd (__m128d __A)
454{
455  return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A);
456}
457
458/* Return pair {sqrt (A[0), B[1]}.  */
459/* APPLE LOCAL begin radar 5618945 */
460__STATIC_INLINE __m128d __attribute__((__always_inline__))
461/* APPLE LOCAL end radar 5618945 */
462_mm_sqrt_sd (__m128d __A, __m128d __B)
463{
464  __v2df __tmp = __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
465  return (__m128d)__builtin_ia32_sqrtsd ((__v2df)__tmp);
466}
467
468/* APPLE LOCAL begin radar 5618945 */
469__STATIC_INLINE __m128d __attribute__((__always_inline__))
470/* APPLE LOCAL end radar 5618945 */
471_mm_min_pd (__m128d __A, __m128d __B)
472{
473  return (__m128d)__builtin_ia32_minpd ((__v2df)__A, (__v2df)__B);
474}
475
476/* APPLE LOCAL begin radar 5618945 */
477__STATIC_INLINE __m128d __attribute__((__always_inline__))
478/* APPLE LOCAL end radar 5618945 */
479_mm_min_sd (__m128d __A, __m128d __B)
480{
481  return (__m128d)__builtin_ia32_minsd ((__v2df)__A, (__v2df)__B);
482}
483
484/* APPLE LOCAL begin radar 5618945 */
485__STATIC_INLINE __m128d __attribute__((__always_inline__))
486/* APPLE LOCAL end radar 5618945 */
487_mm_max_pd (__m128d __A, __m128d __B)
488{
489  return (__m128d)__builtin_ia32_maxpd ((__v2df)__A, (__v2df)__B);
490}
491
492/* APPLE LOCAL begin radar 5618945 */
493__STATIC_INLINE __m128d __attribute__((__always_inline__))
494/* APPLE LOCAL end radar 5618945 */
495_mm_max_sd (__m128d __A, __m128d __B)
496{
497  return (__m128d)__builtin_ia32_maxsd ((__v2df)__A, (__v2df)__B);
498}
499
500/* APPLE LOCAL begin radar 5618945 */
501__STATIC_INLINE __m128d __attribute__((__always_inline__))
502/* APPLE LOCAL end radar 5618945 */
503_mm_and_pd (__m128d __A, __m128d __B)
504{
505  return (__m128d)__builtin_ia32_andpd ((__v2df)__A, (__v2df)__B);
506}
507
508/* APPLE LOCAL begin radar 5618945 */
509__STATIC_INLINE __m128d __attribute__((__always_inline__))
510/* APPLE LOCAL end radar 5618945 */
511_mm_andnot_pd (__m128d __A, __m128d __B)
512{
513  return (__m128d)__builtin_ia32_andnpd ((__v2df)__A, (__v2df)__B);
514}
515
516/* APPLE LOCAL begin radar 5618945 */
517__STATIC_INLINE __m128d __attribute__((__always_inline__))
518/* APPLE LOCAL end radar 5618945 */
519_mm_or_pd (__m128d __A, __m128d __B)
520{
521  return (__m128d)__builtin_ia32_orpd ((__v2df)__A, (__v2df)__B);
522}
523
524/* APPLE LOCAL begin radar 5618945 */
525__STATIC_INLINE __m128d __attribute__((__always_inline__))
526/* APPLE LOCAL end radar 5618945 */
527_mm_xor_pd (__m128d __A, __m128d __B)
528{
529  return (__m128d)__builtin_ia32_xorpd ((__v2df)__A, (__v2df)__B);
530}
531
532/* APPLE LOCAL begin radar 5618945 */
533__STATIC_INLINE __m128d __attribute__((__always_inline__))
534/* APPLE LOCAL end radar 5618945 */
535_mm_cmpeq_pd (__m128d __A, __m128d __B)
536{
537  return (__m128d)__builtin_ia32_cmpeqpd ((__v2df)__A, (__v2df)__B);
538}
539
540/* APPLE LOCAL begin radar 5618945 */
541__STATIC_INLINE __m128d __attribute__((__always_inline__))
542/* APPLE LOCAL end radar 5618945 */
543_mm_cmplt_pd (__m128d __A, __m128d __B)
544{
545  return (__m128d)__builtin_ia32_cmpltpd ((__v2df)__A, (__v2df)__B);
546}
547
548/* APPLE LOCAL begin radar 5618945 */
549__STATIC_INLINE __m128d __attribute__((__always_inline__))
550/* APPLE LOCAL end radar 5618945 */
551_mm_cmple_pd (__m128d __A, __m128d __B)
552{
553  return (__m128d)__builtin_ia32_cmplepd ((__v2df)__A, (__v2df)__B);
554}
555
556/* APPLE LOCAL begin radar 5618945 */
557__STATIC_INLINE __m128d __attribute__((__always_inline__))
558/* APPLE LOCAL end radar 5618945 */
559_mm_cmpgt_pd (__m128d __A, __m128d __B)
560{
561  return (__m128d)__builtin_ia32_cmpgtpd ((__v2df)__A, (__v2df)__B);
562}
563
564/* APPLE LOCAL begin radar 5618945 */
565__STATIC_INLINE __m128d __attribute__((__always_inline__))
566/* APPLE LOCAL end radar 5618945 */
567_mm_cmpge_pd (__m128d __A, __m128d __B)
568{
569  return (__m128d)__builtin_ia32_cmpgepd ((__v2df)__A, (__v2df)__B);
570}
571
572/* APPLE LOCAL begin radar 5618945 */
573__STATIC_INLINE __m128d __attribute__((__always_inline__))
574/* APPLE LOCAL end radar 5618945 */
575_mm_cmpneq_pd (__m128d __A, __m128d __B)
576{
577  return (__m128d)__builtin_ia32_cmpneqpd ((__v2df)__A, (__v2df)__B);
578}
579
580/* APPLE LOCAL begin radar 5618945 */
581__STATIC_INLINE __m128d __attribute__((__always_inline__))
582/* APPLE LOCAL end radar 5618945 */
583_mm_cmpnlt_pd (__m128d __A, __m128d __B)
584{
585  return (__m128d)__builtin_ia32_cmpnltpd ((__v2df)__A, (__v2df)__B);
586}
587
588/* APPLE LOCAL begin radar 5618945 */
589__STATIC_INLINE __m128d __attribute__((__always_inline__))
590/* APPLE LOCAL end radar 5618945 */
591_mm_cmpnle_pd (__m128d __A, __m128d __B)
592{
593  return (__m128d)__builtin_ia32_cmpnlepd ((__v2df)__A, (__v2df)__B);
594}
595
596/* APPLE LOCAL begin radar 5618945 */
597__STATIC_INLINE __m128d __attribute__((__always_inline__))
598/* APPLE LOCAL end radar 5618945 */
599_mm_cmpngt_pd (__m128d __A, __m128d __B)
600{
601  return (__m128d)__builtin_ia32_cmpngtpd ((__v2df)__A, (__v2df)__B);
602}
603
604/* APPLE LOCAL begin radar 5618945 */
605__STATIC_INLINE __m128d __attribute__((__always_inline__))
606/* APPLE LOCAL end radar 5618945 */
607_mm_cmpnge_pd (__m128d __A, __m128d __B)
608{
609  return (__m128d)__builtin_ia32_cmpngepd ((__v2df)__A, (__v2df)__B);
610}
611
612/* APPLE LOCAL begin radar 5618945 */
613__STATIC_INLINE __m128d __attribute__((__always_inline__))
614/* APPLE LOCAL end radar 5618945 */
615_mm_cmpord_pd (__m128d __A, __m128d __B)
616{
617  return (__m128d)__builtin_ia32_cmpordpd ((__v2df)__A, (__v2df)__B);
618}
619
620/* APPLE LOCAL begin radar 5618945 */
621__STATIC_INLINE __m128d __attribute__((__always_inline__))
622/* APPLE LOCAL end radar 5618945 */
623_mm_cmpunord_pd (__m128d __A, __m128d __B)
624{
625  return (__m128d)__builtin_ia32_cmpunordpd ((__v2df)__A, (__v2df)__B);
626}
627
628/* APPLE LOCAL begin radar 5618945 */
629__STATIC_INLINE __m128d __attribute__((__always_inline__))
630/* APPLE LOCAL end radar 5618945 */
631_mm_cmpeq_sd (__m128d __A, __m128d __B)
632{
633  return (__m128d)__builtin_ia32_cmpeqsd ((__v2df)__A, (__v2df)__B);
634}
635
636/* APPLE LOCAL begin radar 5618945 */
637__STATIC_INLINE __m128d __attribute__((__always_inline__))
638/* APPLE LOCAL end radar 5618945 */
639_mm_cmplt_sd (__m128d __A, __m128d __B)
640{
641  return (__m128d)__builtin_ia32_cmpltsd ((__v2df)__A, (__v2df)__B);
642}
643
644/* APPLE LOCAL begin radar 5618945 */
645__STATIC_INLINE __m128d __attribute__((__always_inline__))
646/* APPLE LOCAL end radar 5618945 */
647_mm_cmple_sd (__m128d __A, __m128d __B)
648{
649  return (__m128d)__builtin_ia32_cmplesd ((__v2df)__A, (__v2df)__B);
650}
651
652/* APPLE LOCAL begin radar 5618945 */
653__STATIC_INLINE __m128d __attribute__((__always_inline__))
654/* APPLE LOCAL end radar 5618945 */
655_mm_cmpgt_sd (__m128d __A, __m128d __B)
656{
657  return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
658					 (__v2df)
659					 __builtin_ia32_cmpltsd ((__v2df) __B,
660								 (__v2df)
661								 __A));
662}
663
664/* APPLE LOCAL begin radar 5618945 */
665__STATIC_INLINE __m128d __attribute__((__always_inline__))
666/* APPLE LOCAL end radar 5618945 */
667_mm_cmpge_sd (__m128d __A, __m128d __B)
668{
669  return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
670					 (__v2df)
671					 __builtin_ia32_cmplesd ((__v2df) __B,
672								 (__v2df)
673								 __A));
674}
675
676/* APPLE LOCAL begin radar 5618945 */
677__STATIC_INLINE __m128d __attribute__((__always_inline__))
678/* APPLE LOCAL end radar 5618945 */
679_mm_cmpneq_sd (__m128d __A, __m128d __B)
680{
681  return (__m128d)__builtin_ia32_cmpneqsd ((__v2df)__A, (__v2df)__B);
682}
683
684/* APPLE LOCAL begin radar 5618945 */
685__STATIC_INLINE __m128d __attribute__((__always_inline__))
686/* APPLE LOCAL end radar 5618945 */
687_mm_cmpnlt_sd (__m128d __A, __m128d __B)
688{
689  return (__m128d)__builtin_ia32_cmpnltsd ((__v2df)__A, (__v2df)__B);
690}
691
692/* APPLE LOCAL begin radar 5618945 */
693__STATIC_INLINE __m128d __attribute__((__always_inline__))
694/* APPLE LOCAL end radar 5618945 */
695_mm_cmpnle_sd (__m128d __A, __m128d __B)
696{
697  return (__m128d)__builtin_ia32_cmpnlesd ((__v2df)__A, (__v2df)__B);
698}
699
700/* APPLE LOCAL begin radar 5618945 */
701__STATIC_INLINE __m128d __attribute__((__always_inline__))
702/* APPLE LOCAL end radar 5618945 */
703_mm_cmpngt_sd (__m128d __A, __m128d __B)
704{
705  return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
706					 (__v2df)
707					 __builtin_ia32_cmpnltsd ((__v2df) __B,
708								  (__v2df)
709								  __A));
710}
711
712/* APPLE LOCAL begin radar 5618945 */
713__STATIC_INLINE __m128d __attribute__((__always_inline__))
714/* APPLE LOCAL end radar 5618945 */
715_mm_cmpnge_sd (__m128d __A, __m128d __B)
716{
717  return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
718					 (__v2df)
719					 __builtin_ia32_cmpnlesd ((__v2df) __B,
720								  (__v2df)
721								  __A));
722}
723
724/* APPLE LOCAL begin radar 5618945 */
725__STATIC_INLINE __m128d __attribute__((__always_inline__))
726/* APPLE LOCAL end radar 5618945 */
727_mm_cmpord_sd (__m128d __A, __m128d __B)
728{
729  return (__m128d)__builtin_ia32_cmpordsd ((__v2df)__A, (__v2df)__B);
730}
731
732/* APPLE LOCAL begin radar 5618945 */
733__STATIC_INLINE __m128d __attribute__((__always_inline__))
734/* APPLE LOCAL end radar 5618945 */
735_mm_cmpunord_sd (__m128d __A, __m128d __B)
736{
737  return (__m128d)__builtin_ia32_cmpunordsd ((__v2df)__A, (__v2df)__B);
738}
739
740/* APPLE LOCAL begin radar 5618945 */
741__STATIC_INLINE int __attribute__((__always_inline__))
742/* APPLE LOCAL end radar 5618945 */
743_mm_comieq_sd (__m128d __A, __m128d __B)
744{
745  return __builtin_ia32_comisdeq ((__v2df)__A, (__v2df)__B);
746}
747
748/* APPLE LOCAL begin radar 5618945 */
749__STATIC_INLINE int __attribute__((__always_inline__))
750/* APPLE LOCAL end radar 5618945 */
751_mm_comilt_sd (__m128d __A, __m128d __B)
752{
753  return __builtin_ia32_comisdlt ((__v2df)__A, (__v2df)__B);
754}
755
756/* APPLE LOCAL begin radar 5618945 */
757__STATIC_INLINE int __attribute__((__always_inline__))
758/* APPLE LOCAL end radar 5618945 */
759_mm_comile_sd (__m128d __A, __m128d __B)
760{
761  return __builtin_ia32_comisdle ((__v2df)__A, (__v2df)__B);
762}
763
764/* APPLE LOCAL begin radar 5618945 */
765__STATIC_INLINE int __attribute__((__always_inline__))
766/* APPLE LOCAL end radar 5618945 */
767_mm_comigt_sd (__m128d __A, __m128d __B)
768{
769  return __builtin_ia32_comisdgt ((__v2df)__A, (__v2df)__B);
770}
771
772/* APPLE LOCAL begin radar 5618945 */
773__STATIC_INLINE int __attribute__((__always_inline__))
774/* APPLE LOCAL end radar 5618945 */
775_mm_comige_sd (__m128d __A, __m128d __B)
776{
777  return __builtin_ia32_comisdge ((__v2df)__A, (__v2df)__B);
778}
779
780/* APPLE LOCAL begin radar 5618945 */
781__STATIC_INLINE int __attribute__((__always_inline__))
782/* APPLE LOCAL end radar 5618945 */
783_mm_comineq_sd (__m128d __A, __m128d __B)
784{
785  return __builtin_ia32_comisdneq ((__v2df)__A, (__v2df)__B);
786}
787
788/* APPLE LOCAL begin radar 5618945 */
789__STATIC_INLINE int __attribute__((__always_inline__))
790/* APPLE LOCAL end radar 5618945 */
791_mm_ucomieq_sd (__m128d __A, __m128d __B)
792{
793  return __builtin_ia32_ucomisdeq ((__v2df)__A, (__v2df)__B);
794}
795
796/* APPLE LOCAL begin radar 5618945 */
797__STATIC_INLINE int __attribute__((__always_inline__))
798/* APPLE LOCAL end radar 5618945 */
799_mm_ucomilt_sd (__m128d __A, __m128d __B)
800{
801  return __builtin_ia32_ucomisdlt ((__v2df)__A, (__v2df)__B);
802}
803
804/* APPLE LOCAL begin radar 5618945 */
805__STATIC_INLINE int __attribute__((__always_inline__))
806/* APPLE LOCAL end radar 5618945 */
807_mm_ucomile_sd (__m128d __A, __m128d __B)
808{
809  return __builtin_ia32_ucomisdle ((__v2df)__A, (__v2df)__B);
810}
811
812/* APPLE LOCAL begin radar 5618945 */
813__STATIC_INLINE int __attribute__((__always_inline__))
814/* APPLE LOCAL end radar 5618945 */
815_mm_ucomigt_sd (__m128d __A, __m128d __B)
816{
817  return __builtin_ia32_ucomisdgt ((__v2df)__A, (__v2df)__B);
818}
819
820/* APPLE LOCAL begin radar 5618945 */
821__STATIC_INLINE int __attribute__((__always_inline__))
822/* APPLE LOCAL end radar 5618945 */
823_mm_ucomige_sd (__m128d __A, __m128d __B)
824{
825  return __builtin_ia32_ucomisdge ((__v2df)__A, (__v2df)__B);
826}
827
828/* APPLE LOCAL begin radar 5618945 */
829__STATIC_INLINE int __attribute__((__always_inline__))
830/* APPLE LOCAL end radar 5618945 */
831_mm_ucomineq_sd (__m128d __A, __m128d __B)
832{
833  return __builtin_ia32_ucomisdneq ((__v2df)__A, (__v2df)__B);
834}
835
836/* Create a vector of Qi, where i is the element number.  */
837
838/* APPLE LOCAL begin radar 5618945 */
839__STATIC_INLINE __m128i __attribute__((__always_inline__))
840/* APPLE LOCAL end radar 5618945 */
841_mm_set_epi64x (long long __q1, long long __q0)
842{
843  return __extension__ (__m128i)(__v2di){ __q0, __q1 };
844}
845
846/* APPLE LOCAL begin radar 5618945 */
847__STATIC_INLINE __m128i __attribute__((__always_inline__))
848/* APPLE LOCAL end radar 5618945 */
849_mm_set_epi64 (__m64 __q1,  __m64 __q0)
850{
851  return _mm_set_epi64x ((long long)__q1, (long long)__q0);
852}
853
854/* APPLE LOCAL begin radar 5618945 */
855__STATIC_INLINE __m128i __attribute__((__always_inline__))
856/* APPLE LOCAL end radar 5618945 */
857_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
858{
859  return __extension__ (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };
860}
861
862/* APPLE LOCAL begin radar 5618945 */
863__STATIC_INLINE __m128i __attribute__((__always_inline__))
864/* APPLE LOCAL end radar 5618945 */
865_mm_set_epi16 (short __q7, short __q6, short __q5, short __q4,
866	       short __q3, short __q2, short __q1, short __q0)
867{
868  return __extension__ (__m128i)(__v8hi){
869    __q0, __q1, __q2, __q3, __q4, __q5, __q6, __q7 };
870}
871
872/* APPLE LOCAL begin radar 5618945 */
873__STATIC_INLINE __m128i __attribute__((__always_inline__))
874/* APPLE LOCAL end radar 5618945 */
875_mm_set_epi8 (char __q15, char __q14, char __q13, char __q12,
876	      char __q11, char __q10, char __q09, char __q08,
877	      char __q07, char __q06, char __q05, char __q04,
878	      char __q03, char __q02, char __q01, char __q00)
879{
880  return __extension__ (__m128i)(__v16qi){
881    __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
882    __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15
883  };
884}
885
886/* APPLE LOCAL begin 4220129 */
887/* functions moved to end of file */
888/* APPLE LOCAL end 4220129 */
889
890/* Create a vector of Qi, where i is the element number.
891   The parameter order is reversed from the _mm_set_epi* functions.  */
892
893/* APPLE LOCAL begin radar 5618945 */
894__STATIC_INLINE __m128i __attribute__((__always_inline__))
895/* APPLE LOCAL end radar 5618945 */
896_mm_setr_epi64 (__m64 __q0, __m64 __q1)
897{
898  return _mm_set_epi64 (__q1, __q0);
899}
900
901/* APPLE LOCAL begin radar 5618945 */
902__STATIC_INLINE __m128i __attribute__((__always_inline__))
903/* APPLE LOCAL end radar 5618945 */
904_mm_setr_epi32 (int __q0, int __q1, int __q2, int __q3)
905{
906  return _mm_set_epi32 (__q3, __q2, __q1, __q0);
907}
908
909/* APPLE LOCAL begin radar 5618945 */
910__STATIC_INLINE __m128i __attribute__((__always_inline__))
911/* APPLE LOCAL end radar 5618945 */
912_mm_setr_epi16 (short __q0, short __q1, short __q2, short __q3,
913	        short __q4, short __q5, short __q6, short __q7)
914{
915  return _mm_set_epi16 (__q7, __q6, __q5, __q4, __q3, __q2, __q1, __q0);
916}
917
918/* APPLE LOCAL begin radar 5618945 */
919__STATIC_INLINE __m128i __attribute__((__always_inline__))
920/* APPLE LOCAL end radar 5618945 */
921_mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03,
922	       char __q04, char __q05, char __q06, char __q07,
923	       char __q08, char __q09, char __q10, char __q11,
924	       char __q12, char __q13, char __q14, char __q15)
925{
926  return _mm_set_epi8 (__q15, __q14, __q13, __q12, __q11, __q10, __q09, __q08,
927		       __q07, __q06, __q05, __q04, __q03, __q02, __q01, __q00);
928}
929
930/* Create a vector with element 0 as *P and the rest zero.  */
931
932/* APPLE LOCAL begin radar 5618945 */
933__STATIC_INLINE __m128i __attribute__((__always_inline__))
934/* APPLE LOCAL end radar 5618945 */
935_mm_load_si128 (__m128i const *__P)
936{
937  return *__P;
938}
939
940/* APPLE LOCAL begin radar 5618945 */
941__STATIC_INLINE __m128i __attribute__((__always_inline__))
942/* APPLE LOCAL end radar 5618945 */
943_mm_loadu_si128 (__m128i const *__P)
944{
945  return (__m128i) __builtin_ia32_loaddqu ((char const *)__P);
946}
947
948/* APPLE LOCAL begin 4099020 */
949/* APPLE LOCAL begin radar 5618945 */
950__STATIC_INLINE __m128i __attribute__((__always_inline__))
951/* APPLE LOCAL end radar 5618945 */
952_mm_loadl_epi64 (__m128i const *__P)
953{
954  return  (__m128i)__builtin_ia32_loadlv4si ((__v2si *)__P);
955}
956/* APPLE LOCAL end 4099020 */
957
958/* APPLE LOCAL begin radar 5618945 */
959__STATIC_INLINE void __attribute__((__always_inline__))
960/* APPLE LOCAL end radar 5618945 */
961_mm_store_si128 (__m128i *__P, __m128i __B)
962{
963  *__P = __B;
964}
965
966/* APPLE LOCAL begin radar 5618945 */
967__STATIC_INLINE void __attribute__((__always_inline__))
968/* APPLE LOCAL end radar 5618945 */
969_mm_storeu_si128 (__m128i *__P, __m128i __B)
970{
971  __builtin_ia32_storedqu ((char *)__P, (__v16qi)__B);
972}
973
974/* APPLE LOCAL begin 4099020 */
975/* APPLE LOCAL begin radar 5618945 */
976__STATIC_INLINE void __attribute__((__always_inline__))
977/* APPLE LOCAL end radar 5618945 */
978_mm_storel_epi64 (__m128i *__P, __m128i __B)
979{
980  __builtin_ia32_storelv4si ((__v2si *)__P, __B);
981}
982/* APPLE LOCAL end 4099020 */
983
984/* APPLE LOCAL begin radar 5618945 */
985__STATIC_INLINE __m64 __attribute__((__always_inline__))
986/* APPLE LOCAL end radar 5618945 */
987_mm_movepi64_pi64 (__m128i __B)
988{
989  return (__m64) __builtin_ia32_vec_ext_v2di ((__v2di)__B, 0);
990}
991
992/* APPLE LOCAL begin radar 5618945 */
993__STATIC_INLINE __m128i __attribute__((__always_inline__))
994/* APPLE LOCAL end radar 5618945 */
995_mm_movpi64_epi64 (__m64 __A)
996{
997  return _mm_set_epi64 ((__m64)0LL, __A);
998}
999
1000/* APPLE LOCAL begin 4099020 */
1001/* APPLE LOCAL begin radar 5618945 */
1002__STATIC_INLINE __m128i __attribute__((__always_inline__))
1003/* APPLE LOCAL end radar 5618945 */
1004_mm_move_epi64 (__m128i __A)
1005{
1006  return (__m128i)__builtin_ia32_movqv4si ((__v4si)__A) ;
1007}
1008/* APPLE LOCAL end 4099020 */
1009
1010/* Create a vector of zeros.  */
1011/* APPLE LOCAL begin radar 5618945 */
1012__STATIC_INLINE __m128i __attribute__((__always_inline__))
1013/* APPLE LOCAL end radar 5618945 */
1014_mm_setzero_si128 (void)
1015{
1016  return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 };
1017}
1018
1019/* APPLE LOCAL begin radar 5618945 */
1020__STATIC_INLINE __m128d __attribute__((__always_inline__))
1021/* APPLE LOCAL end radar 5618945 */
1022_mm_cvtepi32_pd (__m128i __A)
1023{
1024  return (__m128d)__builtin_ia32_cvtdq2pd ((__v4si) __A);
1025}
1026
1027/* APPLE LOCAL begin radar 5618945 */
1028__STATIC_INLINE __m128 __attribute__((__always_inline__))
1029/* APPLE LOCAL end radar 5618945 */
1030_mm_cvtepi32_ps (__m128i __A)
1031{
1032  return (__m128)__builtin_ia32_cvtdq2ps ((__v4si) __A);
1033}
1034
1035/* APPLE LOCAL begin radar 5618945 */
1036__STATIC_INLINE __m128i __attribute__((__always_inline__))
1037/* APPLE LOCAL end radar 5618945 */
1038_mm_cvtpd_epi32 (__m128d __A)
1039{
1040  return (__m128i)__builtin_ia32_cvtpd2dq ((__v2df) __A);
1041}
1042
1043/* APPLE LOCAL begin radar 5618945 */
1044__STATIC_INLINE __m64 __attribute__((__always_inline__))
1045/* APPLE LOCAL end radar 5618945 */
1046_mm_cvtpd_pi32 (__m128d __A)
1047{
1048  return (__m64)__builtin_ia32_cvtpd2pi ((__v2df) __A);
1049}
1050
1051/* APPLE LOCAL begin radar 5618945 */
1052__STATIC_INLINE __m128 __attribute__((__always_inline__))
1053/* APPLE LOCAL end radar 5618945 */
1054_mm_cvtpd_ps (__m128d __A)
1055{
1056  return (__m128)__builtin_ia32_cvtpd2ps ((__v2df) __A);
1057}
1058
1059/* APPLE LOCAL begin radar 5618945 */
1060__STATIC_INLINE __m128i __attribute__((__always_inline__))
1061/* APPLE LOCAL end radar 5618945 */
1062_mm_cvttpd_epi32 (__m128d __A)
1063{
1064  return (__m128i)__builtin_ia32_cvttpd2dq ((__v2df) __A);
1065}
1066
1067/* APPLE LOCAL begin radar 5618945 */
1068__STATIC_INLINE __m64 __attribute__((__always_inline__))
1069/* APPLE LOCAL end radar 5618945 */
1070_mm_cvttpd_pi32 (__m128d __A)
1071{
1072  return (__m64)__builtin_ia32_cvttpd2pi ((__v2df) __A);
1073}
1074
1075/* APPLE LOCAL begin radar 5618945 */
1076__STATIC_INLINE __m128d __attribute__((__always_inline__))
1077/* APPLE LOCAL end radar 5618945 */
1078_mm_cvtpi32_pd (__m64 __A)
1079{
1080  return (__m128d)__builtin_ia32_cvtpi2pd ((__v2si) __A);
1081}
1082
1083/* APPLE LOCAL begin radar 5618945 */
1084__STATIC_INLINE __m128i __attribute__((__always_inline__))
1085/* APPLE LOCAL end radar 5618945 */
1086_mm_cvtps_epi32 (__m128 __A)
1087{
1088  return (__m128i)__builtin_ia32_cvtps2dq ((__v4sf) __A);
1089}
1090
1091/* APPLE LOCAL begin radar 5618945 */
1092__STATIC_INLINE __m128i __attribute__((__always_inline__))
1093/* APPLE LOCAL end radar 5618945 */
1094_mm_cvttps_epi32 (__m128 __A)
1095{
1096  return (__m128i)__builtin_ia32_cvttps2dq ((__v4sf) __A);
1097}
1098
1099/* APPLE LOCAL begin radar 5618945 */
1100__STATIC_INLINE __m128d __attribute__((__always_inline__))
1101/* APPLE LOCAL end radar 5618945 */
1102_mm_cvtps_pd (__m128 __A)
1103{
1104  return (__m128d)__builtin_ia32_cvtps2pd ((__v4sf) __A);
1105}
1106
1107/* APPLE LOCAL begin radar 5618945 */
1108__STATIC_INLINE int __attribute__((__always_inline__))
1109/* APPLE LOCAL end radar 5618945 */
1110_mm_cvtsd_si32 (__m128d __A)
1111{
1112  return __builtin_ia32_cvtsd2si ((__v2df) __A);
1113}
1114
1115#ifdef __x86_64__
1116/* Intel intrinsic.  */
1117/* APPLE LOCAL begin radar 5618945 */
1118__STATIC_INLINE long long __attribute__((__always_inline__))
1119/* APPLE LOCAL end radar 5618945 */
1120_mm_cvtsd_si64 (__m128d __A)
1121{
1122  return __builtin_ia32_cvtsd2si64 ((__v2df) __A);
1123}
1124
1125/* Microsoft intrinsic.  */
1126/* APPLE LOCAL begin radar 5618945 */
1127__STATIC_INLINE long long __attribute__((__always_inline__))
1128/* APPLE LOCAL end radar 5618945 */
1129_mm_cvtsd_si64x (__m128d __A)
1130{
1131  return __builtin_ia32_cvtsd2si64 ((__v2df) __A);
1132}
1133#endif
1134
1135/* APPLE LOCAL begin radar 5618945 */
1136__STATIC_INLINE int __attribute__((__always_inline__))
1137/* APPLE LOCAL end radar 5618945 */
1138_mm_cvttsd_si32 (__m128d __A)
1139{
1140  return __builtin_ia32_cvttsd2si ((__v2df) __A);
1141}
1142
1143#ifdef __x86_64__
1144/* Intel intrinsic.  */
1145/* APPLE LOCAL begin radar 5618945 */
1146__STATIC_INLINE long long __attribute__((__always_inline__))
1147/* APPLE LOCAL end radar 5618945 */
1148_mm_cvttsd_si64 (__m128d __A)
1149{
1150  return __builtin_ia32_cvttsd2si64 ((__v2df) __A);
1151}
1152
1153/* Microsoft intrinsic.  */
1154/* APPLE LOCAL begin radar 5618945 */
1155__STATIC_INLINE long long __attribute__((__always_inline__))
1156/* APPLE LOCAL end radar 5618945 */
1157_mm_cvttsd_si64x (__m128d __A)
1158{
1159  return __builtin_ia32_cvttsd2si64 ((__v2df) __A);
1160}
1161#endif
1162
1163/* APPLE LOCAL begin radar 5618945 */
1164__STATIC_INLINE __m128 __attribute__((__always_inline__))
1165/* APPLE LOCAL end radar 5618945 */
1166_mm_cvtsd_ss (__m128 __A, __m128d __B)
1167{
1168  return (__m128)__builtin_ia32_cvtsd2ss ((__v4sf) __A, (__v2df) __B);
1169}
1170
1171/* APPLE LOCAL begin radar 5618945 */
1172__STATIC_INLINE __m128d __attribute__((__always_inline__))
1173/* APPLE LOCAL end radar 5618945 */
1174_mm_cvtsi32_sd (__m128d __A, int __B)
1175{
1176  return (__m128d)__builtin_ia32_cvtsi2sd ((__v2df) __A, __B);
1177}
1178
1179#ifdef __x86_64__
1180/* Intel intrinsic.  */
1181/* APPLE LOCAL begin radar 5618945 */
1182__STATIC_INLINE __m128d __attribute__((__always_inline__))
1183/* APPLE LOCAL end radar 5618945 */
1184_mm_cvtsi64_sd (__m128d __A, long long __B)
1185{
1186  return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
1187}
1188
1189/* Microsoft intrinsic.  */
1190/* APPLE LOCAL begin radar 5618945 */
1191__STATIC_INLINE __m128d __attribute__((__always_inline__))
1192/* APPLE LOCAL end radar 5618945 */
1193_mm_cvtsi64x_sd (__m128d __A, long long __B)
1194{
1195  return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
1196}
1197#endif
1198
1199/* APPLE LOCAL begin radar 5618945 */
1200__STATIC_INLINE __m128d __attribute__((__always_inline__))
1201/* APPLE LOCAL end radar 5618945 */
1202_mm_cvtss_sd (__m128d __A, __m128 __B)
1203{
1204  return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);
1205}
1206
1207/* APPLE LOCAL 5814283 */
1208#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)(__A), (__v2df)(__B), (__C)))
1209
1210/* APPLE LOCAL begin radar 5618945 */
1211__STATIC_INLINE __m128d __attribute__((__always_inline__))
1212/* APPLE LOCAL end radar 5618945 */
1213_mm_unpackhi_pd (__m128d __A, __m128d __B)
1214{
1215  return (__m128d)__builtin_ia32_unpckhpd ((__v2df)__A, (__v2df)__B);
1216}
1217
1218/* APPLE LOCAL begin radar 5618945 */
1219__STATIC_INLINE __m128d __attribute__((__always_inline__))
1220/* APPLE LOCAL end radar 5618945 */
1221_mm_unpacklo_pd (__m128d __A, __m128d __B)
1222{
1223  return (__m128d)__builtin_ia32_unpcklpd ((__v2df)__A, (__v2df)__B);
1224}
1225
1226/* APPLE LOCAL begin radar 5618945 */
1227__STATIC_INLINE __m128d __attribute__((__always_inline__))
1228/* APPLE LOCAL end radar 5618945 */
1229_mm_loadh_pd (__m128d __A, double const *__B)
1230{
1231  return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, __B);
1232}
1233
1234/* APPLE LOCAL begin radar 5618945 */
1235__STATIC_INLINE __m128d __attribute__((__always_inline__))
1236/* APPLE LOCAL end radar 5618945 */
1237_mm_loadl_pd (__m128d __A, double const *__B)
1238{
1239  return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, __B);
1240}
1241
1242/* APPLE LOCAL begin radar 5618945 */
1243__STATIC_INLINE int __attribute__((__always_inline__))
1244/* APPLE LOCAL end radar 5618945 */
1245_mm_movemask_pd (__m128d __A)
1246{
1247  return __builtin_ia32_movmskpd ((__v2df)__A);
1248}
1249
1250/* APPLE LOCAL begin radar 5618945 */
1251__STATIC_INLINE __m128i __attribute__((__always_inline__))
1252/* APPLE LOCAL end radar 5618945 */
1253_mm_packs_epi16 (__m128i __A, __m128i __B)
1254{
1255  return (__m128i)__builtin_ia32_packsswb128 ((__v8hi)__A, (__v8hi)__B);
1256}
1257
1258/* APPLE LOCAL begin radar 5618945 */
1259__STATIC_INLINE __m128i __attribute__((__always_inline__))
1260/* APPLE LOCAL end radar 5618945 */
1261_mm_packs_epi32 (__m128i __A, __m128i __B)
1262{
1263  return (__m128i)__builtin_ia32_packssdw128 ((__v4si)__A, (__v4si)__B);
1264}
1265
1266/* APPLE LOCAL begin radar 5618945 */
1267__STATIC_INLINE __m128i __attribute__((__always_inline__))
1268/* APPLE LOCAL end radar 5618945 */
1269_mm_packus_epi16 (__m128i __A, __m128i __B)
1270{
1271  return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B);
1272}
1273
1274/* APPLE LOCAL begin radar 5618945 */
1275__STATIC_INLINE __m128i __attribute__((__always_inline__))
1276/* APPLE LOCAL end radar 5618945 */
1277_mm_unpackhi_epi8 (__m128i __A, __m128i __B)
1278{
1279  return (__m128i)__builtin_ia32_punpckhbw128 ((__v16qi)__A, (__v16qi)__B);
1280}
1281
1282/* APPLE LOCAL begin radar 5618945 */
1283__STATIC_INLINE __m128i __attribute__((__always_inline__))
1284/* APPLE LOCAL end radar 5618945 */
1285_mm_unpackhi_epi16 (__m128i __A, __m128i __B)
1286{
1287  return (__m128i)__builtin_ia32_punpckhwd128 ((__v8hi)__A, (__v8hi)__B);
1288}
1289
1290/* APPLE LOCAL begin radar 5618945 */
1291__STATIC_INLINE __m128i __attribute__((__always_inline__))
1292/* APPLE LOCAL end radar 5618945 */
1293_mm_unpackhi_epi32 (__m128i __A, __m128i __B)
1294{
1295  return (__m128i)__builtin_ia32_punpckhdq128 ((__v4si)__A, (__v4si)__B);
1296}
1297
1298/* APPLE LOCAL begin radar 5618945 */
1299__STATIC_INLINE __m128i __attribute__((__always_inline__))
1300/* APPLE LOCAL end radar 5618945 */
1301_mm_unpackhi_epi64 (__m128i __A, __m128i __B)
1302{
1303  return (__m128i)__builtin_ia32_punpckhqdq128 ((__v2di)__A, (__v2di)__B);
1304}
1305
1306/* APPLE LOCAL begin radar 5618945 */
1307__STATIC_INLINE __m128i __attribute__((__always_inline__))
1308/* APPLE LOCAL end radar 5618945 */
1309_mm_unpacklo_epi8 (__m128i __A, __m128i __B)
1310{
1311  return (__m128i)__builtin_ia32_punpcklbw128 ((__v16qi)__A, (__v16qi)__B);
1312}
1313
1314/* APPLE LOCAL begin radar 5618945 */
1315__STATIC_INLINE __m128i __attribute__((__always_inline__))
1316/* APPLE LOCAL end radar 5618945 */
1317_mm_unpacklo_epi16 (__m128i __A, __m128i __B)
1318{
1319  return (__m128i)__builtin_ia32_punpcklwd128 ((__v8hi)__A, (__v8hi)__B);
1320}
1321
1322/* APPLE LOCAL begin radar 5618945 */
1323__STATIC_INLINE __m128i __attribute__((__always_inline__))
1324/* APPLE LOCAL end radar 5618945 */
1325_mm_unpacklo_epi32 (__m128i __A, __m128i __B)
1326{
1327  return (__m128i)__builtin_ia32_punpckldq128 ((__v4si)__A, (__v4si)__B);
1328}
1329
1330/* APPLE LOCAL begin radar 5618945 */
1331__STATIC_INLINE __m128i __attribute__((__always_inline__))
1332/* APPLE LOCAL end radar 5618945 */
1333_mm_unpacklo_epi64 (__m128i __A, __m128i __B)
1334{
1335  return (__m128i)__builtin_ia32_punpcklqdq128 ((__v2di)__A, (__v2di)__B);
1336}
1337
1338/* APPLE LOCAL begin radar 5618945 */
1339__STATIC_INLINE __m128i __attribute__((__always_inline__))
1340/* APPLE LOCAL end radar 5618945 */
1341_mm_add_epi8 (__m128i __A, __m128i __B)
1342{
1343  return (__m128i)__builtin_ia32_paddb128 ((__v16qi)__A, (__v16qi)__B);
1344}
1345
1346/* APPLE LOCAL begin radar 5618945 */
1347__STATIC_INLINE __m128i __attribute__((__always_inline__))
1348/* APPLE LOCAL end radar 5618945 */
1349_mm_add_epi16 (__m128i __A, __m128i __B)
1350{
1351  return (__m128i)__builtin_ia32_paddw128 ((__v8hi)__A, (__v8hi)__B);
1352}
1353
1354/* APPLE LOCAL begin radar 5618945 */
1355__STATIC_INLINE __m128i __attribute__((__always_inline__))
1356/* APPLE LOCAL end radar 5618945 */
1357_mm_add_epi32 (__m128i __A, __m128i __B)
1358{
1359  return (__m128i)__builtin_ia32_paddd128 ((__v4si)__A, (__v4si)__B);
1360}
1361
1362/* APPLE LOCAL begin radar 5618945 */
1363__STATIC_INLINE __m128i __attribute__((__always_inline__))
1364/* APPLE LOCAL end radar 5618945 */
1365_mm_add_epi64 (__m128i __A, __m128i __B)
1366{
1367  return (__m128i)__builtin_ia32_paddq128 ((__v2di)__A, (__v2di)__B);
1368}
1369
1370/* APPLE LOCAL begin radar 5618945 */
1371__STATIC_INLINE __m128i __attribute__((__always_inline__))
1372/* APPLE LOCAL end radar 5618945 */
1373_mm_adds_epi8 (__m128i __A, __m128i __B)
1374{
1375  return (__m128i)__builtin_ia32_paddsb128 ((__v16qi)__A, (__v16qi)__B);
1376}
1377
1378/* APPLE LOCAL begin radar 5618945 */
1379__STATIC_INLINE __m128i __attribute__((__always_inline__))
1380/* APPLE LOCAL end radar 5618945 */
1381_mm_adds_epi16 (__m128i __A, __m128i __B)
1382{
1383  return (__m128i)__builtin_ia32_paddsw128 ((__v8hi)__A, (__v8hi)__B);
1384}
1385
1386/* APPLE LOCAL begin radar 5618945 */
1387__STATIC_INLINE __m128i __attribute__((__always_inline__))
1388/* APPLE LOCAL end radar 5618945 */
1389_mm_adds_epu8 (__m128i __A, __m128i __B)
1390{
1391  return (__m128i)__builtin_ia32_paddusb128 ((__v16qi)__A, (__v16qi)__B);
1392}
1393
1394/* APPLE LOCAL begin radar 5618945 */
1395__STATIC_INLINE __m128i __attribute__((__always_inline__))
1396/* APPLE LOCAL end radar 5618945 */
1397_mm_adds_epu16 (__m128i __A, __m128i __B)
1398{
1399  return (__m128i)__builtin_ia32_paddusw128 ((__v8hi)__A, (__v8hi)__B);
1400}
1401
1402/* APPLE LOCAL begin radar 5618945 */
1403__STATIC_INLINE __m128i __attribute__((__always_inline__))
1404/* APPLE LOCAL end radar 5618945 */
1405_mm_sub_epi8 (__m128i __A, __m128i __B)
1406{
1407  return (__m128i)__builtin_ia32_psubb128 ((__v16qi)__A, (__v16qi)__B);
1408}
1409
1410/* APPLE LOCAL begin radar 5618945 */
1411__STATIC_INLINE __m128i __attribute__((__always_inline__))
1412/* APPLE LOCAL end radar 5618945 */
1413_mm_sub_epi16 (__m128i __A, __m128i __B)
1414{
1415  return (__m128i)__builtin_ia32_psubw128 ((__v8hi)__A, (__v8hi)__B);
1416}
1417
1418/* APPLE LOCAL begin radar 5618945 */
1419__STATIC_INLINE __m128i __attribute__((__always_inline__))
1420/* APPLE LOCAL end radar 5618945 */
1421_mm_sub_epi32 (__m128i __A, __m128i __B)
1422{
1423  return (__m128i)__builtin_ia32_psubd128 ((__v4si)__A, (__v4si)__B);
1424}
1425
1426/* APPLE LOCAL begin radar 5618945 */
1427__STATIC_INLINE __m128i __attribute__((__always_inline__))
1428/* APPLE LOCAL end radar 5618945 */
1429_mm_sub_epi64 (__m128i __A, __m128i __B)
1430{
1431  return (__m128i)__builtin_ia32_psubq128 ((__v2di)__A, (__v2di)__B);
1432}
1433
1434/* APPLE LOCAL begin radar 5618945 */
1435__STATIC_INLINE __m128i __attribute__((__always_inline__))
1436/* APPLE LOCAL end radar 5618945 */
1437_mm_subs_epi8 (__m128i __A, __m128i __B)
1438{
1439  return (__m128i)__builtin_ia32_psubsb128 ((__v16qi)__A, (__v16qi)__B);
1440}
1441
1442/* APPLE LOCAL begin radar 5618945 */
1443__STATIC_INLINE __m128i __attribute__((__always_inline__))
1444/* APPLE LOCAL end radar 5618945 */
1445_mm_subs_epi16 (__m128i __A, __m128i __B)
1446{
1447  return (__m128i)__builtin_ia32_psubsw128 ((__v8hi)__A, (__v8hi)__B);
1448}
1449
1450/* APPLE LOCAL begin radar 5618945 */
1451__STATIC_INLINE __m128i __attribute__((__always_inline__))
1452/* APPLE LOCAL end radar 5618945 */
1453_mm_subs_epu8 (__m128i __A, __m128i __B)
1454{
1455  return (__m128i)__builtin_ia32_psubusb128 ((__v16qi)__A, (__v16qi)__B);
1456}
1457
1458/* APPLE LOCAL begin radar 5618945 */
1459__STATIC_INLINE __m128i __attribute__((__always_inline__))
1460/* APPLE LOCAL end radar 5618945 */
1461_mm_subs_epu16 (__m128i __A, __m128i __B)
1462{
1463  return (__m128i)__builtin_ia32_psubusw128 ((__v8hi)__A, (__v8hi)__B);
1464}
1465
1466/* APPLE LOCAL begin radar 5618945 */
1467__STATIC_INLINE __m128i __attribute__((__always_inline__))
1468/* APPLE LOCAL end radar 5618945 */
1469_mm_madd_epi16 (__m128i __A, __m128i __B)
1470{
1471  return (__m128i)__builtin_ia32_pmaddwd128 ((__v8hi)__A, (__v8hi)__B);
1472}
1473
1474/* APPLE LOCAL begin radar 5618945 */
1475__STATIC_INLINE __m128i __attribute__((__always_inline__))
1476/* APPLE LOCAL end radar 5618945 */
1477_mm_mulhi_epi16 (__m128i __A, __m128i __B)
1478{
1479  return (__m128i)__builtin_ia32_pmulhw128 ((__v8hi)__A, (__v8hi)__B);
1480}
1481
1482/* APPLE LOCAL begin radar 5618945 */
1483__STATIC_INLINE __m128i __attribute__((__always_inline__))
1484/* APPLE LOCAL end radar 5618945 */
1485_mm_mullo_epi16 (__m128i __A, __m128i __B)
1486{
1487  return (__m128i)__builtin_ia32_pmullw128 ((__v8hi)__A, (__v8hi)__B);
1488}
1489
1490/* APPLE LOCAL begin radar 5618945 */
1491__STATIC_INLINE __m64 __attribute__((__always_inline__))
1492/* APPLE LOCAL end radar 5618945 */
1493_mm_mul_su32 (__m64 __A, __m64 __B)
1494{
1495  return (__m64)__builtin_ia32_pmuludq ((__v2si)__A, (__v2si)__B);
1496}
1497
1498/* APPLE LOCAL begin radar 5618945 */
1499__STATIC_INLINE __m128i __attribute__((__always_inline__))
1500/* APPLE LOCAL end radar 5618945 */
1501_mm_mul_epu32 (__m128i __A, __m128i __B)
1502{
1503  return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B);
1504}
1505
1506#if 0
1507/* APPLE LOCAL begin radar 5618945 */
1508__STATIC_INLINE __m128i __attribute__((__always_inline__))
1509/* APPLE LOCAL end radar 5618945 */
1510_mm_slli_epi16 (__m128i __A, int __B)
1511{
1512  return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B);
1513}
1514
1515/* APPLE LOCAL begin radar 5618945 */
1516__STATIC_INLINE __m128i __attribute__((__always_inline__))
1517/* APPLE LOCAL end radar 5618945 */
1518_mm_slli_epi32 (__m128i __A, int __B)
1519{
1520  return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B);
1521}
1522
1523/* APPLE LOCAL begin radar 5618945 */
1524__STATIC_INLINE __m128i __attribute__((__always_inline__))
1525/* APPLE LOCAL end radar 5618945 */
1526_mm_slli_epi64 (__m128i __A, int __B)
1527{
1528  return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B);
1529}
1530#else
1531#define _mm_slli_epi16(__A, __B) \
1532  ((__m128i)__builtin_ia32_psllwi128 ((__v8hi)(__A), __B))
1533#define _mm_slli_epi32(__A, __B) \
1534  ((__m128i)__builtin_ia32_pslldi128 ((__v8hi)(__A), __B))
1535#define _mm_slli_epi64(__A, __B) \
1536  ((__m128i)__builtin_ia32_psllqi128 ((__v8hi)(__A), __B))
1537#endif
1538
1539#if 0
1540/* APPLE LOCAL begin radar 5618945 */
1541__STATIC_INLINE __m128i __attribute__((__always_inline__))
1542/* APPLE LOCAL end radar 5618945 */
1543_mm_srai_epi16 (__m128i __A, int __B)
1544{
1545  return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B);
1546}
1547
1548/* APPLE LOCAL begin radar 5618945 */
1549__STATIC_INLINE __m128i __attribute__((__always_inline__))
1550/* APPLE LOCAL end radar 5618945 */
1551_mm_srai_epi32 (__m128i __A, int __B)
1552{
1553  return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B);
1554}
1555#else
1556#define _mm_srai_epi16(__A, __B) \
1557  ((__m128i)__builtin_ia32_psrawi128 ((__v8hi)(__A), __B))
1558#define _mm_srai_epi32(__A, __B) \
1559  ((__m128i)__builtin_ia32_psradi128 ((__v8hi)(__A), __B))
1560#endif
1561
1562#if 0
1563static __m128i __attribute__((__always_inline__))
1564_mm_srli_si128 (__m128i __A, int __B)
1565{
1566  return ((__m128i)__builtin_ia32_psrldqi128 (__A, __B * 8));
1567}
1568
1569static __m128i __attribute__((__always_inline__))
1570_mm_srli_si128 (__m128i __A, int __B)
1571{
1572  return ((__m128i)__builtin_ia32_pslldqi128 (__A, __B * 8));
1573}
1574#else
1575/* APPLE LOCAL begin 5919583 */
1576#define _mm_srli_si128  (__m128i)__builtin_ia32_psrldqi128_byteshift
1577#define _mm_slli_si128  (__m128i)__builtin_ia32_pslldqi128_byteshift
1578/* APPLE LOCAL end 5919583 */
1579#endif
1580
1581#if 0
1582/* APPLE LOCAL begin radar 5618945 */
1583__STATIC_INLINE __m128i __attribute__((__always_inline__))
1584/* APPLE LOCAL end radar 5618945 */
1585_mm_srli_epi16 (__m128i __A, int __B)
1586{
1587  return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B);
1588}
1589
1590/* APPLE LOCAL begin radar 5618945 */
1591__STATIC_INLINE __m128i __attribute__((__always_inline__))
1592/* APPLE LOCAL end radar 5618945 */
1593_mm_srli_epi32 (__m128i __A, int __B)
1594{
1595  return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B);
1596}
1597
1598/* APPLE LOCAL begin radar 5618945 */
1599__STATIC_INLINE __m128i __attribute__((__always_inline__))
1600/* APPLE LOCAL end radar 5618945 */
1601_mm_srli_epi64 (__m128i __A, int __B)
1602{
1603  return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B);
1604}
1605#else
1606#define _mm_srli_epi16(__A, __B) \
1607  ((__m128i)__builtin_ia32_psrlwi128 ((__v8hi)(__A), __B))
1608#define _mm_srli_epi32(__A, __B) \
1609  ((__m128i)__builtin_ia32_psrldi128 ((__v4si)(__A), __B))
1610#define _mm_srli_epi64(__A, __B) \
1611  ((__m128i)__builtin_ia32_psrlqi128 ((__v4si)(__A), __B))
1612#endif
1613
1614/* APPLE LOCAL begin radar 5618945 */
1615__STATIC_INLINE __m128i __attribute__((__always_inline__))
1616/* APPLE LOCAL end radar 5618945 */
1617_mm_sll_epi16 (__m128i __A, __m128i __B)
1618{
1619  return (__m128i)__builtin_ia32_psllw128((__v8hi)__A, (__v8hi)__B);
1620}
1621
1622/* APPLE LOCAL begin radar 5618945 */
1623__STATIC_INLINE __m128i __attribute__((__always_inline__))
1624/* APPLE LOCAL end radar 5618945 */
1625_mm_sll_epi32 (__m128i __A, __m128i __B)
1626{
1627  return (__m128i)__builtin_ia32_pslld128((__v4si)__A, (__v4si)__B);
1628}
1629
1630/* APPLE LOCAL begin radar 5618945 */
1631__STATIC_INLINE __m128i __attribute__((__always_inline__))
1632/* APPLE LOCAL end radar 5618945 */
1633_mm_sll_epi64 (__m128i __A, __m128i __B)
1634{
1635  return (__m128i)__builtin_ia32_psllq128((__v2di)__A, (__v2di)__B);
1636}
1637
1638/* APPLE LOCAL begin radar 5618945 */
1639__STATIC_INLINE __m128i __attribute__((__always_inline__))
1640/* APPLE LOCAL end radar 5618945 */
1641_mm_sra_epi16 (__m128i __A, __m128i __B)
1642{
1643  return (__m128i)__builtin_ia32_psraw128 ((__v8hi)__A, (__v8hi)__B);
1644}
1645
1646/* APPLE LOCAL begin radar 5618945 */
1647__STATIC_INLINE __m128i __attribute__((__always_inline__))
1648/* APPLE LOCAL end radar 5618945 */
1649_mm_sra_epi32 (__m128i __A, __m128i __B)
1650{
1651  return (__m128i)__builtin_ia32_psrad128 ((__v4si)__A, (__v4si)__B);
1652}
1653
1654/* APPLE LOCAL begin radar 5618945 */
1655__STATIC_INLINE __m128i __attribute__((__always_inline__))
1656/* APPLE LOCAL end radar 5618945 */
1657_mm_srl_epi16 (__m128i __A, __m128i __B)
1658{
1659  return (__m128i)__builtin_ia32_psrlw128 ((__v8hi)__A, (__v8hi)__B);
1660}
1661
1662/* APPLE LOCAL begin radar 5618945 */
1663__STATIC_INLINE __m128i __attribute__((__always_inline__))
1664/* APPLE LOCAL end radar 5618945 */
1665_mm_srl_epi32 (__m128i __A, __m128i __B)
1666{
1667  return (__m128i)__builtin_ia32_psrld128 ((__v4si)__A, (__v4si)__B);
1668}
1669
1670/* APPLE LOCAL begin radar 5618945 */
1671__STATIC_INLINE __m128i __attribute__((__always_inline__))
1672/* APPLE LOCAL end radar 5618945 */
1673_mm_srl_epi64 (__m128i __A, __m128i __B)
1674{
1675  return (__m128i)__builtin_ia32_psrlq128 ((__v2di)__A, (__v2di)__B);
1676}
1677
1678/* APPLE LOCAL begin radar 5618945 */
1679__STATIC_INLINE __m128i __attribute__((__always_inline__))
1680/* APPLE LOCAL end radar 5618945 */
1681_mm_and_si128 (__m128i __A, __m128i __B)
1682{
1683  return (__m128i)__builtin_ia32_pand128 ((__v2di)__A, (__v2di)__B);
1684}
1685
1686/* APPLE LOCAL begin radar 5618945 */
1687__STATIC_INLINE __m128i __attribute__((__always_inline__))
1688/* APPLE LOCAL end radar 5618945 */
1689_mm_andnot_si128 (__m128i __A, __m128i __B)
1690{
1691  return (__m128i)__builtin_ia32_pandn128 ((__v2di)__A, (__v2di)__B);
1692}
1693
1694/* APPLE LOCAL begin radar 5618945 */
1695__STATIC_INLINE __m128i __attribute__((__always_inline__))
1696/* APPLE LOCAL end radar 5618945 */
1697_mm_or_si128 (__m128i __A, __m128i __B)
1698{
1699  return (__m128i)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);
1700}
1701
1702/* APPLE LOCAL begin radar 5618945 */
1703__STATIC_INLINE __m128i __attribute__((__always_inline__))
1704/* APPLE LOCAL end radar 5618945 */
1705_mm_xor_si128 (__m128i __A, __m128i __B)
1706{
1707  return (__m128i)__builtin_ia32_pxor128 ((__v2di)__A, (__v2di)__B);
1708}
1709
1710/* APPLE LOCAL begin radar 5618945 */
1711__STATIC_INLINE __m128i __attribute__((__always_inline__))
1712/* APPLE LOCAL end radar 5618945 */
1713_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
1714{
1715  return (__m128i)__builtin_ia32_pcmpeqb128 ((__v16qi)__A, (__v16qi)__B);
1716}
1717
1718/* APPLE LOCAL begin radar 5618945 */
1719__STATIC_INLINE __m128i __attribute__((__always_inline__))
1720/* APPLE LOCAL end radar 5618945 */
1721_mm_cmpeq_epi16 (__m128i __A, __m128i __B)
1722{
1723  return (__m128i)__builtin_ia32_pcmpeqw128 ((__v8hi)__A, (__v8hi)__B);
1724}
1725
1726/* APPLE LOCAL begin radar 5618945 */
1727__STATIC_INLINE __m128i __attribute__((__always_inline__))
1728/* APPLE LOCAL end radar 5618945 */
1729_mm_cmpeq_epi32 (__m128i __A, __m128i __B)
1730{
1731  return (__m128i)__builtin_ia32_pcmpeqd128 ((__v4si)__A, (__v4si)__B);
1732}
1733
1734/* APPLE LOCAL begin radar 5618945 */
1735__STATIC_INLINE __m128i __attribute__((__always_inline__))
1736/* APPLE LOCAL end radar 5618945 */
1737_mm_cmplt_epi8 (__m128i __A, __m128i __B)
1738{
1739  return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__B, (__v16qi)__A);
1740}
1741
1742/* APPLE LOCAL begin radar 5618945 */
1743__STATIC_INLINE __m128i __attribute__((__always_inline__))
1744/* APPLE LOCAL end radar 5618945 */
1745_mm_cmplt_epi16 (__m128i __A, __m128i __B)
1746{
1747  return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__B, (__v8hi)__A);
1748}
1749
1750/* APPLE LOCAL begin radar 5618945 */
1751__STATIC_INLINE __m128i __attribute__((__always_inline__))
1752/* APPLE LOCAL end radar 5618945 */
1753_mm_cmplt_epi32 (__m128i __A, __m128i __B)
1754{
1755  return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__B, (__v4si)__A);
1756}
1757
1758/* APPLE LOCAL begin radar 5618945 */
1759__STATIC_INLINE __m128i __attribute__((__always_inline__))
1760/* APPLE LOCAL end radar 5618945 */
1761_mm_cmpgt_epi8 (__m128i __A, __m128i __B)
1762{
1763  return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__A, (__v16qi)__B);
1764}
1765
1766/* APPLE LOCAL begin radar 5618945 */
1767__STATIC_INLINE __m128i __attribute__((__always_inline__))
1768/* APPLE LOCAL end radar 5618945 */
1769_mm_cmpgt_epi16 (__m128i __A, __m128i __B)
1770{
1771  return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__A, (__v8hi)__B);
1772}
1773
1774/* APPLE LOCAL begin radar 5618945 */
1775__STATIC_INLINE __m128i __attribute__((__always_inline__))
1776/* APPLE LOCAL end radar 5618945 */
1777_mm_cmpgt_epi32 (__m128i __A, __m128i __B)
1778{
1779  return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__A, (__v4si)__B);
1780}
1781
1782#if 0
1783/* APPLE LOCAL begin radar 5618945 */
1784__STATIC_INLINE int __attribute__((__always_inline__))
1785/* APPLE LOCAL end radar 5618945 */
1786_mm_extract_epi16 (__m128i const __A, int const __N)
1787{
1788  return __builtin_ia32_vec_ext_v8hi ((__v8hi)__A, __N);
1789}
1790
1791/* APPLE LOCAL begin radar 5618945 */
1792__STATIC_INLINE __m128i __attribute__((__always_inline__))
1793/* APPLE LOCAL end radar 5618945 */
1794_mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
1795{
1796  return (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)__A, __D, __N);
1797}
1798#else
1799#define _mm_extract_epi16(A, N) \
1800  ((int) __builtin_ia32_vec_ext_v8hi ((__v8hi)(A), (N)))
1801#define _mm_insert_epi16(A, D, N) \
1802  ((__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)(A), (D), (N)))
1803#endif
1804
1805/* APPLE LOCAL begin radar 5618945 */
1806__STATIC_INLINE __m128i __attribute__((__always_inline__))
1807/* APPLE LOCAL end radar 5618945 */
1808_mm_max_epi16 (__m128i __A, __m128i __B)
1809{
1810  return (__m128i)__builtin_ia32_pmaxsw128 ((__v8hi)__A, (__v8hi)__B);
1811}
1812
1813/* APPLE LOCAL begin radar 5618945 */
1814__STATIC_INLINE __m128i __attribute__((__always_inline__))
1815/* APPLE LOCAL end radar 5618945 */
1816_mm_max_epu8 (__m128i __A, __m128i __B)
1817{
1818  return (__m128i)__builtin_ia32_pmaxub128 ((__v16qi)__A, (__v16qi)__B);
1819}
1820
1821/* APPLE LOCAL begin radar 5618945 */
1822__STATIC_INLINE __m128i __attribute__((__always_inline__))
1823/* APPLE LOCAL end radar 5618945 */
1824_mm_min_epi16 (__m128i __A, __m128i __B)
1825{
1826  return (__m128i)__builtin_ia32_pminsw128 ((__v8hi)__A, (__v8hi)__B);
1827}
1828
1829/* APPLE LOCAL begin radar 5618945 */
1830__STATIC_INLINE __m128i __attribute__((__always_inline__))
1831/* APPLE LOCAL end radar 5618945 */
1832_mm_min_epu8 (__m128i __A, __m128i __B)
1833{
1834  return (__m128i)__builtin_ia32_pminub128 ((__v16qi)__A, (__v16qi)__B);
1835}
1836
1837/* APPLE LOCAL begin radar 5618945 */
1838__STATIC_INLINE int __attribute__((__always_inline__))
1839/* APPLE LOCAL end radar 5618945 */
1840_mm_movemask_epi8 (__m128i __A)
1841{
1842  return __builtin_ia32_pmovmskb128 ((__v16qi)__A);
1843}
1844
1845/* APPLE LOCAL begin radar 5618945 */
1846__STATIC_INLINE __m128i __attribute__((__always_inline__))
1847/* APPLE LOCAL end radar 5618945 */
1848_mm_mulhi_epu16 (__m128i __A, __m128i __B)
1849{
1850  return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B);
1851}
1852
1853/* APPLE LOCAL begin 5814283 */
1854#define _mm_shufflehi_epi16(__A, __B) ((__m128i)__builtin_ia32_pshufhw ((__v8hi)(__A), __B))
1855#define _mm_shufflelo_epi16(__A, __B) ((__m128i)__builtin_ia32_pshuflw ((__v8hi)(__A), __B))
1856#define _mm_shuffle_epi32(__A, __B) ((__m128i)__builtin_ia32_pshufd ((__v4si)(__A), __B))
1857/* APPLE LOCAL end 5814283 */
1858
1859/* APPLE LOCAL begin radar 5618945 */
1860__STATIC_INLINE void __attribute__((__always_inline__))
1861/* APPLE LOCAL end radar 5618945 */
1862_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
1863{
1864  __builtin_ia32_maskmovdqu ((__v16qi)__A, (__v16qi)__B, __C);
1865}
1866
1867/* APPLE LOCAL begin radar 5618945 */
1868__STATIC_INLINE __m128i __attribute__((__always_inline__))
1869/* APPLE LOCAL end radar 5618945 */
1870_mm_avg_epu8 (__m128i __A, __m128i __B)
1871{
1872  return (__m128i)__builtin_ia32_pavgb128 ((__v16qi)__A, (__v16qi)__B);
1873}
1874
1875/* APPLE LOCAL begin radar 5618945 */
1876__STATIC_INLINE __m128i __attribute__((__always_inline__))
1877/* APPLE LOCAL end radar 5618945 */
1878_mm_avg_epu16 (__m128i __A, __m128i __B)
1879{
1880  return (__m128i)__builtin_ia32_pavgw128 ((__v8hi)__A, (__v8hi)__B);
1881}
1882
1883/* APPLE LOCAL begin radar 5618945 */
1884__STATIC_INLINE __m128i __attribute__((__always_inline__))
1885/* APPLE LOCAL end radar 5618945 */
1886_mm_sad_epu8 (__m128i __A, __m128i __B)
1887{
1888  return (__m128i)__builtin_ia32_psadbw128 ((__v16qi)__A, (__v16qi)__B);
1889}
1890
1891/* APPLE LOCAL begin radar 5618945 */
1892__STATIC_INLINE void __attribute__((__always_inline__))
1893/* APPLE LOCAL end radar 5618945 */
1894_mm_stream_si32 (int *__A, int __B)
1895{
1896  __builtin_ia32_movnti (__A, __B);
1897}
1898
1899/* APPLE LOCAL begin radar 5618945 */
1900__STATIC_INLINE void __attribute__((__always_inline__))
1901/* APPLE LOCAL end radar 5618945 */
1902_mm_stream_si128 (__m128i *__A, __m128i __B)
1903{
1904  __builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B);
1905}
1906
1907/* APPLE LOCAL begin radar 5618945 */
1908__STATIC_INLINE void __attribute__((__always_inline__))
1909/* APPLE LOCAL end radar 5618945 */
1910_mm_stream_pd (double *__A, __m128d __B)
1911{
1912  __builtin_ia32_movntpd (__A, (__v2df)__B);
1913}
1914
1915/* APPLE LOCAL begin radar 5618945 */
1916__STATIC_INLINE void __attribute__((__always_inline__))
1917/* APPLE LOCAL end radar 5618945 */
1918_mm_clflush (void const *__A)
1919{
1920  __builtin_ia32_clflush (__A);
1921}
1922
1923/* APPLE LOCAL begin radar 5618945 */
1924__STATIC_INLINE void __attribute__((__always_inline__))
1925/* APPLE LOCAL end radar 5618945 */
1926_mm_lfence (void)
1927{
1928  __builtin_ia32_lfence ();
1929}
1930
1931/* APPLE LOCAL begin radar 5618945 */
1932__STATIC_INLINE void __attribute__((__always_inline__))
1933/* APPLE LOCAL end radar 5618945 */
1934_mm_mfence (void)
1935{
1936  __builtin_ia32_mfence ();
1937}
1938
1939/* APPLE LOCAL begin radar 5618945 */
1940__STATIC_INLINE __m128i __attribute__((__always_inline__))
1941/* APPLE LOCAL end radar 5618945 */
1942_mm_cvtsi32_si128 (int __A)
1943{
1944  return _mm_set_epi32 (0, 0, 0, __A);
1945}
1946
1947#ifdef __x86_64__
1948/* Intel intrinsic.  */
1949/* APPLE LOCAL begin radar 5618945 */
1950__STATIC_INLINE __m128i __attribute__((__always_inline__))
1951/* APPLE LOCAL end radar 5618945 */
1952_mm_cvtsi64_si128 (long long __A)
1953{
1954  return _mm_set_epi64x (0, __A);
1955}
1956
1957/* Microsoft intrinsic.  */
1958/* APPLE LOCAL begin radar 5618945 */
1959__STATIC_INLINE __m128i __attribute__((__always_inline__))
1960/* APPLE LOCAL end radar 5618945 */
1961_mm_cvtsi64x_si128 (long long __A)
1962{
1963  return _mm_set_epi64x (0, __A);
1964}
1965#endif
1966
1967/* Casts between various SP, DP, INT vector types.  Note that these do no
1968   conversion of values, they just change the type.  */
1969/* APPLE LOCAL begin radar 5618945 */
1970__STATIC_INLINE __m128 __attribute__((__always_inline__))
1971/* APPLE LOCAL end radar 5618945 */
1972_mm_castpd_ps(__m128d __A)
1973{
1974  return (__m128) __A;
1975}
1976
1977/* APPLE LOCAL begin radar 5618945 */
1978__STATIC_INLINE __m128i __attribute__((__always_inline__))
1979/* APPLE LOCAL end radar 5618945 */
1980_mm_castpd_si128(__m128d __A)
1981{
1982  return (__m128i) __A;
1983}
1984
1985/* APPLE LOCAL begin radar 5618945 */
1986__STATIC_INLINE __m128d __attribute__((__always_inline__))
1987/* APPLE LOCAL end radar 5618945 */
1988_mm_castps_pd(__m128 __A)
1989{
1990  return (__m128d) __A;
1991}
1992
1993/* APPLE LOCAL begin radar 5618945 */
1994__STATIC_INLINE __m128i __attribute__((__always_inline__))
1995/* APPLE LOCAL end radar 5618945 */
1996_mm_castps_si128(__m128 __A)
1997{
1998  return (__m128i) __A;
1999}
2000
2001/* APPLE LOCAL begin radar 5618945 */
2002__STATIC_INLINE __m128 __attribute__((__always_inline__))
2003/* APPLE LOCAL end radar 5618945 */
2004_mm_castsi128_ps(__m128i __A)
2005{
2006  return (__m128) __A;
2007}
2008
2009/* APPLE LOCAL begin radar 5618945 */
2010__STATIC_INLINE __m128d __attribute__((__always_inline__))
2011/* APPLE LOCAL end radar 5618945 */
2012_mm_castsi128_pd(__m128i __A)
2013{
2014  return (__m128d) __A;
2015}
2016/* APPLE LOCAL end radar 4152603 */
2017
2018/* APPLE LOCAL begin 4220129, 4286110 */
2019/* Set all of the elements of the vector to A.  */
2020
2021/* APPLE LOCAL begin radar 5618945 */
2022__STATIC_INLINE __m128i __attribute__((__always_inline__))
2023/* APPLE LOCAL end radar 5618945 */
2024_mm_set1_epi64x (long long __A)
2025{
2026  return _mm_set_epi64x (__A, __A);
2027}
2028
2029/* APPLE LOCAL begin radar 5618945 */
2030__STATIC_INLINE __m128i __attribute__((__always_inline__))
2031/* APPLE LOCAL end radar 5618945 */
2032_mm_set1_epi64 (__m64 __A)
2033{
2034  return _mm_set_epi64 (__A, __A);
2035}
2036
2037/* APPLE LOCAL begin radar 5618945 */
2038__STATIC_INLINE __m128i __attribute__((__always_inline__))
2039/* APPLE LOCAL end radar 5618945 */
2040_mm_set1_epi32 (int __A)
2041{
2042  return _mm_set_epi32 (__A, __A, __A, __A);
2043}
2044
2045/* APPLE LOCAL begin radar 5618945 */
2046__STATIC_INLINE __m128i __attribute__((__always_inline__))
2047/* APPLE LOCAL end radar 5618945 */
2048_mm_set1_epi16 (short __A)
2049{
2050  __m128i temp, temp2, temp3;
2051  temp = _mm_cvtsi32_si128((int)__A);
2052  temp2 = _mm_unpacklo_epi16(temp, temp);
2053  temp3 = _mm_shuffle_epi32(temp2, 0);
2054  return temp3;
2055}
2056
2057/* APPLE LOCAL begin radar 5618945 */
2058__STATIC_INLINE __m128i __attribute__((__always_inline__))
2059/* APPLE LOCAL end radar 5618945 */
2060_mm_set1_epi8 (char __A)
2061{
2062    __m128i temp, temp2, temp3, temp4;
2063    temp = _mm_cvtsi32_si128 ((int)__A);
2064    temp2 = _mm_unpacklo_epi8 (temp, temp);
2065    temp3 = _mm_unpacklo_epi8 (temp2, temp2);
2066    temp4 = _mm_shuffle_epi32 (temp3, 0);
2067    return temp4;
2068}
2069/* APPLE LOCAL end 4220129, 4286110 */
2070
2071/* APPLE LOCAL begin nodebug inline 4152603 */
2072#undef __always_inline__
2073/* APPLE LOCAL end nodebug inline 4152603 */
2074
2075#endif /* __SSE2__  */
2076
2077#endif /* _EMMINTRIN_H_INCLUDED */
2078