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
526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds lower double-precision values in both operands and returns the
536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    sum in the lower 64 bits of the result. The upper 64 bits of the result
546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are copied from the upper double-precision value of the first operand.
556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VADDSD / ADDSD instruction.
596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    sum of the lower 64 bits of both operands. The upper 64 bits are copied
666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    from the upper 64 bits of the first source operand.
676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_sd(__m128d __a, __m128d __b)
696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] += __b[0];
716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds two 128-bit vectors of [2 x double].
756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VADDPD / ADDPD instruction.
796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the sums of both
856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operands.
866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_pd(__m128d __a, __m128d __b)
886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a + (__v2df)__b);
906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the lower double-precision value of the second operand
936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    from the lower double-precision value of the first operand and returns
946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the difference in the lower 64 bits of the result. The upper 64 bits of
956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the result are copied from the upper double-precision value of the first
966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand.
976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VSUBSD / SUBSD instruction.
1016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
1036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the minuend.
1046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
1056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the subtrahend.
1066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
1076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    difference of the lower 64 bits of both operands. The upper 64 bits are
1086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied from the upper 64 bits of the first source operand.
1096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_sd(__m128d __a, __m128d __b)
1116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] -= __b[0];
1136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
1146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts two 128-bit vectors of [2 x double].
1176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
1196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VSUBPD / SUBPD instruction.
1216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
1236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the minuend.
1246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
1256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the subtrahend.
1266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the differences between
1276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    both operands.
1286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_pd(__m128d __a, __m128d __b)
1306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a - (__v2df)__b);
1326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies lower double-precision values in both operands and returns
1356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the product in the lower 64 bits of the result. The upper 64 bits of the
1366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result are copied from the upper double-precision value of the first
1376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand.
1386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
1406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMULSD / MULSD instruction.
1426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
1446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
1456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
1466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
1476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
1486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    product of the lower 64 bits of both operands. The upper 64 bits are
1496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied from the upper 64 bits of the first source operand.
1506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_sd(__m128d __a, __m128d __b)
1526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] *= __b[0];
1546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
1556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies two 128-bit vectors of [2 x double].
1586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
1606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMULPD / MULPD instruction.
1626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
1646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands.
1656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
1666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands.
1676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the products of both
1686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operands.
1696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_pd(__m128d __a, __m128d __b)
1716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a * (__v2df)__b);
1736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Divides the lower double-precision value of the first operand by the
1766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower double-precision value of the second operand and returns the
1776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    quotient in the lower 64 bits of the result. The upper 64 bits of the
1786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result are copied from the upper double-precision value of the first
1796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand.
1806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
1826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VDIVSD / DIVSD instruction.
1846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
1856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
1866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the dividend.
1876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
1886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing divisor.
1896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
1906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    quotient of the lower 64 bits of both operands. The upper 64 bits are
1916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied from the upper 64 bits of the first source operand.
1926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
1936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_div_sd(__m128d __a, __m128d __b)
1946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] /= __b[0];
1966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
1976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs an element-by-element division of two 128-bit vectors of
2006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x double].
2016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
2036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VDIVPD / DIVPD instruction.
2056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
2076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the dividend.
2086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
2096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the divisor.
2106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the quotients of both
2116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operands.
2126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_div_pd(__m128d __a, __m128d __b)
2146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2df)__a / (__v2df)__b);
2166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Calculates the square root of the lower double-precision value of
2196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second operand and returns it in the lower 64 bits of the result.
2206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    The upper 64 bits of the result are copied from the upper double-
2216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    precision value of the first operand.
2226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
2246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VSQRTSD / SQRTSD instruction.
2266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
2286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands. The
2296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    upper 64 bits of this operand are copied to the upper 64 bits of the
2306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result.
2316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
2326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands. The
2336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    square root is calculated using the lower 64 bits of this operand.
2346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
2356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    square root of the lower 64 bits of operand __b, and whose upper 64 bits
2366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are copied from the upper 64 bits of operand __a.
2376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sqrt_sd(__m128d __a, __m128d __b)
2396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b);
2416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
2426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Calculates the square root of the each of two values stored in a
2456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double].
2466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
2486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VSQRTPD / SQRTPD instruction.
2506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
2526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
2536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the square roots of the
2546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values in the operand.
2556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sqrt_pd(__m128d __a)
2576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_sqrtpd((__v2df)__a);
2596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares lower 64-bit double-precision values of both operands, and
2626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns the lesser of the pair of values in the lower 64-bits of the
2636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result. The upper 64 bits of the result are copied from the upper double-
2646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    precision value of the first operand.
2656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
2676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMINSD / MINSD instruction.
2696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
2716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands. The
2726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits of this operand are used in the comparison.
2736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
2746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands. The
2756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits of this operand are used in the comparison.
2766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
2776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    minimum value between both operands. The upper 64 bits are copied from
2786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the upper 64 bits of the first source operand.
2796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
2806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_sd(__m128d __a, __m128d __b)
2816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b);
2836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs element-by-element comparison of the two 128-bit vectors of
2866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x double] and returns the vector containing the lesser of each pair of
2876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values.
2886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
2906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMINPD / MINPD instruction.
2926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
2936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
2946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands.
2956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
2966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands.
2976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the minimum values
2986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    between both operands.
2996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_pd(__m128d __a, __m128d __b)
3016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b);
3036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares lower 64-bits double-precision values of both operands, and
3066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns the greater of the pair of values in the lower 64-bits of the
3076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result. The upper 64 bits of the result are copied from the upper double-
3086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    precision value of the first operand.
3096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
3116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMAXSD / MAXSD instruction.
3136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
3156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands. The
3166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits of this operand are used in the comparison.
3176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
3186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands. The
3196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits of this operand are used in the comparison.
3206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
3216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    maximum value between both operands. The upper 64 bits are copied from
3226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the upper 64 bits of the first source operand.
3236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_sd(__m128d __a, __m128d __b)
3256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b);
3276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs element-by-element comparison of the two 128-bit vectors of
3306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x double] and returns the vector containing the greater of each pair
3316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of values.
3326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
3346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMAXPD / MAXPD instruction.
3366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
3386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands.
3396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
3406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the operands.
3416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the maximum values
3426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    between both operands.
3436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_pd(__m128d __a, __m128d __b)
3456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b);
3476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise AND of two 128-bit vectors of [2 x double].
3506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
3526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPAND / PAND instruction.
3546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
3566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
3576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
3586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
3596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
3606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values between both operands.
3616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_and_pd(__m128d __a, __m128d __b)
3636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2du)__a & (__v2du)__b);
3656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise AND of two 128-bit vectors of [2 x double], using
3686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the one's complement of the values contained in the first source operand.
3696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
3716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPANDN / PANDN instruction.
3736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
3756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the left source operand. The
3766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    one's complement of this value is used in the bitwise AND.
3776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
3786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the right source operand.
3796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
3806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values in the second operand and the one's complement of the first
3816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand.
3826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
3836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_andnot_pd(__m128d __a, __m128d __b)
3846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
3856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)(~(__v2du)__a & (__v2du)__b);
3866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
3876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
3886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise OR of two 128-bit vectors of [2 x double].
3896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
3916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPOR / POR instruction.
3936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
3946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
3956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
3966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
3976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
3986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the bitwise OR of the
3996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values between both operands.
4006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_or_pd(__m128d __a, __m128d __b)
4026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2du)__a | (__v2du)__b);
4046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise XOR of two 128-bit vectors of [2 x double].
4076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
4096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPXOR / PXOR instruction.
4116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
4136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
4146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
4156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing one of the source operands.
4166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the
4176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values between both operands.
4186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_xor_pd(__m128d __a, __m128d __b)
4206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)((__v2du)__a ^ (__v2du)__b);
4226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
4256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] for equality. Each comparison yields 0h
4266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFFFFFFFFFFFFFh for true.
4276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
4296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPEQPD / CMPEQPD instruction.
4316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
4336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
4356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
4376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_pd(__m128d __a, __m128d __b)
4396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b);
4416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
4446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
4456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are less than those in the second operand. Each comparison
4466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    yields 0h for false, FFFFFFFFFFFFFFFFh for true.
4476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
4496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLTPD / CMPLTPD instruction.
4516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
4536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
4556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
4576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_pd(__m128d __a, __m128d __b)
4596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b);
4616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
4646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
4656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are less than or equal to those in the second operand. Each
4666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0h for false, FFFFFFFFFFFFFFFFh for true.
4676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
4696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLEPD / CMPLEPD instruction.
4716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
4736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
4756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
4776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmple_pd(__m128d __a, __m128d __b)
4796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
4806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b);
4816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
4826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
4836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
4846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
4856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are greater than those in the second operand. Each comparison
4866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    yields 0h for false, FFFFFFFFFFFFFFFFh for true.
4876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
4896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLTPD / CMPLTPD instruction.
4916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
4926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
4936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
4956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
4966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
4976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
4986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_pd(__m128d __a, __m128d __b)
4996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a);
5016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
5046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
5056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are greater than or equal to those in the second operand. Each
5066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0h for false, FFFFFFFFFFFFFFFFh for true.
5076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
5096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLEPD / CMPLEPD instruction.
5116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
5136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
5156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
5176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpge_pd(__m128d __a, __m128d __b)
5196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a);
5216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
5246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
5256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are ordered with respect to those in the second operand. A pair
5266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of double-precision values are "ordered" with respect to each other if
5276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    neither value is a NaN. Each comparison yields 0h for false,
5286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
5296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
5316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPORDPD / CMPORDPD instruction.
5336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
5356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
5376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
5396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpord_pd(__m128d __a, __m128d __b)
5416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b);
5436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
5466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
5476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are unordered with respect to those in the second operand. A pair
5486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of double-precision values are "unordered" with respect to each other if
5496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    one or both values are NaN. Each comparison yields 0h for false,
5506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
5516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
5536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPUNORDPD / CMPUNORDPD instruction.
5556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
5576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
5596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
5616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpunord_pd(__m128d __a, __m128d __b)
5636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b);
5656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
5686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
5696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are unequal to those in the second operand. Each comparison
5706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    yields 0h for false, FFFFFFFFFFFFFFFFh for true.
5716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
5736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNEQPD / CMPNEQPD instruction.
5756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
5776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
5796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
5816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
5826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpneq_pd(__m128d __a, __m128d __b)
5836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
5846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b);
5856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
5866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
5876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
5886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
5896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are not less than those in the second operand. Each comparison
5906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    yields 0h for false, FFFFFFFFFFFFFFFFh for true.
5916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
5936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLTPD / CMPNLTPD instruction.
5956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
5966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
5976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
5986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
5996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
6016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
6026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnlt_pd(__m128d __a, __m128d __b)
6036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b);
6056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
6086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
6096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are not less than or equal to those in the second operand. Each
6106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0h for false, FFFFFFFFFFFFFFFFh for true.
6116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
6136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLEPD / CMPNLEPD instruction.
6156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
6176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
6196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
6216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
6226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnle_pd(__m128d __a, __m128d __b)
6236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b);
6256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
6286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
6296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are not greater than those in the second operand. Each
6306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0h for false, FFFFFFFFFFFFFFFFh for true.
6316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
6336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLTPD / CMPNLTPD instruction.
6356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
6376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
6396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
6416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
6426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpngt_pd(__m128d __a, __m128d __b)
6436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a);
6456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding double-precision values of the
6486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vectors of [2 x double] to determine if the values in the first
6496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand are not greater than or equal to those in the second operand.
6506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Each comparison yields 0h for false, FFFFFFFFFFFFFFFFh for true.
6516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
6536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLEPD / CMPNLEPD instruction.
6556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
6576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
6596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
6606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector containing the comparison results.
6616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
6626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnge_pd(__m128d __a, __m128d __b)
6636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a);
6656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
6686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] for equality. The
6696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0h for false, FFFFFFFFFFFFFFFFh for true.
6706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
6726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPEQSD / CMPEQSD instruction.
6746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
6766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
6776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
6786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
6796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
6806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
6816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
6826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
6836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
6846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_sd(__m128d __a, __m128d __b)
6856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
6866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b);
6876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
6886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
6896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
6906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
6916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is less than the corresponding value in
6926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second parameter. The comparison yields 0h for false,
6936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
6946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
6966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLTSD / CMPLTSD instruction.
6986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
6996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
7016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
7026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
7036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
7046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
7056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
7066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
7076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
7086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_sd(__m128d __a, __m128d __b)
7096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b);
7116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
7146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
7156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is less than or equal to the
7166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0h for
7176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFFFFFFFFFFFFFh for true.
7186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
7206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLESD / CMPLESD instruction.
7226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
7256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
7266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
7276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
7286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
7296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
7306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
7316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
7326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmple_sd(__m128d __a, __m128d __b)
7336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b);
7356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief  Compares the lower double-precision floating-point values in each
7386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the two 128-bit floating-point vectors of [2 x double] to determine
7396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    if the value in the first parameter is greater than the corresponding
7406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value in the second parameter. The comparison yields 0h for false,
7416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
7426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
7446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLTSD / CMPLTSD instruction.
7466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     A 128-bit vector of [2 x double]. The lower double-precision value is
7496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     compared to the lower double-precision value of __b.
7506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
7516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     A 128-bit vector of [2 x double]. The lower double-precision value is
7526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     compared to the lower double-precision value of __a.
7536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
7546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     results. The upper 64 bits are copied from the upper 64 bits of __a.
7556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
7566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_sd(__m128d __a, __m128d __b)
7576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a);
7596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
7606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
7636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
7646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is greater than or equal to the
7656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0h for
7666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFFFFFFFFFFFFFh for true.
7676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
7696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPLESD / CMPLESD instruction.
7716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
7746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
7756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
7766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
7776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
7786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
7796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
7806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
7816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpge_sd(__m128d __a, __m128d __b)
7826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
7836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a);
7846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
7856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
7866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
7876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief  Compares the lower double-precision floating-point values in each
7886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the two 128-bit floating-point vectors of [2 x double] to determine
7896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    if the value in the first parameter is "ordered" with respect to the
7906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0h for
7916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFFFFFFFFFFFFFh for true. A pair of double-precision values are
7926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    "ordered" with respect to each other if neither value is a NaN.
7936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
7956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPORDSD / CMPORDSD instruction.
7976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
7986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
7996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
8016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
8046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
8056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
8066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
8076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpord_sd(__m128d __a, __m128d __b)
8086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b);
8106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief  Compares the lower double-precision floating-point values in each
8136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the two 128-bit floating-point vectors of [2 x double] to determine
8146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    if the value in the first parameter is "unordered" with respect to the
8156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0h
8166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFFFFFFFFFFFFFh for true. A pair of double-precision values
8176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are "unordered" with respect to each other if one or both values are NaN.
8186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPUNORDSD / CMPUNORDSD instruction.
8226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
8266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
8296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
8306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
8316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
8326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpunord_sd(__m128d __a, __m128d __b)
8336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b);
8356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
8386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
8396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is unequal to the corresponding value in
8406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second parameter. The comparison yields 0h for false,
8416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
8426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNEQSD / CMPNEQSD instruction.
8466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
8506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
8536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
8546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
8556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
8566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpneq_sd(__m128d __a, __m128d __b)
8576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b);
8596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
8626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
8636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is not less than the corresponding
8646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value in the second parameter. The comparison yields 0h for false,
8656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
8666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLTSD / CMPNLTSD instruction.
8706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
8746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
8776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
8786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
8796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
8806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnlt_sd(__m128d __a, __m128d __b)
8816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
8826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b);
8836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
8846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
8856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
8866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
8876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is not less than or equal to the
8886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0h
8896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFFFFFFFFFFFFFh for true.
8906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
8926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLESD / CMPNLESD instruction.
8946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
8956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
8966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
8976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
8986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
8996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
9016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns  A 128-bit vector. The lower 64 bits contains the comparison
9026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
9036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
9046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnle_sd(__m128d __a, __m128d __b)
9056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b);
9076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
9106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
9116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is not greater than the corresponding
9126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value in the second parameter. The comparison yields 0h for false,
9136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFFFFFFFFFh for true.
9146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLTSD / CMPNLTSD instruction.
9186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
9226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
9256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
9266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
9276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
9286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpngt_sd(__m128d __a, __m128d __b)
9296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a);
9316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
9326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
9356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
9366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is not greater than or equal to the
9376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0h
9386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFFFFFFFFFFFFFh for true.
9396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCMPNLESD / CMPNLESD instruction.
9436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
9476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
9506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector. The lower 64 bits contains the comparison
9516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    results. The upper 64 bits are copied from the upper 64 bits of __a.
9526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
9536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpnge_sd(__m128d __a, __m128d __b)
9546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a);
9566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) { __c[0], __a[1] };
9576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
9606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] for equality. The
9616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0 for false, 1 for true.
9626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCOMISD / COMISD instruction.
9666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
9706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
9736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results.
9746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
9756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comieq_sd(__m128d __a, __m128d __b)
9766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b);
9786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
9796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
9806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
9816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
9826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is less than the corresponding value in
9836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second parameter. The comparison yields 0 for false, 1 for true.
9846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
9866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCOMISD / COMISD instruction.
9886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
9896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
9906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
9926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
9936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
9946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
9956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results.
9966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
9976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comilt_sd(__m128d __a, __m128d __b)
9986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
9996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b);
10006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
10036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
10046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is less than or equal to the
10056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0 for
10066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, 1 for true.
10076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCOMISD / COMISD instruction.
10116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
10156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     A 128-bit vector of [2 x double]. The lower double-precision value is
10176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     compared to the lower double-precision value of __a.
10186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results.
10196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
10206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comile_sd(__m128d __a, __m128d __b)
10216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b);
10236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
10266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
10276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is greater than the corresponding value
10286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the second parameter. The comparison yields 0 for false, 1 for true.
10296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCOMISD / COMISD instruction.
10336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
10376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
10406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results.
10416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
10426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comigt_sd(__m128d __a, __m128d __b)
10436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b);
10456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
10486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
10496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is greater than or equal to the
10506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0 for
10516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, 1 for true.
10526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCOMISD / COMISD instruction.
10566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
10606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
10636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results.
10646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
10656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comige_sd(__m128d __a, __m128d __b)
10666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b);
10686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
10716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
10726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is unequal to the corresponding value in
10736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second parameter. The comparison yields 0 for false, 1 for true.
10746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCOMISD / COMISD instruction.
10786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
10806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
10826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
10836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
10846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
10856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results.
10866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
10876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_comineq_sd(__m128d __a, __m128d __b)
10886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
10896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b);
10906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
10916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
10926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
10936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] for equality. The
10946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    comparison yields 0 for false, 1 for true. If either of the two lower
10956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double-precision values is NaN, 1 is returned.
10966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
10986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
10996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUCOMISD / UCOMISD instruction.
11006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
11036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
11046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
11056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
11066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
11076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results. If either of the two
11086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower double-precision values is NaN, 1 is returned.
11096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
11106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomieq_sd(__m128d __a, __m128d __b)
11116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b);
11136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
11166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
11176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is less than the corresponding value in
11186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second parameter. The comparison yields 0 for false, 1 for true.
11196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    If either of the two lower double-precision values is NaN, 1 is returned.
11206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUCOMISD / UCOMISD instruction.
11246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
11276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
11286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
11296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
11306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
11316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results. If either of the two
11326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower double-precision values is NaN, 1 is returned.
11336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
11346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomilt_sd(__m128d __a, __m128d __b)
11356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b);
11376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
11406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
11416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is less than or equal to the
11426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0 for
11436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, 1 for true. If either of the two lower double-precision values is
11446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    NaN, 1 is returned.
11456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUCOMISD / UCOMISD instruction.
11496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
11526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
11536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
11546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     A 128-bit vector of [2 x double]. The lower double-precision value is
11556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     compared to the lower double-precision value of __a.
11566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results. If either of the two
11576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     lower double-precision values is NaN, 1 is returned.
11586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
11596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomile_sd(__m128d __a, __m128d __b)
11606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b);
11626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
11656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
11666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is greater than the corresponding value
11676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the second parameter. The comparison yields 0 for false, 1 for true.
11686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    If either of the two lower double-precision values is NaN, 0 is returned.
11696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUCOMISD / UCOMISD instruction.
11736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
11756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
11766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
11776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
11786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     A 128-bit vector of [2 x double]. The lower double-precision value is
11796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     compared to the lower double-precision value of __a.
11806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results. If either of the two
11816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     lower double-precision values is NaN, 0 is returned.
11826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
11836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomigt_sd(__m128d __a, __m128d __b)
11846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
11856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b);
11866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
11876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
11886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
11896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
11906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is greater than or equal to the
11916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding value in the second parameter. The comparison yields 0 for
11926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, 1 for true.  If either of the two lower double-precision values
11936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    is NaN, 0 is returned.
11946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
11966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUCOMISD / UCOMISD instruction.
11986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
11996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
12016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
12026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
12036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
12046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
12056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison results. If either of the two
12066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower double-precision values is NaN, 0 is returned.
12076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
12086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomige_sd(__m128d __a, __m128d __b)
12096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b);
12116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares the lower double-precision floating-point values in each of
12146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the two 128-bit floating-point vectors of [2 x double] to determine if
12156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the value in the first parameter is unequal to the corresponding value in
12166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the second parameter. The comparison yields 0 for false, 1 for true. If
12176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    either of the two lower double-precision values is NaN, 0 is returned.
12186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUCOMISD / UCOMISD instruction.
12226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
12256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __b.
12266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
12276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision value is
12286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    compared to the lower double-precision value of __a.
12296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer containing the comparison result. If either of the two
12306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower double-precision values is NaN, 0 is returned.
12316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
12326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_ucomineq_sd(__m128d __a, __m128d __b)
12336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b);
12356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the two double-precision floating-point elements of a
12386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double] into two single-precision floating-point
12396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values, returned in the lower 64 bits of a 128-bit vector of [4 x float].
12406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    The upper 64 bits of the result vector are set to zero.
12416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTPD2PS / CVTPD2PS instruction.
12456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
12486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
12496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted values. The upper 64 bits are set to zero.
12506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
12516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpd_ps(__m128d __a)
12526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtpd2ps((__v2df)__a);
12546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the lower two single-precision floating-point elements of a
12576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [4 x float] into two double-precision floating-point
12586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values, returned in a 128-bit vector of [2 x double]. The upper two
12596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements of the input vector are unused.
12606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTPS2PD / CVTPS2PD instruction.
12646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float]. The lower two single-precision
12676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point elements are converted to double-precision values. The
12686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    upper two elements are unused.
12696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the converted values.
12706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
12716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtps_pd(__m128 __a)
12726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) __builtin_convertvector(
12746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker      __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df);
12756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the lower two integer elements of a 128-bit vector of
12786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [4 x i32] into two double-precision floating-point values, returned in a
12796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double]. The upper two elements of the input
12806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector are unused.
12816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
12836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTDQ2PD / CVTDQ2PD instruction.
12856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
12866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
12876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [4 x i32]. The lower two integer elements are
12886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted to double-precision values. The upper two elements are unused.
12896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the converted values.
12906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
12916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtepi32_pd(__m128i __a)
12926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
12936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d) __builtin_convertvector(
12946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker      __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df);
12956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
12966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
12976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the two double-precision floating-point elements of a
12986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double] into two signed 32-bit integer values,
12996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returned in the lower 64 bits of a 128-bit vector of [4 x i32]. The upper
13006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64 bits of the result vector are set to zero.
13016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTPD2DQ / CVTPD2DQ instruction.
13056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
13086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
13096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted values. The upper 64 bits are set to zero.
13106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
13116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpd_epi32(__m128d __a)
13126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtpd2dq((__v2df)__a);
13146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the low-order element of a 128-bit vector of [2 x double]
13176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    into a 32-bit signed integer value.
13186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSD2SI / CVTSD2SI instruction.
13226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
13256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion.
13266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 32-bit signed integer containing the converted value.
13276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
13286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_si32(__m128d __a)
13296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtsd2si((__v2df)__a);
13316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the lower double-precision floating-point element of a
13346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double], in the second parameter, into a
13356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    single-precision floating-point value, returned in the lower 32 bits of a
13366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [4 x float]. The upper 96 bits of the result vector are
13376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied from the upper 96 bits of the first parameter.
13386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSD2SS / CVTSD2SS instruction.
13426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float]. The upper 96 bits of this parameter are
13456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied to the upper 96 bits of the result.
13466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
13476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower double-precision
13486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point element is used in the conversion.
13496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x float]. The lower 32 bits contain the
13506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted value from the second parameter. The upper 96 bits are copied
13516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    from the upper 96 bits of the first parameter.
13526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
13536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_ss(__m128 __a, __m128d __b)
13546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b);
13566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a 32-bit signed integer value, in the second parameter, into
13596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a double-precision floating-point value, returned in the lower 64 bits of
13606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a 128-bit vector of [2 x double]. The upper 64 bits of the result vector
13616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are copied from the upper 64 bits of the first parameter.
13626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSI2SD / CVTSI2SD instruction.
13666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are
13696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied to the upper 64 bits of the result.
13706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
13716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit signed integer containing the value to be converted.
13726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
13736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted value from the second parameter. The upper 64 bits are copied
13746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    from the upper 64 bits of the first parameter.
13756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
13766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi32_sd(__m128d __a, int __b)
13776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
13786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b;
13796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
13806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
13816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
13826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the lower single-precision floating-point element of a
13836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [4 x float], in the second parameter, into a
13846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double-precision floating-point value, returned in the lower 64 bits of
13856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a 128-bit vector of [2 x double]. The upper 64 bits of the result vector
13866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are copied from the upper 64 bits of the first parameter.
13876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
13896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSS2SD / CVTSS2SD instruction.
13916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
13926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
13936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are
13946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied to the upper 64 bits of the result.
13956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
13966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float]. The lower single-precision
13976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point element is used in the conversion.
13986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
13996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted value from the second parameter. The upper 64 bits are copied
14006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    from the upper 64 bits of the first parameter.
14016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
14026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtss_sd(__m128d __a, __m128 __b)
14036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b[0];
14056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
14066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the two double-precision floating-point elements of a
14096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double] into two signed 32-bit integer values,
14106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returned in the lower 64 bits of a 128-bit vector of [4 x i32]. If the
14116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result of either conversion is inexact, the result is truncated (rounded
14126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    towards zero) regardless of the current MXCSR setting. The upper 64 bits
14136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the result vector are set to zero.
14146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTTPD2DQ / CVTTPD2DQ instruction.
14186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
14216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
14226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted values. The upper 64 bits are set to zero.
14236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
14246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttpd_epi32(__m128d __a)
14256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a);
14276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the low-order element of a [2 x double] vector into a 32-bit
14306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    signed integer value, truncating the result when it is inexact.
14316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTTSD2SI / CVTTSD2SI instruction.
14356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
14386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion.
14396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 32-bit signed integer containing the converted value.
14406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
14416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttsd_si32(__m128d __a)
14426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvttsd2si((__v2df)__a);
14446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the two double-precision floating-point elements of a
14476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double] into two signed 32-bit integer values,
14486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returned in a 64-bit vector of [2 x i32].
14496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c CVTPD2PI instruction.
14536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
14566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit vector of [2 x i32] containing the converted values.
14576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
14586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpd_pi32(__m128d __a)
14596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a);
14616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the two double-precision floating-point elements of a
14646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double] into two signed 32-bit integer values,
14656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returned in a 64-bit vector of [2 x i32]. If the result of either
14666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion is inexact, the result is truncated (rounded towards zero)
14676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    regardless of the current MXCSR setting.
14686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c CVTTPD2PI instruction.
14726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
14756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit vector of [2 x i32] containing the converted values.
14766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
14776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttpd_pi32(__m128d __a)
14786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a);
14806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the two signed 32-bit integer elements of a 64-bit vector of
14836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x i32] into two double-precision floating-point values, returned in a
14846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector of [2 x double].
14856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
14876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c CVTPI2PD instruction.
14896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
14906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
14916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit vector of [2 x i32].
14926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the converted values.
14936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
14946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtpi32_pd(__m64 __a)
14956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
14966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtpi2pd((__v2si)__a);
14976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
14986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
14996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns the low-order element of a 128-bit vector of [2 x double] as
15006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a double-precision floating-point value.
15016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
15056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
15076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are returned.
15086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A double-precision floating-point value copied from the lower 64
15096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of __a.
15106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ double __DEFAULT_FN_ATTRS
15116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_f64(__m128d __a)
15126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a[0];
15146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Loads a 128-bit floating-point vector of [2 x double] from an aligned
15176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    memory location.
15186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVAPD / MOVAPD instruction.
15226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
15246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 128-bit memory location. The address of the memory
15256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location has to be 16-byte aligned.
15266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the loaded values.
15276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
15286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load_pd(double const *__dp)
15296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return *(__m128d*)__dp;
15316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Loads a double-precision floating-point value from a specified memory
15346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location and duplicates it to both vector elements of a 128-bit vector of
15356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x double].
15366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVDDUP / MOVDDUP instruction.
15406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
15426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a memory location containing a double-precision value.
15436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the loaded and
15446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    duplicated values.
15456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
15466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load1_pd(double const *__dp)
15476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_load1_pd_struct {
15496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
15506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
15516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_load1_pd_struct*)__dp)->__u;
15526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __u, __u };
15536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define        _mm_load_pd1(dp)        _mm_load1_pd(dp)
15566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Loads two double-precision values, in reverse order, from an aligned
15586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    memory location into a 128-bit vector of [2 x double].
15596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVAPD / MOVAPD instruction + needed
15636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// shuffling instructions. In AVX mode, the shuffling may be combined with the
15646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \c VMOVAPD, resulting in only a \c VPERMILPD instruction.
15656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
15676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-byte aligned pointer to an array of double-precision values to be
15686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    loaded in reverse order.
15696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the reversed loaded
15706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values.
15716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
15726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadr_pd(double const *__dp)
15736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __m128d __u = *(__m128d*)__dp;
15756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0);
15766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Loads a 128-bit floating-point vector of [2 x double] from an
15796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    unaligned memory location.
15806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
15826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVUPD / MOVUPD instruction.
15846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
15856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
15866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 128-bit memory location. The address of the memory
15876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location does not have to be aligned.
15886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the loaded values.
15896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
15906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadu_pd(double const *__dp)
15916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
15926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __loadu_pd {
15936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128d __v;
15946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
15956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return ((struct __loadu_pd*)__dp)->__v;
15966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
15976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
15986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
15996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadu_si64(void const *__a)
16006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __loadu_si64 {
16026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    long long __v;
16036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
16046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  long long __u = ((struct __loadu_si64*)__a)->__v;
16056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){__u, 0L};
16066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
16096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load_sd(double const *__dp)
16106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_load_sd_struct {
16126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
16136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
16146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_load_sd_struct*)__dp)->__u;
16156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __u, 0 };
16166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Loads a double-precision value into the high-order bits of a 128-bit
16196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector of [2 x double]. The low-order bits are copied from the low-order
16206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the first operand.
16216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVHPD / MOVHPD instruction.
16256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
16286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:0] are written to bits [63:0] of the result.
16296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
16306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 64-bit memory location containing a double-precision
16316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point value that is loaded. The loaded value is written to bits
16326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [127:64] of the result. The address of the memory location does not have
16336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to be aligned.
16346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the moved values.
16356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
16366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadh_pd(__m128d __a, double const *__dp)
16376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_loadh_pd_struct {
16396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
16406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
16416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_loadh_pd_struct*)__dp)->__u;
16426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __a[0], __u };
16436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Loads a double-precision value into the low-order bits of a 128-bit
16466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector of [2 x double]. The high-order bits are copied from the
16476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    high-order bits of the first operand.
16486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVLPD / MOVLPD instruction.
16526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
16546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
16556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:64] are written to bits [127:64] of the result.
16566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
16576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 64-bit memory location containing a double-precision
16586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point value that is loaded. The loaded value is written to bits
16596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [63:0] of the result. The address of the memory location does not have to
16606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    be aligned.
16616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the moved values.
16626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
16636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadl_pd(__m128d __a, double const *__dp)
16646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_loadl_pd_struct {
16666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
16676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
16686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  double __u = ((struct __mm_loadl_pd_struct*)__dp)->__u;
16696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __u, __a[1] };
16706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double] with
16736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    unspecified content. This could be used as an argument to another
16746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    intrinsic function where the argument is required but the value is not
16756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    actually used.
16766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
16806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit floating-point vector of [2 x double] with unspecified
16826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    content.
16836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
16846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_undefined_pd(void)
16856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
16866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__builtin_ia32_undef128();
16876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
16886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
16896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double]. The lower
16906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64 bits of the vector are initialized with the specified double-precision
16916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point value. The upper 64 bits are set to zero.
16926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
16946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
16966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
16976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w
16986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A double-precision floating-point value used to initialize the lower 64
16996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the result.
17006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit floating-point vector of [2 x double]. The
17016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits contain the value of the parameter. The upper 64 bits are
17026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    set to zero.
17036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
17046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_sd(double __w)
17056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __w, 0 };
17076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double], with each
17106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the two double-precision floating-point vector elements set to the
17116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified double-precision floating-point value.
17126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVDDUP / MOVLHPS instruction.
17166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w
17186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A double-precision floating-point value used to initialize each vector
17196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    element of the result.
17206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit floating-point vector of [2 x double].
17216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
17226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_pd(double __w)
17236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __w, __w };
17256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double]
17286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    initialized with the specified double-precision floating-point values.
17296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUNPCKLPD / UNPCKLPD instruction.
17336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w
17356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A double-precision floating-point value used to initialize the upper 64
17366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the result.
17376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __x
17386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A double-precision floating-point value used to initialize the lower 64
17396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the result.
17406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit floating-point vector of [2 x double].
17416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
17426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_pd(double __w, double __x)
17436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __x, __w };
17456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double],
17486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    initialized in reverse order with the specified double-precision
17496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point values.
17506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUNPCKLPD / UNPCKLPD instruction.
17546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w
17566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A double-precision floating-point value used to initialize the lower 64
17576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the result.
17586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __x
17596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A double-precision floating-point value used to initialize the upper 64
17606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the result.
17616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit floating-point vector of [2 x double].
17626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
17636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_pd(double __w, double __x)
17646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __w, __x };
17666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double]
17696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    initialized to zero.
17706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VXORPS / XORPS instruction.
17746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit floating-point vector of [2 x double] with
17766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    all elements set to zero.
17776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
17786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setzero_pd(void)
17796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
17806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ 0, 0 };
17816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
17826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
17836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double]. The lower
17846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64 bits are set to the lower 64 bits of the second parameter. The upper
17856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64 bits are set to the upper 64 bits of the first parameter.
17866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker//
17876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
17886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VBLENDPD / BLENDPD instruction.
17906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
17916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
17926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The upper 64 bits are written to the
17936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    upper 64 bits of the result.
17946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
17956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are written to the
17966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits of the result.
17976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the moved values.
17986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
17996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_move_sd(__m128d __a, __m128d __b)
18006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d){ __b[0], __a[1] };
18026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores the lower 64 bits of a 128-bit vector of [2 x double] to a
18056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    memory location.
18066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVSD / MOVSD instruction.
18106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
18126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 64-bit memory location.
18136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
18146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the value to be stored.
18156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
18166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_sd(double *__dp, __m128d __a)
18176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_store_sd_struct {
18196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
18206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
18216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_store_sd_struct*)__dp)->__u = __a[0];
18226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
18256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_pd(double *__dp, __m128d __a)
18266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  *(__m128d*)__dp = __a;
18286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
18316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store1_pd(double *__dp, __m128d __a)
18326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0);
18346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  _mm_store_pd(__dp, __a);
18356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 128-bit vector of [2 x double] into an aligned memory
18386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location.
18396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVAPD / MOVAPD instruction.
18436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
18456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 128-bit memory location. The address of the memory
18466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location has to be 16-byte aligned.
18476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
18486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the values to be stored.
18496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
18506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_pd1(double *__dp, __m128d __a)
18516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_store1_pd(__dp, __a);
18536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 128-bit vector of [2 x double] into an unaligned memory
18566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location.
18576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVUPD / MOVUPD instruction.
18616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
18636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 128-bit memory location. The address of the memory
18646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    location does not have to be aligned.
18656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
18666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the values to be stored.
18676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
18686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storeu_pd(double *__dp, __m128d __a)
18696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __storeu_pd {
18716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128d __v;
18726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
18736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __storeu_pd*)__dp)->__v = __a;
18746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores two double-precision values, in reverse order, from a 128-bit
18776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector of [2 x double] to a 16-byte aligned memory location.
18786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
18806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to a shuffling instruction followed by a
18826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \c VMOVAPD / MOVAPD instruction.
18836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
18846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
18856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 16-byte aligned memory location that can store two
18866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double-precision values.
18876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
18886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the values to be reversed and
18896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    stored.
18906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
18916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storer_pd(double *__dp, __m128d __a)
18926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
18936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0);
18946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  *(__m128d *)__dp = __a;
18956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
18966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
18976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores the upper 64 bits of a 128-bit vector of [2 x double] to a
18986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    memory location.
18996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVHPD / MOVHPD instruction.
19036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
19056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 64-bit memory location.
19066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
19076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the value to be stored.
19086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
19096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storeh_pd(double *__dp, __m128d __a)
19106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_storeh_pd_struct {
19126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
19136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
19146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1];
19156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores the lower 64 bits of a 128-bit vector of [2 x double] to a
19186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    memory location.
19196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVLPD / MOVLPD instruction.
19236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __dp
19256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 64-bit memory location.
19266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
19276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the value to be stored.
19286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
19296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storel_pd(double *__dp, __m128d __a)
19306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_storeh_pd_struct {
19326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    double __u;
19336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
19346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0];
19356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds the corresponding elements of two 128-bit vectors of [16 x i8],
19386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saving the lower 8 bits of each sum in the corresponding element of a
19396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit result vector of [16 x i8]. The integer elements of both
19406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters can be either signed or unsigned.
19416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDB / PADDB instruction.
19456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
19476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [16 x i8].
19486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
19496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [16 x i8].
19506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [16 x i8] containing the sums of both
19516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters.
19526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
19536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi8(__m128i __a, __m128i __b)
19546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qu)__a + (__v16qu)__b);
19566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds the corresponding elements of two 128-bit vectors of [8 x i16],
19596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saving the lower 16 bits of each sum in the corresponding element of a
19606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit result vector of [8 x i16]. The integer elements of both
19616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters can be either signed or unsigned.
19626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDW / PADDW instruction.
19666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
19686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [8 x i16].
19696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
19706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [8 x i16].
19716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [8 x i16] containing the sums of both
19726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters.
19736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
19746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi16(__m128i __a, __m128i __b)
19756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hu)__a + (__v8hu)__b);
19776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
19796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds the corresponding elements of two 128-bit vectors of [4 x i32],
19806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saving the lower 32 bits of each sum in the corresponding element of a
19816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit result vector of [4 x i32]. The integer elements of both
19826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters can be either signed or unsigned.
19836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
19856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDD / PADDD instruction.
19876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
19886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
19896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x i32].
19906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
19916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x i32].
19926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] containing the sums of both
19936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters.
19946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
19956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi32(__m128i __a, __m128i __b)
19966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
19976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4su)__a + (__v4su)__b);
19986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
19996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds two signed or unsigned 64-bit integer values, returning the
20016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 64 bits of the sum.
20026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c PADDQ instruction.
20066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
20086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer.
20096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
20106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer.
20116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit integer containing the sum of both parameters.
20126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
20136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_si64(__m64 __a, __m64 __b)
20146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b);
20166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds the corresponding elements of two 128-bit vectors of [2 x i64],
20196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saving the lower 64 bits of each sum in the corresponding element of a
20206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit result vector of [2 x i64]. The integer elements of both
20216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters can be either signed or unsigned.
20226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDQ / PADDQ instruction.
20266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
20286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64].
20296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
20306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64].
20316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64] containing the sums of both
20326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameters.
20336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_add_epi64(__m128i __a, __m128i __b)
20356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a + (__v2du)__b);
20376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds, with saturation, the corresponding elements of two 128-bit
20406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    signed [16 x i8] vectors, saving each sum in the corresponding element of
20416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a 128-bit result vector of [16 x i8]. Positive sums greater than 7Fh are
20426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saturated to 7Fh. Negative sums less than 80h are saturated to 80h.
20436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDSB / PADDSB instruction.
20476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
20496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [16 x i8] vector.
20506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
20516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [16 x i8] vector.
20526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [16 x i8] vector containing the saturated sums of
20536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    both parameters.
20546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epi8(__m128i __a, __m128i __b)
20566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b);
20586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds, with saturation, the corresponding elements of two 128-bit
20616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    signed [8 x i16] vectors, saving each sum in the corresponding element of
20626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a 128-bit result vector of [8 x i16]. Positive sums greater than 7FFFh
20636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are saturated to 7FFFh. Negative sums less than 8000h are saturated to
20646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    8000h.
20656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDSW / PADDSW instruction.
20696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
20716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
20726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
20736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
20746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [8 x i16] vector containing the saturated sums of
20756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    both parameters.
20766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epi16(__m128i __a, __m128i __b)
20786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
20796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b);
20806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
20816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
20826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds, with saturation, the corresponding elements of two 128-bit
20836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    unsigned [16 x i8] vectors, saving each sum in the corresponding element
20846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of a 128-bit result vector of [16 x i8]. Positive sums greater than FFh
20856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are saturated to FFh. Negative sums are saturated to 00h.
20866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
20886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDUSB / PADDUSB instruction.
20906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
20916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
20926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
20936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
20946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
20956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [16 x i8] vector containing the saturated sums
20966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of both parameters.
20976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
20986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epu8(__m128i __a, __m128i __b)
20996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b);
21016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Adds, with saturation, the corresponding elements of two 128-bit
21046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    unsigned [8 x i16] vectors, saving each sum in the corresponding element
21056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of a 128-bit result vector of [8 x i16]. Positive sums greater than FFFFh
21066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are saturated to FFFFh. Negative sums are saturated to 0000h.
21076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPADDUSB / PADDUSB instruction.
21116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
21136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [8 x i16] vector.
21146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
21156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [8 x i16] vector.
21166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [8 x i16] vector containing the saturated sums
21176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of both parameters.
21186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_adds_epu16(__m128i __a, __m128i __b)
21206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b);
21226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Computes the rounded avarages of corresponding elements of two
21256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit unsigned [16 x i8] vectors, saving each result in the
21266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit result vector of [16 x i8].
21276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPAVGB / PAVGB instruction.
21316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
21336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
21346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
21356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
21366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [16 x i8] vector containing the rounded
21376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    averages of both parameters.
21386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_avg_epu8(__m128i __a, __m128i __b)
21406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
21426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Computes the rounded avarages of corresponding elements of two
21456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit unsigned [8 x i16] vectors, saving each result in the
21466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit result vector of [8 x i16].
21476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPAVGW / PAVGW instruction.
21516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
21536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [8 x i16] vector.
21546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
21556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [8 x i16] vector.
21566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [8 x i16] vector containing the rounded
21576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    averages of both parameters.
21586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_avg_epu16(__m128i __a, __m128i __b)
21606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
21626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies the corresponding elements of two 128-bit signed [8 x i16]
21656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, producing eight intermediate 32-bit signed integer products, and
21666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    adds the consecutive pairs of 32-bit products to form a 128-bit signed
21676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [4 x i32] vector. For example, bits [15:0] of both parameters are
21686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    multiplied producing a 32-bit product, bits [31:16] of both parameters
21696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are multiplied producing a 32-bit product, and the sum of those two
21706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    products becomes bits [31:0] of the result.
21716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMADDWD / PMADDWD instruction.
21756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
21776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
21786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
21796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
21806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [4 x i32] vector containing the sums of products
21816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of both parameters.
21826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
21836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_madd_epi16(__m128i __a, __m128i __b)
21846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
21856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b);
21866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
21876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
21886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares corresponding elements of two 128-bit signed [8 x i16]
21896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the greater value from each comparison in the
21906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit result vector of [8 x i16].
21916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
21936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMAXSW / PMAXSW instruction.
21956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
21966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
21976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
21986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
21996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
22006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [8 x i16] vector containing the greater value of
22016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each comparison.
22026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_epi16(__m128i __a, __m128i __b)
22046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b);
22066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares corresponding elements of two 128-bit unsigned [16 x i8]
22096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the greater value from each comparison in the
22106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit result vector of [16 x i8].
22116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
22136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMAXUB / PMAXUB instruction.
22156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
22176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
22186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
22196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
22206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [16 x i8] vector containing the greater value of
22216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each comparison.
22226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_max_epu8(__m128i __a, __m128i __b)
22246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b);
22266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares corresponding elements of two 128-bit signed [8 x i16]
22296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the smaller value from each comparison in the
22306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit result vector of [8 x i16].
22316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
22336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMINSW / PMINSW instruction.
22356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
22376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
22386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
22396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
22406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [8 x i16] vector containing the smaller value of
22416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each comparison.
22426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_epi16(__m128i __a, __m128i __b)
22446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b);
22466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares corresponding elements of two 128-bit unsigned [16 x i8]
22496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the smaller value from each comparison in the
22506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit result vector of [16 x i8].
22516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
22536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMINUB / PMINUB instruction.
22556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
22576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
22586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
22596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [16 x i8] vector.
22606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [16 x i8] vector containing the smaller value of
22616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each comparison.
22626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_min_epu8(__m128i __a, __m128i __b)
22646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b);
22666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies the corresponding elements of two signed [8 x i16]
22696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the upper 16 bits of each 32-bit product in the
22706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit signed [8 x i16] result vector.
22716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
22736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMULHW / PMULHW instruction.
22756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
22776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
22786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
22796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
22806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [8 x i16] vector containing the upper 16 bits of
22816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each of the eight 32-bit products.
22826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
22836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mulhi_epi16(__m128i __a, __m128i __b)
22846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
22856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b);
22866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
22876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
22886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies the corresponding elements of two unsigned [8 x i16]
22896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the upper 16 bits of each 32-bit product in the
22906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit unsigned [8 x i16] result vector.
22916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
22936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMULHUW / PMULHUW instruction.
22956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
22966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
22976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [8 x i16] vector.
22986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
22996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit unsigned [8 x i16] vector.
23006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit unsigned [8 x i16] vector containing the upper 16 bits
23016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of each of the eight 32-bit products.
23026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mulhi_epu16(__m128i __a, __m128i __b)
23046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b);
23066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies the corresponding elements of two signed [8 x i16]
23096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors, saving the lower 16 bits of each 32-bit product in the
23106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding element of a 128-bit signed [8 x i16] result vector.
23116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
23136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMULLW / PMULLW instruction.
23156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
23176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
23186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
23196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit signed [8 x i16] vector.
23206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit signed [8 x i16] vector containing the lower 16 bits of
23216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each of the eight 32-bit products.
23226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mullo_epi16(__m128i __a, __m128i __b)
23246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hu)__a * (__v8hu)__b);
23266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies 32-bit unsigned integer values contained in the lower bits
23296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the two 64-bit integer vectors and returns the 64-bit unsigned
23306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    product.
23316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
23336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c PMULUDQ instruction.
23356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
23376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer containing one of the source operands.
23386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
23396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer containing one of the source operands.
23406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit integer vector containing the product of both operands.
23416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
23426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_su32(__m64 __a, __m64 __b)
23436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b);
23456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Multiplies 32-bit unsigned integer values contained in the lower
23486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits of the corresponding elements of two [2 x i64] vectors, and returns
23496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the 64-bit products in the corresponding elements of a [2 x i64] vector.
23506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
23526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMULUDQ / PMULUDQ instruction.
23546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
23566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A [2 x i64] vector containing one of the source operands.
23576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
23586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A [2 x i64] vector containing one of the source operands.
23596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A [2 x i64] vector containing the product of both operands.
23606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mul_epu32(__m128i __a, __m128i __b)
23626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b);
23646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Computes the absolute differences of corresponding 8-bit integer
23676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values in two 128-bit vectors. Sums the first 8 absolute differences, and
23686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    separately sums the second 8 absolute differences. Packss these two
23696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    unsigned 16-bit integer sums into the upper and lower elements of a
23706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x i64] vector.
23716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
23736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSADBW / PSADBW instruction.
23756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
23776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
23786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
23796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
23806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A [2 x i64] vector containing the sums of the sets of absolute
23816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    differences between both operands.
23826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
23836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sad_epu8(__m128i __a, __m128i __b)
23846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
23856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
23866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
23876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
23886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding 8-bit integer values in the operands.
23896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
23916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBB / PSUBB instruction.
23936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
23946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
23956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
23966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
23976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
23986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
23996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
24006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi8(__m128i __a, __m128i __b)
24026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qu)__a - (__v16qu)__b);
24046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding 16-bit integer values in the operands.
24076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
24096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBW / PSUBW instruction.
24116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
24136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
24146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
24156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
24166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
24176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
24186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi16(__m128i __a, __m128i __b)
24206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hu)__a - (__v8hu)__b);
24226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding 32-bit integer values in the operands.
24256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
24276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBD / PSUBD instruction.
24296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
24316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
24326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
24336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
24346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
24356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
24366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi32(__m128i __a, __m128i __b)
24386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4su)__a - (__v4su)__b);
24406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts signed or unsigned 64-bit integer values and writes the
24436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    difference to the corresponding bits in the destination.
24446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
24466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c PSUBQ instruction.
24486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
24506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer vector containing the minuend.
24516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
24526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer vector containing the subtrahend.
24536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit integer vector containing the difference of the values in
24546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the operands.
24556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
24566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_si64(__m64 __a, __m64 __b)
24576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b);
24596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts the corresponding elements of two [2 x i64] vectors.
24626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
24646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBQ / PSUBQ instruction.
24666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
24686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
24696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
24706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
24716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
24726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
24736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sub_epi64(__m128i __a, __m128i __b)
24756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a - (__v2du)__b);
24776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
24796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 8-bit signed integer values in the input and
24806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns the differences in the corresponding bytes in the destination.
24816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Differences greater than 7Fh are saturated to 7Fh, and differences less
24826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 80h are saturated to 80h.
24836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
24856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBSB / PSUBSB instruction.
24876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
24886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
24896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
24906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
24916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
24926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
24936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
24946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
24956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epi8(__m128i __a, __m128i __b)
24966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
24976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b);
24986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
24996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
25006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 16-bit signed integer values in the input and
25016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    returns the differences in the corresponding bytes in the destination.
25026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Differences greater than 7FFFh are saturated to 7FFFh, and values less
25036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 8000h are saturated to 8000h.
25046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
25066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBSW / PSUBSW instruction.
25086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
25106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
25116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
25126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
25136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the differences of the values
25146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in the operands.
25156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
25166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epi16(__m128i __a, __m128i __b)
25176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
25186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b);
25196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
25206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
25216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 8-bit unsigned integer values in the input
25226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    and returns the differences in the corresponding bytes in the
25236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Differences less than 00h are saturated to 00h.
25246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
25266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBUSB / PSUBUSB instruction.
25286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
25306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
25316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
25326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
25336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the unsigned integer
25346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    differences of the values in the operands.
25356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
25366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epu8(__m128i __a, __m128i __b)
25376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
25386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b);
25396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
25406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
25416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Subtracts corresponding 16-bit unsigned integer values in the input
25426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    and returns the differences in the corresponding bytes in the
25436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Differences less than 0000h are saturated to 0000h.
25446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
25466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSUBUSW / PSUBUSW instruction.
25486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
25506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the minuends.
25516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
25526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the subtrahends.
25536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the unsigned integer
25546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    differences of the values in the operands.
25556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
25566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_subs_epu16(__m128i __a, __m128i __b)
25576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
25586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b);
25596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
25606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
25616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise AND of two 128-bit integer vectors.
25626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
25646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPAND / PAND instruction.
25666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
25686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
25696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
25706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
25716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise AND of the values
25726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in both operands.
25736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
25746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_and_si128(__m128i __a, __m128i __b)
25756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
25766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a & (__v2du)__b);
25776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
25786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
25796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise AND of two 128-bit integer vectors, using the
25806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    one's complement of the values contained in the first source operand.
25816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
25836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPANDN / PANDN instruction.
25856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
25866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
25876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector containing the left source operand. The one's complement
25886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of this value is used in the bitwise AND.
25896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
25906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector containing the right source operand.
25916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise AND of the one's
25926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    complement of the first operand and the values in the second operand.
25936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
25946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_andnot_si128(__m128i __a, __m128i __b)
25956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
25966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(~(__v2du)__a & (__v2du)__b);
25976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
25986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise OR of two 128-bit integer vectors.
25996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
26016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPOR / POR instruction.
26036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
26056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
26066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
26076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
26086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise OR of the values
26096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in both operands.
26106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
26116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_or_si128(__m128i __a, __m128i __b)
26126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
26136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a | (__v2du)__b);
26146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
26156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
26166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Performs a bitwise exclusive OR of two 128-bit integer vectors.
26176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
26196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPXOR / PXOR instruction.
26216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
26236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
26246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
26256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing one of the source operands.
26266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the bitwise exclusive OR of the
26276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values in both operands.
26286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
26296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_xor_si128(__m128i __a, __m128i __b)
26306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
26316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v2du)__a ^ (__v2du)__b);
26326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
26336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
26346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts the 128-bit integer vector operand by the specified
26356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    number of bytes. Low-order bits are cleared.
26366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
26386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
26406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_slli_si128(__m128i a, const int imm);
26416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
26426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLDQ / PSLLDQ instruction.
26446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
26466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
26476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
26486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value specifying the number of bytes to left-shift
26496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand a.
26506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted value.
26516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_slli_si128(a, imm) __extension__ ({                              \
26526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector(                                          \
26536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)_mm_setzero_si128(),               \
26546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)(__m128i)(a),                      \
26556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  0 : 16 - (char)(imm), \
26566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  1 : 17 - (char)(imm), \
26576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  2 : 18 - (char)(imm), \
26586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  3 : 19 - (char)(imm), \
26596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  4 : 20 - (char)(imm), \
26606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  5 : 21 - (char)(imm), \
26616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  6 : 22 - (char)(imm), \
26626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  7 : 23 - (char)(imm), \
26636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  8 : 24 - (char)(imm), \
26646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ?  9 : 25 - (char)(imm), \
26656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 10 : 26 - (char)(imm), \
26666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 11 : 27 - (char)(imm), \
26676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 12 : 28 - (char)(imm), \
26686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 13 : 29 - (char)(imm), \
26696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 14 : 30 - (char)(imm), \
26706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 15 : 31 - (char)(imm)); })
26716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
26726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_bslli_si128(a, imm) \
26736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  _mm_slli_si128((a), (imm))
26746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
26756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand
26766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
26776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
26796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLW / PSLLW instruction.
26816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
26836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
26846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
26856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to left-shift each value
26866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
26876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
26886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
26896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_slli_epi16(__m128i __a, int __count)
26906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
26916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count);
26926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
26936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
26946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand
26956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
26966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
26986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
26996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLW / PSLLW instruction.
27006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
27026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
27036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
27046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
27056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to left-shift each value in operand __a.
27066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
27076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
27086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sll_epi16(__m128i __a, __m128i __count)
27096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
27106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count);
27116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
27126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
27136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand
27146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
27156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
27176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLD / PSLLD instruction.
27196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
27216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
27226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
27236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to left-shift each value
27246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
27256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
27266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
27276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_slli_epi32(__m128i __a, int __count)
27286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
27296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
27306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
27316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
27326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand
27336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
27346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
27366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLD / PSLLD instruction.
27386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
27406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
27416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
27426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
27436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to left-shift each value in operand __a.
27446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
27456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
27466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sll_epi32(__m128i __a, __m128i __count)
27476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
27486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count);
27496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
27506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
27516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand
27526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
27536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
27556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLQ / PSLLQ instruction.
27576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
27596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
27606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
27616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to left-shift each value
27626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
27636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
27646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
27656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_slli_epi64(__m128i __a, int __count)
27666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
27676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psllqi128((__v2di)__a, __count);
27686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
27696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
27706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand
27716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. Low-order bits are cleared.
27726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
27746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSLLQ / PSLLQ instruction.
27766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
27786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
27796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
27806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
27816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to left-shift each value in operand __a.
27826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the left-shifted values.
27836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
27846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sll_epi64(__m128i __a, __m128i __count)
27856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
27866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count);
27876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
27886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
27896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand
27906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
27916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
27926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
27946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAW / PSRAW instruction.
27966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
27976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
27986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
27996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
28006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
28016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
28026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
28036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
28046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srai_epi16(__m128i __a, int __count)
28056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
28066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count);
28076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
28086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
28096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand
28106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
28116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
28126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
28146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAW / PSRAW instruction.
28166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
28186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
28196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
28206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
28216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
28226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
28236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
28246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sra_epi16(__m128i __a, __m128i __count)
28256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
28266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count);
28276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
28286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
28296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand
28306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
28316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
28326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
28346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAD / PSRAD instruction.
28366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
28386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
28396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
28406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
28416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
28426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
28436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
28446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srai_epi32(__m128i __a, int __count)
28456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
28466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count);
28476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
28486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
28496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand
28506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    by the specified number of bits. High-order bits are filled with the sign
28516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bit of the initial value.
28526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
28546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRAD / PSRAD instruction.
28566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
28586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
28596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
28606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
28616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
28626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
28636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
28646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_sra_epi32(__m128i __a, __m128i __count)
28656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
28666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count);
28676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
28686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
28696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts the 128-bit integer vector operand by the specified
28706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    number of bytes. High-order bits are cleared.
28716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
28736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
28756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_srli_si128(__m128i a, const int imm);
28766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
28776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLDQ / PSRLDQ instruction.
28796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
28806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
28816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
28826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
28836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value specifying the number of bytes to right-shift operand
28846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a.
28856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted value.
28866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_srli_si128(a, imm) __extension__ ({                              \
28876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector(                                          \
28886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)(__m128i)(a),                      \
28896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 (__v16qi)_mm_setzero_si128(),               \
28906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 16 : (char)(imm) + 0,  \
28916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 17 : (char)(imm) + 1,  \
28926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 18 : (char)(imm) + 2,  \
28936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 19 : (char)(imm) + 3,  \
28946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 20 : (char)(imm) + 4,  \
28956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 21 : (char)(imm) + 5,  \
28966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 22 : (char)(imm) + 6,  \
28976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 23 : (char)(imm) + 7,  \
28986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 24 : (char)(imm) + 8,  \
28996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 25 : (char)(imm) + 9,  \
29006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 26 : (char)(imm) + 10, \
29016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 27 : (char)(imm) + 11, \
29026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 28 : (char)(imm) + 12, \
29036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 29 : (char)(imm) + 13, \
29046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 30 : (char)(imm) + 14, \
29056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                 ((char)(imm)&0xF0) ? 31 : (char)(imm) + 15); })
29066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
29076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_bsrli_si128(a, imm) \
29086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  _mm_srli_si128((a), (imm))
29096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
29106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector
29116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
29126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
29146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLW / PSRLW instruction.
29166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
29186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
29196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
29206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
29216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
29226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
29236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
29246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srli_epi16(__m128i __a, int __count)
29256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
29266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count);
29276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
29286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
29296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector
29306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
29316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
29336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLW / PSRLW instruction.
29356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
29376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
29386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
29396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
29406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
29416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
29426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
29436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srl_epi16(__m128i __a, __m128i __count)
29446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
29456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count);
29466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
29476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
29486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector
29496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
29506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
29526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLD / PSRLD instruction.
29546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
29566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
29576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
29586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
29596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
29606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
29616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
29626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srli_epi32(__m128i __a, int __count)
29636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
29646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count);
29656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
29666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
29676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector
29686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
29696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
29716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLD / PSRLD instruction.
29736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
29756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
29766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
29776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
29786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
29796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
29806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
29816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srl_epi32(__m128i __a, __m128i __count)
29826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
29836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count);
29846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
29856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
29866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector
29876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
29886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
29906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLQ / PSRLQ instruction.
29926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
29936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
29946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
29956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
29966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer value specifying the number of bits to right-shift each value
29976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    in operand __a.
29986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
29996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
30006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srli_epi64(__m128i __a, int __count)
30016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
30026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psrlqi128((__v2di)__a, __count);
30036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
30046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
30056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector
30066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand by the specified number of bits. High-order bits are cleared.
30076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
30096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSRLQ / PSRLQ instruction.
30116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
30136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the source operand.
30146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __count
30156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector in which bits [63:0] specify the number of bits
30166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to right-shift each value in operand __a.
30176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the right-shifted values.
30186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
30196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_srl_epi64(__m128i __a, __m128i __count)
30206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
30216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count);
30226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
30236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
30246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding 8-bit values of the 128-bit
30256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors for equality. Each comparison yields 0h for false, FFh
30266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for true.
30276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
30296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPEQB / PCMPEQB instruction.
30316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
30336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
30356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
30376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
30386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_epi8(__m128i __a, __m128i __b)
30396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
30406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qi)__a == (__v16qi)__b);
30416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
30426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
30436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding 16-bit values of the 128-bit
30446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors for equality. Each comparison yields 0h for false, FFFFh
30456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for true.
30466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
30486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPEQW / PCMPEQW instruction.
30506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
30526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
30546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
30566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
30576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_epi16(__m128i __a, __m128i __b)
30586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
30596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hi)__a == (__v8hi)__b);
30606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
30616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
30626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding 32-bit values of the 128-bit
30636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors for equality. Each comparison yields 0h for false,
30646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFFFFFFFh for true.
30656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
30676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPEQD / PCMPEQD instruction.
30696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
30716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
30736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
30756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
30766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpeq_epi32(__m128i __a, __m128i __b)
30776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
30786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4si)__a == (__v4si)__b);
30796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
30806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
30816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit
30826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors to determine if the values in the first operand are
30836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    greater than those in the second operand. Each comparison yields 0h for
30846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFh for true.
30856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
30876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTB / PCMPGTB instruction.
30896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
30906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
30916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
30936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
30946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
30956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
30966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_epi8(__m128i __a, __m128i __b)
30976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
30986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  /* This function always performs a signed comparison, but __v16qi is a char
30996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker     which may be signed or unsigned, so use __v16qs. */
31006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v16qs)__a > (__v16qs)__b);
31016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
31026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
31036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 16-bit values of the
31046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
31056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are greater than those in the second operand. Each comparison yields 0h
31066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFh for true.
31076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
31096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTW / PCMPGTW instruction.
31116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
31136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
31156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
31176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
31186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_epi16(__m128i __a, __m128i __b)
31196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
31206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v8hi)__a > (__v8hi)__b);
31216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
31226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
31236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 32-bit values of the
31246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
31256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are greater than those in the second operand. Each comparison yields 0h
31266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    for false, FFFFFFFFh for true.
31276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
31296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTD / PCMPGTD instruction.
31316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
31336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
31356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
31376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
31386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmpgt_epi32(__m128i __a, __m128i __b)
31396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
31406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)((__v4si)__a > (__v4si)__b);
31416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
31426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
31436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit
31446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vectors to determine if the values in the first operand are less
31456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than those in the second operand. Each comparison yields 0h for false,
31466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    FFh for true.
31476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
31496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTB / PCMPGTB instruction.
31516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
31536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
31556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
31576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
31586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_epi8(__m128i __a, __m128i __b)
31596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
31606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_cmpgt_epi8(__b, __a);
31616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
31626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
31636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 16-bit values of the
31646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
31656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are less than those in the second operand. Each comparison yields 0h for
31666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFh for true.
31676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
31696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTW / PCMPGTW instruction.
31716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
31736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
31756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
31776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
31786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_epi16(__m128i __a, __m128i __b)
31796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
31806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_cmpgt_epi16(__b, __a);
31816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
31826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
31836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Compares each of the corresponding signed 32-bit values of the
31846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vectors to determine if the values in the first operand
31856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are less than those in the second operand. Each comparison yields 0h for
31866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    false, FFFFFFFFh for true.
31876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
31896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPCMPGTD / PCMPGTD instruction.
31916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
31926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
31936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
31956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
31966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the comparison results.
31976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
31986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cmplt_epi32(__m128i __a, __m128i __b)
31996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
32006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return _mm_cmpgt_epi32(__b, __a);
32016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
32026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
32036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
32046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a 64-bit signed integer value from the second operand into a
32056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double-precision value and returns it in the lower element of a [2 x
32066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double] vector; the upper element of the returned vector is copied from
32076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the upper element of the first operand.
32086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
32106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSI2SD / CVTSI2SD instruction.
32126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
32146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The upper 64 bits of this operand are
32156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copied to the upper 64 bits of the destination.
32166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
32176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit signed integer operand containing the value to be converted.
32186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
32196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    converted value of the second operand. The upper 64 bits are copied from
32206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the upper 64 bits of the first operand.
32216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
32226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi64_sd(__m128d __a, long long __b)
32236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
32246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __a[0] = __b;
32256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a;
32266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
32276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
32286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the first (lower) element of a vector of [2 x double] into a
32296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64-bit signed integer value, according to the current rounding mode.
32306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
32326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTSD2SI / CVTSD2SI instruction.
32346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
32366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
32376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion.
32386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit signed integer containing the converted value.
32396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ long long __DEFAULT_FN_ATTRS
32406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsd_si64(__m128d __a)
32416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
32426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtsd2si64((__v2df)__a);
32436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
32446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
32456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts the first (lower) element of a vector of [2 x double] into a
32466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64-bit signed integer value, truncating the result when it is inexact.
32476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
32496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTTSD2SI / CVTTSD2SI instruction.
32516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
32536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
32546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    conversion.
32556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit signed integer containing the converted value.
32566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ long long __DEFAULT_FN_ATTRS
32576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttsd_si64(__m128d __a)
32586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
32596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvttsd2si64((__v2df)__a);
32606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
32616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
32626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
32636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a vector of [4 x i32] into a vector of [4 x float].
32646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
32666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTDQ2PS / CVTDQ2PS instruction.
32686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
32706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
32716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x float] containing the converted values.
32726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
32736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtepi32_ps(__m128i __a)
32746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
32756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_cvtdq2ps((__v4si)__a);
32766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
32776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
32786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a vector of [4 x float] into a vector of [4 x i32].
32796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
32816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTPS2DQ / CVTPS2DQ instruction.
32836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
32856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float].
32866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector of [4 x i32] containing the converted
32876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values.
32886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
32896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtps_epi32(__m128 __a)
32906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
32916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a);
32926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
32936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
32946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts a vector of [4 x float] into a vector of [4 x i32],
32956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    truncating the result when it is inexact.
32966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
32986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
32996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VCVTTPS2DQ / CVTTPS2DQ instruction.
33006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
33026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x float].
33036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] containing the converted values.
33046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
33056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvttps_epi32(__m128 __a)
33066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
33076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a);
33086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
33096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
33106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns a vector of [4 x i32] where the lowest element is the input
33116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand and the remaining elements are zero.
33126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
33146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVD / MOVD instruction.
33166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
33186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit signed integer operand.
33196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32].
33206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
33216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi32_si128(int __a)
33226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
33236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __a, 0, 0, 0 };
33246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
33256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
33266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
33276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns a vector of [2 x i64] where the lower element is the input
33286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operand and the upper element is zero.
33296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
33316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
33336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
33356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit signed integer operand containing the value to be converted.
33366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64] containing the converted value.
33376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
33386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi64_si128(long long __a)
33396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
33406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ __a, 0 };
33416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
33426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
33436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
33446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves the least significant 32 bits of a vector of [4 x i32] to a
33456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    32-bit signed integer value.
33466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
33486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVD / MOVD instruction.
33506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
33526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A vector of [4 x i32]. The least significant 32 bits are moved to the
33536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination.
33546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 32-bit signed integer containing the moved value.
33556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
33566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi128_si32(__m128i __a)
33576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
33586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __v4si __b = (__v4si)__a;
33596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __b[0];
33606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
33616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
33626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
33636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves the least significant 64 bits of a vector of [2 x i64] to a
33646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    64-bit signed integer value.
33656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
33676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
33696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
33716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A vector of [2 x i64]. The least significant 64 bits are moved to the
33726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination.
33736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit signed integer containing the moved value.
33746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ long long __DEFAULT_FN_ATTRS
33756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_cvtsi128_si64(__m128i __a)
33766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
33776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __a[0];
33786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
33796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
33806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
33816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves packed integer values from an aligned 128-bit memory location
33826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to elements in a 128-bit integer vector.
33836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
33856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVDQA / MOVDQA instruction.
33876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
33886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
33896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An aligned pointer to a memory location containing integer values.
33906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the moved values.
33916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
33926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_load_si128(__m128i const *__p)
33936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
33946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return *__p;
33956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
33966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
33976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves packed integer values from an unaligned 128-bit memory location
33986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to elements in a 128-bit integer vector.
33996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
34016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVDQU / MOVDQU instruction.
34036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
34056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a memory location containing integer values.
34066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the moved values.
34076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
34086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadu_si128(__m128i const *__p)
34096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
34106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __loadu_si128 {
34116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128i __v;
34126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
34136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return ((struct __loadu_si128*)__p)->__v;
34146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
34156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
34166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns a vector of [2 x i64] where the lower element is taken from
34176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the lower element of the operand, and the upper element is zero.
34186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
34206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
34226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
34246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of
34256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the destination.
34266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the
34276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    moved value. The higher order bits are cleared.
34286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
34296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_loadl_epi64(__m128i const *__p)
34306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
34316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_loadl_epi64_struct {
34326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    long long __u;
34336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
34346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0};
34356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
34366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
34376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Generates a 128-bit vector of [4 x i32] with unspecified content.
34386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    This could be used as an argument to another intrinsic function where the
34396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    argument is required but the value is not actually used.
34406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
34426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
34446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] with unspecified content.
34466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
34476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_undefined_si128(void)
34486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
34496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_undef128();
34506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
34516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
34526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
34536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 64-bit integer values.
34546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
34566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
34586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
34596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q1
34616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the upper 64 bits of the
34626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
34636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q0
34646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the lower 64 bits of the
34656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
34666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [2 x i64] containing the values
34676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
34686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
34696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi64x(long long __q1, long long __q0)
34706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
34716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ __q0, __q1 };
34726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
34736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
34746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
34756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 64-bit integer values.
34766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
34786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
34806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
34816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q1
34836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the upper 64 bits of the
34846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
34856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q0
34866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer value used to initialize the lower 64 bits of the
34876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector of [2 x i64].
34886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [2 x i64] containing the values
34896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
34906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
34916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi64(__m64 __q1, __m64 __q0)
34926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
34936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__q0, (long long)__q1 };
34946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
34956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
34966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes the 32-bit values in a 128-bit vector of [4 x i32] with
34976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 32-bit integer values.
34986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
34996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
35006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
35026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
35036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i3
35056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [127:96] of the
35066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector.
35076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i2
35086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [95:64] of the destination
35096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i1
35116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [63:32] of the destination
35126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i0
35146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer value used to initialize bits [31:0] of the destination
35156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [4 x i32] containing the values
35176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
35186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
35196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi32(int __i3, int __i2, int __i1, int __i0)
35206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
35216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __i0, __i1, __i2, __i3};
35226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
35236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
35246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes the 16-bit values in a 128-bit vector of [8 x i16] with
35256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 16-bit integer values.
35266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
35286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
35306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
35316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w7
35336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [127:112] of the
35346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector.
35356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w6
35366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [111:96] of the
35376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination vector.
35386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w5
35396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [95:80] of the destination
35406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w4
35426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [79:64] of the destination
35436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w3
35456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [63:48] of the destination
35466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w2
35486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [47:32] of the destination
35496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w1
35516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [31:16] of the destination
35526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w0
35546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integer value used to initialize bits [15:0] of the destination
35556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
35566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [8 x i16] containing the values
35576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
35586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
35596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0)
35606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
35616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 };
35626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
35636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
35646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes the 8-bit values in a 128-bit vector of [16 x i8] with
35656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the specified 8-bit integer values.
35666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
35686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
35706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
35716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
35726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b15
35736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [127:120] of the destination vector.
35746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b14
35756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [119:112] of the destination vector.
35766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b13
35776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [111:104] of the destination vector.
35786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b12
35796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [103:96] of the destination vector.
35806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b11
35816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [95:88] of the destination vector.
35826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b10
35836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [87:80] of the destination vector.
35846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b9
35856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [79:72] of the destination vector.
35866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b8
35876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [71:64] of the destination vector.
35886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b7
35896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [63:56] of the destination vector.
35906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b6
35916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [55:48] of the destination vector.
35926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b5
35936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [47:40] of the destination vector.
35946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b4
35956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [39:32] of the destination vector.
35966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b3
35976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [31:24] of the destination vector.
35986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b2
35996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [23:16] of the destination vector.
36006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b1
36016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [15:8] of the destination vector.
36026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b0
36036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Initializes bits [7:0] of the destination vector.
36046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [16 x i8] containing the values
36056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    provided in the operands.
36066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
36076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_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)
36086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
36096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 };
36106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
36116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
36126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both values in a 128-bit integer vector with the
36136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 64-bit integer value.
36146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
36166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
36186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
36196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q
36216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Integer value used to initialize the elements of the destination integer
36226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
36236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector of [2 x i64] with both
36246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements containing the value provided in the operand.
36256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
36266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi64x(long long __q)
36276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
36286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ __q, __q };
36296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
36306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
36316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes both values in a 128-bit vector of [2 x i64] with the
36326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 64-bit value.
36336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
36356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
36376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
36386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q
36406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit value used to initialize the elements of the destination integer
36416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
36426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [2 x i64] with all elements
36436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
36446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
36456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi64(__m64 __q)
36466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
36476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__q, (long long)__q };
36486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
36496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
36506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes all values in a 128-bit vector of [4 x i32] with the
36516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 32-bit value.
36526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
36546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
36566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
36576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i
36596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit value used to initialize the elements of the destination integer
36606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
36616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [4 x i32] with all elements
36626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
36636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
36646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi32(int __i)
36656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
36666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __i, __i, __i, __i };
36676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
36686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
36696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes all values in a 128-bit vector of [8 x i16] with the
36706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 16-bit value.
36716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
36736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
36756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
36766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w
36786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit value used to initialize the elements of the destination integer
36796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
36806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [8 x i16] with all elements
36816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
36826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
36836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi16(short __w)
36846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
36856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v8hi){ __w, __w, __w, __w, __w, __w, __w, __w };
36866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
36876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
36886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Initializes all values in a 128-bit vector of [16 x i8] with the
36896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified 8-bit value.
36906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
36926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
36946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
36956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
36966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
36976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit value used to initialize the elements of the destination integer
36986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector.
36996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit vector of [16 x i8] with all elements
37006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    containing the value provided in the operand.
37016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
37026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_set1_epi8(char __b)
37036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
37046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v16qi){ __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b };
37056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
37066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
37076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector, initialized in reverse order
37086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     with the specified 64-bit integral values.
37096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
37116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKLQDQ / PUNPCKLQDQ instruction.
37136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q0
37156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integral value used to initialize the lower 64 bits of the
37166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result.
37176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __q1
37186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integral value used to initialize the upper 64 bits of the
37196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result.
37206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector.
37216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
37226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi64(__m64 __q0, __m64 __q1)
37236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
37246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__q0, (long long)__q1 };
37256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
37266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
37276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector, initialized in reverse order
37286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     with the specified 32-bit integral values.
37296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
37316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
37336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
37346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i0
37366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integral value used to initialize bits [31:0] of the result.
37376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i1
37386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integral value used to initialize bits [63:32] of the result.
37396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i2
37406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integral value used to initialize bits [95:64] of the result.
37416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __i3
37426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integral value used to initialize bits [127:96] of the result.
37436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector.
37446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
37456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi32(int __i0, int __i1, int __i2, int __i3)
37466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
37476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v4si){ __i0, __i1, __i2, __i3};
37486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
37496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
37506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector, initialized in reverse order
37516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     with the specified 16-bit integral values.
37526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
37546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
37566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
37576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w0
37596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [15:0] of the result.
37606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w1
37616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [31:16] of the result.
37626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w2
37636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [47:32] of the result.
37646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w3
37656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [63:48] of the result.
37666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w4
37676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [79:64] of the result.
37686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w5
37696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [95:80] of the result.
37706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w6
37716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [111:96] of the result.
37726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __w7
37736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 16-bit integral value used to initialize bits [127:112] of the result.
37746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector.
37756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
37766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4, short __w5, short __w6, short __w7)
37776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
37786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 };
37796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
37806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
37816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector, initialized in reverse order
37826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     with the specified 8-bit integral values.
37836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
37856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic is a utility function and does not correspond to a specific
37876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instruction.
37886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
37896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b0
37906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [7:0] of the result.
37916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b1
37926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [15:8] of the result.
37936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b2
37946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [23:16] of the result.
37956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b3
37966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [31:24] of the result.
37976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b4
37986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [39:32] of the result.
37996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b5
38006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [47:40] of the result.
38016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b6
38026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [55:48] of the result.
38036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b7
38046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [63:56] of the result.
38056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b8
38066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [71:64] of the result.
38076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b9
38086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [79:72] of the result.
38096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b10
38106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [87:80] of the result.
38116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b11
38126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [95:88] of the result.
38136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b12
38146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [103:96] of the result.
38156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b13
38166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [111:104] of the result.
38176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b14
38186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [119:112] of the result.
38196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b15
38206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit integral value used to initialize bits [127:120] of the result.
38216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector.
38226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
38236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_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)
38246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
38256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 };
38266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
38276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
38286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Creates a 128-bit integer vector initialized to zero.
38296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
38316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VXORPS / XORPS instruction.
38336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An initialized 128-bit integer vector with all elements set to
38356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    zero.
38366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
38376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_setzero_si128(void)
38386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
38396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ 0LL, 0LL };
38406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
38416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
38426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 128-bit integer vector to a memory location aligned on a
38436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit boundary.
38446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
38466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVAPS / MOVAPS instruction.
38486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
38506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to an aligned memory location that will receive the integer
38516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values.
38526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
38536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the values to be moved.
38546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
38556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_store_si128(__m128i *__p, __m128i __b)
38566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
38576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  *__p = __b;
38586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
38596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
38606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 128-bit integer vector to an unaligned memory location.
38616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
38636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVUPS / MOVUPS instruction.
38656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
38676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a memory location that will receive the integer values.
38686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
38696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the values to be moved.
38706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
38716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storeu_si128(__m128i *__p, __m128i __b)
38726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
38736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __storeu_si128 {
38746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    __m128i __v;
38756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
38766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __storeu_si128*)__p)->__v = __b;
38776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
38786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
38796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves bytes selected by the mask from the first operand to the
38806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    specified unaligned memory location. When a mask bit is 1, the
38816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    corresponding byte is written, otherwise it is not written. To minimize
38826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    caching, the date is flagged as non-temporal (unlikely to be used again
38836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    soon). Exception and trap behavior for elements not selected for storage
38846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to memory are implementation dependent.
38856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
38876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMASKMOVDQU / MASKMOVDQU instruction.
38896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
38906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __d
38916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the values to be moved.
38926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __n
38936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the mask. The most significant bit of
38946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    each byte represents the mask bits.
38956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
38966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to an unaligned 128-bit memory location where the specified
38976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values are moved.
38986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
38996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p)
39006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
39016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p);
39026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
39036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
39046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to
39056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a memory location.
39066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
39086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVLPS / MOVLPS instruction.
39106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
39126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to a 64-bit memory location that will receive the lower 64 bits
39136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of the integer vector parameter.
39146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
39156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [2 x i64]. The lower 64 bits contain the
39166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value to be stored.
39176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
39186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_storel_epi64(__m128i *__p, __m128i __a)
39196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
39206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  struct __mm_storel_epi64_struct {
39216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker    long long __u;
39226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  } __attribute__((__packed__, __may_alias__));
39236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0];
39246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
39256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
39266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 128-bit floating point vector of [2 x double] to a 128-bit
39276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    aligned memory location. To minimize caching, the data is flagged as
39286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    non-temporal (unlikely to be used again soon).
39296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
39316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVNTPS / MOVNTPS instruction.
39336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
39356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to the 128-bit aligned memory location used to store the value.
39366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
39376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A vector of [2 x double] containing the 64-bit values to be stored.
39386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
39396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_pd(double *__p, __m128d __a)
39406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
39416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_nontemporal_store((__v2df)__a, (__v2df*)__p);
39426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
39436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
39446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 128-bit integer vector to a 128-bit aligned memory location.
39456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    To minimize caching, the data is flagged as non-temporal (unlikely to be
39466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    used again soon).
39476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
39496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVNTPS / MOVNTPS instruction.
39516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
39536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to the 128-bit aligned memory location used to store the value.
39546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
39556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the values to be stored.
39566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
39576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_si128(__m128i *__p, __m128i __a)
39586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
39596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_nontemporal_store((__v2di)__a, (__v2di*)__p);
39606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
39616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
39626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 32-bit integer value in the specified memory location. To
39636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    minimize caching, the data is flagged as non-temporal (unlikely to be
39646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    used again soon).
39656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
39676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c MOVNTI instruction.
39696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
39716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to the 32-bit memory location used to store the value.
39726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
39736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 32-bit integer containing the value to be stored.
39746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
39756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_si32(int *__p, int __a)
39766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
39776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_movnti(__p, __a);
39786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
39796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
39806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __x86_64__
39816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Stores a 64-bit integer value in the specified memory location. To
39826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    minimize caching, the data is flagged as non-temporal (unlikely to be
39836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    used again soon).
39846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
39866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c MOVNTIQ instruction.
39886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
39896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
39906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to the 64-bit memory location used to store the value.
39916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
39926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit integer containing the value to be stored.
39936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ void __DEFAULT_FN_ATTRS
39946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_stream_si64(long long *__p, long long __a)
39956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
39966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __builtin_ia32_movnti64(__p, __a);
39976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
39986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
39996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#if defined(__cplusplus)
40016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerextern "C" {
40026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
40036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief The cache line containing __p is flushed and invalidated from all
40056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    caches in the coherency domain.
40066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
40086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c CLFLUSH instruction.
40106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __p
40126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A pointer to the memory location used to identify the cache line to be
40136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    flushed.
40146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickervoid _mm_clflush(void const *);
40156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Forces strong memory ordering (serialization) between load
40176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instructions preceding this instruction and load instructions following
40186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    this instruction, ensuring the system completes all previous loads before
40196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    executing subsequent loads.
40206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
40226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c LFENCE instruction.
40246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickervoid _mm_lfence(void);
40266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Forces strong memory ordering (serialization) between load and store
40286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    instructions preceding this instruction and load and store instructions
40296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    following this instruction, ensuring that the system completes all
40306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    previous memory accesses before executing subsequent memory accesses.
40316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
40336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c MFENCE instruction.
40356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickervoid _mm_mfence(void);
40376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#if defined(__cplusplus)
40396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker} // extern "C"
40406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
40416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts 16-bit signed integers from both 128-bit integer vector
40436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operands into 8-bit signed integers, and packs the results into the
40446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Positive values greater than 0x7F are saturated to 0x7F.
40456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Negative values less than 0x80 are saturated to 0x80.
40466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
40486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPACKSSWB / PACKSSWB instruction.
40506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
40526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
40536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   a signed integer and is converted to a 8-bit signed integer with
40546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   saturation. Values greater than 0x7F are saturated to 0x7F. Values less
40556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   than 0x80 are saturated to 0x80. The converted [8 x i8] values are
40566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   written to the lower 64 bits of the result.
40576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
40586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
40596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   a signed integer and is converted to a 8-bit signed integer with
40606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   saturation. Values greater than 0x7F are saturated to 0x7F. Values less
40616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   than 0x80 are saturated to 0x80. The converted [8 x i8] values are
40626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///   written to the higher 64 bits of the result.
40636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [16 x i8] containing the converted values.
40646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
40656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_packs_epi16(__m128i __a, __m128i __b)
40666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
40676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b);
40686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
40696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts 32-bit signed integers from both 128-bit integer vector
40716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operands into 16-bit signed integers, and packs the results into the
40726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Positive values greater than 0x7FFF are saturated to 0x7FFF.
40736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Negative values less than 0x8000 are saturated to 0x8000.
40746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
40766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPACKSSDW / PACKSSDW instruction.
40786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
40796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
40806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [4 x i32]. Each 32-bit element is treated as
40816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a signed integer and is converted to a 16-bit signed integer with
40826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saturation. Values greater than 0x7FFF are saturated to 0x7FFF. Values
40836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    less than 0x8000 are saturated to 0x8000. The converted [4 x i16] values
40846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are written to the lower 64 bits of the result.
40856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
40866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [4 x i32]. Each 32-bit element is treated as
40876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a signed integer and is converted to a 16-bit signed integer with
40886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saturation. Values greater than 0x7FFF are saturated to 0x7FFF. Values
40896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    less than 0x8000 are saturated to 0x8000. The converted [4 x i16] values
40906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    are written to the higher 64 bits of the result.
40916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [8 x i16] containing the converted values.
40926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
40936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_packs_epi32(__m128i __a, __m128i __b)
40946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
40956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b);
40966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
40976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
40986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Converts 16-bit signed integers from both 128-bit integer vector
40996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    operands into 8-bit unsigned integers, and packs the results into the
41006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination. Values greater than 0xFF are saturated to 0xFF. Values less
41016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 0x00 are saturated to 0x00.
41026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
41046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPACKUSWB / PACKUSWB instruction.
41066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
41086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
41096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a signed integer and is converted to an 8-bit unsigned integer with
41106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saturation. Values greater than 0xFF are saturated to 0xFF. Values less
41116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 0x00 are saturated to 0x00. The converted [8 x i8] values are
41126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    written to the lower 64 bits of the result.
41136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
41146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as
41156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    a signed integer and is converted to an 8-bit unsigned integer with
41166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    saturation. Values greater than 0xFF are saturated to 0xFF. Values less
41176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    than 0x00 are saturated to 0x00. The converted [8 x i8] values are
41186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    written to the higher 64 bits of the result.
41196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [16 x i8] containing the converted values.
41206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
41216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_packus_epi16(__m128i __a, __m128i __b)
41226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
41236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b);
41246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
41256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
41266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Extracts 16 bits from a 128-bit integer vector of [8 x i16], using
41276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the immediate-value parameter as a selector.
41286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
41306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPEXTRW / PEXTRW instruction.
41326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
41346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
41356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __imm
41366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value. Bits [3:0] selects values from __a to be assigned to
41376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bits[15:0] of the result.
41386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    000: assign values from bits [15:0] of __a.
41396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    001: assign values from bits [31:16] of __a.
41406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    010: assign values from bits [47:32] of __a.
41416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    011: assign values from bits [63:48] of __a.
41426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    100: assign values from bits [79:64] of __a.
41436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    101: assign values from bits [95:80] of __a.
41446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    110: assign values from bits [111:96] of __a.
41456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    111: assign values from bits [127:112] of __a.
41466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns An integer, whose lower 16 bits are selected from the 128-bit
41476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vector parameter and the remaining bits are assigned zeros.
41486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
41496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_extract_epi16(__m128i __a, int __imm)
41506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
41516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __v8hi __b = (__v8hi)__a;
41526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (unsigned short)__b[__imm & 7];
41536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
41546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
41556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector by first making a copy of the
41566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit integer vector parameter, and then inserting the lower 16 bits
41576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of an integer parameter into an offset specified by the immediate-value
41586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameter.
41596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
41616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPINSRW / PINSRW instruction.
41636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
41656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [8 x i16]. This vector is copied to the
41666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result and then one of the eight elements in the result is replaced by
41676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the lower 16 bits of __b.
41686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
41696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An integer. The lower 16 bits of this parameter are written to the
41706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    result beginning at an offset specified by __imm.
41716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __imm
41726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value specifying the bit offset in the result at which the
41736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    lower 16 bits of__b are written.
41746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the constructed values.
41756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
41766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_insert_epi16(__m128i __a, int __b, int __imm)
41776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
41786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __v8hi __c = (__v8hi)__a;
41796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  __c[__imm & 7] = __b;
41806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__c;
41816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
41826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
41836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Copies the values of the most significant bits from each 8-bit
41846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    element in a 128-bit integer vector of [16 x i8] to create a 16-bit mask
41856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value, zero-extends the value, and writes it to the destination.
41866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
41886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPMOVMSKB / PMOVMSKB instruction.
41906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
41916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
41926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the values with bits to be extracted.
41936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns The most significant bits from each 8-bit element in __a, written
41946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    to bits [15:0]. The other bits are assigned zeros.
41956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
41966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movemask_epi8(__m128i __a)
41976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
41986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_pmovmskb128((__v16qi)__a);
41996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
42006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
42016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector by shuffling four 32-bit
42026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements of a 128-bit integer vector parameter, using the immediate-value
42036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameter as a specifier.
42046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
42066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
42086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_shuffle_epi32(__m128i a, const int imm);
42096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
42106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSHUFD / PSHUFD instruction.
42126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
42146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector containing the values to be copied.
42156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
42166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An immediate value containing an 8-bit value specifying which elements to
42176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    copy from a. The destinations within the 128-bit destination are assigned
42186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    values as follows:
42196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [1:0] are used to assign values to bits [31:0] of the result.
42206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [3:2] are used to assign values to bits [63:32] of the result.
42216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [5:4] are used to assign values to bits [95:64] of the result.
42226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [7:6] are used to assign values to bits [127:96] of the result.
42236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit value assignments:
42246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    00: assign values from bits [31:0] of a.
42256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    01: assign values from bits [63:32] of a.
42266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    10: assign values from bits [95:64] of a.
42276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    11: assign values from bits [127:96] of a.
42286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the shuffled values.
42296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shuffle_epi32(a, imm) __extension__ ({ \
42306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector((__v4si)(__m128i)(a), \
42316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   (__v4si)_mm_undefined_si128(), \
42326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 0) & 0x3, ((imm) >> 2) & 0x3, \
42336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); })
42346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
42356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector by shuffling four lower 16-bit
42366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements of a 128-bit integer vector of [8 x i16], using the immediate
42376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value parameter as a specifier.
42386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
42406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
42426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_shufflelo_epi16(__m128i a, const int imm);
42436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
42446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSHUFLW / PSHUFLW instruction.
42466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
42486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [8 x i16]. Bits [127:64] are copied to bits
42496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [127:64] of the result.
42506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
42516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit immediate value specifying which elements to copy from a.
42526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[1:0] are used to assign values to bits [15:0] of the result.
42536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[3:2] are used to assign values to bits [31:16] of the result.
42546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[5:4] are used to assign values to bits [47:32] of the result.
42556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[7:6] are used to assign values to bits [63:48] of the result.
42566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit value assignments:
42576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    00: assign values from bits [15:0] of a.
42586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    01: assign values from bits [31:16] of a.
42596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    10: assign values from bits [47:32] of a.
42606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    11: assign values from bits [63:48] of a.
42616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the shuffled values.
42626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shufflelo_epi16(a, imm) __extension__ ({ \
42636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector((__v8hi)(__m128i)(a), \
42646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   (__v8hi)_mm_undefined_si128(), \
42656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 0) & 0x3, ((imm) >> 2) & 0x3, \
42666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3, \
42676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4, 5, 6, 7); })
42686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
42696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit integer vector by shuffling four upper 16-bit
42706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements of a 128-bit integer vector of [8 x i16], using the immediate
42716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    value parameter as a specifier.
42726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
42746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
42766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128i _mm_shufflehi_epi16(__m128i a, const int imm);
42776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
42786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPSHUFHW / PSHUFHW instruction.
42806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
42816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
42826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector of [8 x i16]. Bits [63:0] are copied to bits
42836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [63:0] of the result.
42846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param imm
42856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit immediate value specifying which elements to copy from a.
42866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[1:0] are used to assign values to bits [79:64] of the result.
42876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[3:2] are used to assign values to bits [95:80] of the result.
42886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[5:4] are used to assign values to bits [111:96] of the result.
42896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits[7:6] are used to assign values to bits [127:112] of the result.
42906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit value assignments:
42916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    00: assign values from bits [79:64] of a.
42926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    01: assign values from bits [95:80] of a.
42936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    10: assign values from bits [111:96] of a.
42946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    11: assign values from bits [127:112] of a.
42956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the shuffled values.
42966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shufflehi_epi16(a, imm) __extension__ ({ \
42976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128i)__builtin_shufflevector((__v8hi)(__m128i)(a), \
42986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   (__v8hi)_mm_undefined_si128(), \
42996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   0, 1, 2, 3, \
43006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 0) & 0x3), \
43016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 2) & 0x3), \
43026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 4) & 0x3), \
43036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   4 + (((imm) >> 6) & 0x3)); })
43046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
43056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the high-order (index 8-15) values from two 128-bit vectors
43066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of [16 x i8] and interleaves them into a 128-bit vector of [16 x i8].
43076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
43096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKHBW / PUNPCKHBW instruction.
43116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
43136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [16 x i8].
43146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [71:64] are written to bits [7:0] of the result
43156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [79:72] are written to bits [23:16] of the result.
43166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [87:80] are written to bits [39:32] of the result.
43176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [95:88] are written to bits [55:48] of the result.
43186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [103:96] are written to bits [71:64] of the result.
43196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [111:104] are written to bits [87:80] of the result.
43206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [119:112] are written to bits [103:96] of the result.
43216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:120] are written to bits [119:112] of the result.
43226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
43236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [16 x i8].
43246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [71:64] are written to bits [15:8] of the result.
43256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [79:72] are written to bits [31:24] of the result.
43266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [87:80] are written to bits [47:40] of the result.
43276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [95:88] are written to bits [63:56] of the result.
43286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [103:96] are written to bits [79:72] of the result.
43296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [111:104] are written to bits [95:88] of the result.
43306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [119:112] are written to bits [111:104] of the result.
43316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:120] are written to bits [127:120] of the destination.
43326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
43336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
43346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi8(__m128i __a, __m128i __b)
43356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
43366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  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);
43376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
43386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
43396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the high-order (index 4-7) values from two 128-bit vectors of
43406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [8 x i16] and interleaves them into a 128-bit vector of [8 x i16].
43416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
43436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKHWD / PUNPCKHWD instruction.
43456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
43476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [8 x i16].
43486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [79:64] are written to bits [15:0] of the result.
43496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [95:80] are written to bits [47:32] of the result.
43506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [111:96] are written to bits [79:64] of the result.
43516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:112] are written to bits [111:96] of the result.
43526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
43536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [8 x i16].
43546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [79:64] are written to bits [31:16] of the result.
43556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [95:80] are written to bits [63:48] of the result.
43566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [111:96] are written to bits [95:80] of the result.
43576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:112] are written to bits [127:112] of the result.
43586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
43596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
43606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi16(__m128i __a, __m128i __b)
43616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
43626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7);
43636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
43646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
43656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the high-order (index 2,3) values from two 128-bit vectors of
43666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [4 x i32] and interleaves them into a 128-bit vector of [4 x i32].
43676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
43696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKHDQ / PUNPCKHDQ instruction.
43716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
43736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x i32].
43746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [95:64] are written to bits [31:0] of the destination.
43756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:96] are written to bits [95:64] of the destination.
43766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
43776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x i32].
43786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [95:64] are written to bits [64:32] of the destination.
43796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:96] are written to bits [127:96] of the destination.
43806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
43816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
43826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi32(__m128i __a, __m128i __b)
43836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
43846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3);
43856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
43866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
43876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the high-order (odd-indexed) values from two 128-bit vectors
43886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of [2 x i64] and interleaves them into a 128-bit vector of [2 x i64].
43896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
43916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKHQDQ / PUNPCKHQDQ instruction.
43936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
43946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
43956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64].
43966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:64] are written to bits [63:0] of the destination.
43976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
43986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64].
43996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:64] are written to bits [127:64] of the destination.
44006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
44016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
44026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_epi64(__m128i __a, __m128i __b)
44036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
44046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1);
44056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
44066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
44076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the low-order (index 0-7) values from two 128-bit vectors of
44086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [16 x i8] and interleaves them into a 128-bit vector of [16 x i8].
44096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
44116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKLBW / PUNPCKLBW instruction.
44136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
44156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [16 x i8].
44166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [7:0] are written to bits [7:0] of the result.
44176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [15:8] are written to bits [23:16] of the result.
44186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [23:16] are written to bits [39:32] of the result.
44196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [31:24] are written to bits [55:48] of the result.
44206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [39:32] are written to bits [71:64] of the result.
44216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [47:40] are written to bits [87:80] of the result.
44226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [55:48] are written to bits [103:96] of the result.
44236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:56] are written to bits [119:112] of the destination.
44246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
44256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [16 x i8].
44266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [7:0] are written to bits [15:8] of the result.
44276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [15:8] are written to bits [31:24] of the result.
44286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [23:16] are written to bits [47:40] of the result.
44296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [31:24] are written to bits [63:56] of the result.
44306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [39:32] are written to bits [79:72] of the result.
44316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [47:40] are written to bits [95:88] of the result.
44326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [55:48] are written to bits [111:104] of the result.
44336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:56] are written to bits [127:120] of the result.
44346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
44356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
44366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi8(__m128i __a, __m128i __b)
44376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
44386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  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);
44396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
44406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
44416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the low-order (index 0-3) values from each of the two 128-bit
44426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vectors of [8 x i16] and interleaves them into a 128-bit vector of
44436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [8 x i16].
44446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
44466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKLWD / PUNPCKLWD instruction.
44486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
44506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [8 x i16].
44516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [15:0] are written to bits [15:0] of the result.
44526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [31:16] are written to bits [47:32] of the result.
44536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [47:32] are written to bits [79:64] of the result.
44546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:48] are written to bits [111:96] of the result.
44556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
44566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [8 x i16].
44576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [15:0] are written to bits [31:16] of the result.
44586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [31:16] are written to bits [63:48] of the result.
44596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [47:32] are written to bits [95:80] of the result.
44606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:48] are written to bits [127:112] of the result.
44616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
44626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
44636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi16(__m128i __a, __m128i __b)
44646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
44656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3);
44666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
44676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
44686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the low-order (index 0,1) values from two 128-bit vectors of
44696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [4 x i32] and interleaves them into a 128-bit vector of [4 x i32].
44706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
44726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKLDQ / PUNPCKLDQ instruction.
44746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
44766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x i32].
44776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [31:0] are written to bits [31:0] of the destination.
44786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:32] are written to bits [95:64] of the destination.
44796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
44806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [4 x i32].
44816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [31:0] are written to bits [64:32] of the destination.
44826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:32] are written to bits [127:96] of the destination.
44836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
44846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
44856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi32(__m128i __a, __m128i __b)
44866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
44876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1);
44886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
44896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
44906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the low-order 64-bit elements from two 128-bit vectors of
44916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    [2 x i64] and interleaves them into a 128-bit vector of [2 x i64].
44926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
44946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VPUNPCKLQDQ / PUNPCKLQDQ instruction.
44966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
44976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
44986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64].
44996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:0] are written to bits [63:0] of the destination.
45006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
45016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x i64].
45026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:0] are written to bits [127:64] of the destination.
45036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
45046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
45056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_epi64(__m128i __a, __m128i __b)
45066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
45076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0);
45086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
45096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
45106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Returns the lower 64 bits of a 128-bit integer vector as a 64-bit
45116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer.
45126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
45146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
45166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
45186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector operand. The lower 64 bits are moved to the
45196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination.
45206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 64-bit integer containing the lower 64 bits of the parameter.
45216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m64 __DEFAULT_FN_ATTRS
45226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movepi64_pi64(__m128i __a)
45236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
45246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m64)__a[0];
45256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
45266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
45276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves the 64-bit operand to a 128-bit integer vector, zeroing the
45286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    upper bits.
45296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
45316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ / MOVD instruction.
45336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
45356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 64-bit value.
45366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector. The lower 64 bits contain the value from
45376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the operand. The upper 64 bits are assigned zeros.
45386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
45396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movpi64_epi64(__m64 __a)
45406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
45416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i){ (long long)__a, 0 };
45426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
45436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
45446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Moves the lower 64 bits of a 128-bit integer vector to a 128-bit
45456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vector, zeroing the upper bits.
45466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
45486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
45506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
45526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector operand. The lower 64 bits are moved to the
45536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    destination.
45546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector. The lower 64 bits contain the value from
45556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    the operand. The upper 64 bits are assigned zeros.
45566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
45576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_move_epi64(__m128i __a)
45586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
45596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2di)__a, (__m128i){ 0 }, 0, 2);
45606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
45616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
45626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the high-order (odd-indexed) values from two 128-bit vectors
45636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of [2 x double] and interleaves them into a 128-bit vector of [2 x
45646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double].
45656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
45676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUNPCKHPD / UNPCKHPD instruction.
45696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
45716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
45726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:64] are written to bits [63:0] of the destination.
45736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
45746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
45756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [127:64] are written to bits [127:64] of the destination.
45766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the interleaved values.
45776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
45786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpackhi_pd(__m128d __a, __m128d __b)
45796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
45806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1);
45816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
45826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
45836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Unpacks the low-order (even-indexed) values from two 128-bit vectors
45846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of [2 x double] and interleaves them into a 128-bit vector of [2 x
45856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    double].
45866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
45886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VUNPCKLPD / UNPCKLPD instruction.
45906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
45916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
45926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
45936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:0] are written to bits [63:0] of the destination.
45946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __b
45956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
45966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bits [63:0] are written to bits [127:64] of the destination.
45976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the interleaved values.
45986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
45996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_unpacklo_pd(__m128d __a, __m128d __b)
46006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
46016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0);
46026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
46036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
46046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Extracts the sign bits of the double-precision values in the 128-bit
46056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    vector of [2 x double], zero-extends the value, and writes it to the
46066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    low-order bits of the destination.
46076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
46096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VMOVMSKPD / MOVMSKPD instruction.
46116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
46136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double] containing the values with sign bits to
46146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    be extracted.
46156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns The sign bits from each of the double-precision elements in __a,
46166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    written to bits [1:0]. The remaining bits are assigned values of zero.
46176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ int __DEFAULT_FN_ATTRS
46186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_movemask_pd(__m128d __a)
46196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
46206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return __builtin_ia32_movmskpd((__v2df)__a);
46216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
46226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
46236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
46246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Constructs a 128-bit floating-point vector of [2 x double] from two
46256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    128-bit vector parameters of [2 x double], using the immediate-value
46266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///     parameter as a specifier.
46276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
46296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \code
46316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// __m128d _mm_shuffle_pd(__m128d a, __m128d b, const int i);
46326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \endcode
46336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c VSHUFPD / SHUFPD instruction.
46356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param a
46376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
46386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param b
46396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit vector of [2 x double].
46406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param i
46416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    An 8-bit immediate value. The least significant two bits specify which
46426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    elements to copy from a and b:
46436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit[0] = 0: lower element of a copied to lower element of result.
46446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit[0] = 1: upper element of a copied to lower element of result.
46456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit[1] = 0: lower element of b copied to upper element of result.
46466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    Bit[1] = 1: upper element of b copied to upper element of result.
46476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit vector of [2 x double] containing the shuffled values.
46486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _mm_shuffle_pd(a, b, i) __extension__ ({ \
46496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  (__m128d)__builtin_shufflevector((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
46506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   0 + (((i) >> 0) & 0x1), \
46516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                                   2 + (((i) >> 1) & 0x1)); })
46526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
46536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Casts a 128-bit floating-point vector of [2 x double] into a 128-bit
46546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point vector of [4 x float].
46556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
46576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
46596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
46616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit floating-point vector of [2 x double].
46626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit floating-point vector of [4 x float] containing the same
46636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bitwise pattern as the parameter.
46646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
46656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castpd_ps(__m128d __a)
46666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
46676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128)__a;
46686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
46696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
46706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Casts a 128-bit floating-point vector of [2 x double] into a 128-bit
46716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vector.
46726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
46746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
46766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
46786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit floating-point vector of [2 x double].
46796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the same bitwise pattern as the
46806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameter.
46816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
46826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castpd_si128(__m128d __a)
46836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
46846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__a;
46856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
46866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
46876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Casts a 128-bit floating-point vector of [4 x float] into a 128-bit
46886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    floating-point vector of [2 x double].
46896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
46916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
46936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
46946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
46956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit floating-point vector of [4 x float].
46966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit floating-point vector of [2 x double] containing the same
46976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bitwise pattern as the parameter.
46986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
46996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castps_pd(__m128 __a)
47006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
47016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__a;
47026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
47036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Casts a 128-bit floating-point vector of [4 x float] into a 128-bit
47056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    integer vector.
47066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
47086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
47106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
47126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit floating-point vector of [4 x float].
47136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit integer vector containing the same bitwise pattern as the
47146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    parameter.
47156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
47166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castps_si128(__m128 __a)
47176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
47186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i)__a;
47196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
47206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Casts a 128-bit integer vector into a 128-bit floating-point vector
47226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of [4 x float].
47236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
47256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
47276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
47296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
47306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit floating-point vector of [4 x float] containing the same
47316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bitwise pattern as the parameter.
47326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128 __DEFAULT_FN_ATTRS
47336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castsi128_ps(__m128i __a)
47346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
47356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128)__a;
47366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
47376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Casts a 128-bit integer vector into a 128-bit floating-point vector
47396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    of [2 x double].
47406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
47426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic has no corresponding instruction.
47446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \param __a
47466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    A 128-bit integer vector.
47476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \returns A 128-bit floating-point vector of [2 x double] containing the same
47486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    bitwise pattern as the parameter.
47496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128d __DEFAULT_FN_ATTRS
47506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_castsi128_pd(__m128i __a)
47516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
47526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128d)__a;
47536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
47546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \brief Indicates that a spin loop is being executed for the purposes of
47566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///    optimizing power consumption during the loop.
47576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// \headerfile <x86intrin.h>
47596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/// This intrinsic corresponds to the \c PAUSE instruction.
47616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker///
47626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#if defined(__cplusplus)
47636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerextern "C"
47646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
47656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickervoid _mm_pause(void);
47666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#undef __DEFAULT_FN_ATTRS
47686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _MM_SHUFFLE2(x, y) (((x) << 1) | (y))
47706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
47716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __EMMINTRIN_H */
4772