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