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