16bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/*===---- emmintrin.h - SSE2 intrinsics ------------------------------------===
26bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
36bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * Permission is hereby granted, free of charge, to any person obtaining a copy
46bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * of this software and associated documentation files (the "Software"), to deal
56bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * in the Software without restriction, including without limitation the rights
66bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
76bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * copies of the Software, and to permit persons to whom the Software is
86bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * furnished to do so, subject to the following conditions:
96bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The above copyright notice and this permission notice shall be included in
116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * all copies or substantial portions of the Software.
126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * THE SOFTWARE.
206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *===-----------------------------------------------------------------------===
226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */
236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __EMMINTRIN_H
256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __EMMINTRIN_H
266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#include <xmmintrin.h>
286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef double __m128d __attribute__((__vector_size__(16)));
306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef long long __m128i __attribute__((__vector_size__(16)));
316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* Type defines.  */
336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef double __v2df __attribute__ ((__vector_size__ (16)));
346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef long long __v2di __attribute__ ((__vector_size__ (16)));
356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef short __v8hi __attribute__((__vector_size__(16)));
366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef char __v16qi __attribute__((__vector_size__(16)));
376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* Unsigned types */
396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef unsigned long long __v2du __attribute__ ((__vector_size__ (16)));
406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef unsigned short __v8hu __attribute__((__vector_size__(16)));
416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef unsigned char __v16qu __attribute__((__vector_size__(16)));
426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* We need an explicitly signed variant for char. Note that this shouldn't
446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * appear in the interface though. */
456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef signed char __v16qs __attribute__((__vector_size__(16)));
466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#include <f16cintrin.h>
486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* Define the default attributes for the functions in this file. */
506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse2")))
516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_sd(__m128d __a, __m128d __b)
546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] += __b[0];
566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_pd(__m128d __a, __m128d __b)
616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a + (__v2df)__b);
636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_sd(__m128d __a, __m128d __b)
676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] -= __b[0];
696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_pd(__m128d __a, __m128d __b)
746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a - (__v2df)__b);
766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_sd(__m128d __a, __m128d __b)
806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] *= __b[0];
826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_pd(__m128d __a, __m128d __b)
876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a * (__v2df)__b);
896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_div_sd(__m128d __a, __m128d __b)
936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] /= __b[0];
956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_div_pd(__m128d __a, __m128d __b)
1006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a / (__v2df)__b);
1026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sqrt_sd(__m128d __a, __m128d __b)
1066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b);
1086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
1096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sqrt_pd(__m128d __a)
1136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_sqrtpd((__v2df)__a);
1156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_sd(__m128d __a, __m128d __b)
1196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b);
1216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_pd(__m128d __a, __m128d __b)
1256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b);
1276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_sd(__m128d __a, __m128d __b)
1316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b);
1336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_pd(__m128d __a, __m128d __b)
1376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b);
1396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_and_pd(__m128d __a, __m128d __b)
1436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v4su)__a & (__v4su)__b);
1456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_andnot_pd(__m128d __a, __m128d __b)
1496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)(~(__v4su)__a & (__v4su)__b);
1516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_or_pd(__m128d __a, __m128d __b)
1556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v4su)__a | (__v4su)__b);
1576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_xor_pd(__m128d __a, __m128d __b)
1616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v4su)__a ^ (__v4su)__b);
1636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_pd(__m128d __a, __m128d __b)
1676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b);
1696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_pd(__m128d __a, __m128d __b)
1736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b);
1756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmple_pd(__m128d __a, __m128d __b)
1796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b);
1816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_pd(__m128d __a, __m128d __b)
1856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a);
1876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpge_pd(__m128d __a, __m128d __b)
1916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a);
1936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpord_pd(__m128d __a, __m128d __b)
1976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b);
1996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpunord_pd(__m128d __a, __m128d __b)
2036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b);
2056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpneq_pd(__m128d __a, __m128d __b)
2096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b);
2116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnlt_pd(__m128d __a, __m128d __b)
2156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b);
2176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnle_pd(__m128d __a, __m128d __b)
2216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b);
2236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpngt_pd(__m128d __a, __m128d __b)
2276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a);
2296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnge_pd(__m128d __a, __m128d __b)
2336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a);
2356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_sd(__m128d __a, __m128d __b)
2396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b);
2416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_sd(__m128d __a, __m128d __b)
2456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b);
2476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmple_sd(__m128d __a, __m128d __b)
2516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b);
2536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_sd(__m128d __a, __m128d __b)
2576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a);
2596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
2606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpge_sd(__m128d __a, __m128d __b)
2646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a);
2666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
2676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpord_sd(__m128d __a, __m128d __b)
2716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b);
2736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpunord_sd(__m128d __a, __m128d __b)
2776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b);
2796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpneq_sd(__m128d __a, __m128d __b)
2836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b);
2856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnlt_sd(__m128d __a, __m128d __b)
2896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b);
2916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnle_sd(__m128d __a, __m128d __b)
2956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b);
2976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpngt_sd(__m128d __a, __m128d __b)
3016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a);
3036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
3046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnge_sd(__m128d __a, __m128d __b)
3086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a);
3106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
3116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comieq_sd(__m128d __a, __m128d __b)
3156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b);
3176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comilt_sd(__m128d __a, __m128d __b)
3216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b);
3236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comile_sd(__m128d __a, __m128d __b)
3276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b);
3296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comigt_sd(__m128d __a, __m128d __b)
3336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b);
3356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comige_sd(__m128d __a, __m128d __b)
3396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b);
3416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comineq_sd(__m128d __a, __m128d __b)
3456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b);
3476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomieq_sd(__m128d __a, __m128d __b)
3516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b);
3536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomilt_sd(__m128d __a, __m128d __b)
3576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b);
3596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomile_sd(__m128d __a, __m128d __b)
3636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b);
3656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomigt_sd(__m128d __a, __m128d __b)
3696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b);
3716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomige_sd(__m128d __a, __m128d __b)
3756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b);
3776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
3806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomineq_sd(__m128d __a, __m128d __b)
3816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b);
3836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
3866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpd_ps(__m128d __a)
3876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtpd2ps((__v2df)__a);
3896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtps_pd(__m128 __a)
3936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) __builtin_convertvector(
3956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker      __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df);
3966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtepi32_pd(__m128i __a)
4006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) __builtin_convertvector(
4026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker      __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df);
4036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
4066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpd_epi32(__m128d __a)
4076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtpd2dq((__v2df)__a);
4096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
4126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_si32(__m128d __a)
4136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtsd2si((__v2df)__a);
4156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
4186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_ss(__m128 __a, __m128d __b)
4196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b[0];
4216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
4226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi32_sd(__m128d __a, int __b)
4266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b;
4286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
4296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtss_sd(__m128d __a, __m128 __b)
4336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b[0];
4356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
4366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
4396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttpd_epi32(__m128d __a)
4406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a);
4426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
4456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttsd_si32(__m128d __a)
4466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a[0];
4486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
4516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpd_pi32(__m128d __a)
4526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a);
4546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
4576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttpd_pi32(__m128d __a)
4586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a);
4606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpi32_pd(__m64 __a)
4646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtpi2pd((__v2si)__a);
4666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ double __DEFAULT_FN_ATTRS
4696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_f64(__m128d __a)
4706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a[0];
4726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load_pd(double const *__dp)
4766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return *(__m128d*)__dp;
4786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load1_pd(double const *__dp)
4826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_load1_pd_struct {
4846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
4856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
4866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_load1_pd_struct*)__dp)->__u;
4876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __u, __u };
4886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define        _mm_load_pd1(dp)        _mm_load1_pd(dp)
4916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadr_pd(double const *__dp)
4946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __u = *(__m128d*)__dp;
4966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0);
4976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadu_pd(double const *__dp)
5016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __loadu_pd {
5036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128d __v;
5046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
5056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return ((struct __loadu_pd*)__dp)->__v;
5066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
5096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadu_si64(void const *__a)
5106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __loadu_si64 {
5126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    long long __v;
5136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
5146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  long long __u = ((struct __loadu_si64*)__a)->__v;
5156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){__u, 0L};
5166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load_sd(double const *__dp)
5206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_load_sd_struct {
5226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
5236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
5246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_load_sd_struct*)__dp)->__u;
5256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __u, 0 };
5266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadh_pd(__m128d __a, double const *__dp)
5306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_loadh_pd_struct {
5326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
5336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
5346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_loadh_pd_struct*)__dp)->__u;
5356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __a[0], __u };
5366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadl_pd(__m128d __a, double const *__dp)
5406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_loadl_pd_struct {
5426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
5436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
5446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_loadl_pd_struct*)__dp)->__u;
5456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __u, __a[1] };
5466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_undefined_pd(void)
5506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_undef128();
5526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_sd(double __w)
5566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __w, 0 };
5586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_pd(double __w)
5626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __w, __w };
5646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_pd(double __w, double __x)
5686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __x, __w };
5706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_pd(double __w, double __x)
5746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __w, __x };
5766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setzero_pd(void)
5806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ 0, 0 };
5826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_move_sd(__m128d __a, __m128d __b)
5866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __b[0], __a[1] };
5886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
5916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_sd(double *__dp, __m128d __a)
5926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_store_sd_struct {
5946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
5956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
5966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_store_sd_struct*)__dp)->__u = __a[0];
5976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_pd(double *__dp, __m128d __a)
6016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  *(__m128d*)__dp = __a;
6036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store1_pd(double *__dp, __m128d __a)
6076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0);
6096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  _mm_store_pd(__dp, __a);
6106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_pd1(double *__dp, __m128d __a)
6146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_store1_pd(__dp, __a);
6166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storeu_pd(double *__dp, __m128d __a)
6206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __storeu_pd {
6226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128d __v;
6236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
6246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __storeu_pd*)__dp)->__v = __a;
6256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storer_pd(double *__dp, __m128d __a)
6296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0);
6316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  *(__m128d *)__dp = __a;
6326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storeh_pd(double *__dp, __m128d __a)
6366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_storeh_pd_struct {
6386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
6396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
6406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1];
6416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
6446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storel_pd(double *__dp, __m128d __a)
6456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_storeh_pd_struct {
6476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
6486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
6496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0];
6506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi8(__m128i __a, __m128i __b)
6546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qu)__a + (__v16qu)__b);
6566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi16(__m128i __a, __m128i __b)
6606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hu)__a + (__v8hu)__b);
6626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi32(__m128i __a, __m128i __b)
6666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4su)__a + (__v4su)__b);
6686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
6716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_si64(__m64 __a, __m64 __b)
6726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b);
6746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi64(__m128i __a, __m128i __b)
6786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a + (__v2du)__b);
6806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epi8(__m128i __a, __m128i __b)
6846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b);
6866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epi16(__m128i __a, __m128i __b)
6906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b);
6926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
6956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epu8(__m128i __a, __m128i __b)
6966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b);
6986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epu16(__m128i __a, __m128i __b)
7026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b);
7046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_avg_epu8(__m128i __a, __m128i __b)
7086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
7106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_avg_epu16(__m128i __a, __m128i __b)
7146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
7166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_madd_epi16(__m128i __a, __m128i __b)
7206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b);
7226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_epi16(__m128i __a, __m128i __b)
7266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b);
7286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_epu8(__m128i __a, __m128i __b)
7326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b);
7346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_epi16(__m128i __a, __m128i __b)
7386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b);
7406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_epu8(__m128i __a, __m128i __b)
7446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b);
7466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mulhi_epi16(__m128i __a, __m128i __b)
7506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b);
7526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mulhi_epu16(__m128i __a, __m128i __b)
7566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b);
7586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies the corresponding elements of two [8 x short] vectors and
7616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns a vector containing the low-order 16 bits of each 32-bit product
7626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the corresponding element.
7636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
7656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMULLW / PMULLW instruction.
7676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
7706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
7716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
7726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the products of both operands.
7736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
7746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mullo_epi16(__m128i __a, __m128i __b)
7756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hu)__a * (__v8hu)__b);
7776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies 32-bit unsigned integer values contained in the lower bits
7806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the two 64-bit integer vectors and returns the 64-bit unsigned
7816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    product.
7826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
7846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c PMULUDQ instruction.
7866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer containing one of the source operands.
7896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
7906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer containing one of the source operands.
7916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit integer vector containing the product of both operands.
7926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
7936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_su32(__m64 __a, __m64 __b)
7946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b);
7966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies 32-bit unsigned integer values contained in the lower
7996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the corresponding elements of two [2 x i64] vectors, and returns
8006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the 64-bit products in the corresponding elements of a [2 x i64] vector.
8016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMULUDQ / PMULUDQ instruction.
8056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A [2 x i64] vector containing one of the source operands.
8086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A [2 x i64] vector containing one of the source operands.
8106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A [2 x i64] vector containing the product of both operands.
8116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
8126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_epu32(__m128i __a, __m128i __b)
8136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b);
8156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Computes the absolute differences of corresponding 8-bit integer
8186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values in two 128-bit vectors. Sums the first 8 absolute differences, and
8196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    separately sums the second 8 absolute differences. Packss these two
8206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    unsigned 16-bit integer sums into the upper and lower elements of a
8216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x i64] vector.
8226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSADBW / PSADBW instruction.
8266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
8296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
8316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A [2 x i64] vector containing the sums of the sets of absolute
8326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    differences between both operands.
8336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
8346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sad_epu8(__m128i __a, __m128i __b)
8356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
8376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding 8-bit integer values in the operands.
8406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBB / PSUBB instruction.
8446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
8476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
8496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
8506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
8516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
8526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi8(__m128i __a, __m128i __b)
8536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qu)__a - (__v16qu)__b);
8556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding 16-bit integer values in the operands.
8586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBW / PSUBW instruction.
8626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
8656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
8676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
8686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
8696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
8706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi16(__m128i __a, __m128i __b)
8716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hu)__a - (__v8hu)__b);
8736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding 32-bit integer values in the operands.
8766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBD / PSUBD instruction.
8806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
8836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
8856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
8866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
8876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
8886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi32(__m128i __a, __m128i __b)
8896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4su)__a - (__v4su)__b);
8916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts signed or unsigned 64-bit integer values and writes the
8946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    difference to the corresponding bits in the destination.
8956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c PSUBQ instruction.
8996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer vector containing the minuend.
9026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer vector containing the subtrahend.
9046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit integer vector containing the difference of the values in
9056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the operands.
9066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
9076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_si64(__m64 __a, __m64 __b)
9086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b);
9106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding elements of two [2 x i64] vectors.
9136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBQ / PSUBQ instruction.
9176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
9206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
9226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
9236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
9246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
9256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi64(__m128i __a, __m128i __b)
9266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a - (__v2du)__b);
9286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 8-bit signed integer values in the input and
9316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns the differences in the corresponding bytes in the destination.
9326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Differences greater than 7Fh are saturated to 7Fh, and differences less
9336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 80h are saturated to 80h.
9346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBSB / PSUBSB instruction.
9386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
9416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
9436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
9446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
9456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
9466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epi8(__m128i __a, __m128i __b)
9476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b);
9496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 16-bit signed integer values in the input and
9526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns the differences in the corresponding bytes in the destination.
9536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Differences greater than 7FFFh are saturated to 7FFFh, and values less
9546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 8000h are saturated to 8000h.
9556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBSW / PSUBSW instruction.
9596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
9626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
9646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
9656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
9666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
9676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epi16(__m128i __a, __m128i __b)
9686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b);
9706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 8-bit unsigned integer values in the input
9736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    and returns the differences in the corresponding bytes in the
9746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Differences less than 00h are saturated to 00h.
9756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBUSB / PSUBUSB instruction.
9796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
9826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
9846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the unsigned integer
9856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    differences of the values in the operands.
9866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
9876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epu8(__m128i __a, __m128i __b)
9886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b);
9906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 16-bit unsigned integer values in the input
9936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    and returns the differences in the corresponding bytes in the
9946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Differences less than 0000h are saturated to 0000h.
9956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBUSW / PSUBUSW instruction.
9996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
10026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
10046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the unsigned integer
10056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    differences of the values in the operands.
10066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
10076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epu16(__m128i __a, __m128i __b)
10086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b);
10106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise AND of two 128-bit integer vectors.
10136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPAND / PAND instruction.
10176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
10206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
10226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise AND of the values
10236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in both operands.
10246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
10256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_and_si128(__m128i __a, __m128i __b)
10266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a & (__v2du)__b);
10286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise AND of two 128-bit integer vectors, using the
10316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    one's complement of the values contained in the first source operand.
10326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPANDN / PANDN instruction.
10366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector containing the left source operand. The one's complement
10396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of this value is used in the bitwise AND.
10406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector containing the right source operand.
10426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise AND of the one's
10436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    complement of the first operand and the values in the second operand.
10446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
10456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_andnot_si128(__m128i __a, __m128i __b)
10466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(~(__v2du)__a & (__v2du)__b);
10486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise OR of two 128-bit integer vectors.
10506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPOR / POR instruction.
10546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
10576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
10596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise OR of the values
10606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in both operands.
10616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
10626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_or_si128(__m128i __a, __m128i __b)
10636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a | (__v2du)__b);
10656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise exclusive OR of two 128-bit integer vectors.
10686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPXOR / PXOR instruction.
10726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
10756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
10776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise exclusive OR of the
10786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values in both operands.
10796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
10806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_xor_si128(__m128i __a, __m128i __b)
10816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a ^ (__v2du)__b);
10836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts the 128-bit integer vector operand by the specified
10866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    number of bytes. Low-order bits are cleared.
10876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
10916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_slli_si128(__m128i a, const int imm);
10926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
10936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLDQ / PSLLDQ instruction.
10956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
10976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
10986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
10996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value specifying the number of bytes to left-shift
11006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand a.
11016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted value.
11026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_slli_si128(a, imm) __extension__ ({                              \
11036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector(                                          \
11046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)_mm_setzero_si128(),               \
11056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)(__m128i)(a),                      \
11066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  0 : 16 - (char)(imm), \
11076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  1 : 17 - (char)(imm), \
11086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  2 : 18 - (char)(imm), \
11096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  3 : 19 - (char)(imm), \
11106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  4 : 20 - (char)(imm), \
11116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  5 : 21 - (char)(imm), \
11126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  6 : 22 - (char)(imm), \
11136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  7 : 23 - (char)(imm), \
11146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  8 : 24 - (char)(imm), \
11156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  9 : 25 - (char)(imm), \
11166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 10 : 26 - (char)(imm), \
11176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 11 : 27 - (char)(imm), \
11186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 12 : 28 - (char)(imm), \
11196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 13 : 29 - (char)(imm), \
11206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 14 : 30 - (char)(imm), \
11216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 15 : 31 - (char)(imm)); })
11226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_bslli_si128(a, imm) \
11246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  _mm_slli_si128((a), (imm))
11256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand
11276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
11286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLW / PSLLW instruction.
11326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
11356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
11366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to left-shift each value
11376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
11386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
11396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
11406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_slli_epi16(__m128i __a, int __count)
11416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count);
11436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand
11466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
11476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLW / PSLLW instruction.
11516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
11546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
11556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
11566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to left-shift each value in operand __a.
11576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
11586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
11596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sll_epi16(__m128i __a, __m128i __count)
11606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count);
11626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand
11656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
11666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLD / PSLLD instruction.
11706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
11736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
11746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to left-shift each value
11756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
11766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
11776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
11786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_slli_epi32(__m128i __a, int __count)
11796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
11816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand
11846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
11856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLD / PSLLD instruction.
11896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
11926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
11936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
11946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to left-shift each value in operand __a.
11956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
11966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
11976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sll_epi32(__m128i __a, __m128i __count)
11986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count);
12006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand
12036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
12046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLQ / PSLLQ instruction.
12086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
12116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
12126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to left-shift each value
12136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
12146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
12156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
12166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_slli_epi64(__m128i __a, int __count)
12176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psllqi128((__v2di)__a, __count);
12196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand
12226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
12236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLQ / PSLLQ instruction.
12276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
12306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
12316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
12326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to left-shift each value in operand __a.
12336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
12346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
12356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sll_epi64(__m128i __a, __m128i __count)
12366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count);
12386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand
12416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
12426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
12436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAW / PSRAW instruction.
12476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
12506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
12516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
12526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
12536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
12546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
12556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srai_epi16(__m128i __a, int __count)
12566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count);
12586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand
12616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
12626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
12636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAW / PSRAW instruction.
12676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
12706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
12716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
12726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
12736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
12746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
12756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sra_epi16(__m128i __a, __m128i __count)
12766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count);
12786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand
12816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
12826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
12836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAD / PSRAD instruction.
12876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
12906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
12916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
12926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
12936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
12946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
12956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srai_epi32(__m128i __a, int __count)
12966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count);
12986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand
13016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
13026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
13036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAD / PSRAD instruction.
13076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
13106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
13116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
13126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
13136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
13146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
13156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sra_epi32(__m128i __a, __m128i __count)
13166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count);
13186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts the 128-bit integer vector operand by the specified
13216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    number of bytes. High-order bits are cleared.
13226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
13266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_srli_si128(__m128i a, const int imm);
13276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
13286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLDQ / PSRLDQ instruction.
13306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
13326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
13336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
13346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value specifying the number of bytes to right-shift operand
13356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a.
13366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted value.
13376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_srli_si128(a, imm) __extension__ ({                              \
13386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector(                                          \
13396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)(__m128i)(a),                      \
13406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)_mm_setzero_si128(),               \
13416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 16 : (char)(imm) + 0,  \
13426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 17 : (char)(imm) + 1,  \
13436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 18 : (char)(imm) + 2,  \
13446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 19 : (char)(imm) + 3,  \
13456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 20 : (char)(imm) + 4,  \
13466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 21 : (char)(imm) + 5,  \
13476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 22 : (char)(imm) + 6,  \
13486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 23 : (char)(imm) + 7,  \
13496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 24 : (char)(imm) + 8,  \
13506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 25 : (char)(imm) + 9,  \
13516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 26 : (char)(imm) + 10, \
13526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 27 : (char)(imm) + 11, \
13536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 28 : (char)(imm) + 12, \
13546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 29 : (char)(imm) + 13, \
13556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 30 : (char)(imm) + 14, \
13566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 31 : (char)(imm) + 15); })
13576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_bsrli_si128(a, imm) \
13596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  _mm_srli_si128((a), (imm))
13606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector
13626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
13636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLW / PSRLW instruction.
13676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
13706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
13716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
13726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
13736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
13746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
13756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srli_epi16(__m128i __a, int __count)
13766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count);
13786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector
13816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
13826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLW / PSRLW instruction.
13866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
13896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
13906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
13916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
13926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
13936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
13946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srl_epi16(__m128i __a, __m128i __count)
13956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count);
13976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector
14006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
14016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLD / PSRLD instruction.
14056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
14086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
14096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
14106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
14116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
14126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
14136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srli_epi32(__m128i __a, int __count)
14146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count);
14166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector
14196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
14206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLD / PSRLD instruction.
14246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
14276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
14286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
14296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
14306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
14316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
14326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srl_epi32(__m128i __a, __m128i __count)
14336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count);
14356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector
14386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
14396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLQ / PSRLQ instruction.
14436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
14466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
14476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
14486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
14496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
14506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
14516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srli_epi64(__m128i __a, int __count)
14526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psrlqi128((__v2di)__a, __count);
14546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector
14576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
14586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLQ / PSRLQ instruction.
14626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
14656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
14666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
14676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
14686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
14696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
14706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srl_epi64(__m128i __a, __m128i __count)
14716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count);
14736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding 8-bit values of the 128-bit
14766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors for equality. Each comparison yields 0h for false, FFh
14776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for true.
14786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPEQB / PCMPEQB instruction.
14826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
14856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
14866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
14876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
14886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
14896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_epi8(__m128i __a, __m128i __b)
14906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qi)__a == (__v16qi)__b);
14926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding 16-bit values of the 128-bit
14956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors for equality. Each comparison yields 0h for false, FFFFh
14966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for true.
14976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPEQW / PCMPEQW instruction.
15016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
15036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
15056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
15076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
15086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_epi16(__m128i __a, __m128i __b)
15096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hi)__a == (__v8hi)__b);
15116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding 32-bit values of the 128-bit
15146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors for equality. Each comparison yields 0h for false,
15156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFh for true.
15166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPEQD / PCMPEQD instruction.
15206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
15226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
15246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
15266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
15276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_epi32(__m128i __a, __m128i __b)
15286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4si)__a == (__v4si)__b);
15306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit
15336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors to determine if the values in the first operand are
15346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    greater than those in the second operand. Each comparison yields 0h for
15356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFh for true.
15366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTB / PCMPGTB instruction.
15406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
15426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
15446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
15466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
15476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_epi8(__m128i __a, __m128i __b)
15486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  /* This function always performs a signed comparison, but __v16qi is a char
15506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker     which may be signed or unsigned, so use __v16qs. */
15516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qs)__a > (__v16qs)__b);
15526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 16-bit values of the
15556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
15566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are greater than those in the second operand. Each comparison yields 0h
15576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFh for true.
15586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTW / PCMPGTW instruction.
15626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
15646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
15666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
15686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
15696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_epi16(__m128i __a, __m128i __b)
15706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hi)__a > (__v8hi)__b);
15726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 32-bit values of the
15756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
15766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are greater than those in the second operand. Each comparison yields 0h
15776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFFFFFh for true.
15786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTD / PCMPGTD instruction.
15826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
15846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
15866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
15876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
15886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
15896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_epi32(__m128i __a, __m128i __b)
15906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4si)__a > (__v4si)__b);
15926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit
15956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors to determine if the values in the first operand are less
15966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than those in the second operand. Each comparison yields 0h for false,
15976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFh for true.
15986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTB / PCMPGTB instruction.
16026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
16056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
16066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
16076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
16086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
16096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_epi8(__m128i __a, __m128i __b)
16106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_cmpgt_epi8(__b, __a);
16126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 16-bit values of the
16156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
16166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are less than those in the second operand. Each comparison yields 0h for
16176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFh for true.
16186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTW / PCMPGTW instruction.
16226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
16256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
16266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
16276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
16286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
16296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_epi16(__m128i __a, __m128i __b)
16306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_cmpgt_epi16(__b, __a);
16326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 32-bit values of the
16356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
16366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are less than those in the second operand. Each comparison yields 0h for
16376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFFFFFh for true.
16386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTD / PCMPGTD instruction.
16426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
16456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
16466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
16476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
16486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
16496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_epi32(__m128i __a, __m128i __b)
16506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_cmpgt_epi32(__b, __a);
16526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
16556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a 64-bit signed integer value from the second operand into a
16566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double-precision value and returns it in the lower element of a [2 x
16576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double] vector; the upper element of the returned vector is copied from
16586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the upper element of the first operand.
16596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSI2SD / CVTSI2SD instruction.
16636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The upper 64 bits of this operand are
16666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied to the upper 64 bits of the destination.
16676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
16686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit signed integer operand containing the value to be converted.
16696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
16706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted value of the second operand. The upper 64 bits are copied from
16716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the upper 64 bits of the first operand.
16726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
16736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi64_sd(__m128d __a, long long __b)
16746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b;
16766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
16776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the first (lower) element of a vector of [2 x double] into a
16806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64-bit signed integer value, according to the current rounding mode.
16816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSD2SI / CVTSD2SI instruction.
16856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
16886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion.
16896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit signed integer containing the converted value.
16906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ long long __DEFAULT_FN_ATTRS
16916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_si64(__m128d __a)
16926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtsd2si64((__v2df)__a);
16946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the first (lower) element of a vector of [2 x double] into a
16976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64-bit signed integer value, truncating the result when it is inexact.
16986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTTSD2SI / CVTTSD2SI instruction.
17026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
17056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion.
17066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit signed integer containing the converted value.
17076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ long long __DEFAULT_FN_ATTRS
17086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttsd_si64(__m128d __a)
17096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a[0];
17116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
17136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a vector of [4 x i32] into a vector of [4 x float].
17156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTDQ2PS / CVTDQ2PS instruction.
17196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
17226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x float] containing the converted values.
17236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
17246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtepi32_ps(__m128i __a)
17256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtdq2ps((__v4si)__a);
17276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a vector of [4 x float] into a vector of [4 x i32].
17306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTPS2DQ / CVTPS2DQ instruction.
17346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float].
17376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector of [4 x i32] containing the converted
17386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values.
17396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
17406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtps_epi32(__m128 __a)
17416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a);
17436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a vector of [4 x float] into a vector of [4 x i32],
17466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    truncating the result when it is inexact.
17476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTTPS2DQ / CVTTPS2DQ instruction.
17516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float].
17546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] containing the converted values.
17556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
17566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttps_epi32(__m128 __a)
17576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_convertvector((__v4sf)__a, __v4si);
17596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns a vector of [4 x i32] where the lowest element is the input
17626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand and the remaining elements are zero.
17636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVD / MOVD instruction.
17676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit signed integer operand.
17706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32].
17716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
17726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi32_si128(int __a)
17736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __a, 0, 0, 0 };
17756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
17786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns a vector of [2 x i64] where the lower element is the input
17796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand and the upper element is zero.
17806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
17846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit signed integer operand containing the value to be converted.
17876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64] containing the converted value.
17886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
17896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi64_si128(long long __a)
17906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ __a, 0 };
17926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
17946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves the least significant 32 bits of a vector of [4 x i32] to a
17966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    32-bit signed integer value.
17976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVD / MOVD instruction.
18016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
18036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A vector of [4 x i32]. The least significant 32 bits are moved to the
18046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination.
18056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 32-bit signed integer containing the moved value.
18066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
18076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi128_si32(__m128i __a)
18086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __v4si __b = (__v4si)__a;
18106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __b[0];
18116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
18146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves the least significant 64 bits of a vector of [2 x i64] to a
18156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64-bit signed integer value.
18166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
18206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
18226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A vector of [2 x i64]. The least significant 64 bits are moved to the
18236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination.
18246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit signed integer containing the moved value.
18256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ long long __DEFAULT_FN_ATTRS
18266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi128_si64(__m128i __a)
18276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a[0];
18296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
18316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves packed integer values from an aligned 128-bit memory location
18336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to elements in a 128-bit integer vector.
18346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVDQA / MOVDQA instruction.
18386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
18406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An aligned pointer to a memory location containing integer values.
18416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the moved values.
18426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
18436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load_si128(__m128i const *__p)
18446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return *__p;
18466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves packed integer values from an unaligned 128-bit memory location
18496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to elements in a 128-bit integer vector.
18506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVDQU / MOVDQU instruction.
18546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
18566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a memory location containing integer values.
18576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the moved values.
18586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
18596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadu_si128(__m128i const *__p)
18606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __loadu_si128 {
18626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128i __v;
18636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
18646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return ((struct __loadu_si128*)__p)->__v;
18656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns a vector of [2 x i64] where the lower element is taken from
18686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the lower element of the operand, and the upper element is zero.
18696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
18736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
18756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of
18766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the destination.
18776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the
18786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    moved value. The higher order bits are cleared.
18796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
18806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadl_epi64(__m128i const *__p)
18816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_loadl_epi64_struct {
18836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    long long __u;
18846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
18856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0};
18866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Generates a 128-bit vector of [4 x i32] with unspecified content.
18896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    This could be used as an argument to another intrinsic function where the
18906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    argument is required but the value is not actually used.
18916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
18956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] with unspecified content.
18976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
18986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_undefined_si128(void)
18996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_undef128();
19016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
19046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 64-bit integer values.
19056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
19096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
19106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q1
19126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the upper 64 bits of the
19136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
19146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q0
19156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the lower 64 bits of the
19166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
19176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [2 x i64] containing the values
19186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
19196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
19206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi64x(long long __q1, long long __q0)
19216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ __q0, __q1 };
19236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
19266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 64-bit integer values.
19276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
19316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
19326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q1
19346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the upper 64 bits of the
19356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
19366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q0
19376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the lower 64 bits of the
19386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
19396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [2 x i64] containing the values
19406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
19416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
19426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi64(__m64 __q1, __m64 __q0)
19436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__q0, (long long)__q1 };
19456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes the 32-bit values in a 128-bit vector of [4 x i32] with
19486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 32-bit integer values.
19496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
19536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
19546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i3
19566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [127:96] of the
19576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector.
19586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i2
19596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [95:64] of the destination
19606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
19616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i1
19626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [63:32] of the destination
19636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
19646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i0
19656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [31:0] of the destination
19666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
19676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [4 x i32] containing the values
19686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
19696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
19706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi32(int __i3, int __i2, int __i1, int __i0)
19716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __i0, __i1, __i2, __i3};
19736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes the 16-bit values in a 128-bit vector of [8 x i16] with
19766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 16-bit integer values.
19776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
19816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
19826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w7
19846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [127:112] of the
19856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector.
19866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w6
19876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [111:96] of the
19886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector.
19896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w5
19906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [95:80] of the destination
19916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
19926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w4
19936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [79:64] of the destination
19946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
19956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w3
19966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [63:48] of the destination
19976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
19986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w2
19996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [47:32] of the destination
20006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
20016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w1
20026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [31:16] of the destination
20036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
20046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w0
20056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [15:0] of the destination
20066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
20076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [8 x i16] containing the values
20086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
20096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0)
20116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 };
20136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes the 8-bit values in a 128-bit vector of [16 x i8] with
20166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 8-bit integer values.
20176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
20216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
20226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b15
20246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [127:120] of the destination vector.
20256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b14
20266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [119:112] of the destination vector.
20276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b13
20286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [111:104] of the destination vector.
20296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b12
20306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [103:96] of the destination vector.
20316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b11
20326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [95:88] of the destination vector.
20336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b10
20346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [87:80] of the destination vector.
20356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b9
20366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [79:72] of the destination vector.
20376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b8
20386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [71:64] of the destination vector.
20396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b7
20406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [63:56] of the destination vector.
20416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b6
20426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [55:48] of the destination vector.
20436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b5
20446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [47:40] of the destination vector.
20456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b4
20466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [39:32] of the destination vector.
20476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b3
20486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [31:24] of the destination vector.
20496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b2
20506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [23:16] of the destination vector.
20516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b1
20526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [15:8] of the destination vector.
20536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b0
20546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [7:0] of the destination vector.
20556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [16 x i8] containing the values
20566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
20576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b9, char __b8, char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0)
20596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 };
20616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both values in a 128-bit integer vector with the
20646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 64-bit integer value.
20656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
20696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
20706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q
20726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Integer value used to initialize the elements of the destination integer
20736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
20746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector of [2 x i64] with both
20756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements containing the value provided in the operand.
20766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi64x(long long __q)
20786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ __q, __q };
20806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both values in a 128-bit vector of [2 x i64] with the
20836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 64-bit value.
20846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
20886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
20896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q
20916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit value used to initialize the elements of the destination integer
20926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
20936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [2 x i64] with all elements
20946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
20956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi64(__m64 __q)
20976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__q, (long long)__q };
20996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes all values in a 128-bit vector of [4 x i32] with the
21026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 32-bit value.
21036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
21076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
21086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i
21106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit value used to initialize the elements of the destination integer
21116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
21126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [4 x i32] with all elements
21136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
21146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi32(int __i)
21166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __i, __i, __i, __i };
21186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes all values in a 128-bit vector of [8 x i16] with the
21216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 16-bit value.
21226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
21266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
21276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w
21296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit value used to initialize the elements of the destination integer
21306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
21316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [8 x i16] with all elements
21326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
21336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi16(short __w)
21356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v8hi){ __w, __w, __w, __w, __w, __w, __w, __w };
21376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes all values in a 128-bit vector of [16 x i8] with the
21406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 8-bit value.
21416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
21456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
21466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
21486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit value used to initialize the elements of the destination integer
21496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
21506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [16 x i8] with all elements
21516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
21526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi8(char __b)
21546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v16qi){ __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b };
21566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi64(__m64 __q0, __m64 __q1)
21606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__q0, (long long)__q1 };
21626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi32(int __i0, int __i1, int __i2, int __i3)
21666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __i0, __i1, __i2, __i3};
21686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4, short __w5, short __w6, short __w7)
21726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 };
21746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7, char __b8, char __b9, char __b10, char __b11, char __b12, char __b13, char __b14, char __b15)
21786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 };
21806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setzero_si128(void)
21846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ 0LL, 0LL };
21866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
21896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_si128(__m128i *__p, __m128i __b)
21906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  *__p = __b;
21926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
21956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storeu_si128(__m128i *__p, __m128i __b)
21966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __storeu_si128 {
21986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128i __v;
21996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
22006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __storeu_si128*)__p)->__v = __b;
22016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p)
22056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p);
22076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storel_epi64(__m128i *__p, __m128i __a)
22116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_storel_epi64_struct {
22136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    long long __u;
22146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
22156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0];
22166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_pd(double *__p, __m128d __a)
22206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_nontemporal_store((__v2df)__a, (__v2df*)__p);
22226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_si128(__m128i *__p, __m128i __a)
22266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_nontemporal_store((__v2di)__a, (__v2di*)__p);
22286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_si32(int *__p, int __a)
22326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_movnti(__p, __a);
22346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
22376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_si64(long long *__p, long long __a)
22396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_movnti64(__p, __a);
22416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
22436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_clflush(void const *__p)
22466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_clflush(__p);
22486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_lfence(void)
22526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_lfence();
22546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
22576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mfence(void)
22586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_mfence();
22606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_packs_epi16(__m128i __a, __m128i __b)
22646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b);
22666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_packs_epi32(__m128i __a, __m128i __b)
22706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b);
22726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_packus_epi16(__m128i __a, __m128i __b)
22766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b);
22786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
22816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_extract_epi16(__m128i __a, int __imm)
22826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __v8hi __b = (__v8hi)__a;
22846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (unsigned short)__b[__imm & 7];
22856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_insert_epi16(__m128i __a, int __b, int __imm)
22896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __v8hi __c = (__v8hi)__a;
22916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __c[__imm & 7] = __b;
22926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__c;
22936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
22966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movemask_epi8(__m128i __a)
22976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_pmovmskb128((__v16qi)__a);
22996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shuffle_epi32(a, imm) __extension__ ({ \
23026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector((__v4si)(__m128i)(a), \
23036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   (__v4si)_mm_undefined_si128(), \
23046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 0) & 0x3, ((imm) >> 2) & 0x3, \
23056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); })
23066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shufflelo_epi16(a, imm) __extension__ ({ \
23086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector((__v8hi)(__m128i)(a), \
23096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   (__v8hi)_mm_undefined_si128(), \
23106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 0) & 0x3, ((imm) >> 2) & 0x3, \
23116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3, \
23126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4, 5, 6, 7); })
23136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shufflehi_epi16(a, imm) __extension__ ({ \
23156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector((__v8hi)(__m128i)(a), \
23166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   (__v8hi)_mm_undefined_si128(), \
23176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   0, 1, 2, 3, \
23186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 0) & 0x3), \
23196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 2) & 0x3), \
23206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 4) & 0x3), \
23216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 6) & 0x3)); })
23226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi8(__m128i __a, __m128i __b)
23256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15);
23276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi16(__m128i __a, __m128i __b)
23316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7);
23336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi32(__m128i __a, __m128i __b)
23376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3);
23396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi64(__m128i __a, __m128i __b)
23436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1);
23456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi8(__m128i __a, __m128i __b)
23496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7);
23516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi16(__m128i __a, __m128i __b)
23556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3);
23576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi32(__m128i __a, __m128i __b)
23616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1);
23636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi64(__m128i __a, __m128i __b)
23676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0);
23696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
23726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movepi64_pi64(__m128i __a)
23736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__a[0];
23756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movpi64_epi64(__m64 __a)
23796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__a, 0 };
23816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_move_epi64(__m128i __a)
23856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2di)__a, (__m128i){ 0 }, 0, 2);
23876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
23906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_pd(__m128d __a, __m128d __b)
23916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1);
23936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
23966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_pd(__m128d __a, __m128d __b)
23976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0);
23996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
24026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movemask_pd(__m128d __a)
24036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_movmskpd((__v2df)__a);
24056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shuffle_pd(a, b, i) __extension__ ({ \
24086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128d)__builtin_shufflevector((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
24096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   0 + (((i) >> 0) & 0x1), \
24106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   2 + (((i) >> 1) & 0x1)); })
24116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
24136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castpd_ps(__m128d __a)
24146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128)__a;
24166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castpd_si128(__m128d __a)
24206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__a;
24226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
24256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castps_pd(__m128 __a)
24266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__a;
24286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castps_si128(__m128 __a)
24326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__a;
24346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
24376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castsi128_ps(__m128i __a)
24386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128)__a;
24406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
24436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castsi128_pd(__m128i __a)
24446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__a;
24466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
24496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_pause(void)
24506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_pause();
24526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#undef __DEFAULT_FN_ATTRS
24556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _MM_SHUFFLE2(x, y) (((x) << 1) | (y))
24576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __EMMINTRIN_H */
2459