Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512fintrin.h
496 views
/*===---- avx512fintrin.h - AVX512F intrinsics -----------------------------===1*2* Permission is hereby granted, free of charge, to any person obtaining a copy3* of this software and associated documentation files (the "Software"), to deal4* in the Software without restriction, including without limitation the rights5* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell6* copies of the Software, and to permit persons to whom the Software is7* furnished to do so, subject to the following conditions:8*9* The above copyright notice and this permission notice shall be included in10* all copies or substantial portions of the Software.11*12* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR13* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,14* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE15* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER16* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,17* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN18* THE SOFTWARE.19*20*===-----------------------------------------------------------------------===21*/22#ifndef __IMMINTRIN_H23#error "Never use <avx512fintrin.h> directly; include <immintrin.h> instead."24#endif2526#ifndef __AVX512FINTRIN_H27#define __AVX512FINTRIN_H2829typedef char __v64qi __attribute__((__vector_size__(64)));30typedef short __v32hi __attribute__((__vector_size__(64)));31typedef double __v8df __attribute__((__vector_size__(64)));32typedef float __v16sf __attribute__((__vector_size__(64)));33typedef long long __v8di __attribute__((__vector_size__(64)));34typedef int __v16si __attribute__((__vector_size__(64)));3536/* Unsigned types */37typedef unsigned char __v64qu __attribute__((__vector_size__(64)));38typedef unsigned short __v32hu __attribute__((__vector_size__(64)));39typedef unsigned long long __v8du __attribute__((__vector_size__(64)));40typedef unsigned int __v16su __attribute__((__vector_size__(64)));4142typedef float __m512 __attribute__((__vector_size__(64)));43typedef double __m512d __attribute__((__vector_size__(64)));44typedef long long __m512i __attribute__((__vector_size__(64)));4546typedef unsigned char __mmask8;47typedef unsigned short __mmask16;4849/* Rounding mode macros. */50#define _MM_FROUND_TO_NEAREST_INT 0x0051#define _MM_FROUND_TO_NEG_INF 0x0152#define _MM_FROUND_TO_POS_INF 0x0253#define _MM_FROUND_TO_ZERO 0x0354#define _MM_FROUND_CUR_DIRECTION 0x045556typedef enum57{58_MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02,59_MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05,60_MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08,61_MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B,62_MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E,63_MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11,64_MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14,65_MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17,66_MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A,67_MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D,68_MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20,69_MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23,70_MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26,71_MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29,72_MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C,73_MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F,74_MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32,75_MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35,76_MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38,77_MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B,78_MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E,79_MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41,80_MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44,81_MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47,82_MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A,83_MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D,84_MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50,85_MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53,86_MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56,87_MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59,88_MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C,89_MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F,90_MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62,91_MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65,92_MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68,93_MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B,94_MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E,95_MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71,96_MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74,97_MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77,98_MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A,99_MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D,100_MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80,101_MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83,102_MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86,103_MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89,104_MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C,105_MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F,106_MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92,107_MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95,108_MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98,109_MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B,110_MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E,111_MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1,112_MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4,113_MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7,114_MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA,115_MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD,116_MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0,117_MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3,118_MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6,119_MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9,120_MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC,121_MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF,122_MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2,123_MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5,124_MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8,125_MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB,126_MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE,127_MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1,128_MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4,129_MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7,130_MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA,131_MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD,132_MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0,133_MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3,134_MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6,135_MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9,136_MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC,137_MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF,138_MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2,139_MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5,140_MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8,141_MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB,142_MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE,143_MM_PERM_DDDD = 0xFF144} _MM_PERM_ENUM;145146typedef enum147{148_MM_MANT_NORM_1_2, /* interval [1, 2) */149_MM_MANT_NORM_p5_2, /* interval [0.5, 2) */150_MM_MANT_NORM_p5_1, /* interval [0.5, 1) */151_MM_MANT_NORM_p75_1p5 /* interval [0.75, 1.5) */152} _MM_MANTISSA_NORM_ENUM;153154typedef enum155{156_MM_MANT_SIGN_src, /* sign = sign(SRC) */157_MM_MANT_SIGN_zero, /* sign = 0 */158_MM_MANT_SIGN_nan /* DEST = NaN if sign(SRC) = 1 */159} _MM_MANTISSA_SIGN_ENUM;160161/* Define the default attributes for the functions in this file. */162#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512f")))163164/* Create vectors with repeated elements */165166static __inline __m512i __DEFAULT_FN_ATTRS167_mm512_setzero_si512(void)168{169return (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };170}171172#define _mm512_setzero_epi32 _mm512_setzero_si512173174static __inline__ __m512d __DEFAULT_FN_ATTRS175_mm512_undefined_pd(void)176{177return (__m512d)__builtin_ia32_undef512();178}179180static __inline__ __m512 __DEFAULT_FN_ATTRS181_mm512_undefined(void)182{183return (__m512)__builtin_ia32_undef512();184}185186static __inline__ __m512 __DEFAULT_FN_ATTRS187_mm512_undefined_ps(void)188{189return (__m512)__builtin_ia32_undef512();190}191192static __inline__ __m512i __DEFAULT_FN_ATTRS193_mm512_undefined_epi32(void)194{195return (__m512i)__builtin_ia32_undef512();196}197198static __inline__ __m512i __DEFAULT_FN_ATTRS199_mm512_broadcastd_epi32 (__m128i __A)200{201return (__m512i)__builtin_shufflevector((__v4si) __A,202(__v4si)_mm_undefined_si128(),2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);204}205206static __inline__ __m512i __DEFAULT_FN_ATTRS207_mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A)208{209return (__m512i)__builtin_ia32_selectd_512(__M,210(__v16si) _mm512_broadcastd_epi32(__A),211(__v16si) __O);212}213214static __inline__ __m512i __DEFAULT_FN_ATTRS215_mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)216{217return (__m512i)__builtin_ia32_selectd_512(__M,218(__v16si) _mm512_broadcastd_epi32(__A),219(__v16si) _mm512_setzero_si512());220}221222static __inline__ __m512i __DEFAULT_FN_ATTRS223_mm512_broadcastq_epi64 (__m128i __A)224{225return (__m512i)__builtin_shufflevector((__v2di) __A,226(__v2di) _mm_undefined_si128(),2270, 0, 0, 0, 0, 0, 0, 0);228}229230static __inline__ __m512i __DEFAULT_FN_ATTRS231_mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A)232{233return (__m512i)__builtin_ia32_selectq_512(__M,234(__v8di) _mm512_broadcastq_epi64(__A),235(__v8di) __O);236237}238239static __inline__ __m512i __DEFAULT_FN_ATTRS240_mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)241{242return (__m512i)__builtin_ia32_selectq_512(__M,243(__v8di) _mm512_broadcastq_epi64(__A),244(__v8di) _mm512_setzero_si512());245}246247static __inline __m512i __DEFAULT_FN_ATTRS248_mm512_maskz_set1_epi32(__mmask16 __M, int __A)249{250return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A,251(__v16si)252_mm512_setzero_si512 (),253__M);254}255256static __inline __m512i __DEFAULT_FN_ATTRS257_mm512_maskz_set1_epi64(__mmask8 __M, long long __A)258{259#ifdef __x86_64__260return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A,261(__v8di)262_mm512_setzero_si512 (),263__M);264#else265return (__m512i) __builtin_ia32_pbroadcastq512_mem_mask (__A,266(__v8di)267_mm512_setzero_si512 (),268__M);269#endif270}271272static __inline __m512 __DEFAULT_FN_ATTRS273_mm512_setzero_ps(void)274{275return (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,2760.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };277}278279#define _mm512_setzero _mm512_setzero_ps280281static __inline __m512d __DEFAULT_FN_ATTRS282_mm512_setzero_pd(void)283{284return (__m512d){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };285}286287static __inline __m512 __DEFAULT_FN_ATTRS288_mm512_set1_ps(float __w)289{290return (__m512){ __w, __w, __w, __w, __w, __w, __w, __w,291__w, __w, __w, __w, __w, __w, __w, __w };292}293294static __inline __m512d __DEFAULT_FN_ATTRS295_mm512_set1_pd(double __w)296{297return (__m512d){ __w, __w, __w, __w, __w, __w, __w, __w };298}299300static __inline __m512i __DEFAULT_FN_ATTRS301_mm512_set1_epi8(char __w)302{303return (__m512i)(__v64qi){ __w, __w, __w, __w, __w, __w, __w, __w,304__w, __w, __w, __w, __w, __w, __w, __w,305__w, __w, __w, __w, __w, __w, __w, __w,306__w, __w, __w, __w, __w, __w, __w, __w,307__w, __w, __w, __w, __w, __w, __w, __w,308__w, __w, __w, __w, __w, __w, __w, __w,309__w, __w, __w, __w, __w, __w, __w, __w,310__w, __w, __w, __w, __w, __w, __w, __w };311}312313static __inline __m512i __DEFAULT_FN_ATTRS314_mm512_set1_epi16(short __w)315{316return (__m512i)(__v32hi){ __w, __w, __w, __w, __w, __w, __w, __w,317__w, __w, __w, __w, __w, __w, __w, __w,318__w, __w, __w, __w, __w, __w, __w, __w,319__w, __w, __w, __w, __w, __w, __w, __w };320}321322static __inline __m512i __DEFAULT_FN_ATTRS323_mm512_set1_epi32(int __s)324{325return (__m512i)(__v16si){ __s, __s, __s, __s, __s, __s, __s, __s,326__s, __s, __s, __s, __s, __s, __s, __s };327}328329static __inline __m512i __DEFAULT_FN_ATTRS330_mm512_set1_epi64(long long __d)331{332return (__m512i)(__v8di){ __d, __d, __d, __d, __d, __d, __d, __d };333}334335static __inline__ __m512 __DEFAULT_FN_ATTRS336_mm512_broadcastss_ps(__m128 __A)337{338return (__m512)__builtin_shufflevector((__v4sf) __A,339(__v4sf)_mm_undefined_ps(),3400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);341}342343static __inline __m512i __DEFAULT_FN_ATTRS344_mm512_set4_epi32 (int __A, int __B, int __C, int __D)345{346return (__m512i)(__v16si)347{ __D, __C, __B, __A, __D, __C, __B, __A,348__D, __C, __B, __A, __D, __C, __B, __A };349}350351static __inline __m512i __DEFAULT_FN_ATTRS352_mm512_set4_epi64 (long long __A, long long __B, long long __C,353long long __D)354{355return (__m512i) (__v8di)356{ __D, __C, __B, __A, __D, __C, __B, __A };357}358359static __inline __m512d __DEFAULT_FN_ATTRS360_mm512_set4_pd (double __A, double __B, double __C, double __D)361{362return (__m512d)363{ __D, __C, __B, __A, __D, __C, __B, __A };364}365366static __inline __m512 __DEFAULT_FN_ATTRS367_mm512_set4_ps (float __A, float __B, float __C, float __D)368{369return (__m512)370{ __D, __C, __B, __A, __D, __C, __B, __A,371__D, __C, __B, __A, __D, __C, __B, __A };372}373374#define _mm512_setr4_epi32(e0,e1,e2,e3) \375_mm512_set4_epi32((e3),(e2),(e1),(e0))376377#define _mm512_setr4_epi64(e0,e1,e2,e3) \378_mm512_set4_epi64((e3),(e2),(e1),(e0))379380#define _mm512_setr4_pd(e0,e1,e2,e3) \381_mm512_set4_pd((e3),(e2),(e1),(e0))382383#define _mm512_setr4_ps(e0,e1,e2,e3) \384_mm512_set4_ps((e3),(e2),(e1),(e0))385386static __inline__ __m512d __DEFAULT_FN_ATTRS387_mm512_broadcastsd_pd(__m128d __A)388{389return (__m512d)__builtin_shufflevector((__v2df) __A,390(__v2df) _mm_undefined_pd(),3910, 0, 0, 0, 0, 0, 0, 0);392}393394/* Cast between vector types */395396static __inline __m512d __DEFAULT_FN_ATTRS397_mm512_castpd256_pd512(__m256d __a)398{399return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, -1, -1, -1, -1);400}401402static __inline __m512 __DEFAULT_FN_ATTRS403_mm512_castps256_ps512(__m256 __a)404{405return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7,406-1, -1, -1, -1, -1, -1, -1, -1);407}408409static __inline __m128d __DEFAULT_FN_ATTRS410_mm512_castpd512_pd128(__m512d __a)411{412return __builtin_shufflevector(__a, __a, 0, 1);413}414415static __inline __m256d __DEFAULT_FN_ATTRS416_mm512_castpd512_pd256 (__m512d __A)417{418return __builtin_shufflevector(__A, __A, 0, 1, 2, 3);419}420421static __inline __m128 __DEFAULT_FN_ATTRS422_mm512_castps512_ps128(__m512 __a)423{424return __builtin_shufflevector(__a, __a, 0, 1, 2, 3);425}426427static __inline __m256 __DEFAULT_FN_ATTRS428_mm512_castps512_ps256 (__m512 __A)429{430return __builtin_shufflevector(__A, __A, 0, 1, 2, 3, 4, 5, 6, 7);431}432433static __inline __m512 __DEFAULT_FN_ATTRS434_mm512_castpd_ps (__m512d __A)435{436return (__m512) (__A);437}438439static __inline __m512i __DEFAULT_FN_ATTRS440_mm512_castpd_si512 (__m512d __A)441{442return (__m512i) (__A);443}444445static __inline__ __m512d __DEFAULT_FN_ATTRS446_mm512_castpd128_pd512 (__m128d __A)447{448return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1);449}450451static __inline __m512d __DEFAULT_FN_ATTRS452_mm512_castps_pd (__m512 __A)453{454return (__m512d) (__A);455}456457static __inline __m512i __DEFAULT_FN_ATTRS458_mm512_castps_si512 (__m512 __A)459{460return (__m512i) (__A);461}462463static __inline__ __m512 __DEFAULT_FN_ATTRS464_mm512_castps128_ps512 (__m128 __A)465{466return __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);467}468469static __inline__ __m512i __DEFAULT_FN_ATTRS470_mm512_castsi128_si512 (__m128i __A)471{472return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1);473}474475static __inline__ __m512i __DEFAULT_FN_ATTRS476_mm512_castsi256_si512 (__m256i __A)477{478return __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1);479}480481static __inline __m512 __DEFAULT_FN_ATTRS482_mm512_castsi512_ps (__m512i __A)483{484return (__m512) (__A);485}486487static __inline __m512d __DEFAULT_FN_ATTRS488_mm512_castsi512_pd (__m512i __A)489{490return (__m512d) (__A);491}492493static __inline __m128i __DEFAULT_FN_ATTRS494_mm512_castsi512_si128 (__m512i __A)495{496return (__m128i)__builtin_shufflevector(__A, __A , 0, 1);497}498499static __inline __m256i __DEFAULT_FN_ATTRS500_mm512_castsi512_si256 (__m512i __A)501{502return (__m256i)__builtin_shufflevector(__A, __A , 0, 1, 2, 3);503}504505/* Bitwise operators */506static __inline__ __m512i __DEFAULT_FN_ATTRS507_mm512_and_epi32(__m512i __a, __m512i __b)508{509return (__m512i)((__v16su)__a & (__v16su)__b);510}511512static __inline__ __m512i __DEFAULT_FN_ATTRS513_mm512_mask_and_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b)514{515return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k,516(__v16si) _mm512_and_epi32(__a, __b),517(__v16si) __src);518}519520static __inline__ __m512i __DEFAULT_FN_ATTRS521_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b)522{523return (__m512i) _mm512_mask_and_epi32(_mm512_setzero_si512 (),524__k, __a, __b);525}526527static __inline__ __m512i __DEFAULT_FN_ATTRS528_mm512_and_epi64(__m512i __a, __m512i __b)529{530return (__m512i)((__v8du)__a & (__v8du)__b);531}532533static __inline__ __m512i __DEFAULT_FN_ATTRS534_mm512_mask_and_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b)535{536return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __k,537(__v8di) _mm512_and_epi64(__a, __b),538(__v8di) __src);539}540541static __inline__ __m512i __DEFAULT_FN_ATTRS542_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b)543{544return (__m512i) _mm512_mask_and_epi64(_mm512_setzero_si512 (),545__k, __a, __b);546}547548static __inline__ __m512i __DEFAULT_FN_ATTRS549_mm512_andnot_si512 (__m512i __A, __m512i __B)550{551return (__m512i)(~(__v8du)(__A) & (__v8du)__B);552}553554static __inline__ __m512i __DEFAULT_FN_ATTRS555_mm512_andnot_epi32 (__m512i __A, __m512i __B)556{557return (__m512i)(~(__v16su)(__A) & (__v16su)__B);558}559560static __inline__ __m512i __DEFAULT_FN_ATTRS561_mm512_mask_andnot_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)562{563return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,564(__v16si)_mm512_andnot_epi32(__A, __B),565(__v16si)__W);566}567568static __inline__ __m512i __DEFAULT_FN_ATTRS569_mm512_maskz_andnot_epi32(__mmask16 __U, __m512i __A, __m512i __B)570{571return (__m512i)_mm512_mask_andnot_epi32(_mm512_setzero_si512(),572__U, __A, __B);573}574575static __inline__ __m512i __DEFAULT_FN_ATTRS576_mm512_andnot_epi64(__m512i __A, __m512i __B)577{578return (__m512i)(~(__v8du)(__A) & (__v8du)__B);579}580581static __inline__ __m512i __DEFAULT_FN_ATTRS582_mm512_mask_andnot_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)583{584return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,585(__v8di)_mm512_andnot_epi64(__A, __B),586(__v8di)__W);587}588589static __inline__ __m512i __DEFAULT_FN_ATTRS590_mm512_maskz_andnot_epi64(__mmask8 __U, __m512i __A, __m512i __B)591{592return (__m512i)_mm512_mask_andnot_epi64(_mm512_setzero_si512(),593__U, __A, __B);594}595596static __inline__ __m512i __DEFAULT_FN_ATTRS597_mm512_or_epi32(__m512i __a, __m512i __b)598{599return (__m512i)((__v16su)__a | (__v16su)__b);600}601602static __inline__ __m512i __DEFAULT_FN_ATTRS603_mm512_mask_or_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b)604{605return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k,606(__v16si)_mm512_or_epi32(__a, __b),607(__v16si)__src);608}609610static __inline__ __m512i __DEFAULT_FN_ATTRS611_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b)612{613return (__m512i)_mm512_mask_or_epi32(_mm512_setzero_si512(), __k, __a, __b);614}615616static __inline__ __m512i __DEFAULT_FN_ATTRS617_mm512_or_epi64(__m512i __a, __m512i __b)618{619return (__m512i)((__v8du)__a | (__v8du)__b);620}621622static __inline__ __m512i __DEFAULT_FN_ATTRS623_mm512_mask_or_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b)624{625return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k,626(__v8di)_mm512_or_epi64(__a, __b),627(__v8di)__src);628}629630static __inline__ __m512i __DEFAULT_FN_ATTRS631_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b)632{633return (__m512i)_mm512_mask_or_epi64(_mm512_setzero_si512(), __k, __a, __b);634}635636static __inline__ __m512i __DEFAULT_FN_ATTRS637_mm512_xor_epi32(__m512i __a, __m512i __b)638{639return (__m512i)((__v16su)__a ^ (__v16su)__b);640}641642static __inline__ __m512i __DEFAULT_FN_ATTRS643_mm512_mask_xor_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b)644{645return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k,646(__v16si)_mm512_xor_epi32(__a, __b),647(__v16si)__src);648}649650static __inline__ __m512i __DEFAULT_FN_ATTRS651_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b)652{653return (__m512i)_mm512_mask_xor_epi32(_mm512_setzero_si512(), __k, __a, __b);654}655656static __inline__ __m512i __DEFAULT_FN_ATTRS657_mm512_xor_epi64(__m512i __a, __m512i __b)658{659return (__m512i)((__v8du)__a ^ (__v8du)__b);660}661662static __inline__ __m512i __DEFAULT_FN_ATTRS663_mm512_mask_xor_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b)664{665return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k,666(__v8di)_mm512_xor_epi64(__a, __b),667(__v8di)__src);668}669670static __inline__ __m512i __DEFAULT_FN_ATTRS671_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b)672{673return (__m512i)_mm512_mask_xor_epi64(_mm512_setzero_si512(), __k, __a, __b);674}675676static __inline__ __m512i __DEFAULT_FN_ATTRS677_mm512_and_si512(__m512i __a, __m512i __b)678{679return (__m512i)((__v8du)__a & (__v8du)__b);680}681682static __inline__ __m512i __DEFAULT_FN_ATTRS683_mm512_or_si512(__m512i __a, __m512i __b)684{685return (__m512i)((__v8du)__a | (__v8du)__b);686}687688static __inline__ __m512i __DEFAULT_FN_ATTRS689_mm512_xor_si512(__m512i __a, __m512i __b)690{691return (__m512i)((__v8du)__a ^ (__v8du)__b);692}693694/* Arithmetic */695696static __inline __m512d __DEFAULT_FN_ATTRS697_mm512_add_pd(__m512d __a, __m512d __b)698{699return (__m512d)((__v8df)__a + (__v8df)__b);700}701702static __inline __m512 __DEFAULT_FN_ATTRS703_mm512_add_ps(__m512 __a, __m512 __b)704{705return (__m512)((__v16sf)__a + (__v16sf)__b);706}707708static __inline __m512d __DEFAULT_FN_ATTRS709_mm512_mul_pd(__m512d __a, __m512d __b)710{711return (__m512d)((__v8df)__a * (__v8df)__b);712}713714static __inline __m512 __DEFAULT_FN_ATTRS715_mm512_mul_ps(__m512 __a, __m512 __b)716{717return (__m512)((__v16sf)__a * (__v16sf)__b);718}719720static __inline __m512d __DEFAULT_FN_ATTRS721_mm512_sub_pd(__m512d __a, __m512d __b)722{723return (__m512d)((__v8df)__a - (__v8df)__b);724}725726static __inline __m512 __DEFAULT_FN_ATTRS727_mm512_sub_ps(__m512 __a, __m512 __b)728{729return (__m512)((__v16sf)__a - (__v16sf)__b);730}731732static __inline__ __m512i __DEFAULT_FN_ATTRS733_mm512_add_epi64 (__m512i __A, __m512i __B)734{735return (__m512i) ((__v8du) __A + (__v8du) __B);736}737738static __inline__ __m512i __DEFAULT_FN_ATTRS739_mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)740{741return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,742(__v8di) __B,743(__v8di) __W,744(__mmask8) __U);745}746747static __inline__ __m512i __DEFAULT_FN_ATTRS748_mm512_maskz_add_epi64 (__mmask8 __U, __m512i __A, __m512i __B)749{750return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,751(__v8di) __B,752(__v8di)753_mm512_setzero_si512 (),754(__mmask8) __U);755}756757static __inline__ __m512i __DEFAULT_FN_ATTRS758_mm512_sub_epi64 (__m512i __A, __m512i __B)759{760return (__m512i) ((__v8du) __A - (__v8du) __B);761}762763static __inline__ __m512i __DEFAULT_FN_ATTRS764_mm512_mask_sub_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)765{766return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,767(__v8di) __B,768(__v8di) __W,769(__mmask8) __U);770}771772static __inline__ __m512i __DEFAULT_FN_ATTRS773_mm512_maskz_sub_epi64 (__mmask8 __U, __m512i __A, __m512i __B)774{775return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,776(__v8di) __B,777(__v8di)778_mm512_setzero_si512 (),779(__mmask8) __U);780}781782static __inline__ __m512i __DEFAULT_FN_ATTRS783_mm512_add_epi32 (__m512i __A, __m512i __B)784{785return (__m512i) ((__v16su) __A + (__v16su) __B);786}787788static __inline__ __m512i __DEFAULT_FN_ATTRS789_mm512_mask_add_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)790{791return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,792(__v16si) __B,793(__v16si) __W,794(__mmask16) __U);795}796797static __inline__ __m512i __DEFAULT_FN_ATTRS798_mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B)799{800return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,801(__v16si) __B,802(__v16si)803_mm512_setzero_si512 (),804(__mmask16) __U);805}806807static __inline__ __m512i __DEFAULT_FN_ATTRS808_mm512_sub_epi32 (__m512i __A, __m512i __B)809{810return (__m512i) ((__v16su) __A - (__v16su) __B);811}812813static __inline__ __m512i __DEFAULT_FN_ATTRS814_mm512_mask_sub_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)815{816return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,817(__v16si) __B,818(__v16si) __W,819(__mmask16) __U);820}821822static __inline__ __m512i __DEFAULT_FN_ATTRS823_mm512_maskz_sub_epi32 (__mmask16 __U, __m512i __A, __m512i __B)824{825return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,826(__v16si) __B,827(__v16si)828_mm512_setzero_si512 (),829(__mmask16) __U);830}831832#define _mm512_mask_max_round_pd(W, U, A, B, R) __extension__ ({ \833(__m512d)__builtin_ia32_maxpd512_mask((__v8df)(__m512d)(A), \834(__v8df)(__m512d)(B), \835(__v8df)(__m512d)(W), (__mmask8)(U), \836(int)(R)); })837838#define _mm512_maskz_max_round_pd(U, A, B, R) __extension__ ({ \839(__m512d)__builtin_ia32_maxpd512_mask((__v8df)(__m512d)(A), \840(__v8df)(__m512d)(B), \841(__v8df)_mm512_setzero_pd(), \842(__mmask8)(U), (int)(R)); })843844#define _mm512_max_round_pd(A, B, R) __extension__ ({ \845(__m512d)__builtin_ia32_maxpd512_mask((__v8df)(__m512d)(A), \846(__v8df)(__m512d)(B), \847(__v8df)_mm512_undefined_pd(), \848(__mmask8)-1, (int)(R)); })849850static __inline__ __m512d __DEFAULT_FN_ATTRS851_mm512_max_pd(__m512d __A, __m512d __B)852{853return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,854(__v8df) __B,855(__v8df)856_mm512_setzero_pd (),857(__mmask8) -1,858_MM_FROUND_CUR_DIRECTION);859}860861static __inline__ __m512d __DEFAULT_FN_ATTRS862_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)863{864return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,865(__v8df) __B,866(__v8df) __W,867(__mmask8) __U,868_MM_FROUND_CUR_DIRECTION);869}870871static __inline__ __m512d __DEFAULT_FN_ATTRS872_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)873{874return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,875(__v8df) __B,876(__v8df)877_mm512_setzero_pd (),878(__mmask8) __U,879_MM_FROUND_CUR_DIRECTION);880}881882#define _mm512_mask_max_round_ps(W, U, A, B, R) __extension__ ({ \883(__m512)__builtin_ia32_maxps512_mask((__v16sf)(__m512)(A), \884(__v16sf)(__m512)(B), \885(__v16sf)(__m512)(W), (__mmask16)(U), \886(int)(R)); })887888#define _mm512_maskz_max_round_ps(U, A, B, R) __extension__ ({ \889(__m512)__builtin_ia32_maxps512_mask((__v16sf)(__m512)(A), \890(__v16sf)(__m512)(B), \891(__v16sf)_mm512_setzero_ps(), \892(__mmask16)(U), (int)(R)); })893894#define _mm512_max_round_ps(A, B, R) __extension__ ({ \895(__m512)__builtin_ia32_maxps512_mask((__v16sf)(__m512)(A), \896(__v16sf)(__m512)(B), \897(__v16sf)_mm512_undefined_ps(), \898(__mmask16)-1, (int)(R)); })899900static __inline__ __m512 __DEFAULT_FN_ATTRS901_mm512_max_ps(__m512 __A, __m512 __B)902{903return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,904(__v16sf) __B,905(__v16sf)906_mm512_setzero_ps (),907(__mmask16) -1,908_MM_FROUND_CUR_DIRECTION);909}910911static __inline__ __m512 __DEFAULT_FN_ATTRS912_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)913{914return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,915(__v16sf) __B,916(__v16sf) __W,917(__mmask16) __U,918_MM_FROUND_CUR_DIRECTION);919}920921static __inline__ __m512 __DEFAULT_FN_ATTRS922_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)923{924return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,925(__v16sf) __B,926(__v16sf)927_mm512_setzero_ps (),928(__mmask16) __U,929_MM_FROUND_CUR_DIRECTION);930}931932static __inline__ __m128 __DEFAULT_FN_ATTRS933_mm_mask_max_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {934return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A,935(__v4sf) __B,936(__v4sf) __W,937(__mmask8) __U,938_MM_FROUND_CUR_DIRECTION);939}940941static __inline__ __m128 __DEFAULT_FN_ATTRS942_mm_maskz_max_ss(__mmask8 __U,__m128 __A, __m128 __B) {943return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A,944(__v4sf) __B,945(__v4sf) _mm_setzero_ps (),946(__mmask8) __U,947_MM_FROUND_CUR_DIRECTION);948}949950#define _mm_max_round_ss(A, B, R) __extension__ ({ \951(__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \952(__v4sf)(__m128)(B), \953(__v4sf)_mm_setzero_ps(), \954(__mmask8)-1, (int)(R)); })955956#define _mm_mask_max_round_ss(W, U, A, B, R) __extension__ ({ \957(__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \958(__v4sf)(__m128)(B), \959(__v4sf)(__m128)(W), (__mmask8)(U), \960(int)(R)); })961962#define _mm_maskz_max_round_ss(U, A, B, R) __extension__ ({ \963(__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \964(__v4sf)(__m128)(B), \965(__v4sf)_mm_setzero_ps(), \966(__mmask8)(U), (int)(R)); })967968static __inline__ __m128d __DEFAULT_FN_ATTRS969_mm_mask_max_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {970return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A,971(__v2df) __B,972(__v2df) __W,973(__mmask8) __U,974_MM_FROUND_CUR_DIRECTION);975}976977static __inline__ __m128d __DEFAULT_FN_ATTRS978_mm_maskz_max_sd(__mmask8 __U,__m128d __A, __m128d __B) {979return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A,980(__v2df) __B,981(__v2df) _mm_setzero_pd (),982(__mmask8) __U,983_MM_FROUND_CUR_DIRECTION);984}985986#define _mm_max_round_sd(A, B, R) __extension__ ({ \987(__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \988(__v2df)(__m128d)(B), \989(__v2df)_mm_setzero_pd(), \990(__mmask8)-1, (int)(R)); })991992#define _mm_mask_max_round_sd(W, U, A, B, R) __extension__ ({ \993(__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \994(__v2df)(__m128d)(B), \995(__v2df)(__m128d)(W), \996(__mmask8)(U), (int)(R)); })997998#define _mm_maskz_max_round_sd(U, A, B, R) __extension__ ({ \999(__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \1000(__v2df)(__m128d)(B), \1001(__v2df)_mm_setzero_pd(), \1002(__mmask8)(U), (int)(R)); })10031004static __inline __m512i1005__DEFAULT_FN_ATTRS1006_mm512_max_epi32(__m512i __A, __m512i __B)1007{1008return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,1009(__v16si) __B,1010(__v16si)1011_mm512_setzero_si512 (),1012(__mmask16) -1);1013}10141015static __inline__ __m512i __DEFAULT_FN_ATTRS1016_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)1017{1018return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,1019(__v16si) __B,1020(__v16si) __W, __M);1021}10221023static __inline__ __m512i __DEFAULT_FN_ATTRS1024_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)1025{1026return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,1027(__v16si) __B,1028(__v16si)1029_mm512_setzero_si512 (),1030__M);1031}10321033static __inline __m512i __DEFAULT_FN_ATTRS1034_mm512_max_epu32(__m512i __A, __m512i __B)1035{1036return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,1037(__v16si) __B,1038(__v16si)1039_mm512_setzero_si512 (),1040(__mmask16) -1);1041}10421043static __inline__ __m512i __DEFAULT_FN_ATTRS1044_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)1045{1046return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,1047(__v16si) __B,1048(__v16si) __W, __M);1049}10501051static __inline__ __m512i __DEFAULT_FN_ATTRS1052_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)1053{1054return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,1055(__v16si) __B,1056(__v16si)1057_mm512_setzero_si512 (),1058__M);1059}10601061static __inline __m512i __DEFAULT_FN_ATTRS1062_mm512_max_epi64(__m512i __A, __m512i __B)1063{1064return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,1065(__v8di) __B,1066(__v8di)1067_mm512_setzero_si512 (),1068(__mmask8) -1);1069}10701071static __inline__ __m512i __DEFAULT_FN_ATTRS1072_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)1073{1074return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,1075(__v8di) __B,1076(__v8di) __W, __M);1077}10781079static __inline__ __m512i __DEFAULT_FN_ATTRS1080_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)1081{1082return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,1083(__v8di) __B,1084(__v8di)1085_mm512_setzero_si512 (),1086__M);1087}10881089static __inline __m512i __DEFAULT_FN_ATTRS1090_mm512_max_epu64(__m512i __A, __m512i __B)1091{1092return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,1093(__v8di) __B,1094(__v8di)1095_mm512_setzero_si512 (),1096(__mmask8) -1);1097}10981099static __inline__ __m512i __DEFAULT_FN_ATTRS1100_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)1101{1102return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,1103(__v8di) __B,1104(__v8di) __W, __M);1105}11061107static __inline__ __m512i __DEFAULT_FN_ATTRS1108_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)1109{1110return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,1111(__v8di) __B,1112(__v8di)1113_mm512_setzero_si512 (),1114__M);1115}11161117#define _mm512_mask_min_round_pd(W, U, A, B, R) __extension__ ({ \1118(__m512d)__builtin_ia32_minpd512_mask((__v8df)(__m512d)(A), \1119(__v8df)(__m512d)(B), \1120(__v8df)(__m512d)(W), (__mmask8)(U), \1121(int)(R)); })11221123#define _mm512_maskz_min_round_pd(U, A, B, R) __extension__ ({ \1124(__m512d)__builtin_ia32_minpd512_mask((__v8df)(__m512d)(A), \1125(__v8df)(__m512d)(B), \1126(__v8df)_mm512_setzero_pd(), \1127(__mmask8)(U), (int)(R)); })11281129#define _mm512_min_round_pd(A, B, R) __extension__ ({ \1130(__m512d)__builtin_ia32_minpd512_mask((__v8df)(__m512d)(A), \1131(__v8df)(__m512d)(B), \1132(__v8df)_mm512_undefined_pd(), \1133(__mmask8)-1, (int)(R)); })11341135static __inline__ __m512d __DEFAULT_FN_ATTRS1136_mm512_min_pd(__m512d __A, __m512d __B)1137{1138return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,1139(__v8df) __B,1140(__v8df)1141_mm512_setzero_pd (),1142(__mmask8) -1,1143_MM_FROUND_CUR_DIRECTION);1144}11451146static __inline__ __m512d __DEFAULT_FN_ATTRS1147_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)1148{1149return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,1150(__v8df) __B,1151(__v8df) __W,1152(__mmask8) __U,1153_MM_FROUND_CUR_DIRECTION);1154}11551156#define _mm512_mask_min_round_ps(W, U, A, B, R) __extension__ ({ \1157(__m512)__builtin_ia32_minps512_mask((__v16sf)(__m512)(A), \1158(__v16sf)(__m512)(B), \1159(__v16sf)(__m512)(W), (__mmask16)(U), \1160(int)(R)); })11611162#define _mm512_maskz_min_round_ps(U, A, B, R) __extension__ ({ \1163(__m512)__builtin_ia32_minps512_mask((__v16sf)(__m512)(A), \1164(__v16sf)(__m512)(B), \1165(__v16sf)_mm512_setzero_ps(), \1166(__mmask16)(U), (int)(R)); })11671168#define _mm512_min_round_ps(A, B, R) __extension__ ({ \1169(__m512)__builtin_ia32_minps512_mask((__v16sf)(__m512)(A), \1170(__v16sf)(__m512)(B), \1171(__v16sf)_mm512_undefined_ps(), \1172(__mmask16)-1, (int)(R)); })11731174static __inline__ __m512d __DEFAULT_FN_ATTRS1175_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)1176{1177return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,1178(__v8df) __B,1179(__v8df)1180_mm512_setzero_pd (),1181(__mmask8) __U,1182_MM_FROUND_CUR_DIRECTION);1183}11841185static __inline__ __m512 __DEFAULT_FN_ATTRS1186_mm512_min_ps(__m512 __A, __m512 __B)1187{1188return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,1189(__v16sf) __B,1190(__v16sf)1191_mm512_setzero_ps (),1192(__mmask16) -1,1193_MM_FROUND_CUR_DIRECTION);1194}11951196static __inline__ __m512 __DEFAULT_FN_ATTRS1197_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)1198{1199return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,1200(__v16sf) __B,1201(__v16sf) __W,1202(__mmask16) __U,1203_MM_FROUND_CUR_DIRECTION);1204}12051206static __inline__ __m512 __DEFAULT_FN_ATTRS1207_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)1208{1209return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,1210(__v16sf) __B,1211(__v16sf)1212_mm512_setzero_ps (),1213(__mmask16) __U,1214_MM_FROUND_CUR_DIRECTION);1215}12161217static __inline__ __m128 __DEFAULT_FN_ATTRS1218_mm_mask_min_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {1219return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A,1220(__v4sf) __B,1221(__v4sf) __W,1222(__mmask8) __U,1223_MM_FROUND_CUR_DIRECTION);1224}12251226static __inline__ __m128 __DEFAULT_FN_ATTRS1227_mm_maskz_min_ss(__mmask8 __U,__m128 __A, __m128 __B) {1228return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A,1229(__v4sf) __B,1230(__v4sf) _mm_setzero_ps (),1231(__mmask8) __U,1232_MM_FROUND_CUR_DIRECTION);1233}12341235#define _mm_min_round_ss(A, B, R) __extension__ ({ \1236(__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \1237(__v4sf)(__m128)(B), \1238(__v4sf)_mm_setzero_ps(), \1239(__mmask8)-1, (int)(R)); })12401241#define _mm_mask_min_round_ss(W, U, A, B, R) __extension__ ({ \1242(__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \1243(__v4sf)(__m128)(B), \1244(__v4sf)(__m128)(W), (__mmask8)(U), \1245(int)(R)); })12461247#define _mm_maskz_min_round_ss(U, A, B, R) __extension__ ({ \1248(__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \1249(__v4sf)(__m128)(B), \1250(__v4sf)_mm_setzero_ps(), \1251(__mmask8)(U), (int)(R)); })12521253static __inline__ __m128d __DEFAULT_FN_ATTRS1254_mm_mask_min_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {1255return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A,1256(__v2df) __B,1257(__v2df) __W,1258(__mmask8) __U,1259_MM_FROUND_CUR_DIRECTION);1260}12611262static __inline__ __m128d __DEFAULT_FN_ATTRS1263_mm_maskz_min_sd(__mmask8 __U,__m128d __A, __m128d __B) {1264return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A,1265(__v2df) __B,1266(__v2df) _mm_setzero_pd (),1267(__mmask8) __U,1268_MM_FROUND_CUR_DIRECTION);1269}12701271#define _mm_min_round_sd(A, B, R) __extension__ ({ \1272(__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \1273(__v2df)(__m128d)(B), \1274(__v2df)_mm_setzero_pd(), \1275(__mmask8)-1, (int)(R)); })12761277#define _mm_mask_min_round_sd(W, U, A, B, R) __extension__ ({ \1278(__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \1279(__v2df)(__m128d)(B), \1280(__v2df)(__m128d)(W), \1281(__mmask8)(U), (int)(R)); })12821283#define _mm_maskz_min_round_sd(U, A, B, R) __extension__ ({ \1284(__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \1285(__v2df)(__m128d)(B), \1286(__v2df)_mm_setzero_pd(), \1287(__mmask8)(U), (int)(R)); })12881289static __inline __m512i1290__DEFAULT_FN_ATTRS1291_mm512_min_epi32(__m512i __A, __m512i __B)1292{1293return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,1294(__v16si) __B,1295(__v16si)1296_mm512_setzero_si512 (),1297(__mmask16) -1);1298}12991300static __inline__ __m512i __DEFAULT_FN_ATTRS1301_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)1302{1303return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,1304(__v16si) __B,1305(__v16si) __W, __M);1306}13071308static __inline__ __m512i __DEFAULT_FN_ATTRS1309_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)1310{1311return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,1312(__v16si) __B,1313(__v16si)1314_mm512_setzero_si512 (),1315__M);1316}13171318static __inline __m512i __DEFAULT_FN_ATTRS1319_mm512_min_epu32(__m512i __A, __m512i __B)1320{1321return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,1322(__v16si) __B,1323(__v16si)1324_mm512_setzero_si512 (),1325(__mmask16) -1);1326}13271328static __inline__ __m512i __DEFAULT_FN_ATTRS1329_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)1330{1331return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,1332(__v16si) __B,1333(__v16si) __W, __M);1334}13351336static __inline__ __m512i __DEFAULT_FN_ATTRS1337_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)1338{1339return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,1340(__v16si) __B,1341(__v16si)1342_mm512_setzero_si512 (),1343__M);1344}13451346static __inline __m512i __DEFAULT_FN_ATTRS1347_mm512_min_epi64(__m512i __A, __m512i __B)1348{1349return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,1350(__v8di) __B,1351(__v8di)1352_mm512_setzero_si512 (),1353(__mmask8) -1);1354}13551356static __inline__ __m512i __DEFAULT_FN_ATTRS1357_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)1358{1359return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,1360(__v8di) __B,1361(__v8di) __W, __M);1362}13631364static __inline__ __m512i __DEFAULT_FN_ATTRS1365_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)1366{1367return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,1368(__v8di) __B,1369(__v8di)1370_mm512_setzero_si512 (),1371__M);1372}13731374static __inline __m512i __DEFAULT_FN_ATTRS1375_mm512_min_epu64(__m512i __A, __m512i __B)1376{1377return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,1378(__v8di) __B,1379(__v8di)1380_mm512_setzero_si512 (),1381(__mmask8) -1);1382}13831384static __inline__ __m512i __DEFAULT_FN_ATTRS1385_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)1386{1387return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,1388(__v8di) __B,1389(__v8di) __W, __M);1390}13911392static __inline__ __m512i __DEFAULT_FN_ATTRS1393_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)1394{1395return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,1396(__v8di) __B,1397(__v8di)1398_mm512_setzero_si512 (),1399__M);1400}14011402static __inline __m512i __DEFAULT_FN_ATTRS1403_mm512_mul_epi32(__m512i __X, __m512i __Y)1404{1405return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,1406(__v16si) __Y,1407(__v8di)1408_mm512_setzero_si512 (),1409(__mmask8) -1);1410}14111412static __inline __m512i __DEFAULT_FN_ATTRS1413_mm512_mask_mul_epi32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)1414{1415return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,1416(__v16si) __Y,1417(__v8di) __W, __M);1418}14191420static __inline __m512i __DEFAULT_FN_ATTRS1421_mm512_maskz_mul_epi32 (__mmask8 __M, __m512i __X, __m512i __Y)1422{1423return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,1424(__v16si) __Y,1425(__v8di)1426_mm512_setzero_si512 (),1427__M);1428}14291430static __inline __m512i __DEFAULT_FN_ATTRS1431_mm512_mul_epu32(__m512i __X, __m512i __Y)1432{1433return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,1434(__v16si) __Y,1435(__v8di)1436_mm512_setzero_si512 (),1437(__mmask8) -1);1438}14391440static __inline __m512i __DEFAULT_FN_ATTRS1441_mm512_mask_mul_epu32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)1442{1443return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,1444(__v16si) __Y,1445(__v8di) __W, __M);1446}14471448static __inline __m512i __DEFAULT_FN_ATTRS1449_mm512_maskz_mul_epu32 (__mmask8 __M, __m512i __X, __m512i __Y)1450{1451return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,1452(__v16si) __Y,1453(__v8di)1454_mm512_setzero_si512 (),1455__M);1456}14571458static __inline __m512i __DEFAULT_FN_ATTRS1459_mm512_mullo_epi32 (__m512i __A, __m512i __B)1460{1461return (__m512i) ((__v16su) __A * (__v16su) __B);1462}14631464static __inline __m512i __DEFAULT_FN_ATTRS1465_mm512_maskz_mullo_epi32 (__mmask16 __M, __m512i __A, __m512i __B)1466{1467return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,1468(__v16si) __B,1469(__v16si)1470_mm512_setzero_si512 (),1471__M);1472}14731474static __inline __m512i __DEFAULT_FN_ATTRS1475_mm512_mask_mullo_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)1476{1477return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,1478(__v16si) __B,1479(__v16si) __W, __M);1480}14811482#define _mm512_mask_sqrt_round_pd(W, U, A, R) __extension__ ({ \1483(__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)(__m512d)(A), \1484(__v8df)(__m512d)(W), (__mmask8)(U), \1485(int)(R)); })14861487#define _mm512_maskz_sqrt_round_pd(U, A, R) __extension__ ({ \1488(__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)(__m512d)(A), \1489(__v8df)_mm512_setzero_pd(), \1490(__mmask8)(U), (int)(R)); })14911492#define _mm512_sqrt_round_pd(A, R) __extension__ ({ \1493(__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)(__m512d)(A), \1494(__v8df)_mm512_undefined_pd(), \1495(__mmask8)-1, (int)(R)); })14961497static __inline__ __m512d __DEFAULT_FN_ATTRS1498_mm512_sqrt_pd(__m512d __a)1499{1500return (__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)__a,1501(__v8df) _mm512_setzero_pd (),1502(__mmask8) -1,1503_MM_FROUND_CUR_DIRECTION);1504}15051506static __inline__ __m512d __DEFAULT_FN_ATTRS1507_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)1508{1509return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,1510(__v8df) __W,1511(__mmask8) __U,1512_MM_FROUND_CUR_DIRECTION);1513}15141515static __inline__ __m512d __DEFAULT_FN_ATTRS1516_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)1517{1518return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,1519(__v8df)1520_mm512_setzero_pd (),1521(__mmask8) __U,1522_MM_FROUND_CUR_DIRECTION);1523}15241525#define _mm512_mask_sqrt_round_ps(W, U, A, R) __extension__ ({ \1526(__m512)__builtin_ia32_sqrtps512_mask((__v16sf)(__m512)(A), \1527(__v16sf)(__m512)(W), (__mmask16)(U), \1528(int)(R)); })15291530#define _mm512_maskz_sqrt_round_ps(U, A, R) __extension__ ({ \1531(__m512)__builtin_ia32_sqrtps512_mask((__v16sf)(__m512)(A), \1532(__v16sf)_mm512_setzero_ps(), \1533(__mmask16)(U), (int)(R)); })15341535#define _mm512_sqrt_round_ps(A, R) __extension__ ({ \1536(__m512)__builtin_ia32_sqrtps512_mask((__v16sf)(__m512)(A), \1537(__v16sf)_mm512_undefined_ps(), \1538(__mmask16)-1, (int)(R)); })15391540static __inline__ __m512 __DEFAULT_FN_ATTRS1541_mm512_sqrt_ps(__m512 __a)1542{1543return (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)__a,1544(__v16sf) _mm512_setzero_ps (),1545(__mmask16) -1,1546_MM_FROUND_CUR_DIRECTION);1547}15481549static __inline__ __m512 __DEFAULT_FN_ATTRS1550_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)1551{1552return (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)__A,1553(__v16sf) __W,1554(__mmask16) __U,1555_MM_FROUND_CUR_DIRECTION);1556}15571558static __inline__ __m512 __DEFAULT_FN_ATTRS1559_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)1560{1561return (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)__A,1562(__v16sf) _mm512_setzero_ps (),1563(__mmask16) __U,1564_MM_FROUND_CUR_DIRECTION);1565}15661567static __inline__ __m512d __DEFAULT_FN_ATTRS1568_mm512_rsqrt14_pd(__m512d __A)1569{1570return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,1571(__v8df)1572_mm512_setzero_pd (),1573(__mmask8) -1);}15741575static __inline__ __m512d __DEFAULT_FN_ATTRS1576_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)1577{1578return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,1579(__v8df) __W,1580(__mmask8) __U);1581}15821583static __inline__ __m512d __DEFAULT_FN_ATTRS1584_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)1585{1586return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,1587(__v8df)1588_mm512_setzero_pd (),1589(__mmask8) __U);1590}15911592static __inline__ __m512 __DEFAULT_FN_ATTRS1593_mm512_rsqrt14_ps(__m512 __A)1594{1595return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,1596(__v16sf)1597_mm512_setzero_ps (),1598(__mmask16) -1);1599}16001601static __inline__ __m512 __DEFAULT_FN_ATTRS1602_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)1603{1604return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,1605(__v16sf) __W,1606(__mmask16) __U);1607}16081609static __inline__ __m512 __DEFAULT_FN_ATTRS1610_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)1611{1612return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,1613(__v16sf)1614_mm512_setzero_ps (),1615(__mmask16) __U);1616}16171618static __inline__ __m128 __DEFAULT_FN_ATTRS1619_mm_rsqrt14_ss(__m128 __A, __m128 __B)1620{1621return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,1622(__v4sf) __B,1623(__v4sf)1624_mm_setzero_ps (),1625(__mmask8) -1);1626}16271628static __inline__ __m128 __DEFAULT_FN_ATTRS1629_mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)1630{1631return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,1632(__v4sf) __B,1633(__v4sf) __W,1634(__mmask8) __U);1635}16361637static __inline__ __m128 __DEFAULT_FN_ATTRS1638_mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B)1639{1640return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,1641(__v4sf) __B,1642(__v4sf) _mm_setzero_ps (),1643(__mmask8) __U);1644}16451646static __inline__ __m128d __DEFAULT_FN_ATTRS1647_mm_rsqrt14_sd(__m128d __A, __m128d __B)1648{1649return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __A,1650(__v2df) __B,1651(__v2df)1652_mm_setzero_pd (),1653(__mmask8) -1);1654}16551656static __inline__ __m128d __DEFAULT_FN_ATTRS1657_mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)1658{1659return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A,1660(__v2df) __B,1661(__v2df) __W,1662(__mmask8) __U);1663}16641665static __inline__ __m128d __DEFAULT_FN_ATTRS1666_mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B)1667{1668return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A,1669(__v2df) __B,1670(__v2df) _mm_setzero_pd (),1671(__mmask8) __U);1672}16731674static __inline__ __m512d __DEFAULT_FN_ATTRS1675_mm512_rcp14_pd(__m512d __A)1676{1677return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,1678(__v8df)1679_mm512_setzero_pd (),1680(__mmask8) -1);1681}16821683static __inline__ __m512d __DEFAULT_FN_ATTRS1684_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)1685{1686return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,1687(__v8df) __W,1688(__mmask8) __U);1689}16901691static __inline__ __m512d __DEFAULT_FN_ATTRS1692_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)1693{1694return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,1695(__v8df)1696_mm512_setzero_pd (),1697(__mmask8) __U);1698}16991700static __inline__ __m512 __DEFAULT_FN_ATTRS1701_mm512_rcp14_ps(__m512 __A)1702{1703return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,1704(__v16sf)1705_mm512_setzero_ps (),1706(__mmask16) -1);1707}17081709static __inline__ __m512 __DEFAULT_FN_ATTRS1710_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)1711{1712return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,1713(__v16sf) __W,1714(__mmask16) __U);1715}17161717static __inline__ __m512 __DEFAULT_FN_ATTRS1718_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)1719{1720return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,1721(__v16sf)1722_mm512_setzero_ps (),1723(__mmask16) __U);1724}17251726static __inline__ __m128 __DEFAULT_FN_ATTRS1727_mm_rcp14_ss(__m128 __A, __m128 __B)1728{1729return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,1730(__v4sf) __B,1731(__v4sf)1732_mm_setzero_ps (),1733(__mmask8) -1);1734}17351736static __inline__ __m128 __DEFAULT_FN_ATTRS1737_mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)1738{1739return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,1740(__v4sf) __B,1741(__v4sf) __W,1742(__mmask8) __U);1743}17441745static __inline__ __m128 __DEFAULT_FN_ATTRS1746_mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B)1747{1748return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,1749(__v4sf) __B,1750(__v4sf) _mm_setzero_ps (),1751(__mmask8) __U);1752}17531754static __inline__ __m128d __DEFAULT_FN_ATTRS1755_mm_rcp14_sd(__m128d __A, __m128d __B)1756{1757return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __A,1758(__v2df) __B,1759(__v2df)1760_mm_setzero_pd (),1761(__mmask8) -1);1762}17631764static __inline__ __m128d __DEFAULT_FN_ATTRS1765_mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)1766{1767return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A,1768(__v2df) __B,1769(__v2df) __W,1770(__mmask8) __U);1771}17721773static __inline__ __m128d __DEFAULT_FN_ATTRS1774_mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B)1775{1776return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A,1777(__v2df) __B,1778(__v2df) _mm_setzero_pd (),1779(__mmask8) __U);1780}17811782static __inline __m512 __DEFAULT_FN_ATTRS1783_mm512_floor_ps(__m512 __A)1784{1785return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,1786_MM_FROUND_FLOOR,1787(__v16sf) __A, -1,1788_MM_FROUND_CUR_DIRECTION);1789}17901791static __inline__ __m512 __DEFAULT_FN_ATTRS1792_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)1793{1794return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,1795_MM_FROUND_FLOOR,1796(__v16sf) __W, __U,1797_MM_FROUND_CUR_DIRECTION);1798}17991800static __inline __m512d __DEFAULT_FN_ATTRS1801_mm512_floor_pd(__m512d __A)1802{1803return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,1804_MM_FROUND_FLOOR,1805(__v8df) __A, -1,1806_MM_FROUND_CUR_DIRECTION);1807}18081809static __inline__ __m512d __DEFAULT_FN_ATTRS1810_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)1811{1812return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,1813_MM_FROUND_FLOOR,1814(__v8df) __W, __U,1815_MM_FROUND_CUR_DIRECTION);1816}18171818static __inline__ __m512 __DEFAULT_FN_ATTRS1819_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)1820{1821return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,1822_MM_FROUND_CEIL,1823(__v16sf) __W, __U,1824_MM_FROUND_CUR_DIRECTION);1825}18261827static __inline __m512 __DEFAULT_FN_ATTRS1828_mm512_ceil_ps(__m512 __A)1829{1830return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,1831_MM_FROUND_CEIL,1832(__v16sf) __A, -1,1833_MM_FROUND_CUR_DIRECTION);1834}18351836static __inline __m512d __DEFAULT_FN_ATTRS1837_mm512_ceil_pd(__m512d __A)1838{1839return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,1840_MM_FROUND_CEIL,1841(__v8df) __A, -1,1842_MM_FROUND_CUR_DIRECTION);1843}18441845static __inline__ __m512d __DEFAULT_FN_ATTRS1846_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)1847{1848return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,1849_MM_FROUND_CEIL,1850(__v8df) __W, __U,1851_MM_FROUND_CUR_DIRECTION);1852}18531854static __inline __m512i __DEFAULT_FN_ATTRS1855_mm512_abs_epi64(__m512i __A)1856{1857return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,1858(__v8di)1859_mm512_setzero_si512 (),1860(__mmask8) -1);1861}18621863static __inline__ __m512i __DEFAULT_FN_ATTRS1864_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)1865{1866return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,1867(__v8di) __W,1868(__mmask8) __U);1869}18701871static __inline__ __m512i __DEFAULT_FN_ATTRS1872_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)1873{1874return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,1875(__v8di)1876_mm512_setzero_si512 (),1877(__mmask8) __U);1878}18791880static __inline __m512i __DEFAULT_FN_ATTRS1881_mm512_abs_epi32(__m512i __A)1882{1883return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,1884(__v16si)1885_mm512_setzero_si512 (),1886(__mmask16) -1);1887}18881889static __inline__ __m512i __DEFAULT_FN_ATTRS1890_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)1891{1892return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,1893(__v16si) __W,1894(__mmask16) __U);1895}18961897static __inline__ __m512i __DEFAULT_FN_ATTRS1898_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)1899{1900return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,1901(__v16si)1902_mm512_setzero_si512 (),1903(__mmask16) __U);1904}19051906static __inline__ __m128 __DEFAULT_FN_ATTRS1907_mm_mask_add_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {1908return (__m128) __builtin_ia32_addss_round_mask ((__v4sf) __A,1909(__v4sf) __B,1910(__v4sf) __W,1911(__mmask8) __U,1912_MM_FROUND_CUR_DIRECTION);1913}19141915static __inline__ __m128 __DEFAULT_FN_ATTRS1916_mm_maskz_add_ss(__mmask8 __U,__m128 __A, __m128 __B) {1917return (__m128) __builtin_ia32_addss_round_mask ((__v4sf) __A,1918(__v4sf) __B,1919(__v4sf) _mm_setzero_ps (),1920(__mmask8) __U,1921_MM_FROUND_CUR_DIRECTION);1922}19231924#define _mm_add_round_ss(A, B, R) __extension__ ({ \1925(__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \1926(__v4sf)(__m128)(B), \1927(__v4sf)_mm_setzero_ps(), \1928(__mmask8)-1, (int)(R)); })19291930#define _mm_mask_add_round_ss(W, U, A, B, R) __extension__ ({ \1931(__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \1932(__v4sf)(__m128)(B), \1933(__v4sf)(__m128)(W), (__mmask8)(U), \1934(int)(R)); })19351936#define _mm_maskz_add_round_ss(U, A, B, R) __extension__ ({ \1937(__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \1938(__v4sf)(__m128)(B), \1939(__v4sf)_mm_setzero_ps(), \1940(__mmask8)(U), (int)(R)); })19411942static __inline__ __m128d __DEFAULT_FN_ATTRS1943_mm_mask_add_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {1944return (__m128d) __builtin_ia32_addsd_round_mask ((__v2df) __A,1945(__v2df) __B,1946(__v2df) __W,1947(__mmask8) __U,1948_MM_FROUND_CUR_DIRECTION);1949}19501951static __inline__ __m128d __DEFAULT_FN_ATTRS1952_mm_maskz_add_sd(__mmask8 __U,__m128d __A, __m128d __B) {1953return (__m128d) __builtin_ia32_addsd_round_mask ((__v2df) __A,1954(__v2df) __B,1955(__v2df) _mm_setzero_pd (),1956(__mmask8) __U,1957_MM_FROUND_CUR_DIRECTION);1958}1959#define _mm_add_round_sd(A, B, R) __extension__ ({ \1960(__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \1961(__v2df)(__m128d)(B), \1962(__v2df)_mm_setzero_pd(), \1963(__mmask8)-1, (int)(R)); })19641965#define _mm_mask_add_round_sd(W, U, A, B, R) __extension__ ({ \1966(__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \1967(__v2df)(__m128d)(B), \1968(__v2df)(__m128d)(W), \1969(__mmask8)(U), (int)(R)); })19701971#define _mm_maskz_add_round_sd(U, A, B, R) __extension__ ({ \1972(__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \1973(__v2df)(__m128d)(B), \1974(__v2df)_mm_setzero_pd(), \1975(__mmask8)(U), (int)(R)); })19761977static __inline__ __m512d __DEFAULT_FN_ATTRS1978_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {1979return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,1980(__v8df) __B,1981(__v8df) __W,1982(__mmask8) __U,1983_MM_FROUND_CUR_DIRECTION);1984}19851986static __inline__ __m512d __DEFAULT_FN_ATTRS1987_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {1988return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,1989(__v8df) __B,1990(__v8df) _mm512_setzero_pd (),1991(__mmask8) __U,1992_MM_FROUND_CUR_DIRECTION);1993}19941995static __inline__ __m512 __DEFAULT_FN_ATTRS1996_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {1997return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,1998(__v16sf) __B,1999(__v16sf) __W,2000(__mmask16) __U,2001_MM_FROUND_CUR_DIRECTION);2002}20032004static __inline__ __m512 __DEFAULT_FN_ATTRS2005_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {2006return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,2007(__v16sf) __B,2008(__v16sf) _mm512_setzero_ps (),2009(__mmask16) __U,2010_MM_FROUND_CUR_DIRECTION);2011}20122013#define _mm512_add_round_pd(A, B, R) __extension__ ({ \2014(__m512d)__builtin_ia32_addpd512_mask((__v8df)(__m512d)(A), \2015(__v8df)(__m512d)(B), \2016(__v8df)_mm512_setzero_pd(), \2017(__mmask8)-1, (int)(R)); })20182019#define _mm512_mask_add_round_pd(W, U, A, B, R) __extension__ ({ \2020(__m512d)__builtin_ia32_addpd512_mask((__v8df)(__m512d)(A), \2021(__v8df)(__m512d)(B), \2022(__v8df)(__m512d)(W), (__mmask8)(U), \2023(int)(R)); })20242025#define _mm512_maskz_add_round_pd(U, A, B, R) __extension__ ({ \2026(__m512d)__builtin_ia32_addpd512_mask((__v8df)(__m512d)(A), \2027(__v8df)(__m512d)(B), \2028(__v8df)_mm512_setzero_pd(), \2029(__mmask8)(U), (int)(R)); })20302031#define _mm512_add_round_ps(A, B, R) __extension__ ({ \2032(__m512)__builtin_ia32_addps512_mask((__v16sf)(__m512)(A), \2033(__v16sf)(__m512)(B), \2034(__v16sf)_mm512_setzero_ps(), \2035(__mmask16)-1, (int)(R)); })20362037#define _mm512_mask_add_round_ps(W, U, A, B, R) __extension__ ({ \2038(__m512)__builtin_ia32_addps512_mask((__v16sf)(__m512)(A), \2039(__v16sf)(__m512)(B), \2040(__v16sf)(__m512)(W), (__mmask16)(U), \2041(int)(R)); })20422043#define _mm512_maskz_add_round_ps(U, A, B, R) __extension__ ({ \2044(__m512)__builtin_ia32_addps512_mask((__v16sf)(__m512)(A), \2045(__v16sf)(__m512)(B), \2046(__v16sf)_mm512_setzero_ps(), \2047(__mmask16)(U), (int)(R)); })20482049static __inline__ __m128 __DEFAULT_FN_ATTRS2050_mm_mask_sub_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {2051return (__m128) __builtin_ia32_subss_round_mask ((__v4sf) __A,2052(__v4sf) __B,2053(__v4sf) __W,2054(__mmask8) __U,2055_MM_FROUND_CUR_DIRECTION);2056}20572058static __inline__ __m128 __DEFAULT_FN_ATTRS2059_mm_maskz_sub_ss(__mmask8 __U,__m128 __A, __m128 __B) {2060return (__m128) __builtin_ia32_subss_round_mask ((__v4sf) __A,2061(__v4sf) __B,2062(__v4sf) _mm_setzero_ps (),2063(__mmask8) __U,2064_MM_FROUND_CUR_DIRECTION);2065}2066#define _mm_sub_round_ss(A, B, R) __extension__ ({ \2067(__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \2068(__v4sf)(__m128)(B), \2069(__v4sf)_mm_setzero_ps(), \2070(__mmask8)-1, (int)(R)); })20712072#define _mm_mask_sub_round_ss(W, U, A, B, R) __extension__ ({ \2073(__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \2074(__v4sf)(__m128)(B), \2075(__v4sf)(__m128)(W), (__mmask8)(U), \2076(int)(R)); })20772078#define _mm_maskz_sub_round_ss(U, A, B, R) __extension__ ({ \2079(__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \2080(__v4sf)(__m128)(B), \2081(__v4sf)_mm_setzero_ps(), \2082(__mmask8)(U), (int)(R)); })20832084static __inline__ __m128d __DEFAULT_FN_ATTRS2085_mm_mask_sub_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {2086return (__m128d) __builtin_ia32_subsd_round_mask ((__v2df) __A,2087(__v2df) __B,2088(__v2df) __W,2089(__mmask8) __U,2090_MM_FROUND_CUR_DIRECTION);2091}20922093static __inline__ __m128d __DEFAULT_FN_ATTRS2094_mm_maskz_sub_sd(__mmask8 __U,__m128d __A, __m128d __B) {2095return (__m128d) __builtin_ia32_subsd_round_mask ((__v2df) __A,2096(__v2df) __B,2097(__v2df) _mm_setzero_pd (),2098(__mmask8) __U,2099_MM_FROUND_CUR_DIRECTION);2100}21012102#define _mm_sub_round_sd(A, B, R) __extension__ ({ \2103(__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \2104(__v2df)(__m128d)(B), \2105(__v2df)_mm_setzero_pd(), \2106(__mmask8)-1, (int)(R)); })21072108#define _mm_mask_sub_round_sd(W, U, A, B, R) __extension__ ({ \2109(__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \2110(__v2df)(__m128d)(B), \2111(__v2df)(__m128d)(W), \2112(__mmask8)(U), (int)(R)); })21132114#define _mm_maskz_sub_round_sd(U, A, B, R) __extension__ ({ \2115(__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \2116(__v2df)(__m128d)(B), \2117(__v2df)_mm_setzero_pd(), \2118(__mmask8)(U), (int)(R)); })21192120static __inline__ __m512d __DEFAULT_FN_ATTRS2121_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {2122return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,2123(__v8df) __B,2124(__v8df) __W,2125(__mmask8) __U,2126_MM_FROUND_CUR_DIRECTION);2127}21282129static __inline__ __m512d __DEFAULT_FN_ATTRS2130_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {2131return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,2132(__v8df) __B,2133(__v8df)2134_mm512_setzero_pd (),2135(__mmask8) __U,2136_MM_FROUND_CUR_DIRECTION);2137}21382139static __inline__ __m512 __DEFAULT_FN_ATTRS2140_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {2141return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,2142(__v16sf) __B,2143(__v16sf) __W,2144(__mmask16) __U,2145_MM_FROUND_CUR_DIRECTION);2146}21472148static __inline__ __m512 __DEFAULT_FN_ATTRS2149_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {2150return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,2151(__v16sf) __B,2152(__v16sf)2153_mm512_setzero_ps (),2154(__mmask16) __U,2155_MM_FROUND_CUR_DIRECTION);2156}21572158#define _mm512_sub_round_pd(A, B, R) __extension__ ({ \2159(__m512d)__builtin_ia32_subpd512_mask((__v8df)(__m512d)(A), \2160(__v8df)(__m512d)(B), \2161(__v8df)_mm512_setzero_pd(), \2162(__mmask8)-1, (int)(R)); })21632164#define _mm512_mask_sub_round_pd(W, U, A, B, R) __extension__ ({ \2165(__m512d)__builtin_ia32_subpd512_mask((__v8df)(__m512d)(A), \2166(__v8df)(__m512d)(B), \2167(__v8df)(__m512d)(W), (__mmask8)(U), \2168(int)(R)); })21692170#define _mm512_maskz_sub_round_pd(U, A, B, R) __extension__ ({ \2171(__m512d)__builtin_ia32_subpd512_mask((__v8df)(__m512d)(A), \2172(__v8df)(__m512d)(B), \2173(__v8df)_mm512_setzero_pd(), \2174(__mmask8)(U), (int)(R)); })21752176#define _mm512_sub_round_ps(A, B, R) __extension__ ({ \2177(__m512)__builtin_ia32_subps512_mask((__v16sf)(__m512)(A), \2178(__v16sf)(__m512)(B), \2179(__v16sf)_mm512_setzero_ps(), \2180(__mmask16)-1, (int)(R)); })21812182#define _mm512_mask_sub_round_ps(W, U, A, B, R) __extension__ ({ \2183(__m512)__builtin_ia32_subps512_mask((__v16sf)(__m512)(A), \2184(__v16sf)(__m512)(B), \2185(__v16sf)(__m512)(W), (__mmask16)(U), \2186(int)(R)); });21872188#define _mm512_maskz_sub_round_ps(U, A, B, R) __extension__ ({ \2189(__m512)__builtin_ia32_subps512_mask((__v16sf)(__m512)(A), \2190(__v16sf)(__m512)(B), \2191(__v16sf)_mm512_setzero_ps(), \2192(__mmask16)(U), (int)(R)); });21932194static __inline__ __m128 __DEFAULT_FN_ATTRS2195_mm_mask_mul_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {2196return (__m128) __builtin_ia32_mulss_round_mask ((__v4sf) __A,2197(__v4sf) __B,2198(__v4sf) __W,2199(__mmask8) __U,2200_MM_FROUND_CUR_DIRECTION);2201}22022203static __inline__ __m128 __DEFAULT_FN_ATTRS2204_mm_maskz_mul_ss(__mmask8 __U,__m128 __A, __m128 __B) {2205return (__m128) __builtin_ia32_mulss_round_mask ((__v4sf) __A,2206(__v4sf) __B,2207(__v4sf) _mm_setzero_ps (),2208(__mmask8) __U,2209_MM_FROUND_CUR_DIRECTION);2210}2211#define _mm_mul_round_ss(A, B, R) __extension__ ({ \2212(__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \2213(__v4sf)(__m128)(B), \2214(__v4sf)_mm_setzero_ps(), \2215(__mmask8)-1, (int)(R)); })22162217#define _mm_mask_mul_round_ss(W, U, A, B, R) __extension__ ({ \2218(__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \2219(__v4sf)(__m128)(B), \2220(__v4sf)(__m128)(W), (__mmask8)(U), \2221(int)(R)); })22222223#define _mm_maskz_mul_round_ss(U, A, B, R) __extension__ ({ \2224(__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \2225(__v4sf)(__m128)(B), \2226(__v4sf)_mm_setzero_ps(), \2227(__mmask8)(U), (int)(R)); })22282229static __inline__ __m128d __DEFAULT_FN_ATTRS2230_mm_mask_mul_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {2231return (__m128d) __builtin_ia32_mulsd_round_mask ((__v2df) __A,2232(__v2df) __B,2233(__v2df) __W,2234(__mmask8) __U,2235_MM_FROUND_CUR_DIRECTION);2236}22372238static __inline__ __m128d __DEFAULT_FN_ATTRS2239_mm_maskz_mul_sd(__mmask8 __U,__m128d __A, __m128d __B) {2240return (__m128d) __builtin_ia32_mulsd_round_mask ((__v2df) __A,2241(__v2df) __B,2242(__v2df) _mm_setzero_pd (),2243(__mmask8) __U,2244_MM_FROUND_CUR_DIRECTION);2245}22462247#define _mm_mul_round_sd(A, B, R) __extension__ ({ \2248(__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \2249(__v2df)(__m128d)(B), \2250(__v2df)_mm_setzero_pd(), \2251(__mmask8)-1, (int)(R)); })22522253#define _mm_mask_mul_round_sd(W, U, A, B, R) __extension__ ({ \2254(__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \2255(__v2df)(__m128d)(B), \2256(__v2df)(__m128d)(W), \2257(__mmask8)(U), (int)(R)); })22582259#define _mm_maskz_mul_round_sd(U, A, B, R) __extension__ ({ \2260(__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \2261(__v2df)(__m128d)(B), \2262(__v2df)_mm_setzero_pd(), \2263(__mmask8)(U), (int)(R)); })22642265static __inline__ __m512d __DEFAULT_FN_ATTRS2266_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {2267return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,2268(__v8df) __B,2269(__v8df) __W,2270(__mmask8) __U,2271_MM_FROUND_CUR_DIRECTION);2272}22732274static __inline__ __m512d __DEFAULT_FN_ATTRS2275_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {2276return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,2277(__v8df) __B,2278(__v8df)2279_mm512_setzero_pd (),2280(__mmask8) __U,2281_MM_FROUND_CUR_DIRECTION);2282}22832284static __inline__ __m512 __DEFAULT_FN_ATTRS2285_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {2286return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,2287(__v16sf) __B,2288(__v16sf) __W,2289(__mmask16) __U,2290_MM_FROUND_CUR_DIRECTION);2291}22922293static __inline__ __m512 __DEFAULT_FN_ATTRS2294_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {2295return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,2296(__v16sf) __B,2297(__v16sf)2298_mm512_setzero_ps (),2299(__mmask16) __U,2300_MM_FROUND_CUR_DIRECTION);2301}23022303#define _mm512_mul_round_pd(A, B, R) __extension__ ({ \2304(__m512d)__builtin_ia32_mulpd512_mask((__v8df)(__m512d)(A), \2305(__v8df)(__m512d)(B), \2306(__v8df)_mm512_setzero_pd(), \2307(__mmask8)-1, (int)(R)); })23082309#define _mm512_mask_mul_round_pd(W, U, A, B, R) __extension__ ({ \2310(__m512d)__builtin_ia32_mulpd512_mask((__v8df)(__m512d)(A), \2311(__v8df)(__m512d)(B), \2312(__v8df)(__m512d)(W), (__mmask8)(U), \2313(int)(R)); })23142315#define _mm512_maskz_mul_round_pd(U, A, B, R) __extension__ ({ \2316(__m512d)__builtin_ia32_mulpd512_mask((__v8df)(__m512d)(A), \2317(__v8df)(__m512d)(B), \2318(__v8df)_mm512_setzero_pd(), \2319(__mmask8)(U), (int)(R)); })23202321#define _mm512_mul_round_ps(A, B, R) __extension__ ({ \2322(__m512)__builtin_ia32_mulps512_mask((__v16sf)(__m512)(A), \2323(__v16sf)(__m512)(B), \2324(__v16sf)_mm512_setzero_ps(), \2325(__mmask16)-1, (int)(R)); })23262327#define _mm512_mask_mul_round_ps(W, U, A, B, R) __extension__ ({ \2328(__m512)__builtin_ia32_mulps512_mask((__v16sf)(__m512)(A), \2329(__v16sf)(__m512)(B), \2330(__v16sf)(__m512)(W), (__mmask16)(U), \2331(int)(R)); });23322333#define _mm512_maskz_mul_round_ps(U, A, B, R) __extension__ ({ \2334(__m512)__builtin_ia32_mulps512_mask((__v16sf)(__m512)(A), \2335(__v16sf)(__m512)(B), \2336(__v16sf)_mm512_setzero_ps(), \2337(__mmask16)(U), (int)(R)); });23382339static __inline__ __m128 __DEFAULT_FN_ATTRS2340_mm_mask_div_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {2341return (__m128) __builtin_ia32_divss_round_mask ((__v4sf) __A,2342(__v4sf) __B,2343(__v4sf) __W,2344(__mmask8) __U,2345_MM_FROUND_CUR_DIRECTION);2346}23472348static __inline__ __m128 __DEFAULT_FN_ATTRS2349_mm_maskz_div_ss(__mmask8 __U,__m128 __A, __m128 __B) {2350return (__m128) __builtin_ia32_divss_round_mask ((__v4sf) __A,2351(__v4sf) __B,2352(__v4sf) _mm_setzero_ps (),2353(__mmask8) __U,2354_MM_FROUND_CUR_DIRECTION);2355}23562357#define _mm_div_round_ss(A, B, R) __extension__ ({ \2358(__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \2359(__v4sf)(__m128)(B), \2360(__v4sf)_mm_setzero_ps(), \2361(__mmask8)-1, (int)(R)); })23622363#define _mm_mask_div_round_ss(W, U, A, B, R) __extension__ ({ \2364(__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \2365(__v4sf)(__m128)(B), \2366(__v4sf)(__m128)(W), (__mmask8)(U), \2367(int)(R)); })23682369#define _mm_maskz_div_round_ss(U, A, B, R) __extension__ ({ \2370(__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \2371(__v4sf)(__m128)(B), \2372(__v4sf)_mm_setzero_ps(), \2373(__mmask8)(U), (int)(R)); })23742375static __inline__ __m128d __DEFAULT_FN_ATTRS2376_mm_mask_div_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {2377return (__m128d) __builtin_ia32_divsd_round_mask ((__v2df) __A,2378(__v2df) __B,2379(__v2df) __W,2380(__mmask8) __U,2381_MM_FROUND_CUR_DIRECTION);2382}23832384static __inline__ __m128d __DEFAULT_FN_ATTRS2385_mm_maskz_div_sd(__mmask8 __U,__m128d __A, __m128d __B) {2386return (__m128d) __builtin_ia32_divsd_round_mask ((__v2df) __A,2387(__v2df) __B,2388(__v2df) _mm_setzero_pd (),2389(__mmask8) __U,2390_MM_FROUND_CUR_DIRECTION);2391}23922393#define _mm_div_round_sd(A, B, R) __extension__ ({ \2394(__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \2395(__v2df)(__m128d)(B), \2396(__v2df)_mm_setzero_pd(), \2397(__mmask8)-1, (int)(R)); })23982399#define _mm_mask_div_round_sd(W, U, A, B, R) __extension__ ({ \2400(__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \2401(__v2df)(__m128d)(B), \2402(__v2df)(__m128d)(W), \2403(__mmask8)(U), (int)(R)); })24042405#define _mm_maskz_div_round_sd(U, A, B, R) __extension__ ({ \2406(__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \2407(__v2df)(__m128d)(B), \2408(__v2df)_mm_setzero_pd(), \2409(__mmask8)(U), (int)(R)); })24102411static __inline __m512d __DEFAULT_FN_ATTRS2412_mm512_div_pd(__m512d __a, __m512d __b)2413{2414return (__m512d)((__v8df)__a/(__v8df)__b);2415}24162417static __inline__ __m512d __DEFAULT_FN_ATTRS2418_mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {2419return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __A,2420(__v8df) __B,2421(__v8df) __W,2422(__mmask8) __U,2423_MM_FROUND_CUR_DIRECTION);2424}24252426static __inline__ __m512d __DEFAULT_FN_ATTRS2427_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {2428return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __A,2429(__v8df) __B,2430(__v8df)2431_mm512_setzero_pd (),2432(__mmask8) __U,2433_MM_FROUND_CUR_DIRECTION);2434}24352436static __inline __m512 __DEFAULT_FN_ATTRS2437_mm512_div_ps(__m512 __a, __m512 __b)2438{2439return (__m512)((__v16sf)__a/(__v16sf)__b);2440}24412442static __inline__ __m512 __DEFAULT_FN_ATTRS2443_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {2444return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,2445(__v16sf) __B,2446(__v16sf) __W,2447(__mmask16) __U,2448_MM_FROUND_CUR_DIRECTION);2449}24502451static __inline__ __m512 __DEFAULT_FN_ATTRS2452_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {2453return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,2454(__v16sf) __B,2455(__v16sf)2456_mm512_setzero_ps (),2457(__mmask16) __U,2458_MM_FROUND_CUR_DIRECTION);2459}24602461#define _mm512_div_round_pd(A, B, R) __extension__ ({ \2462(__m512d)__builtin_ia32_divpd512_mask((__v8df)(__m512d)(A), \2463(__v8df)(__m512d)(B), \2464(__v8df)_mm512_setzero_pd(), \2465(__mmask8)-1, (int)(R)); })24662467#define _mm512_mask_div_round_pd(W, U, A, B, R) __extension__ ({ \2468(__m512d)__builtin_ia32_divpd512_mask((__v8df)(__m512d)(A), \2469(__v8df)(__m512d)(B), \2470(__v8df)(__m512d)(W), (__mmask8)(U), \2471(int)(R)); })24722473#define _mm512_maskz_div_round_pd(U, A, B, R) __extension__ ({ \2474(__m512d)__builtin_ia32_divpd512_mask((__v8df)(__m512d)(A), \2475(__v8df)(__m512d)(B), \2476(__v8df)_mm512_setzero_pd(), \2477(__mmask8)(U), (int)(R)); })24782479#define _mm512_div_round_ps(A, B, R) __extension__ ({ \2480(__m512)__builtin_ia32_divps512_mask((__v16sf)(__m512)(A), \2481(__v16sf)(__m512)(B), \2482(__v16sf)_mm512_setzero_ps(), \2483(__mmask16)-1, (int)(R)); })24842485#define _mm512_mask_div_round_ps(W, U, A, B, R) __extension__ ({ \2486(__m512)__builtin_ia32_divps512_mask((__v16sf)(__m512)(A), \2487(__v16sf)(__m512)(B), \2488(__v16sf)(__m512)(W), (__mmask16)(U), \2489(int)(R)); });24902491#define _mm512_maskz_div_round_ps(U, A, B, R) __extension__ ({ \2492(__m512)__builtin_ia32_divps512_mask((__v16sf)(__m512)(A), \2493(__v16sf)(__m512)(B), \2494(__v16sf)_mm512_setzero_ps(), \2495(__mmask16)(U), (int)(R)); });24962497#define _mm512_roundscale_ps(A, B) __extension__ ({ \2498(__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(A), (int)(B), \2499(__v16sf)(__m512)(A), (__mmask16)-1, \2500_MM_FROUND_CUR_DIRECTION); })25012502#define _mm512_mask_roundscale_ps(A, B, C, imm) __extension__ ({\2503(__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(C), (int)(imm), \2504(__v16sf)(__m512)(A), (__mmask16)(B), \2505_MM_FROUND_CUR_DIRECTION); })25062507#define _mm512_maskz_roundscale_ps(A, B, imm) __extension__ ({\2508(__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(B), (int)(imm), \2509(__v16sf)_mm512_setzero_ps(), \2510(__mmask16)(A), \2511_MM_FROUND_CUR_DIRECTION); })25122513#define _mm512_mask_roundscale_round_ps(A, B, C, imm, R) __extension__ ({ \2514(__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(C), (int)(imm), \2515(__v16sf)(__m512)(A), (__mmask16)(B), \2516(int)(R)); })25172518#define _mm512_maskz_roundscale_round_ps(A, B, imm, R) __extension__ ({ \2519(__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(B), (int)(imm), \2520(__v16sf)_mm512_setzero_ps(), \2521(__mmask16)(A), (int)(R)); })25222523#define _mm512_roundscale_round_ps(A, imm, R) __extension__ ({ \2524(__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(A), (int)(imm), \2525(__v16sf)_mm512_undefined_ps(), \2526(__mmask16)-1, (int)(R)); })25272528#define _mm512_roundscale_pd(A, B) __extension__ ({ \2529(__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(A), (int)(B), \2530(__v8df)(__m512d)(A), (__mmask8)-1, \2531_MM_FROUND_CUR_DIRECTION); })25322533#define _mm512_mask_roundscale_pd(A, B, C, imm) __extension__ ({\2534(__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(C), (int)(imm), \2535(__v8df)(__m512d)(A), (__mmask8)(B), \2536_MM_FROUND_CUR_DIRECTION); })25372538#define _mm512_maskz_roundscale_pd(A, B, imm) __extension__ ({\2539(__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(B), (int)(imm), \2540(__v8df)_mm512_setzero_pd(), \2541(__mmask8)(A), \2542_MM_FROUND_CUR_DIRECTION); })25432544#define _mm512_mask_roundscale_round_pd(A, B, C, imm, R) __extension__ ({ \2545(__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(C), (int)(imm), \2546(__v8df)(__m512d)(A), (__mmask8)(B), \2547(int)(R)); })25482549#define _mm512_maskz_roundscale_round_pd(A, B, imm, R) __extension__ ({ \2550(__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(B), (int)(imm), \2551(__v8df)_mm512_setzero_pd(), \2552(__mmask8)(A), (int)(R)); })25532554#define _mm512_roundscale_round_pd(A, imm, R) __extension__ ({ \2555(__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(A), (int)(imm), \2556(__v8df)_mm512_undefined_pd(), \2557(__mmask8)-1, (int)(R)); })25582559#define _mm512_fmadd_round_pd(A, B, C, R) __extension__ ({ \2560(__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \2561(__v8df)(__m512d)(B), \2562(__v8df)(__m512d)(C), (__mmask8)-1, \2563(int)(R)); })256425652566#define _mm512_mask_fmadd_round_pd(A, U, B, C, R) __extension__ ({ \2567(__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \2568(__v8df)(__m512d)(B), \2569(__v8df)(__m512d)(C), \2570(__mmask8)(U), (int)(R)); })257125722573#define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) __extension__ ({ \2574(__m512d)__builtin_ia32_vfmaddpd512_mask3((__v8df)(__m512d)(A), \2575(__v8df)(__m512d)(B), \2576(__v8df)(__m512d)(C), \2577(__mmask8)(U), (int)(R)); })257825792580#define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) __extension__ ({ \2581(__m512d)__builtin_ia32_vfmaddpd512_maskz((__v8df)(__m512d)(A), \2582(__v8df)(__m512d)(B), \2583(__v8df)(__m512d)(C), \2584(__mmask8)(U), (int)(R)); })258525862587#define _mm512_fmsub_round_pd(A, B, C, R) __extension__ ({ \2588(__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \2589(__v8df)(__m512d)(B), \2590-(__v8df)(__m512d)(C), \2591(__mmask8)-1, (int)(R)); })259225932594#define _mm512_mask_fmsub_round_pd(A, U, B, C, R) __extension__ ({ \2595(__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \2596(__v8df)(__m512d)(B), \2597-(__v8df)(__m512d)(C), \2598(__mmask8)(U), (int)(R)); })259926002601#define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) __extension__ ({ \2602(__m512d)__builtin_ia32_vfmaddpd512_maskz((__v8df)(__m512d)(A), \2603(__v8df)(__m512d)(B), \2604-(__v8df)(__m512d)(C), \2605(__mmask8)(U), (int)(R)); })260626072608#define _mm512_fnmadd_round_pd(A, B, C, R) __extension__ ({ \2609(__m512d)__builtin_ia32_vfmaddpd512_mask(-(__v8df)(__m512d)(A), \2610(__v8df)(__m512d)(B), \2611(__v8df)(__m512d)(C), (__mmask8)-1, \2612(int)(R)); })261326142615#define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) __extension__ ({ \2616(__m512d)__builtin_ia32_vfmaddpd512_mask3(-(__v8df)(__m512d)(A), \2617(__v8df)(__m512d)(B), \2618(__v8df)(__m512d)(C), \2619(__mmask8)(U), (int)(R)); })262026212622#define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) __extension__ ({ \2623(__m512d)__builtin_ia32_vfmaddpd512_maskz(-(__v8df)(__m512d)(A), \2624(__v8df)(__m512d)(B), \2625(__v8df)(__m512d)(C), \2626(__mmask8)(U), (int)(R)); })262726282629#define _mm512_fnmsub_round_pd(A, B, C, R) __extension__ ({ \2630(__m512d)__builtin_ia32_vfmaddpd512_mask(-(__v8df)(__m512d)(A), \2631(__v8df)(__m512d)(B), \2632-(__v8df)(__m512d)(C), \2633(__mmask8)-1, (int)(R)); })263426352636#define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) __extension__ ({ \2637(__m512d)__builtin_ia32_vfmaddpd512_maskz(-(__v8df)(__m512d)(A), \2638(__v8df)(__m512d)(B), \2639-(__v8df)(__m512d)(C), \2640(__mmask8)(U), (int)(R)); })264126422643static __inline__ __m512d __DEFAULT_FN_ATTRS2644_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C)2645{2646return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,2647(__v8df) __B,2648(__v8df) __C,2649(__mmask8) -1,2650_MM_FROUND_CUR_DIRECTION);2651}26522653static __inline__ __m512d __DEFAULT_FN_ATTRS2654_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)2655{2656return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,2657(__v8df) __B,2658(__v8df) __C,2659(__mmask8) __U,2660_MM_FROUND_CUR_DIRECTION);2661}26622663static __inline__ __m512d __DEFAULT_FN_ATTRS2664_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)2665{2666return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,2667(__v8df) __B,2668(__v8df) __C,2669(__mmask8) __U,2670_MM_FROUND_CUR_DIRECTION);2671}26722673static __inline__ __m512d __DEFAULT_FN_ATTRS2674_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)2675{2676return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,2677(__v8df) __B,2678(__v8df) __C,2679(__mmask8) __U,2680_MM_FROUND_CUR_DIRECTION);2681}26822683static __inline__ __m512d __DEFAULT_FN_ATTRS2684_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C)2685{2686return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,2687(__v8df) __B,2688-(__v8df) __C,2689(__mmask8) -1,2690_MM_FROUND_CUR_DIRECTION);2691}26922693static __inline__ __m512d __DEFAULT_FN_ATTRS2694_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)2695{2696return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,2697(__v8df) __B,2698-(__v8df) __C,2699(__mmask8) __U,2700_MM_FROUND_CUR_DIRECTION);2701}27022703static __inline__ __m512d __DEFAULT_FN_ATTRS2704_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)2705{2706return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,2707(__v8df) __B,2708-(__v8df) __C,2709(__mmask8) __U,2710_MM_FROUND_CUR_DIRECTION);2711}27122713static __inline__ __m512d __DEFAULT_FN_ATTRS2714_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C)2715{2716return (__m512d) __builtin_ia32_vfmaddpd512_mask (-(__v8df) __A,2717(__v8df) __B,2718(__v8df) __C,2719(__mmask8) -1,2720_MM_FROUND_CUR_DIRECTION);2721}27222723static __inline__ __m512d __DEFAULT_FN_ATTRS2724_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)2725{2726return (__m512d) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df) __A,2727(__v8df) __B,2728(__v8df) __C,2729(__mmask8) __U,2730_MM_FROUND_CUR_DIRECTION);2731}27322733static __inline__ __m512d __DEFAULT_FN_ATTRS2734_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)2735{2736return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A,2737(__v8df) __B,2738(__v8df) __C,2739(__mmask8) __U,2740_MM_FROUND_CUR_DIRECTION);2741}27422743static __inline__ __m512d __DEFAULT_FN_ATTRS2744_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C)2745{2746return (__m512d) __builtin_ia32_vfmaddpd512_mask (-(__v8df) __A,2747(__v8df) __B,2748-(__v8df) __C,2749(__mmask8) -1,2750_MM_FROUND_CUR_DIRECTION);2751}27522753static __inline__ __m512d __DEFAULT_FN_ATTRS2754_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)2755{2756return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A,2757(__v8df) __B,2758-(__v8df) __C,2759(__mmask8) __U,2760_MM_FROUND_CUR_DIRECTION);2761}27622763#define _mm512_fmadd_round_ps(A, B, C, R) __extension__ ({ \2764(__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \2765(__v16sf)(__m512)(B), \2766(__v16sf)(__m512)(C), (__mmask16)-1, \2767(int)(R)); })276827692770#define _mm512_mask_fmadd_round_ps(A, U, B, C, R) __extension__ ({ \2771(__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \2772(__v16sf)(__m512)(B), \2773(__v16sf)(__m512)(C), \2774(__mmask16)(U), (int)(R)); })277527762777#define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) __extension__ ({ \2778(__m512)__builtin_ia32_vfmaddps512_mask3((__v16sf)(__m512)(A), \2779(__v16sf)(__m512)(B), \2780(__v16sf)(__m512)(C), \2781(__mmask16)(U), (int)(R)); })278227832784#define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) __extension__ ({ \2785(__m512)__builtin_ia32_vfmaddps512_maskz((__v16sf)(__m512)(A), \2786(__v16sf)(__m512)(B), \2787(__v16sf)(__m512)(C), \2788(__mmask16)(U), (int)(R)); })278927902791#define _mm512_fmsub_round_ps(A, B, C, R) __extension__ ({ \2792(__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \2793(__v16sf)(__m512)(B), \2794-(__v16sf)(__m512)(C), \2795(__mmask16)-1, (int)(R)); })279627972798#define _mm512_mask_fmsub_round_ps(A, U, B, C, R) __extension__ ({ \2799(__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \2800(__v16sf)(__m512)(B), \2801-(__v16sf)(__m512)(C), \2802(__mmask16)(U), (int)(R)); })280328042805#define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) __extension__ ({ \2806(__m512)__builtin_ia32_vfmaddps512_maskz((__v16sf)(__m512)(A), \2807(__v16sf)(__m512)(B), \2808-(__v16sf)(__m512)(C), \2809(__mmask16)(U), (int)(R)); })281028112812#define _mm512_fnmadd_round_ps(A, B, C, R) __extension__ ({ \2813(__m512)__builtin_ia32_vfmaddps512_mask(-(__v16sf)(__m512)(A), \2814(__v16sf)(__m512)(B), \2815(__v16sf)(__m512)(C), (__mmask16)-1, \2816(int)(R)); })281728182819#define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) __extension__ ({ \2820(__m512)__builtin_ia32_vfmaddps512_mask3(-(__v16sf)(__m512)(A), \2821(__v16sf)(__m512)(B), \2822(__v16sf)(__m512)(C), \2823(__mmask16)(U), (int)(R)); })282428252826#define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) __extension__ ({ \2827(__m512)__builtin_ia32_vfmaddps512_maskz(-(__v16sf)(__m512)(A), \2828(__v16sf)(__m512)(B), \2829(__v16sf)(__m512)(C), \2830(__mmask16)(U), (int)(R)); })283128322833#define _mm512_fnmsub_round_ps(A, B, C, R) __extension__ ({ \2834(__m512)__builtin_ia32_vfmaddps512_mask(-(__v16sf)(__m512)(A), \2835(__v16sf)(__m512)(B), \2836-(__v16sf)(__m512)(C), \2837(__mmask16)-1, (int)(R)); })283828392840#define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) __extension__ ({ \2841(__m512)__builtin_ia32_vfmaddps512_maskz(-(__v16sf)(__m512)(A), \2842(__v16sf)(__m512)(B), \2843-(__v16sf)(__m512)(C), \2844(__mmask16)(U), (int)(R)); })284528462847static __inline__ __m512 __DEFAULT_FN_ATTRS2848_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C)2849{2850return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,2851(__v16sf) __B,2852(__v16sf) __C,2853(__mmask16) -1,2854_MM_FROUND_CUR_DIRECTION);2855}28562857static __inline__ __m512 __DEFAULT_FN_ATTRS2858_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)2859{2860return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,2861(__v16sf) __B,2862(__v16sf) __C,2863(__mmask16) __U,2864_MM_FROUND_CUR_DIRECTION);2865}28662867static __inline__ __m512 __DEFAULT_FN_ATTRS2868_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)2869{2870return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,2871(__v16sf) __B,2872(__v16sf) __C,2873(__mmask16) __U,2874_MM_FROUND_CUR_DIRECTION);2875}28762877static __inline__ __m512 __DEFAULT_FN_ATTRS2878_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)2879{2880return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,2881(__v16sf) __B,2882(__v16sf) __C,2883(__mmask16) __U,2884_MM_FROUND_CUR_DIRECTION);2885}28862887static __inline__ __m512 __DEFAULT_FN_ATTRS2888_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C)2889{2890return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,2891(__v16sf) __B,2892-(__v16sf) __C,2893(__mmask16) -1,2894_MM_FROUND_CUR_DIRECTION);2895}28962897static __inline__ __m512 __DEFAULT_FN_ATTRS2898_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)2899{2900return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,2901(__v16sf) __B,2902-(__v16sf) __C,2903(__mmask16) __U,2904_MM_FROUND_CUR_DIRECTION);2905}29062907static __inline__ __m512 __DEFAULT_FN_ATTRS2908_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)2909{2910return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,2911(__v16sf) __B,2912-(__v16sf) __C,2913(__mmask16) __U,2914_MM_FROUND_CUR_DIRECTION);2915}29162917static __inline__ __m512 __DEFAULT_FN_ATTRS2918_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C)2919{2920return (__m512) __builtin_ia32_vfmaddps512_mask (-(__v16sf) __A,2921(__v16sf) __B,2922(__v16sf) __C,2923(__mmask16) -1,2924_MM_FROUND_CUR_DIRECTION);2925}29262927static __inline__ __m512 __DEFAULT_FN_ATTRS2928_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)2929{2930return (__m512) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf) __A,2931(__v16sf) __B,2932(__v16sf) __C,2933(__mmask16) __U,2934_MM_FROUND_CUR_DIRECTION);2935}29362937static __inline__ __m512 __DEFAULT_FN_ATTRS2938_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)2939{2940return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A,2941(__v16sf) __B,2942(__v16sf) __C,2943(__mmask16) __U,2944_MM_FROUND_CUR_DIRECTION);2945}29462947static __inline__ __m512 __DEFAULT_FN_ATTRS2948_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C)2949{2950return (__m512) __builtin_ia32_vfmaddps512_mask (-(__v16sf) __A,2951(__v16sf) __B,2952-(__v16sf) __C,2953(__mmask16) -1,2954_MM_FROUND_CUR_DIRECTION);2955}29562957static __inline__ __m512 __DEFAULT_FN_ATTRS2958_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)2959{2960return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A,2961(__v16sf) __B,2962-(__v16sf) __C,2963(__mmask16) __U,2964_MM_FROUND_CUR_DIRECTION);2965}29662967#define _mm512_fmaddsub_round_pd(A, B, C, R) __extension__ ({ \2968(__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \2969(__v8df)(__m512d)(B), \2970(__v8df)(__m512d)(C), \2971(__mmask8)-1, (int)(R)); })297229732974#define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) __extension__ ({ \2975(__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \2976(__v8df)(__m512d)(B), \2977(__v8df)(__m512d)(C), \2978(__mmask8)(U), (int)(R)); })297929802981#define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) __extension__ ({ \2982(__m512d)__builtin_ia32_vfmaddsubpd512_mask3((__v8df)(__m512d)(A), \2983(__v8df)(__m512d)(B), \2984(__v8df)(__m512d)(C), \2985(__mmask8)(U), (int)(R)); })298629872988#define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) __extension__ ({ \2989(__m512d)__builtin_ia32_vfmaddsubpd512_maskz((__v8df)(__m512d)(A), \2990(__v8df)(__m512d)(B), \2991(__v8df)(__m512d)(C), \2992(__mmask8)(U), (int)(R)); })299329942995#define _mm512_fmsubadd_round_pd(A, B, C, R) __extension__ ({ \2996(__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \2997(__v8df)(__m512d)(B), \2998-(__v8df)(__m512d)(C), \2999(__mmask8)-1, (int)(R)); })300030013002#define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) __extension__ ({ \3003(__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \3004(__v8df)(__m512d)(B), \3005-(__v8df)(__m512d)(C), \3006(__mmask8)(U), (int)(R)); })300730083009#define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) __extension__ ({ \3010(__m512d)__builtin_ia32_vfmaddsubpd512_maskz((__v8df)(__m512d)(A), \3011(__v8df)(__m512d)(B), \3012-(__v8df)(__m512d)(C), \3013(__mmask8)(U), (int)(R)); })301430153016static __inline__ __m512d __DEFAULT_FN_ATTRS3017_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C)3018{3019return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,3020(__v8df) __B,3021(__v8df) __C,3022(__mmask8) -1,3023_MM_FROUND_CUR_DIRECTION);3024}30253026static __inline__ __m512d __DEFAULT_FN_ATTRS3027_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)3028{3029return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,3030(__v8df) __B,3031(__v8df) __C,3032(__mmask8) __U,3033_MM_FROUND_CUR_DIRECTION);3034}30353036static __inline__ __m512d __DEFAULT_FN_ATTRS3037_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)3038{3039return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,3040(__v8df) __B,3041(__v8df) __C,3042(__mmask8) __U,3043_MM_FROUND_CUR_DIRECTION);3044}30453046static __inline__ __m512d __DEFAULT_FN_ATTRS3047_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)3048{3049return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,3050(__v8df) __B,3051(__v8df) __C,3052(__mmask8) __U,3053_MM_FROUND_CUR_DIRECTION);3054}30553056static __inline__ __m512d __DEFAULT_FN_ATTRS3057_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C)3058{3059return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,3060(__v8df) __B,3061-(__v8df) __C,3062(__mmask8) -1,3063_MM_FROUND_CUR_DIRECTION);3064}30653066static __inline__ __m512d __DEFAULT_FN_ATTRS3067_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)3068{3069return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,3070(__v8df) __B,3071-(__v8df) __C,3072(__mmask8) __U,3073_MM_FROUND_CUR_DIRECTION);3074}30753076static __inline__ __m512d __DEFAULT_FN_ATTRS3077_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)3078{3079return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,3080(__v8df) __B,3081-(__v8df) __C,3082(__mmask8) __U,3083_MM_FROUND_CUR_DIRECTION);3084}30853086#define _mm512_fmaddsub_round_ps(A, B, C, R) __extension__ ({ \3087(__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \3088(__v16sf)(__m512)(B), \3089(__v16sf)(__m512)(C), \3090(__mmask16)-1, (int)(R)); })309130923093#define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) __extension__ ({ \3094(__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \3095(__v16sf)(__m512)(B), \3096(__v16sf)(__m512)(C), \3097(__mmask16)(U), (int)(R)); })309830993100#define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) __extension__ ({ \3101(__m512)__builtin_ia32_vfmaddsubps512_mask3((__v16sf)(__m512)(A), \3102(__v16sf)(__m512)(B), \3103(__v16sf)(__m512)(C), \3104(__mmask16)(U), (int)(R)); })310531063107#define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) __extension__ ({ \3108(__m512)__builtin_ia32_vfmaddsubps512_maskz((__v16sf)(__m512)(A), \3109(__v16sf)(__m512)(B), \3110(__v16sf)(__m512)(C), \3111(__mmask16)(U), (int)(R)); })311231133114#define _mm512_fmsubadd_round_ps(A, B, C, R) __extension__ ({ \3115(__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \3116(__v16sf)(__m512)(B), \3117-(__v16sf)(__m512)(C), \3118(__mmask16)-1, (int)(R)); })311931203121#define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) __extension__ ({ \3122(__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \3123(__v16sf)(__m512)(B), \3124-(__v16sf)(__m512)(C), \3125(__mmask16)(U), (int)(R)); })312631273128#define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) __extension__ ({ \3129(__m512)__builtin_ia32_vfmaddsubps512_maskz((__v16sf)(__m512)(A), \3130(__v16sf)(__m512)(B), \3131-(__v16sf)(__m512)(C), \3132(__mmask16)(U), (int)(R)); })313331343135static __inline__ __m512 __DEFAULT_FN_ATTRS3136_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C)3137{3138return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,3139(__v16sf) __B,3140(__v16sf) __C,3141(__mmask16) -1,3142_MM_FROUND_CUR_DIRECTION);3143}31443145static __inline__ __m512 __DEFAULT_FN_ATTRS3146_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)3147{3148return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,3149(__v16sf) __B,3150(__v16sf) __C,3151(__mmask16) __U,3152_MM_FROUND_CUR_DIRECTION);3153}31543155static __inline__ __m512 __DEFAULT_FN_ATTRS3156_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)3157{3158return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,3159(__v16sf) __B,3160(__v16sf) __C,3161(__mmask16) __U,3162_MM_FROUND_CUR_DIRECTION);3163}31643165static __inline__ __m512 __DEFAULT_FN_ATTRS3166_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)3167{3168return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,3169(__v16sf) __B,3170(__v16sf) __C,3171(__mmask16) __U,3172_MM_FROUND_CUR_DIRECTION);3173}31743175static __inline__ __m512 __DEFAULT_FN_ATTRS3176_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C)3177{3178return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,3179(__v16sf) __B,3180-(__v16sf) __C,3181(__mmask16) -1,3182_MM_FROUND_CUR_DIRECTION);3183}31843185static __inline__ __m512 __DEFAULT_FN_ATTRS3186_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)3187{3188return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,3189(__v16sf) __B,3190-(__v16sf) __C,3191(__mmask16) __U,3192_MM_FROUND_CUR_DIRECTION);3193}31943195static __inline__ __m512 __DEFAULT_FN_ATTRS3196_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)3197{3198return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,3199(__v16sf) __B,3200-(__v16sf) __C,3201(__mmask16) __U,3202_MM_FROUND_CUR_DIRECTION);3203}32043205#define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) __extension__ ({ \3206(__m512d)__builtin_ia32_vfmsubpd512_mask3((__v8df)(__m512d)(A), \3207(__v8df)(__m512d)(B), \3208(__v8df)(__m512d)(C), \3209(__mmask8)(U), (int)(R)); })321032113212static __inline__ __m512d __DEFAULT_FN_ATTRS3213_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)3214{3215return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,3216(__v8df) __B,3217(__v8df) __C,3218(__mmask8) __U,3219_MM_FROUND_CUR_DIRECTION);3220}32213222#define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) __extension__ ({ \3223(__m512)__builtin_ia32_vfmsubps512_mask3((__v16sf)(__m512)(A), \3224(__v16sf)(__m512)(B), \3225(__v16sf)(__m512)(C), \3226(__mmask16)(U), (int)(R)); })322732283229static __inline__ __m512 __DEFAULT_FN_ATTRS3230_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)3231{3232return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,3233(__v16sf) __B,3234(__v16sf) __C,3235(__mmask16) __U,3236_MM_FROUND_CUR_DIRECTION);3237}32383239#define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) __extension__ ({ \3240(__m512d)__builtin_ia32_vfmsubaddpd512_mask3((__v8df)(__m512d)(A), \3241(__v8df)(__m512d)(B), \3242(__v8df)(__m512d)(C), \3243(__mmask8)(U), (int)(R)); })324432453246static __inline__ __m512d __DEFAULT_FN_ATTRS3247_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)3248{3249return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,3250(__v8df) __B,3251(__v8df) __C,3252(__mmask8) __U,3253_MM_FROUND_CUR_DIRECTION);3254}32553256#define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) __extension__ ({ \3257(__m512)__builtin_ia32_vfmsubaddps512_mask3((__v16sf)(__m512)(A), \3258(__v16sf)(__m512)(B), \3259(__v16sf)(__m512)(C), \3260(__mmask16)(U), (int)(R)); })326132623263static __inline__ __m512 __DEFAULT_FN_ATTRS3264_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)3265{3266return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,3267(__v16sf) __B,3268(__v16sf) __C,3269(__mmask16) __U,3270_MM_FROUND_CUR_DIRECTION);3271}32723273#define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) __extension__ ({ \3274(__m512d)__builtin_ia32_vfnmaddpd512_mask((__v8df)(__m512d)(A), \3275(__v8df)(__m512d)(B), \3276(__v8df)(__m512d)(C), \3277(__mmask8)(U), (int)(R)); })327832793280static __inline__ __m512d __DEFAULT_FN_ATTRS3281_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)3282{3283return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,3284(__v8df) __B,3285(__v8df) __C,3286(__mmask8) __U,3287_MM_FROUND_CUR_DIRECTION);3288}32893290#define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) __extension__ ({ \3291(__m512)__builtin_ia32_vfnmaddps512_mask((__v16sf)(__m512)(A), \3292(__v16sf)(__m512)(B), \3293(__v16sf)(__m512)(C), \3294(__mmask16)(U), (int)(R)); })329532963297static __inline__ __m512 __DEFAULT_FN_ATTRS3298_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)3299{3300return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,3301(__v16sf) __B,3302(__v16sf) __C,3303(__mmask16) __U,3304_MM_FROUND_CUR_DIRECTION);3305}33063307#define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) __extension__ ({ \3308(__m512d)__builtin_ia32_vfnmsubpd512_mask((__v8df)(__m512d)(A), \3309(__v8df)(__m512d)(B), \3310(__v8df)(__m512d)(C), \3311(__mmask8)(U), (int)(R)); })331233133314#define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) __extension__ ({ \3315(__m512d)__builtin_ia32_vfnmsubpd512_mask3((__v8df)(__m512d)(A), \3316(__v8df)(__m512d)(B), \3317(__v8df)(__m512d)(C), \3318(__mmask8)(U), (int)(R)); })331933203321static __inline__ __m512d __DEFAULT_FN_ATTRS3322_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)3323{3324return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,3325(__v8df) __B,3326(__v8df) __C,3327(__mmask8) __U,3328_MM_FROUND_CUR_DIRECTION);3329}33303331static __inline__ __m512d __DEFAULT_FN_ATTRS3332_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)3333{3334return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,3335(__v8df) __B,3336(__v8df) __C,3337(__mmask8) __U,3338_MM_FROUND_CUR_DIRECTION);3339}33403341#define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) __extension__ ({ \3342(__m512)__builtin_ia32_vfnmsubps512_mask((__v16sf)(__m512)(A), \3343(__v16sf)(__m512)(B), \3344(__v16sf)(__m512)(C), \3345(__mmask16)(U), (int)(R)); })334633473348#define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) __extension__ ({ \3349(__m512)__builtin_ia32_vfnmsubps512_mask3((__v16sf)(__m512)(A), \3350(__v16sf)(__m512)(B), \3351(__v16sf)(__m512)(C), \3352(__mmask16)(U), (int)(R)); })335333543355static __inline__ __m512 __DEFAULT_FN_ATTRS3356_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)3357{3358return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,3359(__v16sf) __B,3360(__v16sf) __C,3361(__mmask16) __U,3362_MM_FROUND_CUR_DIRECTION);3363}33643365static __inline__ __m512 __DEFAULT_FN_ATTRS3366_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)3367{3368return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,3369(__v16sf) __B,3370(__v16sf) __C,3371(__mmask16) __U,3372_MM_FROUND_CUR_DIRECTION);3373}3374337533763377/* Vector permutations */33783379static __inline __m512i __DEFAULT_FN_ATTRS3380_mm512_permutex2var_epi32(__m512i __A, __m512i __I, __m512i __B)3381{3382return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I3383/* idx */ ,3384(__v16si) __A,3385(__v16si) __B,3386(__mmask16) -1);3387}33883389static __inline__ __m512i __DEFAULT_FN_ATTRS3390_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U,3391__m512i __I, __m512i __B)3392{3393return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I3394/* idx */ ,3395(__v16si) __A,3396(__v16si) __B,3397(__mmask16) __U);3398}33993400static __inline__ __m512i __DEFAULT_FN_ATTRS3401_mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,3402__m512i __I, __m512i __B)3403{3404return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I3405/* idx */ ,3406(__v16si) __A,3407(__v16si) __B,3408(__mmask16) __U);3409}34103411static __inline __m512i __DEFAULT_FN_ATTRS3412_mm512_permutex2var_epi64(__m512i __A, __m512i __I, __m512i __B)3413{3414return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I3415/* idx */ ,3416(__v8di) __A,3417(__v8di) __B,3418(__mmask8) -1);3419}34203421static __inline__ __m512i __DEFAULT_FN_ATTRS3422_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I,3423__m512i __B)3424{3425return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I3426/* idx */ ,3427(__v8di) __A,3428(__v8di) __B,3429(__mmask8) __U);3430}343134323433static __inline__ __m512i __DEFAULT_FN_ATTRS3434_mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,3435__m512i __I, __m512i __B)3436{3437return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I3438/* idx */ ,3439(__v8di) __A,3440(__v8di) __B,3441(__mmask8) __U);3442}34433444#define _mm512_alignr_epi64(A, B, I) __extension__ ({ \3445(__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \3446(__v8di)(__m512i)(B), (int)(I), \3447(__v8di)_mm512_setzero_si512(), \3448(__mmask8)-1); })34493450#define _mm512_mask_alignr_epi64(W, U, A, B, imm) __extension__({\3451(__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \3452(__v8di)(__m512i)(B), (int)(imm), \3453(__v8di)(__m512i)(W), \3454(__mmask8)(U)); })34553456#define _mm512_maskz_alignr_epi64(U, A, B, imm) __extension__({\3457(__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \3458(__v8di)(__m512i)(B), (int)(imm), \3459(__v8di)_mm512_setzero_si512(), \3460(__mmask8)(U)); })34613462#define _mm512_alignr_epi32(A, B, I) __extension__ ({ \3463(__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \3464(__v16si)(__m512i)(B), (int)(I), \3465(__v16si)_mm512_setzero_si512(), \3466(__mmask16)-1); })34673468#define _mm512_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({\3469(__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \3470(__v16si)(__m512i)(B), (int)(imm), \3471(__v16si)(__m512i)(W), \3472(__mmask16)(U)); })34733474#define _mm512_maskz_alignr_epi32(U, A, B, imm) __extension__({\3475(__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \3476(__v16si)(__m512i)(B), (int)(imm), \3477(__v16si)_mm512_setzero_si512(), \3478(__mmask16)(U)); })3479/* Vector Extract */34803481#define _mm512_extractf64x4_pd(A, I) __extension__ ({ \3482(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(I), \3483(__v4df)_mm256_setzero_si256(), \3484(__mmask8)-1); })34853486#define _mm512_mask_extractf64x4_pd(W, U, A, imm) __extension__ ({\3487(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(imm), \3488(__v4df)(__m256d)(W), \3489(__mmask8)(U)); })34903491#define _mm512_maskz_extractf64x4_pd(U, A, imm) __extension__ ({\3492(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(imm), \3493(__v4df)_mm256_setzero_pd(), \3494(__mmask8)(U)); })34953496#define _mm512_extractf32x4_ps(A, I) __extension__ ({ \3497(__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(I), \3498(__v4sf)_mm_setzero_ps(), \3499(__mmask8)-1); })35003501#define _mm512_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({\3502(__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(imm), \3503(__v4sf)(__m128)(W), \3504(__mmask8)(U)); })35053506#define _mm512_maskz_extractf32x4_ps(U, A, imm) __extension__ ({\3507(__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(imm), \3508(__v4sf)_mm_setzero_ps(), \3509(__mmask8)(U)); })3510/* Vector Blend */35113512static __inline __m512d __DEFAULT_FN_ATTRS3513_mm512_mask_blend_pd(__mmask8 __U, __m512d __A, __m512d __W)3514{3515return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U,3516(__v8df) __W,3517(__v8df) __A);3518}35193520static __inline __m512 __DEFAULT_FN_ATTRS3521_mm512_mask_blend_ps(__mmask16 __U, __m512 __A, __m512 __W)3522{3523return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U,3524(__v16sf) __W,3525(__v16sf) __A);3526}35273528static __inline __m512i __DEFAULT_FN_ATTRS3529_mm512_mask_blend_epi64(__mmask8 __U, __m512i __A, __m512i __W)3530{3531return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U,3532(__v8di) __W,3533(__v8di) __A);3534}35353536static __inline __m512i __DEFAULT_FN_ATTRS3537_mm512_mask_blend_epi32(__mmask16 __U, __m512i __A, __m512i __W)3538{3539return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U,3540(__v16si) __W,3541(__v16si) __A);3542}35433544/* Compare */35453546#define _mm512_cmp_round_ps_mask(A, B, P, R) __extension__ ({ \3547(__mmask16)__builtin_ia32_cmpps512_mask((__v16sf)(__m512)(A), \3548(__v16sf)(__m512)(B), (int)(P), \3549(__mmask16)-1, (int)(R)); })35503551#define _mm512_mask_cmp_round_ps_mask(U, A, B, P, R) __extension__ ({ \3552(__mmask16)__builtin_ia32_cmpps512_mask((__v16sf)(__m512)(A), \3553(__v16sf)(__m512)(B), (int)(P), \3554(__mmask16)(U), (int)(R)); })35553556#define _mm512_cmp_ps_mask(A, B, P) \3557_mm512_cmp_round_ps_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION)35583559#define _mm512_mask_cmp_ps_mask(U, A, B, P) \3560_mm512_mask_cmp_round_ps_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION)35613562#define _mm512_cmp_round_pd_mask(A, B, P, R) __extension__ ({ \3563(__mmask8)__builtin_ia32_cmppd512_mask((__v8df)(__m512d)(A), \3564(__v8df)(__m512d)(B), (int)(P), \3565(__mmask8)-1, (int)(R)); })35663567#define _mm512_mask_cmp_round_pd_mask(U, A, B, P, R) __extension__ ({ \3568(__mmask8)__builtin_ia32_cmppd512_mask((__v8df)(__m512d)(A), \3569(__v8df)(__m512d)(B), (int)(P), \3570(__mmask8)(U), (int)(R)); })35713572#define _mm512_cmp_pd_mask(A, B, P) \3573_mm512_cmp_round_pd_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION)35743575#define _mm512_mask_cmp_pd_mask(U, A, B, P) \3576_mm512_mask_cmp_round_pd_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION)35773578/* Conversion */35793580#define _mm512_cvtt_roundps_epu32(A, R) __extension__ ({ \3581(__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \3582(__v16si)_mm512_undefined_epi32(), \3583(__mmask16)-1, (int)(R)); })35843585#define _mm512_mask_cvtt_roundps_epu32(W, U, A, R) __extension__ ({ \3586(__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \3587(__v16si)(__m512i)(W), \3588(__mmask16)(U), (int)(R)); })35893590#define _mm512_maskz_cvtt_roundps_epu32(U, A, R) __extension__ ({ \3591(__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \3592(__v16si)_mm512_setzero_si512(), \3593(__mmask16)(U), (int)(R)); })359435953596static __inline __m512i __DEFAULT_FN_ATTRS3597_mm512_cvttps_epu32(__m512 __A)3598{3599return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,3600(__v16si)3601_mm512_setzero_si512 (),3602(__mmask16) -1,3603_MM_FROUND_CUR_DIRECTION);3604}36053606static __inline__ __m512i __DEFAULT_FN_ATTRS3607_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)3608{3609return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,3610(__v16si) __W,3611(__mmask16) __U,3612_MM_FROUND_CUR_DIRECTION);3613}36143615static __inline__ __m512i __DEFAULT_FN_ATTRS3616_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)3617{3618return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,3619(__v16si) _mm512_setzero_si512 (),3620(__mmask16) __U,3621_MM_FROUND_CUR_DIRECTION);3622}36233624#define _mm512_cvt_roundepi32_ps(A, R) __extension__ ({ \3625(__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \3626(__v16sf)_mm512_setzero_ps(), \3627(__mmask16)-1, (int)(R)); })36283629#define _mm512_mask_cvt_roundepi32_ps(W, U, A, R) __extension__ ({ \3630(__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \3631(__v16sf)(__m512)(W), \3632(__mmask16)(U), (int)(R)); })36333634#define _mm512_maskz_cvt_roundepi32_ps(U, A, R) __extension__ ({ \3635(__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \3636(__v16sf)_mm512_setzero_ps(), \3637(__mmask16)(U), (int)(R)); })36383639#define _mm512_cvt_roundepu32_ps(A, R) __extension__ ({ \3640(__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \3641(__v16sf)_mm512_setzero_ps(), \3642(__mmask16)-1, (int)(R)); })36433644#define _mm512_mask_cvt_roundepu32_ps(W, U, A, R) __extension__ ({ \3645(__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \3646(__v16sf)(__m512)(W), \3647(__mmask16)(U), (int)(R)); })36483649#define _mm512_maskz_cvt_roundepu32_ps(U, A, R) __extension__ ({ \3650(__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \3651(__v16sf)_mm512_setzero_ps(), \3652(__mmask16)(U), (int)(R)); })36533654static __inline__ __m512 __DEFAULT_FN_ATTRS3655_mm512_cvtepu32_ps (__m512i __A)3656{3657return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,3658(__v16sf) _mm512_undefined_ps (),3659(__mmask16) -1,3660_MM_FROUND_CUR_DIRECTION);3661}36623663static __inline__ __m512 __DEFAULT_FN_ATTRS3664_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)3665{3666return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,3667(__v16sf) __W,3668(__mmask16) __U,3669_MM_FROUND_CUR_DIRECTION);3670}36713672static __inline__ __m512 __DEFAULT_FN_ATTRS3673_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)3674{3675return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,3676(__v16sf) _mm512_setzero_ps (),3677(__mmask16) __U,3678_MM_FROUND_CUR_DIRECTION);3679}36803681static __inline __m512d __DEFAULT_FN_ATTRS3682_mm512_cvtepi32_pd(__m256i __A)3683{3684return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,3685(__v8df)3686_mm512_setzero_pd (),3687(__mmask8) -1);3688}36893690static __inline__ __m512d __DEFAULT_FN_ATTRS3691_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)3692{3693return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,3694(__v8df) __W,3695(__mmask8) __U);3696}36973698static __inline__ __m512d __DEFAULT_FN_ATTRS3699_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)3700{3701return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,3702(__v8df) _mm512_setzero_pd (),3703(__mmask8) __U);3704}37053706static __inline__ __m512 __DEFAULT_FN_ATTRS3707_mm512_cvtepi32_ps (__m512i __A)3708{3709return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,3710(__v16sf) _mm512_undefined_ps (),3711(__mmask16) -1,3712_MM_FROUND_CUR_DIRECTION);3713}37143715static __inline__ __m512 __DEFAULT_FN_ATTRS3716_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)3717{3718return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,3719(__v16sf) __W,3720(__mmask16) __U,3721_MM_FROUND_CUR_DIRECTION);3722}37233724static __inline__ __m512 __DEFAULT_FN_ATTRS3725_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)3726{3727return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,3728(__v16sf) _mm512_setzero_ps (),3729(__mmask16) __U,3730_MM_FROUND_CUR_DIRECTION);3731}37323733static __inline __m512d __DEFAULT_FN_ATTRS3734_mm512_cvtepu32_pd(__m256i __A)3735{3736return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,3737(__v8df)3738_mm512_setzero_pd (),3739(__mmask8) -1);3740}37413742static __inline__ __m512d __DEFAULT_FN_ATTRS3743_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)3744{3745return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,3746(__v8df) __W,3747(__mmask8) __U);3748}37493750static __inline__ __m512d __DEFAULT_FN_ATTRS3751_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)3752{3753return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,3754(__v8df) _mm512_setzero_pd (),3755(__mmask8) __U);3756}37573758#define _mm512_cvt_roundpd_ps(A, R) __extension__ ({ \3759(__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \3760(__v8sf)_mm256_setzero_ps(), \3761(__mmask8)-1, (int)(R)); })37623763#define _mm512_mask_cvt_roundpd_ps(W, U, A, R) __extension__ ({ \3764(__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \3765(__v8sf)(__m256)(W), (__mmask8)(U), \3766(int)(R)); })37673768#define _mm512_maskz_cvt_roundpd_ps(U, A, R) __extension__ ({ \3769(__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \3770(__v8sf)_mm256_setzero_ps(), \3771(__mmask8)(U), (int)(R)); })37723773static __inline__ __m256 __DEFAULT_FN_ATTRS3774_mm512_cvtpd_ps (__m512d __A)3775{3776return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,3777(__v8sf) _mm256_undefined_ps (),3778(__mmask8) -1,3779_MM_FROUND_CUR_DIRECTION);3780}37813782static __inline__ __m256 __DEFAULT_FN_ATTRS3783_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)3784{3785return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,3786(__v8sf) __W,3787(__mmask8) __U,3788_MM_FROUND_CUR_DIRECTION);3789}37903791static __inline__ __m256 __DEFAULT_FN_ATTRS3792_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)3793{3794return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,3795(__v8sf) _mm256_setzero_ps (),3796(__mmask8) __U,3797_MM_FROUND_CUR_DIRECTION);3798}37993800#define _mm512_cvt_roundps_ph(A, I) __extension__ ({ \3801(__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \3802(__v16hi)_mm256_undefined_si256(), \3803(__mmask16)-1); })38043805#define _mm512_mask_cvt_roundps_ph(U, W, A, I) __extension__ ({ \3806(__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \3807(__v16hi)(__m256i)(U), \3808(__mmask16)(W)); })38093810#define _mm512_maskz_cvt_roundps_ph(W, A, I) __extension__ ({ \3811(__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \3812(__v16hi)_mm256_setzero_si256(), \3813(__mmask16)(W)); })38143815#define _mm512_cvtps_ph(A, I) __extension__ ({ \3816(__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \3817(__v16hi)_mm256_setzero_si256(), \3818(__mmask16)-1); })38193820#define _mm512_mask_cvtps_ph(U, W, A, I) __extension__ ({ \3821(__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \3822(__v16hi)(__m256i)(U), \3823(__mmask16)(W)); })38243825#define _mm512_maskz_cvtps_ph(W, A, I) __extension__ ({\3826(__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \3827(__v16hi)_mm256_setzero_si256(), \3828(__mmask16)(W)); })38293830#define _mm512_cvt_roundph_ps(A, R) __extension__ ({ \3831(__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \3832(__v16sf)_mm512_undefined_ps(), \3833(__mmask16)-1, (int)(R)); })38343835#define _mm512_mask_cvt_roundph_ps(W, U, A, R) __extension__ ({ \3836(__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \3837(__v16sf)(__m512)(W), \3838(__mmask16)(U), (int)(R)); })38393840#define _mm512_maskz_cvt_roundph_ps(U, A, R) __extension__ ({ \3841(__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \3842(__v16sf)_mm512_setzero_ps(), \3843(__mmask16)(U), (int)(R)); })384438453846static __inline __m512 __DEFAULT_FN_ATTRS3847_mm512_cvtph_ps(__m256i __A)3848{3849return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,3850(__v16sf)3851_mm512_setzero_ps (),3852(__mmask16) -1,3853_MM_FROUND_CUR_DIRECTION);3854}38553856static __inline__ __m512 __DEFAULT_FN_ATTRS3857_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)3858{3859return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,3860(__v16sf) __W,3861(__mmask16) __U,3862_MM_FROUND_CUR_DIRECTION);3863}38643865static __inline__ __m512 __DEFAULT_FN_ATTRS3866_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)3867{3868return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,3869(__v16sf) _mm512_setzero_ps (),3870(__mmask16) __U,3871_MM_FROUND_CUR_DIRECTION);3872}38733874#define _mm512_cvtt_roundpd_epi32(A, R) __extension__ ({ \3875(__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \3876(__v8si)_mm256_setzero_si256(), \3877(__mmask8)-1, (int)(R)); })38783879#define _mm512_mask_cvtt_roundpd_epi32(W, U, A, R) __extension__ ({ \3880(__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \3881(__v8si)(__m256i)(W), \3882(__mmask8)(U), (int)(R)); })38833884#define _mm512_maskz_cvtt_roundpd_epi32(U, A, R) __extension__ ({ \3885(__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \3886(__v8si)_mm256_setzero_si256(), \3887(__mmask8)(U), (int)(R)); })38883889static __inline __m256i __DEFAULT_FN_ATTRS3890_mm512_cvttpd_epi32(__m512d __a)3891{3892return (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df) __a,3893(__v8si)_mm256_setzero_si256(),3894(__mmask8) -1,3895_MM_FROUND_CUR_DIRECTION);3896}38973898static __inline__ __m256i __DEFAULT_FN_ATTRS3899_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)3900{3901return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,3902(__v8si) __W,3903(__mmask8) __U,3904_MM_FROUND_CUR_DIRECTION);3905}39063907static __inline__ __m256i __DEFAULT_FN_ATTRS3908_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)3909{3910return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,3911(__v8si) _mm256_setzero_si256 (),3912(__mmask8) __U,3913_MM_FROUND_CUR_DIRECTION);3914}39153916#define _mm512_cvtt_roundps_epi32(A, R) __extension__ ({ \3917(__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \3918(__v16si)_mm512_setzero_si512(), \3919(__mmask16)-1, (int)(R)); })39203921#define _mm512_mask_cvtt_roundps_epi32(W, U, A, R) __extension__ ({ \3922(__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \3923(__v16si)(__m512i)(W), \3924(__mmask16)(U), (int)(R)); })39253926#define _mm512_maskz_cvtt_roundps_epi32(U, A, R) __extension__ ({ \3927(__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \3928(__v16si)_mm512_setzero_si512(), \3929(__mmask16)(U), (int)(R)); })39303931static __inline __m512i __DEFAULT_FN_ATTRS3932_mm512_cvttps_epi32(__m512 __a)3933{3934return (__m512i)3935__builtin_ia32_cvttps2dq512_mask((__v16sf) __a,3936(__v16si) _mm512_setzero_si512 (),3937(__mmask16) -1, _MM_FROUND_CUR_DIRECTION);3938}39393940static __inline__ __m512i __DEFAULT_FN_ATTRS3941_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)3942{3943return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,3944(__v16si) __W,3945(__mmask16) __U,3946_MM_FROUND_CUR_DIRECTION);3947}39483949static __inline__ __m512i __DEFAULT_FN_ATTRS3950_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)3951{3952return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,3953(__v16si) _mm512_setzero_si512 (),3954(__mmask16) __U,3955_MM_FROUND_CUR_DIRECTION);3956}39573958#define _mm512_cvt_roundps_epi32(A, R) __extension__ ({ \3959(__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \3960(__v16si)_mm512_setzero_si512(), \3961(__mmask16)-1, (int)(R)); })39623963#define _mm512_mask_cvt_roundps_epi32(W, U, A, R) __extension__ ({ \3964(__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \3965(__v16si)(__m512i)(W), \3966(__mmask16)(U), (int)(R)); })39673968#define _mm512_maskz_cvt_roundps_epi32(U, A, R) __extension__ ({ \3969(__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \3970(__v16si)_mm512_setzero_si512(), \3971(__mmask16)(U), (int)(R)); })39723973static __inline__ __m512i __DEFAULT_FN_ATTRS3974_mm512_cvtps_epi32 (__m512 __A)3975{3976return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,3977(__v16si) _mm512_undefined_epi32 (),3978(__mmask16) -1,3979_MM_FROUND_CUR_DIRECTION);3980}39813982static __inline__ __m512i __DEFAULT_FN_ATTRS3983_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)3984{3985return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,3986(__v16si) __W,3987(__mmask16) __U,3988_MM_FROUND_CUR_DIRECTION);3989}39903991static __inline__ __m512i __DEFAULT_FN_ATTRS3992_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)3993{3994return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,3995(__v16si)3996_mm512_setzero_si512 (),3997(__mmask16) __U,3998_MM_FROUND_CUR_DIRECTION);3999}40004001#define _mm512_cvt_roundpd_epi32(A, R) __extension__ ({ \4002(__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \4003(__v8si)_mm256_setzero_si256(), \4004(__mmask8)-1, (int)(R)); })40054006#define _mm512_mask_cvt_roundpd_epi32(W, U, A, R) __extension__ ({ \4007(__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \4008(__v8si)(__m256i)(W), \4009(__mmask8)(U), (int)(R)); })40104011#define _mm512_maskz_cvt_roundpd_epi32(U, A, R) __extension__ ({ \4012(__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \4013(__v8si)_mm256_setzero_si256(), \4014(__mmask8)(U), (int)(R)); })40154016static __inline__ __m256i __DEFAULT_FN_ATTRS4017_mm512_cvtpd_epi32 (__m512d __A)4018{4019return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,4020(__v8si)4021_mm256_undefined_si256 (),4022(__mmask8) -1,4023_MM_FROUND_CUR_DIRECTION);4024}40254026static __inline__ __m256i __DEFAULT_FN_ATTRS4027_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)4028{4029return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,4030(__v8si) __W,4031(__mmask8) __U,4032_MM_FROUND_CUR_DIRECTION);4033}40344035static __inline__ __m256i __DEFAULT_FN_ATTRS4036_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)4037{4038return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,4039(__v8si)4040_mm256_setzero_si256 (),4041(__mmask8) __U,4042_MM_FROUND_CUR_DIRECTION);4043}40444045#define _mm512_cvt_roundps_epu32(A, R) __extension__ ({ \4046(__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \4047(__v16si)_mm512_setzero_si512(), \4048(__mmask16)-1, (int)(R)); })40494050#define _mm512_mask_cvt_roundps_epu32(W, U, A, R) __extension__ ({ \4051(__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \4052(__v16si)(__m512i)(W), \4053(__mmask16)(U), (int)(R)); })40544055#define _mm512_maskz_cvt_roundps_epu32(U, A, R) __extension__ ({ \4056(__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \4057(__v16si)_mm512_setzero_si512(), \4058(__mmask16)(U), (int)(R)); })40594060static __inline__ __m512i __DEFAULT_FN_ATTRS4061_mm512_cvtps_epu32 ( __m512 __A)4062{4063return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,\4064(__v16si)\4065_mm512_undefined_epi32 (),\4066(__mmask16) -1,\4067_MM_FROUND_CUR_DIRECTION);\4068}40694070static __inline__ __m512i __DEFAULT_FN_ATTRS4071_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)4072{4073return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,4074(__v16si) __W,4075(__mmask16) __U,4076_MM_FROUND_CUR_DIRECTION);4077}40784079static __inline__ __m512i __DEFAULT_FN_ATTRS4080_mm512_maskz_cvtps_epu32 ( __mmask16 __U, __m512 __A)4081{4082return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,4083(__v16si)4084_mm512_setzero_si512 (),4085(__mmask16) __U ,4086_MM_FROUND_CUR_DIRECTION);4087}40884089#define _mm512_cvt_roundpd_epu32(A, R) __extension__ ({ \4090(__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \4091(__v8si)_mm256_setzero_si256(), \4092(__mmask8)-1, (int)(R)); })40934094#define _mm512_mask_cvt_roundpd_epu32(W, U, A, R) __extension__ ({ \4095(__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \4096(__v8si)(W), \4097(__mmask8)(U), (int)(R)); })40984099#define _mm512_maskz_cvt_roundpd_epu32(U, A, R) __extension__ ({ \4100(__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \4101(__v8si)_mm256_setzero_si256(), \4102(__mmask8)(U), (int)(R)); })41034104static __inline__ __m256i __DEFAULT_FN_ATTRS4105_mm512_cvtpd_epu32 (__m512d __A)4106{4107return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,4108(__v8si)4109_mm256_undefined_si256 (),4110(__mmask8) -1,4111_MM_FROUND_CUR_DIRECTION);4112}41134114static __inline__ __m256i __DEFAULT_FN_ATTRS4115_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)4116{4117return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,4118(__v8si) __W,4119(__mmask8) __U,4120_MM_FROUND_CUR_DIRECTION);4121}41224123static __inline__ __m256i __DEFAULT_FN_ATTRS4124_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)4125{4126return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,4127(__v8si)4128_mm256_setzero_si256 (),4129(__mmask8) __U,4130_MM_FROUND_CUR_DIRECTION);4131}41324133/* Unpack and Interleave */41344135static __inline __m512d __DEFAULT_FN_ATTRS4136_mm512_unpackhi_pd(__m512d __a, __m512d __b)4137{4138return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b,41391, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6);4140}41414142static __inline__ __m512d __DEFAULT_FN_ATTRS4143_mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)4144{4145return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,4146(__v8df)_mm512_unpackhi_pd(__A, __B),4147(__v8df)__W);4148}41494150static __inline__ __m512d __DEFAULT_FN_ATTRS4151_mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B)4152{4153return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,4154(__v8df)_mm512_unpackhi_pd(__A, __B),4155(__v8df)_mm512_setzero_pd());4156}41574158static __inline __m512d __DEFAULT_FN_ATTRS4159_mm512_unpacklo_pd(__m512d __a, __m512d __b)4160{4161return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b,41620, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6);4163}41644165static __inline__ __m512d __DEFAULT_FN_ATTRS4166_mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)4167{4168return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,4169(__v8df)_mm512_unpacklo_pd(__A, __B),4170(__v8df)__W);4171}41724173static __inline__ __m512d __DEFAULT_FN_ATTRS4174_mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)4175{4176return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,4177(__v8df)_mm512_unpacklo_pd(__A, __B),4178(__v8df)_mm512_setzero_pd());4179}41804181static __inline __m512 __DEFAULT_FN_ATTRS4182_mm512_unpackhi_ps(__m512 __a, __m512 __b)4183{4184return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b,41852, 18, 3, 19,41862+4, 18+4, 3+4, 19+4,41872+8, 18+8, 3+8, 19+8,41882+12, 18+12, 3+12, 19+12);4189}41904191static __inline__ __m512 __DEFAULT_FN_ATTRS4192_mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)4193{4194return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,4195(__v16sf)_mm512_unpackhi_ps(__A, __B),4196(__v16sf)__W);4197}41984199static __inline__ __m512 __DEFAULT_FN_ATTRS4200_mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)4201{4202return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,4203(__v16sf)_mm512_unpackhi_ps(__A, __B),4204(__v16sf)_mm512_setzero_ps());4205}42064207static __inline __m512 __DEFAULT_FN_ATTRS4208_mm512_unpacklo_ps(__m512 __a, __m512 __b)4209{4210return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b,42110, 16, 1, 17,42120+4, 16+4, 1+4, 17+4,42130+8, 16+8, 1+8, 17+8,42140+12, 16+12, 1+12, 17+12);4215}42164217static __inline__ __m512 __DEFAULT_FN_ATTRS4218_mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)4219{4220return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,4221(__v16sf)_mm512_unpacklo_ps(__A, __B),4222(__v16sf)__W);4223}42244225static __inline__ __m512 __DEFAULT_FN_ATTRS4226_mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)4227{4228return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,4229(__v16sf)_mm512_unpacklo_ps(__A, __B),4230(__v16sf)_mm512_setzero_ps());4231}42324233static __inline__ __m512i __DEFAULT_FN_ATTRS4234_mm512_unpackhi_epi32(__m512i __A, __m512i __B)4235{4236return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B,42372, 18, 3, 19,42382+4, 18+4, 3+4, 19+4,42392+8, 18+8, 3+8, 19+8,42402+12, 18+12, 3+12, 19+12);4241}42424243static __inline__ __m512i __DEFAULT_FN_ATTRS4244_mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)4245{4246return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,4247(__v16si)_mm512_unpackhi_epi32(__A, __B),4248(__v16si)__W);4249}42504251static __inline__ __m512i __DEFAULT_FN_ATTRS4252_mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B)4253{4254return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,4255(__v16si)_mm512_unpackhi_epi32(__A, __B),4256(__v16si)_mm512_setzero_si512());4257}42584259static __inline__ __m512i __DEFAULT_FN_ATTRS4260_mm512_unpacklo_epi32(__m512i __A, __m512i __B)4261{4262return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B,42630, 16, 1, 17,42640+4, 16+4, 1+4, 17+4,42650+8, 16+8, 1+8, 17+8,42660+12, 16+12, 1+12, 17+12);4267}42684269static __inline__ __m512i __DEFAULT_FN_ATTRS4270_mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)4271{4272return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,4273(__v16si)_mm512_unpacklo_epi32(__A, __B),4274(__v16si)__W);4275}42764277static __inline__ __m512i __DEFAULT_FN_ATTRS4278_mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B)4279{4280return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,4281(__v16si)_mm512_unpacklo_epi32(__A, __B),4282(__v16si)_mm512_setzero_si512());4283}42844285static __inline__ __m512i __DEFAULT_FN_ATTRS4286_mm512_unpackhi_epi64(__m512i __A, __m512i __B)4287{4288return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B,42891, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6);4290}42914292static __inline__ __m512i __DEFAULT_FN_ATTRS4293_mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)4294{4295return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,4296(__v8di)_mm512_unpackhi_epi64(__A, __B),4297(__v8di)__W);4298}42994300static __inline__ __m512i __DEFAULT_FN_ATTRS4301_mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B)4302{4303return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,4304(__v8di)_mm512_unpackhi_epi64(__A, __B),4305(__v8di)_mm512_setzero_si512());4306}43074308static __inline__ __m512i __DEFAULT_FN_ATTRS4309_mm512_unpacklo_epi64 (__m512i __A, __m512i __B)4310{4311return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B,43120, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6);4313}43144315static __inline__ __m512i __DEFAULT_FN_ATTRS4316_mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)4317{4318return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,4319(__v8di)_mm512_unpacklo_epi64(__A, __B),4320(__v8di)__W);4321}43224323static __inline__ __m512i __DEFAULT_FN_ATTRS4324_mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)4325{4326return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,4327(__v8di)_mm512_unpacklo_epi64(__A, __B),4328(__v8di)_mm512_setzero_si512());4329}43304331/* Bit Test */43324333static __inline __mmask16 __DEFAULT_FN_ATTRS4334_mm512_test_epi32_mask(__m512i __A, __m512i __B)4335{4336return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,4337(__v16si) __B,4338(__mmask16) -1);4339}43404341static __inline__ __mmask16 __DEFAULT_FN_ATTRS4342_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)4343{4344return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,4345(__v16si) __B, __U);4346}43474348static __inline __mmask8 __DEFAULT_FN_ATTRS4349_mm512_test_epi64_mask(__m512i __A, __m512i __B)4350{4351return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A,4352(__v8di) __B,4353(__mmask8) -1);4354}43554356static __inline__ __mmask8 __DEFAULT_FN_ATTRS4357_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)4358{4359return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U);4360}436143624363/* SIMD load ops */43644365static __inline __m512i __DEFAULT_FN_ATTRS4366_mm512_loadu_si512 (void const *__P)4367{4368return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,4369(__v16si)4370_mm512_setzero_si512 (),4371(__mmask16) -1);4372}43734374static __inline __m512i __DEFAULT_FN_ATTRS4375_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)4376{4377return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,4378(__v16si) __W,4379(__mmask16) __U);4380}438143824383static __inline __m512i __DEFAULT_FN_ATTRS4384_mm512_maskz_loadu_epi32(__mmask16 __U, void const *__P)4385{4386return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *)__P,4387(__v16si)4388_mm512_setzero_si512 (),4389(__mmask16) __U);4390}43914392static __inline __m512i __DEFAULT_FN_ATTRS4393_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)4394{4395return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,4396(__v8di) __W,4397(__mmask8) __U);4398}43994400static __inline __m512i __DEFAULT_FN_ATTRS4401_mm512_maskz_loadu_epi64(__mmask8 __U, void const *__P)4402{4403return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *)__P,4404(__v8di)4405_mm512_setzero_si512 (),4406(__mmask8) __U);4407}44084409static __inline __m512 __DEFAULT_FN_ATTRS4410_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P)4411{4412return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,4413(__v16sf) __W,4414(__mmask16) __U);4415}44164417static __inline __m512 __DEFAULT_FN_ATTRS4418_mm512_maskz_loadu_ps(__mmask16 __U, void const *__P)4419{4420return (__m512) __builtin_ia32_loadups512_mask ((const float *)__P,4421(__v16sf)4422_mm512_setzero_ps (),4423(__mmask16) __U);4424}44254426static __inline __m512d __DEFAULT_FN_ATTRS4427_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P)4428{4429return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,4430(__v8df) __W,4431(__mmask8) __U);4432}44334434static __inline __m512d __DEFAULT_FN_ATTRS4435_mm512_maskz_loadu_pd(__mmask8 __U, void const *__P)4436{4437return (__m512d) __builtin_ia32_loadupd512_mask ((const double *)__P,4438(__v8df)4439_mm512_setzero_pd (),4440(__mmask8) __U);4441}44424443static __inline __m512d __DEFAULT_FN_ATTRS4444_mm512_loadu_pd(double const *__p)4445{4446struct __loadu_pd {4447__m512d __v;4448} __attribute__((__packed__, __may_alias__));4449return ((struct __loadu_pd*)__p)->__v;4450}44514452static __inline __m512 __DEFAULT_FN_ATTRS4453_mm512_loadu_ps(float const *__p)4454{4455struct __loadu_ps {4456__m512 __v;4457} __attribute__((__packed__, __may_alias__));4458return ((struct __loadu_ps*)__p)->__v;4459}44604461static __inline __m512 __DEFAULT_FN_ATTRS4462_mm512_load_ps(float const *__p)4463{4464return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *)__p,4465(__v16sf)4466_mm512_setzero_ps (),4467(__mmask16) -1);4468}44694470static __inline __m512 __DEFAULT_FN_ATTRS4471_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P)4472{4473return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,4474(__v16sf) __W,4475(__mmask16) __U);4476}44774478static __inline __m512 __DEFAULT_FN_ATTRS4479_mm512_maskz_load_ps(__mmask16 __U, void const *__P)4480{4481return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *)__P,4482(__v16sf)4483_mm512_setzero_ps (),4484(__mmask16) __U);4485}44864487static __inline __m512d __DEFAULT_FN_ATTRS4488_mm512_load_pd(double const *__p)4489{4490return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *)__p,4491(__v8df)4492_mm512_setzero_pd (),4493(__mmask8) -1);4494}44954496static __inline __m512d __DEFAULT_FN_ATTRS4497_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P)4498{4499return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,4500(__v8df) __W,4501(__mmask8) __U);4502}45034504static __inline __m512d __DEFAULT_FN_ATTRS4505_mm512_maskz_load_pd(__mmask8 __U, void const *__P)4506{4507return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *)__P,4508(__v8df)4509_mm512_setzero_pd (),4510(__mmask8) __U);4511}45124513static __inline __m512i __DEFAULT_FN_ATTRS4514_mm512_load_si512 (void const *__P)4515{4516return *(__m512i *) __P;4517}45184519static __inline __m512i __DEFAULT_FN_ATTRS4520_mm512_load_epi32 (void const *__P)4521{4522return *(__m512i *) __P;4523}45244525static __inline __m512i __DEFAULT_FN_ATTRS4526_mm512_load_epi64 (void const *__P)4527{4528return *(__m512i *) __P;4529}45304531/* SIMD store ops */45324533static __inline void __DEFAULT_FN_ATTRS4534_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A)4535{4536__builtin_ia32_storedqudi512_mask ((long long *)__P, (__v8di) __A,4537(__mmask8) __U);4538}45394540static __inline void __DEFAULT_FN_ATTRS4541_mm512_storeu_si512 (void *__P, __m512i __A)4542{4543__builtin_ia32_storedqusi512_mask ((int *) __P, (__v16si) __A,4544(__mmask16) -1);4545}45464547static __inline void __DEFAULT_FN_ATTRS4548_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A)4549{4550__builtin_ia32_storedqusi512_mask ((int *)__P, (__v16si) __A,4551(__mmask16) __U);4552}45534554static __inline void __DEFAULT_FN_ATTRS4555_mm512_mask_storeu_pd(void *__P, __mmask8 __U, __m512d __A)4556{4557__builtin_ia32_storeupd512_mask ((double *)__P, (__v8df) __A, (__mmask8) __U);4558}45594560static __inline void __DEFAULT_FN_ATTRS4561_mm512_storeu_pd(void *__P, __m512d __A)4562{4563__builtin_ia32_storeupd512_mask((double *)__P, (__v8df)__A, (__mmask8)-1);4564}45654566static __inline void __DEFAULT_FN_ATTRS4567_mm512_mask_storeu_ps(void *__P, __mmask16 __U, __m512 __A)4568{4569__builtin_ia32_storeups512_mask ((float *)__P, (__v16sf) __A,4570(__mmask16) __U);4571}45724573static __inline void __DEFAULT_FN_ATTRS4574_mm512_storeu_ps(void *__P, __m512 __A)4575{4576__builtin_ia32_storeups512_mask((float *)__P, (__v16sf)__A, (__mmask16)-1);4577}45784579static __inline void __DEFAULT_FN_ATTRS4580_mm512_mask_store_pd(void *__P, __mmask8 __U, __m512d __A)4581{4582__builtin_ia32_storeapd512_mask ((__v8df *)__P, (__v8df) __A, (__mmask8) __U);4583}45844585static __inline void __DEFAULT_FN_ATTRS4586_mm512_store_pd(void *__P, __m512d __A)4587{4588*(__m512d*)__P = __A;4589}45904591static __inline void __DEFAULT_FN_ATTRS4592_mm512_mask_store_ps(void *__P, __mmask16 __U, __m512 __A)4593{4594__builtin_ia32_storeaps512_mask ((__v16sf *)__P, (__v16sf) __A,4595(__mmask16) __U);4596}45974598static __inline void __DEFAULT_FN_ATTRS4599_mm512_store_ps(void *__P, __m512 __A)4600{4601*(__m512*)__P = __A;4602}46034604static __inline void __DEFAULT_FN_ATTRS4605_mm512_store_si512 (void *__P, __m512i __A)4606{4607*(__m512i *) __P = __A;4608}46094610static __inline void __DEFAULT_FN_ATTRS4611_mm512_store_epi32 (void *__P, __m512i __A)4612{4613*(__m512i *) __P = __A;4614}46154616static __inline void __DEFAULT_FN_ATTRS4617_mm512_store_epi64 (void *__P, __m512i __A)4618{4619*(__m512i *) __P = __A;4620}46214622/* Mask ops */46234624static __inline __mmask16 __DEFAULT_FN_ATTRS4625_mm512_knot(__mmask16 __M)4626{4627return __builtin_ia32_knothi(__M);4628}46294630/* Integer compare */46314632static __inline__ __mmask16 __DEFAULT_FN_ATTRS4633_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {4634return (__mmask16)__builtin_ia32_pcmpeqd512_mask((__v16si)__a, (__v16si)__b,4635(__mmask16)-1);4636}46374638static __inline__ __mmask16 __DEFAULT_FN_ATTRS4639_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4640return (__mmask16)__builtin_ia32_pcmpeqd512_mask((__v16si)__a, (__v16si)__b,4641__u);4642}46434644static __inline__ __mmask16 __DEFAULT_FN_ATTRS4645_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {4646return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 0,4647(__mmask16)-1);4648}46494650static __inline__ __mmask16 __DEFAULT_FN_ATTRS4651_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4652return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 0,4653__u);4654}46554656static __inline__ __mmask8 __DEFAULT_FN_ATTRS4657_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4658return (__mmask8)__builtin_ia32_pcmpeqq512_mask((__v8di)__a, (__v8di)__b,4659__u);4660}46614662static __inline__ __mmask8 __DEFAULT_FN_ATTRS4663_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {4664return (__mmask8)__builtin_ia32_pcmpeqq512_mask((__v8di)__a, (__v8di)__b,4665(__mmask8)-1);4666}46674668static __inline__ __mmask8 __DEFAULT_FN_ATTRS4669_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {4670return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 0,4671(__mmask8)-1);4672}46734674static __inline__ __mmask8 __DEFAULT_FN_ATTRS4675_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4676return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 0,4677__u);4678}46794680static __inline__ __mmask16 __DEFAULT_FN_ATTRS4681_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {4682return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 5,4683(__mmask16)-1);4684}46854686static __inline__ __mmask16 __DEFAULT_FN_ATTRS4687_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4688return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 5,4689__u);4690}46914692static __inline__ __mmask16 __DEFAULT_FN_ATTRS4693_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {4694return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 5,4695(__mmask16)-1);4696}46974698static __inline__ __mmask16 __DEFAULT_FN_ATTRS4699_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4700return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 5,4701__u);4702}47034704static __inline__ __mmask8 __DEFAULT_FN_ATTRS4705_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {4706return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 5,4707(__mmask8)-1);4708}47094710static __inline__ __mmask8 __DEFAULT_FN_ATTRS4711_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4712return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 5,4713__u);4714}47154716static __inline__ __mmask8 __DEFAULT_FN_ATTRS4717_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {4718return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 5,4719(__mmask8)-1);4720}47214722static __inline__ __mmask8 __DEFAULT_FN_ATTRS4723_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4724return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 5,4725__u);4726}47274728static __inline__ __mmask16 __DEFAULT_FN_ATTRS4729_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {4730return (__mmask16)__builtin_ia32_pcmpgtd512_mask((__v16si)__a, (__v16si)__b,4731(__mmask16)-1);4732}47334734static __inline__ __mmask16 __DEFAULT_FN_ATTRS4735_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4736return (__mmask16)__builtin_ia32_pcmpgtd512_mask((__v16si)__a, (__v16si)__b,4737__u);4738}47394740static __inline__ __mmask16 __DEFAULT_FN_ATTRS4741_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {4742return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 6,4743(__mmask16)-1);4744}47454746static __inline__ __mmask16 __DEFAULT_FN_ATTRS4747_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4748return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 6,4749__u);4750}47514752static __inline__ __mmask8 __DEFAULT_FN_ATTRS4753_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4754return (__mmask8)__builtin_ia32_pcmpgtq512_mask((__v8di)__a, (__v8di)__b,4755__u);4756}47574758static __inline__ __mmask8 __DEFAULT_FN_ATTRS4759_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {4760return (__mmask8)__builtin_ia32_pcmpgtq512_mask((__v8di)__a, (__v8di)__b,4761(__mmask8)-1);4762}47634764static __inline__ __mmask8 __DEFAULT_FN_ATTRS4765_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {4766return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 6,4767(__mmask8)-1);4768}47694770static __inline__ __mmask8 __DEFAULT_FN_ATTRS4771_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4772return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 6,4773__u);4774}47754776static __inline__ __mmask16 __DEFAULT_FN_ATTRS4777_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {4778return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 2,4779(__mmask16)-1);4780}47814782static __inline__ __mmask16 __DEFAULT_FN_ATTRS4783_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4784return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 2,4785__u);4786}47874788static __inline__ __mmask16 __DEFAULT_FN_ATTRS4789_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {4790return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 2,4791(__mmask16)-1);4792}47934794static __inline__ __mmask16 __DEFAULT_FN_ATTRS4795_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4796return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 2,4797__u);4798}47994800static __inline__ __mmask8 __DEFAULT_FN_ATTRS4801_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {4802return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 2,4803(__mmask8)-1);4804}48054806static __inline__ __mmask8 __DEFAULT_FN_ATTRS4807_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4808return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 2,4809__u);4810}48114812static __inline__ __mmask8 __DEFAULT_FN_ATTRS4813_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {4814return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 2,4815(__mmask8)-1);4816}48174818static __inline__ __mmask8 __DEFAULT_FN_ATTRS4819_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4820return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 2,4821__u);4822}48234824static __inline__ __mmask16 __DEFAULT_FN_ATTRS4825_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {4826return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 1,4827(__mmask16)-1);4828}48294830static __inline__ __mmask16 __DEFAULT_FN_ATTRS4831_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4832return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 1,4833__u);4834}48354836static __inline__ __mmask16 __DEFAULT_FN_ATTRS4837_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {4838return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 1,4839(__mmask16)-1);4840}48414842static __inline__ __mmask16 __DEFAULT_FN_ATTRS4843_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4844return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 1,4845__u);4846}48474848static __inline__ __mmask8 __DEFAULT_FN_ATTRS4849_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {4850return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 1,4851(__mmask8)-1);4852}48534854static __inline__ __mmask8 __DEFAULT_FN_ATTRS4855_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4856return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 1,4857__u);4858}48594860static __inline__ __mmask8 __DEFAULT_FN_ATTRS4861_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {4862return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 1,4863(__mmask8)-1);4864}48654866static __inline__ __mmask8 __DEFAULT_FN_ATTRS4867_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4868return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 1,4869__u);4870}48714872static __inline__ __mmask16 __DEFAULT_FN_ATTRS4873_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {4874return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 4,4875(__mmask16)-1);4876}48774878static __inline__ __mmask16 __DEFAULT_FN_ATTRS4879_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4880return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 4,4881__u);4882}48834884static __inline__ __mmask16 __DEFAULT_FN_ATTRS4885_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {4886return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 4,4887(__mmask16)-1);4888}48894890static __inline__ __mmask16 __DEFAULT_FN_ATTRS4891_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {4892return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 4,4893__u);4894}48954896static __inline__ __mmask8 __DEFAULT_FN_ATTRS4897_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {4898return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 4,4899(__mmask8)-1);4900}49014902static __inline__ __mmask8 __DEFAULT_FN_ATTRS4903_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4904return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 4,4905__u);4906}49074908static __inline__ __mmask8 __DEFAULT_FN_ATTRS4909_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {4910return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 4,4911(__mmask8)-1);4912}49134914static __inline__ __mmask8 __DEFAULT_FN_ATTRS4915_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {4916return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 4,4917__u);4918}49194920static __inline__ __m512i __DEFAULT_FN_ATTRS4921_mm512_cvtepi8_epi32 (__m128i __A)4922{4923return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,4924(__v16si)4925_mm512_setzero_si512 (),4926(__mmask16) -1);4927}49284929static __inline__ __m512i __DEFAULT_FN_ATTRS4930_mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)4931{4932return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,4933(__v16si) __W,4934(__mmask16) __U);4935}49364937static __inline__ __m512i __DEFAULT_FN_ATTRS4938_mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A)4939{4940return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,4941(__v16si)4942_mm512_setzero_si512 (),4943(__mmask16) __U);4944}49454946static __inline__ __m512i __DEFAULT_FN_ATTRS4947_mm512_cvtepi8_epi64 (__m128i __A)4948{4949return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,4950(__v8di)4951_mm512_setzero_si512 (),4952(__mmask8) -1);4953}49544955static __inline__ __m512i __DEFAULT_FN_ATTRS4956_mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)4957{4958return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,4959(__v8di) __W,4960(__mmask8) __U);4961}49624963static __inline__ __m512i __DEFAULT_FN_ATTRS4964_mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)4965{4966return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,4967(__v8di)4968_mm512_setzero_si512 (),4969(__mmask8) __U);4970}49714972static __inline__ __m512i __DEFAULT_FN_ATTRS4973_mm512_cvtepi32_epi64 (__m256i __X)4974{4975return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,4976(__v8di)4977_mm512_setzero_si512 (),4978(__mmask8) -1);4979}49804981static __inline__ __m512i __DEFAULT_FN_ATTRS4982_mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)4983{4984return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,4985(__v8di) __W,4986(__mmask8) __U);4987}49884989static __inline__ __m512i __DEFAULT_FN_ATTRS4990_mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X)4991{4992return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,4993(__v8di)4994_mm512_setzero_si512 (),4995(__mmask8) __U);4996}49974998static __inline__ __m512i __DEFAULT_FN_ATTRS4999_mm512_cvtepi16_epi32 (__m256i __A)5000{5001return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,5002(__v16si)5003_mm512_setzero_si512 (),5004(__mmask16) -1);5005}50065007static __inline__ __m512i __DEFAULT_FN_ATTRS5008_mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)5009{5010return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,5011(__v16si) __W,5012(__mmask16) __U);5013}50145015static __inline__ __m512i __DEFAULT_FN_ATTRS5016_mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A)5017{5018return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,5019(__v16si)5020_mm512_setzero_si512 (),5021(__mmask16) __U);5022}50235024static __inline__ __m512i __DEFAULT_FN_ATTRS5025_mm512_cvtepi16_epi64 (__m128i __A)5026{5027return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,5028(__v8di)5029_mm512_setzero_si512 (),5030(__mmask8) -1);5031}50325033static __inline__ __m512i __DEFAULT_FN_ATTRS5034_mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)5035{5036return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,5037(__v8di) __W,5038(__mmask8) __U);5039}50405041static __inline__ __m512i __DEFAULT_FN_ATTRS5042_mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)5043{5044return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,5045(__v8di)5046_mm512_setzero_si512 (),5047(__mmask8) __U);5048}50495050static __inline__ __m512i __DEFAULT_FN_ATTRS5051_mm512_cvtepu8_epi32 (__m128i __A)5052{5053return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,5054(__v16si)5055_mm512_setzero_si512 (),5056(__mmask16) -1);5057}50585059static __inline__ __m512i __DEFAULT_FN_ATTRS5060_mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)5061{5062return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,5063(__v16si) __W,5064(__mmask16) __U);5065}50665067static __inline__ __m512i __DEFAULT_FN_ATTRS5068_mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A)5069{5070return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,5071(__v16si)5072_mm512_setzero_si512 (),5073(__mmask16) __U);5074}50755076static __inline__ __m512i __DEFAULT_FN_ATTRS5077_mm512_cvtepu8_epi64 (__m128i __A)5078{5079return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,5080(__v8di)5081_mm512_setzero_si512 (),5082(__mmask8) -1);5083}50845085static __inline__ __m512i __DEFAULT_FN_ATTRS5086_mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)5087{5088return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,5089(__v8di) __W,5090(__mmask8) __U);5091}50925093static __inline__ __m512i __DEFAULT_FN_ATTRS5094_mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)5095{5096return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,5097(__v8di)5098_mm512_setzero_si512 (),5099(__mmask8) __U);5100}51015102static __inline__ __m512i __DEFAULT_FN_ATTRS5103_mm512_cvtepu32_epi64 (__m256i __X)5104{5105return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,5106(__v8di)5107_mm512_setzero_si512 (),5108(__mmask8) -1);5109}51105111static __inline__ __m512i __DEFAULT_FN_ATTRS5112_mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)5113{5114return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,5115(__v8di) __W,5116(__mmask8) __U);5117}51185119static __inline__ __m512i __DEFAULT_FN_ATTRS5120_mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X)5121{5122return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,5123(__v8di)5124_mm512_setzero_si512 (),5125(__mmask8) __U);5126}51275128static __inline__ __m512i __DEFAULT_FN_ATTRS5129_mm512_cvtepu16_epi32 (__m256i __A)5130{5131return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,5132(__v16si)5133_mm512_setzero_si512 (),5134(__mmask16) -1);5135}51365137static __inline__ __m512i __DEFAULT_FN_ATTRS5138_mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)5139{5140return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,5141(__v16si) __W,5142(__mmask16) __U);5143}51445145static __inline__ __m512i __DEFAULT_FN_ATTRS5146_mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A)5147{5148return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,5149(__v16si)5150_mm512_setzero_si512 (),5151(__mmask16) __U);5152}51535154static __inline__ __m512i __DEFAULT_FN_ATTRS5155_mm512_cvtepu16_epi64 (__m128i __A)5156{5157return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,5158(__v8di)5159_mm512_setzero_si512 (),5160(__mmask8) -1);5161}51625163static __inline__ __m512i __DEFAULT_FN_ATTRS5164_mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)5165{5166return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,5167(__v8di) __W,5168(__mmask8) __U);5169}51705171static __inline__ __m512i __DEFAULT_FN_ATTRS5172_mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)5173{5174return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,5175(__v8di)5176_mm512_setzero_si512 (),5177(__mmask8) __U);5178}51795180static __inline__ __m512i __DEFAULT_FN_ATTRS5181_mm512_rorv_epi32 (__m512i __A, __m512i __B)5182{5183return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,5184(__v16si) __B,5185(__v16si)5186_mm512_setzero_si512 (),5187(__mmask16) -1);5188}51895190static __inline__ __m512i __DEFAULT_FN_ATTRS5191_mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)5192{5193return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,5194(__v16si) __B,5195(__v16si) __W,5196(__mmask16) __U);5197}51985199static __inline__ __m512i __DEFAULT_FN_ATTRS5200_mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)5201{5202return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,5203(__v16si) __B,5204(__v16si)5205_mm512_setzero_si512 (),5206(__mmask16) __U);5207}52085209static __inline__ __m512i __DEFAULT_FN_ATTRS5210_mm512_rorv_epi64 (__m512i __A, __m512i __B)5211{5212return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,5213(__v8di) __B,5214(__v8di)5215_mm512_setzero_si512 (),5216(__mmask8) -1);5217}52185219static __inline__ __m512i __DEFAULT_FN_ATTRS5220_mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)5221{5222return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,5223(__v8di) __B,5224(__v8di) __W,5225(__mmask8) __U);5226}52275228static __inline__ __m512i __DEFAULT_FN_ATTRS5229_mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)5230{5231return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,5232(__v8di) __B,5233(__v8di)5234_mm512_setzero_si512 (),5235(__mmask8) __U);5236}5237523852395240#define _mm512_cmp_epi32_mask(a, b, p) __extension__ ({ \5241(__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \5242(__v16si)(__m512i)(b), (int)(p), \5243(__mmask16)-1); })52445245#define _mm512_cmp_epu32_mask(a, b, p) __extension__ ({ \5246(__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)(__m512i)(a), \5247(__v16si)(__m512i)(b), (int)(p), \5248(__mmask16)-1); })52495250#define _mm512_cmp_epi64_mask(a, b, p) __extension__ ({ \5251(__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)(a), \5252(__v8di)(__m512i)(b), (int)(p), \5253(__mmask8)-1); })52545255#define _mm512_cmp_epu64_mask(a, b, p) __extension__ ({ \5256(__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)(__m512i)(a), \5257(__v8di)(__m512i)(b), (int)(p), \5258(__mmask8)-1); })52595260#define _mm512_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \5261(__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \5262(__v16si)(__m512i)(b), (int)(p), \5263(__mmask16)(m)); })52645265#define _mm512_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \5266(__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)(__m512i)(a), \5267(__v16si)(__m512i)(b), (int)(p), \5268(__mmask16)(m)); })52695270#define _mm512_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \5271(__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)(a), \5272(__v8di)(__m512i)(b), (int)(p), \5273(__mmask8)(m)); })52745275#define _mm512_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \5276(__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)(__m512i)(a), \5277(__v8di)(__m512i)(b), (int)(p), \5278(__mmask8)(m)); })52795280#define _mm512_rol_epi32(a, b) __extension__ ({ \5281(__m512i)__builtin_ia32_prold512_mask((__v16si)(__m512i)(a), (int)(b), \5282(__v16si)_mm512_setzero_si512(), \5283(__mmask16)-1); })52845285#define _mm512_mask_rol_epi32(W, U, a, b) __extension__ ({ \5286(__m512i)__builtin_ia32_prold512_mask((__v16si)(__m512i)(a), (int)(b), \5287(__v16si)(__m512i)(W), \5288(__mmask16)(U)); })52895290#define _mm512_maskz_rol_epi32(U, a, b) __extension__ ({ \5291(__m512i)__builtin_ia32_prold512_mask((__v16si)(__m512i)(a), (int)(b), \5292(__v16si)_mm512_setzero_si512(), \5293(__mmask16)(U)); })52945295#define _mm512_rol_epi64(a, b) __extension__ ({ \5296(__m512i)__builtin_ia32_prolq512_mask((__v8di)(__m512i)(a), (int)(b), \5297(__v8di)_mm512_setzero_si512(), \5298(__mmask8)-1); })52995300#define _mm512_mask_rol_epi64(W, U, a, b) __extension__ ({ \5301(__m512i)__builtin_ia32_prolq512_mask((__v8di)(__m512i)(a), (int)(b), \5302(__v8di)(__m512i)(W), (__mmask8)(U)); })53035304#define _mm512_maskz_rol_epi64(U, a, b) __extension__ ({ \5305(__m512i)__builtin_ia32_prolq512_mask((__v8di)(__m512i)(a), (int)(b), \5306(__v8di)_mm512_setzero_si512(), \5307(__mmask8)(U)); })5308static __inline__ __m512i __DEFAULT_FN_ATTRS5309_mm512_rolv_epi32 (__m512i __A, __m512i __B)5310{5311return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,5312(__v16si) __B,5313(__v16si)5314_mm512_setzero_si512 (),5315(__mmask16) -1);5316}53175318static __inline__ __m512i __DEFAULT_FN_ATTRS5319_mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)5320{5321return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,5322(__v16si) __B,5323(__v16si) __W,5324(__mmask16) __U);5325}53265327static __inline__ __m512i __DEFAULT_FN_ATTRS5328_mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)5329{5330return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,5331(__v16si) __B,5332(__v16si)5333_mm512_setzero_si512 (),5334(__mmask16) __U);5335}53365337static __inline__ __m512i __DEFAULT_FN_ATTRS5338_mm512_rolv_epi64 (__m512i __A, __m512i __B)5339{5340return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,5341(__v8di) __B,5342(__v8di)5343_mm512_setzero_si512 (),5344(__mmask8) -1);5345}53465347static __inline__ __m512i __DEFAULT_FN_ATTRS5348_mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)5349{5350return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,5351(__v8di) __B,5352(__v8di) __W,5353(__mmask8) __U);5354}53555356static __inline__ __m512i __DEFAULT_FN_ATTRS5357_mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)5358{5359return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,5360(__v8di) __B,5361(__v8di)5362_mm512_setzero_si512 (),5363(__mmask8) __U);5364}53655366#define _mm512_ror_epi32(A, B) __extension__ ({ \5367(__m512i)__builtin_ia32_prord512_mask((__v16si)(__m512i)(A), (int)(B), \5368(__v16si)_mm512_setzero_si512(), \5369(__mmask16)-1); })53705371#define _mm512_mask_ror_epi32(W, U, A, B) __extension__ ({ \5372(__m512i)__builtin_ia32_prord512_mask((__v16si)(__m512i)(A), (int)(B), \5373(__v16si)(__m512i)(W), \5374(__mmask16)(U)); })53755376#define _mm512_maskz_ror_epi32(U, A, B) __extension__ ({ \5377(__m512i)__builtin_ia32_prord512_mask((__v16si)(__m512i)(A), (int)(B), \5378(__v16si)_mm512_setzero_si512(), \5379(__mmask16)(U)); })53805381#define _mm512_ror_epi64(A, B) __extension__ ({ \5382(__m512i)__builtin_ia32_prorq512_mask((__v8di)(__m512i)(A), (int)(B), \5383(__v8di)_mm512_setzero_si512(), \5384(__mmask8)-1); })53855386#define _mm512_mask_ror_epi64(W, U, A, B) __extension__ ({ \5387(__m512i)__builtin_ia32_prorq512_mask((__v8di)(__m512i)(A), (int)(B), \5388(__v8di)(__m512i)(W), (__mmask8)(U)); })53895390#define _mm512_maskz_ror_epi64(U, A, B) __extension__ ({ \5391(__m512i)__builtin_ia32_prorq512_mask((__v8di)(__m512i)(A), (int)(B), \5392(__v8di)_mm512_setzero_si512(), \5393(__mmask8)(U)); })53945395#define _mm512_slli_epi32(A, B) __extension__ ({ \5396(__m512i)__builtin_ia32_pslldi512_mask((__v16si)(__m512i)(A), (int)(B), \5397(__v16si)_mm512_setzero_si512(), \5398(__mmask16)-1); })53995400#define _mm512_mask_slli_epi32(W, U, A, B) __extension__ ({ \5401(__m512i)__builtin_ia32_pslldi512_mask((__v16si)(__m512i)(A), (int)(B), \5402(__v16si)(__m512i)(W), \5403(__mmask16)(U)); })54045405#define _mm512_maskz_slli_epi32(U, A, B) __extension__ ({ \5406(__m512i)__builtin_ia32_pslldi512_mask((__v16si)(__m512i)(A), (int)(B), \5407(__v16si)_mm512_setzero_si512(), \5408(__mmask16)(U)); })54095410#define _mm512_slli_epi64(A, B) __extension__ ({ \5411(__m512i)__builtin_ia32_psllqi512_mask((__v8di)(__m512i)(A), (int)(B), \5412(__v8di)_mm512_setzero_si512(), \5413(__mmask8)-1); })54145415#define _mm512_mask_slli_epi64(W, U, A, B) __extension__ ({ \5416(__m512i)__builtin_ia32_psllqi512_mask((__v8di)(__m512i)(A), (int)(B), \5417(__v8di)(__m512i)(W), \5418(__mmask8)(U)); })54195420#define _mm512_maskz_slli_epi64(U, A, B) __extension__ ({ \5421(__m512i)__builtin_ia32_psllqi512_mask((__v8di)(__m512i)(A), (int)(B), \5422(__v8di)_mm512_setzero_si512(), \5423(__mmask8)(U)); })5424542554265427#define _mm512_srli_epi32(A, B) __extension__ ({ \5428(__m512i)__builtin_ia32_psrldi512_mask((__v16si)(__m512i)(A), (int)(B), \5429(__v16si)_mm512_setzero_si512(), \5430(__mmask16)-1); })54315432#define _mm512_mask_srli_epi32(W, U, A, B) __extension__ ({ \5433(__m512i)__builtin_ia32_psrldi512_mask((__v16si)(__m512i)(A), (int)(B), \5434(__v16si)(__m512i)(W), \5435(__mmask16)(U)); })54365437#define _mm512_maskz_srli_epi32(U, A, B) __extension__ ({ \5438(__m512i)__builtin_ia32_psrldi512_mask((__v16si)(__m512i)(A), (int)(B), \5439(__v16si)_mm512_setzero_si512(), \5440(__mmask16)(U)); })54415442#define _mm512_srli_epi64(A, B) __extension__ ({ \5443(__m512i)__builtin_ia32_psrlqi512_mask((__v8di)(__m512i)(A), (int)(B), \5444(__v8di)_mm512_setzero_si512(), \5445(__mmask8)-1); })54465447#define _mm512_mask_srli_epi64(W, U, A, B) __extension__ ({ \5448(__m512i)__builtin_ia32_psrlqi512_mask((__v8di)(__m512i)(A), (int)(B), \5449(__v8di)(__m512i)(W), \5450(__mmask8)(U)); })54515452#define _mm512_maskz_srli_epi64(U, A, B) __extension__ ({ \5453(__m512i)__builtin_ia32_psrlqi512_mask((__v8di)(__m512i)(A), (int)(B), \5454(__v8di)_mm512_setzero_si512(), \5455(__mmask8)(U)); })54565457static __inline__ __m512i __DEFAULT_FN_ATTRS5458_mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P)5459{5460return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,5461(__v16si) __W,5462(__mmask16) __U);5463}54645465static __inline__ __m512i __DEFAULT_FN_ATTRS5466_mm512_maskz_load_epi32 (__mmask16 __U, void const *__P)5467{5468return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,5469(__v16si)5470_mm512_setzero_si512 (),5471(__mmask16) __U);5472}54735474static __inline__ void __DEFAULT_FN_ATTRS5475_mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A)5476{5477__builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A,5478(__mmask16) __U);5479}54805481static __inline__ __m512i __DEFAULT_FN_ATTRS5482_mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A)5483{5484return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U,5485(__v16si) __A,5486(__v16si) __W);5487}54885489static __inline__ __m512i __DEFAULT_FN_ATTRS5490_mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A)5491{5492return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U,5493(__v16si) __A,5494(__v16si) _mm512_setzero_si512 ());5495}54965497static __inline__ __m512i __DEFAULT_FN_ATTRS5498_mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A)5499{5500return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U,5501(__v8di) __A,5502(__v8di) __W);5503}55045505static __inline__ __m512i __DEFAULT_FN_ATTRS5506_mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A)5507{5508return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U,5509(__v8di) __A,5510(__v8di) _mm512_setzero_si512 ());5511}55125513static __inline__ __m512i __DEFAULT_FN_ATTRS5514_mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P)5515{5516return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,5517(__v8di) __W,5518(__mmask8) __U);5519}55205521static __inline__ __m512i __DEFAULT_FN_ATTRS5522_mm512_maskz_load_epi64 (__mmask8 __U, void const *__P)5523{5524return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,5525(__v8di)5526_mm512_setzero_si512 (),5527(__mmask8) __U);5528}55295530static __inline__ void __DEFAULT_FN_ATTRS5531_mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)5532{5533__builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A,5534(__mmask8) __U);5535}55365537static __inline__ __m512d __DEFAULT_FN_ATTRS5538_mm512_movedup_pd (__m512d __A)5539{5540return (__m512d)__builtin_shufflevector((__v8df)__A, (__v8df)__A,55410, 0, 2, 2, 4, 4, 6, 6);5542}55435544static __inline__ __m512d __DEFAULT_FN_ATTRS5545_mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A)5546{5547return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,5548(__v8df)_mm512_movedup_pd(__A),5549(__v8df)__W);5550}55515552static __inline__ __m512d __DEFAULT_FN_ATTRS5553_mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)5554{5555return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,5556(__v8df)_mm512_movedup_pd(__A),5557(__v8df)_mm512_setzero_pd());5558}55595560#define _mm512_fixupimm_round_pd(A, B, C, imm, R) __extension__ ({ \5561(__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \5562(__v8df)(__m512d)(B), \5563(__v8di)(__m512i)(C), (int)(imm), \5564(__mmask8)-1, (int)(R)); })55655566#define _mm512_mask_fixupimm_round_pd(A, U, B, C, imm, R) __extension__ ({ \5567(__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \5568(__v8df)(__m512d)(B), \5569(__v8di)(__m512i)(C), (int)(imm), \5570(__mmask8)(U), (int)(R)); })55715572#define _mm512_fixupimm_pd(A, B, C, imm) __extension__ ({ \5573(__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \5574(__v8df)(__m512d)(B), \5575(__v8di)(__m512i)(C), (int)(imm), \5576(__mmask8)-1, \5577_MM_FROUND_CUR_DIRECTION); })55785579#define _mm512_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \5580(__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \5581(__v8df)(__m512d)(B), \5582(__v8di)(__m512i)(C), (int)(imm), \5583(__mmask8)(U), \5584_MM_FROUND_CUR_DIRECTION); })55855586#define _mm512_maskz_fixupimm_round_pd(U, A, B, C, imm, R) __extension__ ({ \5587(__m512d)__builtin_ia32_fixupimmpd512_maskz((__v8df)(__m512d)(A), \5588(__v8df)(__m512d)(B), \5589(__v8di)(__m512i)(C), \5590(int)(imm), (__mmask8)(U), \5591(int)(R)); })55925593#define _mm512_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \5594(__m512d)__builtin_ia32_fixupimmpd512_maskz((__v8df)(__m512d)(A), \5595(__v8df)(__m512d)(B), \5596(__v8di)(__m512i)(C), \5597(int)(imm), (__mmask8)(U), \5598_MM_FROUND_CUR_DIRECTION); })55995600#define _mm512_fixupimm_round_ps(A, B, C, imm, R) __extension__ ({ \5601(__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \5602(__v16sf)(__m512)(B), \5603(__v16si)(__m512i)(C), (int)(imm), \5604(__mmask16)-1, (int)(R)); })56055606#define _mm512_mask_fixupimm_round_ps(A, U, B, C, imm, R) __extension__ ({ \5607(__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \5608(__v16sf)(__m512)(B), \5609(__v16si)(__m512i)(C), (int)(imm), \5610(__mmask16)(U), (int)(R)); })56115612#define _mm512_fixupimm_ps(A, B, C, imm) __extension__ ({ \5613(__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \5614(__v16sf)(__m512)(B), \5615(__v16si)(__m512i)(C), (int)(imm), \5616(__mmask16)-1, \5617_MM_FROUND_CUR_DIRECTION); })56185619#define _mm512_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \5620(__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \5621(__v16sf)(__m512)(B), \5622(__v16si)(__m512i)(C), (int)(imm), \5623(__mmask16)(U), \5624_MM_FROUND_CUR_DIRECTION); })56255626#define _mm512_maskz_fixupimm_round_ps(U, A, B, C, imm, R) __extension__ ({ \5627(__m512)__builtin_ia32_fixupimmps512_maskz((__v16sf)(__m512)(A), \5628(__v16sf)(__m512)(B), \5629(__v16si)(__m512i)(C), \5630(int)(imm), (__mmask16)(U), \5631(int)(R)); })56325633#define _mm512_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \5634(__m512)__builtin_ia32_fixupimmps512_maskz((__v16sf)(__m512)(A), \5635(__v16sf)(__m512)(B), \5636(__v16si)(__m512i)(C), \5637(int)(imm), (__mmask16)(U), \5638_MM_FROUND_CUR_DIRECTION); })56395640#define _mm_fixupimm_round_sd(A, B, C, imm, R) __extension__ ({ \5641(__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \5642(__v2df)(__m128d)(B), \5643(__v2di)(__m128i)(C), (int)(imm), \5644(__mmask8)-1, (int)(R)); })56455646#define _mm_mask_fixupimm_round_sd(A, U, B, C, imm, R) __extension__ ({ \5647(__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \5648(__v2df)(__m128d)(B), \5649(__v2di)(__m128i)(C), (int)(imm), \5650(__mmask8)(U), (int)(R)); })56515652#define _mm_fixupimm_sd(A, B, C, imm) __extension__ ({ \5653(__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \5654(__v2df)(__m128d)(B), \5655(__v2di)(__m128i)(C), (int)(imm), \5656(__mmask8)-1, \5657_MM_FROUND_CUR_DIRECTION); })56585659#define _mm_mask_fixupimm_sd(A, U, B, C, imm) __extension__ ({ \5660(__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \5661(__v2df)(__m128d)(B), \5662(__v2di)(__m128i)(C), (int)(imm), \5663(__mmask8)(U), \5664_MM_FROUND_CUR_DIRECTION); })56655666#define _mm_maskz_fixupimm_round_sd(U, A, B, C, imm, R) __extension__ ({ \5667(__m128d)__builtin_ia32_fixupimmsd_maskz((__v2df)(__m128d)(A), \5668(__v2df)(__m128d)(B), \5669(__v2di)(__m128i)(C), (int)(imm), \5670(__mmask8)(U), (int)(R)); })56715672#define _mm_maskz_fixupimm_sd(U, A, B, C, imm) __extension__ ({ \5673(__m128d)__builtin_ia32_fixupimmsd_maskz((__v2df)(__m128d)(A), \5674(__v2df)(__m128d)(B), \5675(__v2di)(__m128i)(C), (int)(imm), \5676(__mmask8)(U), \5677_MM_FROUND_CUR_DIRECTION); })56785679#define _mm_fixupimm_round_ss(A, B, C, imm, R) __extension__ ({ \5680(__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \5681(__v4sf)(__m128)(B), \5682(__v4si)(__m128i)(C), (int)(imm), \5683(__mmask8)-1, (int)(R)); })56845685#define _mm_mask_fixupimm_round_ss(A, U, B, C, imm, R) __extension__ ({ \5686(__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \5687(__v4sf)(__m128)(B), \5688(__v4si)(__m128i)(C), (int)(imm), \5689(__mmask8)(U), (int)(R)); })56905691#define _mm_fixupimm_ss(A, B, C, imm) __extension__ ({ \5692(__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \5693(__v4sf)(__m128)(B), \5694(__v4si)(__m128i)(C), (int)(imm), \5695(__mmask8)-1, \5696_MM_FROUND_CUR_DIRECTION); })56975698#define _mm_mask_fixupimm_ss(A, U, B, C, imm) __extension__ ({ \5699(__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \5700(__v4sf)(__m128)(B), \5701(__v4si)(__m128i)(C), (int)(imm), \5702(__mmask8)(U), \5703_MM_FROUND_CUR_DIRECTION); })57045705#define _mm_maskz_fixupimm_round_ss(U, A, B, C, imm, R) __extension__ ({ \5706(__m128)__builtin_ia32_fixupimmss_maskz((__v4sf)(__m128)(A), \5707(__v4sf)(__m128)(B), \5708(__v4si)(__m128i)(C), (int)(imm), \5709(__mmask8)(U), (int)(R)); })57105711#define _mm_maskz_fixupimm_ss(U, A, B, C, imm) __extension__ ({ \5712(__m128)__builtin_ia32_fixupimmss_maskz((__v4sf)(__m128)(A), \5713(__v4sf)(__m128)(B), \5714(__v4si)(__m128i)(C), (int)(imm), \5715(__mmask8)(U), \5716_MM_FROUND_CUR_DIRECTION); })57175718#define _mm_getexp_round_sd(A, B, R) __extension__ ({ \5719(__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \5720(__v2df)(__m128d)(B), \5721(__v2df)_mm_setzero_pd(), \5722(__mmask8)-1, (int)(R)); })572357245725static __inline__ __m128d __DEFAULT_FN_ATTRS5726_mm_getexp_sd (__m128d __A, __m128d __B)5727{5728return (__m128d) __builtin_ia32_getexpsd128_round_mask ((__v2df) __A,5729(__v2df) __B, (__v2df) _mm_setzero_pd(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);5730}57315732static __inline__ __m128d __DEFAULT_FN_ATTRS5733_mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)5734{5735return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,5736(__v2df) __B,5737(__v2df) __W,5738(__mmask8) __U,5739_MM_FROUND_CUR_DIRECTION);5740}57415742#define _mm_mask_getexp_round_sd(W, U, A, B, R) __extension__ ({\5743(__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \5744(__v2df)(__m128d)(B), \5745(__v2df)(__m128d)(W), \5746(__mmask8)(U), (int)(R)); })57475748static __inline__ __m128d __DEFAULT_FN_ATTRS5749_mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B)5750{5751return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,5752(__v2df) __B,5753(__v2df) _mm_setzero_pd (),5754(__mmask8) __U,5755_MM_FROUND_CUR_DIRECTION);5756}57575758#define _mm_maskz_getexp_round_sd(U, A, B, R) __extension__ ({\5759(__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \5760(__v2df)(__m128d)(B), \5761(__v2df)_mm_setzero_pd(), \5762(__mmask8)(U), (int)(R)); })57635764#define _mm_getexp_round_ss(A, B, R) __extension__ ({ \5765(__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \5766(__v4sf)(__m128)(B), \5767(__v4sf)_mm_setzero_ps(), \5768(__mmask8)-1, (int)(R)); })57695770static __inline__ __m128 __DEFAULT_FN_ATTRS5771_mm_getexp_ss (__m128 __A, __m128 __B)5772{5773return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,5774(__v4sf) __B, (__v4sf) _mm_setzero_ps(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);5775}57765777static __inline__ __m128 __DEFAULT_FN_ATTRS5778_mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)5779{5780return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,5781(__v4sf) __B,5782(__v4sf) __W,5783(__mmask8) __U,5784_MM_FROUND_CUR_DIRECTION);5785}57865787#define _mm_mask_getexp_round_ss(W, U, A, B, R) __extension__ ({\5788(__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \5789(__v4sf)(__m128)(B), \5790(__v4sf)(__m128)(W), \5791(__mmask8)(U), (int)(R)); })57925793static __inline__ __m128 __DEFAULT_FN_ATTRS5794_mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)5795{5796return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,5797(__v4sf) __B,5798(__v4sf) _mm_setzero_pd (),5799(__mmask8) __U,5800_MM_FROUND_CUR_DIRECTION);5801}58025803#define _mm_maskz_getexp_round_ss(U, A, B, R) __extension__ ({\5804(__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \5805(__v4sf)(__m128)(B), \5806(__v4sf)_mm_setzero_ps(), \5807(__mmask8)(U), (int)(R)); })58085809#define _mm_getmant_round_sd(A, B, C, D, R) __extension__ ({ \5810(__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \5811(__v2df)(__m128d)(B), \5812(int)(((D)<<2) | (C)), \5813(__v2df)_mm_setzero_pd(), \5814(__mmask8)-1, (int)(R)); })58155816#define _mm_getmant_sd(A, B, C, D) __extension__ ({ \5817(__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \5818(__v2df)(__m128d)(B), \5819(int)(((D)<<2) | (C)), \5820(__v2df)_mm_setzero_pd(), \5821(__mmask8)-1, \5822_MM_FROUND_CUR_DIRECTION); })58235824#define _mm_mask_getmant_sd(W, U, A, B, C, D) __extension__ ({\5825(__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \5826(__v2df)(__m128d)(B), \5827(int)(((D)<<2) | (C)), \5828(__v2df)(__m128d)(W), \5829(__mmask8)(U), \5830_MM_FROUND_CUR_DIRECTION); })58315832#define _mm_mask_getmant_round_sd(W, U, A, B, C, D, R)({\5833(__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \5834(__v2df)(__m128d)(B), \5835(int)(((D)<<2) | (C)), \5836(__v2df)(__m128d)(W), \5837(__mmask8)(U), (int)(R)); })58385839#define _mm_maskz_getmant_sd(U, A, B, C, D) __extension__ ({\5840(__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \5841(__v2df)(__m128d)(B), \5842(int)(((D)<<2) | (C)), \5843(__v2df)_mm_setzero_pd(), \5844(__mmask8)(U), \5845_MM_FROUND_CUR_DIRECTION); })58465847#define _mm_maskz_getmant_round_sd(U, A, B, C, D, R) __extension__ ({\5848(__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \5849(__v2df)(__m128d)(B), \5850(int)(((D)<<2) | (C)), \5851(__v2df)_mm_setzero_pd(), \5852(__mmask8)(U), (int)(R)); })58535854#define _mm_getmant_round_ss(A, B, C, D, R) __extension__ ({ \5855(__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \5856(__v4sf)(__m128)(B), \5857(int)(((D)<<2) | (C)), \5858(__v4sf)_mm_setzero_ps(), \5859(__mmask8)-1, (int)(R)); })58605861#define _mm_getmant_ss(A, B, C, D) __extension__ ({ \5862(__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \5863(__v4sf)(__m128)(B), \5864(int)(((D)<<2) | (C)), \5865(__v4sf)_mm_setzero_ps(), \5866(__mmask8)-1, \5867_MM_FROUND_CUR_DIRECTION); })58685869#define _mm_mask_getmant_ss(W, U, A, B, C, D) __extension__ ({\5870(__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \5871(__v4sf)(__m128)(B), \5872(int)(((D)<<2) | (C)), \5873(__v4sf)(__m128)(W), \5874(__mmask8)(U), \5875_MM_FROUND_CUR_DIRECTION); })58765877#define _mm_mask_getmant_round_ss(W, U, A, B, C, D, R)({\5878(__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \5879(__v4sf)(__m128)(B), \5880(int)(((D)<<2) | (C)), \5881(__v4sf)(__m128)(W), \5882(__mmask8)(U), (int)(R)); })58835884#define _mm_maskz_getmant_ss(U, A, B, C, D) __extension__ ({\5885(__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \5886(__v4sf)(__m128)(B), \5887(int)(((D)<<2) | (C)), \5888(__v4sf)_mm_setzero_pd(), \5889(__mmask8)(U), \5890_MM_FROUND_CUR_DIRECTION); })58915892#define _mm_maskz_getmant_round_ss(U, A, B, C, D, R) __extension__ ({\5893(__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \5894(__v4sf)(__m128)(B), \5895(int)(((D)<<2) | (C)), \5896(__v4sf)_mm_setzero_ps(), \5897(__mmask8)(U), (int)(R)); })58985899static __inline__ __mmask16 __DEFAULT_FN_ATTRS5900_mm512_kmov (__mmask16 __A)5901{5902return __A;5903}59045905#define _mm_comi_round_sd(A, B, P, R) __extension__ ({\5906(int)__builtin_ia32_vcomisd((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), \5907(int)(P), (int)(R)); })59085909#define _mm_comi_round_ss(A, B, P, R) __extension__ ({\5910(int)__builtin_ia32_vcomiss((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \5911(int)(P), (int)(R)); })59125913#define _mm_cvt_roundsd_si64(A, R) __extension__ ({ \5914(long long)__builtin_ia32_vcvtsd2si64((__v2df)(__m128d)(A), (int)(R)); })59155916static __inline__ __m512i __DEFAULT_FN_ATTRS5917_mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,5918__mmask16 __U, __m512i __B)5919{5920return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,5921(__v16si) __I5922/* idx */ ,5923(__v16si) __B,5924(__mmask16) __U);5925}59265927static __inline__ __m512i __DEFAULT_FN_ATTRS5928_mm512_sll_epi32 (__m512i __A, __m128i __B)5929{5930return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,5931(__v4si) __B,5932(__v16si)5933_mm512_setzero_si512 (),5934(__mmask16) -1);5935}59365937static __inline__ __m512i __DEFAULT_FN_ATTRS5938_mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)5939{5940return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,5941(__v4si) __B,5942(__v16si) __W,5943(__mmask16) __U);5944}59455946static __inline__ __m512i __DEFAULT_FN_ATTRS5947_mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)5948{5949return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,5950(__v4si) __B,5951(__v16si)5952_mm512_setzero_si512 (),5953(__mmask16) __U);5954}59555956static __inline__ __m512i __DEFAULT_FN_ATTRS5957_mm512_sll_epi64 (__m512i __A, __m128i __B)5958{5959return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,5960(__v2di) __B,5961(__v8di)5962_mm512_setzero_si512 (),5963(__mmask8) -1);5964}59655966static __inline__ __m512i __DEFAULT_FN_ATTRS5967_mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)5968{5969return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,5970(__v2di) __B,5971(__v8di) __W,5972(__mmask8) __U);5973}59745975static __inline__ __m512i __DEFAULT_FN_ATTRS5976_mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)5977{5978return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,5979(__v2di) __B,5980(__v8di)5981_mm512_setzero_si512 (),5982(__mmask8) __U);5983}59845985static __inline__ __m512i __DEFAULT_FN_ATTRS5986_mm512_sllv_epi32 (__m512i __X, __m512i __Y)5987{5988return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,5989(__v16si) __Y,5990(__v16si)5991_mm512_setzero_si512 (),5992(__mmask16) -1);5993}59945995static __inline__ __m512i __DEFAULT_FN_ATTRS5996_mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)5997{5998return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,5999(__v16si) __Y,6000(__v16si) __W,6001(__mmask16) __U);6002}60036004static __inline__ __m512i __DEFAULT_FN_ATTRS6005_mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)6006{6007return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,6008(__v16si) __Y,6009(__v16si)6010_mm512_setzero_si512 (),6011(__mmask16) __U);6012}60136014static __inline__ __m512i __DEFAULT_FN_ATTRS6015_mm512_sllv_epi64 (__m512i __X, __m512i __Y)6016{6017return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,6018(__v8di) __Y,6019(__v8di)6020_mm512_undefined_pd (),6021(__mmask8) -1);6022}60236024static __inline__ __m512i __DEFAULT_FN_ATTRS6025_mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)6026{6027return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,6028(__v8di) __Y,6029(__v8di) __W,6030(__mmask8) __U);6031}60326033static __inline__ __m512i __DEFAULT_FN_ATTRS6034_mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)6035{6036return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,6037(__v8di) __Y,6038(__v8di)6039_mm512_setzero_si512 (),6040(__mmask8) __U);6041}60426043static __inline__ __m512i __DEFAULT_FN_ATTRS6044_mm512_sra_epi32 (__m512i __A, __m128i __B)6045{6046return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,6047(__v4si) __B,6048(__v16si)6049_mm512_setzero_si512 (),6050(__mmask16) -1);6051}60526053static __inline__ __m512i __DEFAULT_FN_ATTRS6054_mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)6055{6056return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,6057(__v4si) __B,6058(__v16si) __W,6059(__mmask16) __U);6060}60616062static __inline__ __m512i __DEFAULT_FN_ATTRS6063_mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)6064{6065return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,6066(__v4si) __B,6067(__v16si)6068_mm512_setzero_si512 (),6069(__mmask16) __U);6070}60716072static __inline__ __m512i __DEFAULT_FN_ATTRS6073_mm512_sra_epi64 (__m512i __A, __m128i __B)6074{6075return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,6076(__v2di) __B,6077(__v8di)6078_mm512_setzero_si512 (),6079(__mmask8) -1);6080}60816082static __inline__ __m512i __DEFAULT_FN_ATTRS6083_mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)6084{6085return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,6086(__v2di) __B,6087(__v8di) __W,6088(__mmask8) __U);6089}60906091static __inline__ __m512i __DEFAULT_FN_ATTRS6092_mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)6093{6094return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,6095(__v2di) __B,6096(__v8di)6097_mm512_setzero_si512 (),6098(__mmask8) __U);6099}61006101static __inline__ __m512i __DEFAULT_FN_ATTRS6102_mm512_srav_epi32 (__m512i __X, __m512i __Y)6103{6104return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,6105(__v16si) __Y,6106(__v16si)6107_mm512_setzero_si512 (),6108(__mmask16) -1);6109}61106111static __inline__ __m512i __DEFAULT_FN_ATTRS6112_mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)6113{6114return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,6115(__v16si) __Y,6116(__v16si) __W,6117(__mmask16) __U);6118}61196120static __inline__ __m512i __DEFAULT_FN_ATTRS6121_mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)6122{6123return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,6124(__v16si) __Y,6125(__v16si)6126_mm512_setzero_si512 (),6127(__mmask16) __U);6128}61296130static __inline__ __m512i __DEFAULT_FN_ATTRS6131_mm512_srav_epi64 (__m512i __X, __m512i __Y)6132{6133return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,6134(__v8di) __Y,6135(__v8di)6136_mm512_setzero_si512 (),6137(__mmask8) -1);6138}61396140static __inline__ __m512i __DEFAULT_FN_ATTRS6141_mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)6142{6143return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,6144(__v8di) __Y,6145(__v8di) __W,6146(__mmask8) __U);6147}61486149static __inline__ __m512i __DEFAULT_FN_ATTRS6150_mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)6151{6152return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,6153(__v8di) __Y,6154(__v8di)6155_mm512_setzero_si512 (),6156(__mmask8) __U);6157}61586159static __inline__ __m512i __DEFAULT_FN_ATTRS6160_mm512_srl_epi32 (__m512i __A, __m128i __B)6161{6162return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,6163(__v4si) __B,6164(__v16si)6165_mm512_setzero_si512 (),6166(__mmask16) -1);6167}61686169static __inline__ __m512i __DEFAULT_FN_ATTRS6170_mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)6171{6172return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,6173(__v4si) __B,6174(__v16si) __W,6175(__mmask16) __U);6176}61776178static __inline__ __m512i __DEFAULT_FN_ATTRS6179_mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)6180{6181return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,6182(__v4si) __B,6183(__v16si)6184_mm512_setzero_si512 (),6185(__mmask16) __U);6186}61876188static __inline__ __m512i __DEFAULT_FN_ATTRS6189_mm512_srl_epi64 (__m512i __A, __m128i __B)6190{6191return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,6192(__v2di) __B,6193(__v8di)6194_mm512_setzero_si512 (),6195(__mmask8) -1);6196}61976198static __inline__ __m512i __DEFAULT_FN_ATTRS6199_mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)6200{6201return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,6202(__v2di) __B,6203(__v8di) __W,6204(__mmask8) __U);6205}62066207static __inline__ __m512i __DEFAULT_FN_ATTRS6208_mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)6209{6210return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,6211(__v2di) __B,6212(__v8di)6213_mm512_setzero_si512 (),6214(__mmask8) __U);6215}62166217static __inline__ __m512i __DEFAULT_FN_ATTRS6218_mm512_srlv_epi32 (__m512i __X, __m512i __Y)6219{6220return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,6221(__v16si) __Y,6222(__v16si)6223_mm512_setzero_si512 (),6224(__mmask16) -1);6225}62266227static __inline__ __m512i __DEFAULT_FN_ATTRS6228_mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)6229{6230return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,6231(__v16si) __Y,6232(__v16si) __W,6233(__mmask16) __U);6234}62356236static __inline__ __m512i __DEFAULT_FN_ATTRS6237_mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)6238{6239return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,6240(__v16si) __Y,6241(__v16si)6242_mm512_setzero_si512 (),6243(__mmask16) __U);6244}62456246static __inline__ __m512i __DEFAULT_FN_ATTRS6247_mm512_srlv_epi64 (__m512i __X, __m512i __Y)6248{6249return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,6250(__v8di) __Y,6251(__v8di)6252_mm512_setzero_si512 (),6253(__mmask8) -1);6254}62556256static __inline__ __m512i __DEFAULT_FN_ATTRS6257_mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)6258{6259return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,6260(__v8di) __Y,6261(__v8di) __W,6262(__mmask8) __U);6263}62646265static __inline__ __m512i __DEFAULT_FN_ATTRS6266_mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)6267{6268return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,6269(__v8di) __Y,6270(__v8di)6271_mm512_setzero_si512 (),6272(__mmask8) __U);6273}62746275#define _mm512_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \6276(__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \6277(__v16si)(__m512i)(B), \6278(__v16si)(__m512i)(C), (int)(imm), \6279(__mmask16)-1); })62806281#define _mm512_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \6282(__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \6283(__v16si)(__m512i)(B), \6284(__v16si)(__m512i)(C), (int)(imm), \6285(__mmask16)(U)); })62866287#define _mm512_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \6288(__m512i)__builtin_ia32_pternlogd512_maskz((__v16si)(__m512i)(A), \6289(__v16si)(__m512i)(B), \6290(__v16si)(__m512i)(C), \6291(int)(imm), (__mmask16)(U)); })62926293#define _mm512_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \6294(__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \6295(__v8di)(__m512i)(B), \6296(__v8di)(__m512i)(C), (int)(imm), \6297(__mmask8)-1); })62986299#define _mm512_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \6300(__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \6301(__v8di)(__m512i)(B), \6302(__v8di)(__m512i)(C), (int)(imm), \6303(__mmask8)(U)); })63046305#define _mm512_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \6306(__m512i)__builtin_ia32_pternlogq512_maskz((__v8di)(__m512i)(A), \6307(__v8di)(__m512i)(B), \6308(__v8di)(__m512i)(C), (int)(imm), \6309(__mmask8)(U)); })63106311#define _mm_cvt_roundsd_i64(A, R) __extension__ ({ \6312(long long)__builtin_ia32_vcvtsd2si64((__v2df)(__m128d)(A), (int)(R)); })63136314#define _mm_cvt_roundsd_si32(A, R) __extension__ ({ \6315(int)__builtin_ia32_vcvtsd2si32((__v2df)(__m128d)(A), (int)(R)); })63166317#define _mm_cvt_roundsd_i32(A, R) __extension__ ({ \6318(int)__builtin_ia32_vcvtsd2si32((__v2df)(__m128d)(A), (int)(R)); })63196320#define _mm_cvt_roundsd_u32(A, R) __extension__ ({ \6321(unsigned int)__builtin_ia32_vcvtsd2usi32((__v2df)(__m128d)(A), (int)(R)); })63226323static __inline__ unsigned __DEFAULT_FN_ATTRS6324_mm_cvtsd_u32 (__m128d __A)6325{6326return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,6327_MM_FROUND_CUR_DIRECTION);6328}63296330#define _mm_cvt_roundsd_u64(A, R) __extension__ ({ \6331(unsigned long long)__builtin_ia32_vcvtsd2usi64((__v2df)(__m128d)(A), \6332(int)(R)); })63336334static __inline__ unsigned long long __DEFAULT_FN_ATTRS6335_mm_cvtsd_u64 (__m128d __A)6336{6337return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)6338__A,6339_MM_FROUND_CUR_DIRECTION);6340}63416342#define _mm_cvt_roundss_si32(A, R) __extension__ ({ \6343(int)__builtin_ia32_vcvtss2si32((__v4sf)(__m128)(A), (int)(R)); })63446345#define _mm_cvt_roundss_i32(A, R) __extension__ ({ \6346(int)__builtin_ia32_vcvtss2si32((__v4sf)(__m128)(A), (int)(R)); })63476348#define _mm_cvt_roundss_si64(A, R) __extension__ ({ \6349(long long)__builtin_ia32_vcvtss2si64((__v4sf)(__m128)(A), (int)(R)); })63506351#define _mm_cvt_roundss_i64(A, R) __extension__ ({ \6352(long long)__builtin_ia32_vcvtss2si64((__v4sf)(__m128)(A), (int)(R)); })63536354#define _mm_cvt_roundss_u32(A, R) __extension__ ({ \6355(unsigned int)__builtin_ia32_vcvtss2usi32((__v4sf)(__m128)(A), (int)(R)); })63566357static __inline__ unsigned __DEFAULT_FN_ATTRS6358_mm_cvtss_u32 (__m128 __A)6359{6360return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,6361_MM_FROUND_CUR_DIRECTION);6362}63636364#define _mm_cvt_roundss_u64(A, R) __extension__ ({ \6365(unsigned long long)__builtin_ia32_vcvtss2usi64((__v4sf)(__m128)(A), \6366(int)(R)); })63676368static __inline__ unsigned long long __DEFAULT_FN_ATTRS6369_mm_cvtss_u64 (__m128 __A)6370{6371return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)6372__A,6373_MM_FROUND_CUR_DIRECTION);6374}63756376#define _mm_cvtt_roundsd_i32(A, R) __extension__ ({ \6377(int)__builtin_ia32_vcvttsd2si32((__v2df)(__m128d)(A), (int)(R)); })63786379#define _mm_cvtt_roundsd_si32(A, R) __extension__ ({ \6380(int)__builtin_ia32_vcvttsd2si32((__v2df)(__m128d)(A), (int)(R)); })63816382static __inline__ int __DEFAULT_FN_ATTRS6383_mm_cvttsd_i32 (__m128d __A)6384{6385return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,6386_MM_FROUND_CUR_DIRECTION);6387}63886389#define _mm_cvtt_roundsd_si64(A, R) __extension__ ({ \6390(long long)__builtin_ia32_vcvttsd2si64((__v2df)(__m128d)(A), (int)(R)); })63916392#define _mm_cvtt_roundsd_i64(A, R) __extension__ ({ \6393(long long)__builtin_ia32_vcvttsd2si64((__v2df)(__m128d)(A), (int)(R)); })63946395static __inline__ long long __DEFAULT_FN_ATTRS6396_mm_cvttsd_i64 (__m128d __A)6397{6398return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,6399_MM_FROUND_CUR_DIRECTION);6400}64016402#define _mm_cvtt_roundsd_u32(A, R) __extension__ ({ \6403(unsigned int)__builtin_ia32_vcvttsd2usi32((__v2df)(__m128d)(A), (int)(R)); })64046405static __inline__ unsigned __DEFAULT_FN_ATTRS6406_mm_cvttsd_u32 (__m128d __A)6407{6408return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,6409_MM_FROUND_CUR_DIRECTION);6410}64116412#define _mm_cvtt_roundsd_u64(A, R) __extension__ ({ \6413(unsigned long long)__builtin_ia32_vcvttsd2usi64((__v2df)(__m128d)(A), \6414(int)(R)); })64156416static __inline__ unsigned long long __DEFAULT_FN_ATTRS6417_mm_cvttsd_u64 (__m128d __A)6418{6419return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)6420__A,6421_MM_FROUND_CUR_DIRECTION);6422}64236424#define _mm_cvtt_roundss_i32(A, R) __extension__ ({ \6425(int)__builtin_ia32_vcvttss2si32((__v4sf)(__m128)(A), (int)(R)); })64266427#define _mm_cvtt_roundss_si32(A, R) __extension__ ({ \6428(int)__builtin_ia32_vcvttss2si32((__v4sf)(__m128)(A), (int)(R)); })64296430static __inline__ int __DEFAULT_FN_ATTRS6431_mm_cvttss_i32 (__m128 __A)6432{6433return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,6434_MM_FROUND_CUR_DIRECTION);6435}64366437#define _mm_cvtt_roundss_i64(A, R) __extension__ ({ \6438(long long)__builtin_ia32_vcvttss2si64((__v4sf)(__m128)(A), (int)(R)); })64396440#define _mm_cvtt_roundss_si64(A, R) __extension__ ({ \6441(long long)__builtin_ia32_vcvttss2si64((__v4sf)(__m128)(A), (int)(R)); })64426443static __inline__ long long __DEFAULT_FN_ATTRS6444_mm_cvttss_i64 (__m128 __A)6445{6446return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,6447_MM_FROUND_CUR_DIRECTION);6448}64496450#define _mm_cvtt_roundss_u32(A, R) __extension__ ({ \6451(unsigned int)__builtin_ia32_vcvttss2usi32((__v4sf)(__m128)(A), (int)(R)); })64526453static __inline__ unsigned __DEFAULT_FN_ATTRS6454_mm_cvttss_u32 (__m128 __A)6455{6456return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,6457_MM_FROUND_CUR_DIRECTION);6458}64596460#define _mm_cvtt_roundss_u64(A, R) __extension__ ({ \6461(unsigned long long)__builtin_ia32_vcvttss2usi64((__v4sf)(__m128)(A), \6462(int)(R)); })64636464static __inline__ unsigned long long __DEFAULT_FN_ATTRS6465_mm_cvttss_u64 (__m128 __A)6466{6467return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)6468__A,6469_MM_FROUND_CUR_DIRECTION);6470}64716472static __inline__ __m512d __DEFAULT_FN_ATTRS6473_mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,6474__m512d __B)6475{6476return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,6477(__v8di) __I6478/* idx */ ,6479(__v8df) __B,6480(__mmask8) __U);6481}64826483static __inline__ __m512 __DEFAULT_FN_ATTRS6484_mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,6485__m512 __B)6486{6487return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,6488(__v16si) __I6489/* idx */ ,6490(__v16sf) __B,6491(__mmask16) __U);6492}64936494static __inline__ __m512i __DEFAULT_FN_ATTRS6495_mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,6496__mmask8 __U, __m512i __B)6497{6498return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,6499(__v8di) __I6500/* idx */ ,6501(__v8di) __B,6502(__mmask8) __U);6503}65046505#define _mm512_permute_pd(X, C) __extension__ ({ \6506(__m512d)__builtin_shufflevector((__v8df)(__m512d)(X), \6507(__v8df)_mm512_undefined_pd(), \65080 + (((C) >> 0) & 0x1), \65090 + (((C) >> 1) & 0x1), \65102 + (((C) >> 2) & 0x1), \65112 + (((C) >> 3) & 0x1), \65124 + (((C) >> 4) & 0x1), \65134 + (((C) >> 5) & 0x1), \65146 + (((C) >> 6) & 0x1), \65156 + (((C) >> 7) & 0x1)); })65166517#define _mm512_mask_permute_pd(W, U, X, C) __extension__ ({ \6518(__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \6519(__v8df)_mm512_permute_pd((X), (C)), \6520(__v8df)(__m512d)(W)); })65216522#define _mm512_maskz_permute_pd(U, X, C) __extension__ ({ \6523(__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \6524(__v8df)_mm512_permute_pd((X), (C)), \6525(__v8df)_mm512_setzero_pd()); })65266527#define _mm512_permute_ps(X, C) __extension__ ({ \6528(__m512)__builtin_shufflevector((__v16sf)(__m512)(X), \6529(__v16sf)_mm512_undefined_ps(), \65300 + (((C) >> 0) & 0x3), \65310 + (((C) >> 2) & 0x3), \65320 + (((C) >> 4) & 0x3), \65330 + (((C) >> 6) & 0x3), \65344 + (((C) >> 0) & 0x3), \65354 + (((C) >> 2) & 0x3), \65364 + (((C) >> 4) & 0x3), \65374 + (((C) >> 6) & 0x3), \65388 + (((C) >> 0) & 0x3), \65398 + (((C) >> 2) & 0x3), \65408 + (((C) >> 4) & 0x3), \65418 + (((C) >> 6) & 0x3), \654212 + (((C) >> 0) & 0x3), \654312 + (((C) >> 2) & 0x3), \654412 + (((C) >> 4) & 0x3), \654512 + (((C) >> 6) & 0x3)); })65466547#define _mm512_mask_permute_ps(W, U, X, C) __extension__ ({ \6548(__m512)__builtin_ia32_selectps_512((__mmask16)(U), \6549(__v16sf)_mm512_permute_ps((X), (C)), \6550(__v16sf)(__m512)(W)); })65516552#define _mm512_maskz_permute_ps(U, X, C) __extension__ ({ \6553(__m512)__builtin_ia32_selectps_512((__mmask16)(U), \6554(__v16sf)_mm512_permute_ps((X), (C)), \6555(__v16sf)_mm512_setzero_ps()); })65566557static __inline__ __m512d __DEFAULT_FN_ATTRS6558_mm512_permutevar_pd (__m512d __A, __m512i __C)6559{6560return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,6561(__v8di) __C,6562(__v8df)6563_mm512_undefined_pd (),6564(__mmask8) -1);6565}65666567static __inline__ __m512d __DEFAULT_FN_ATTRS6568_mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)6569{6570return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,6571(__v8di) __C,6572(__v8df) __W,6573(__mmask8) __U);6574}65756576static __inline__ __m512d __DEFAULT_FN_ATTRS6577_mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)6578{6579return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,6580(__v8di) __C,6581(__v8df)6582_mm512_setzero_pd (),6583(__mmask8) __U);6584}65856586static __inline__ __m512 __DEFAULT_FN_ATTRS6587_mm512_permutevar_ps (__m512 __A, __m512i __C)6588{6589return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,6590(__v16si) __C,6591(__v16sf)6592_mm512_undefined_ps (),6593(__mmask16) -1);6594}65956596static __inline__ __m512 __DEFAULT_FN_ATTRS6597_mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)6598{6599return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,6600(__v16si) __C,6601(__v16sf) __W,6602(__mmask16) __U);6603}66046605static __inline__ __m512 __DEFAULT_FN_ATTRS6606_mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)6607{6608return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,6609(__v16si) __C,6610(__v16sf)6611_mm512_setzero_ps (),6612(__mmask16) __U);6613}66146615static __inline __m512d __DEFAULT_FN_ATTRS6616_mm512_permutex2var_pd(__m512d __A, __m512i __I, __m512d __B)6617{6618return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I6619/* idx */ ,6620(__v8df) __A,6621(__v8df) __B,6622(__mmask8) -1);6623}66246625static __inline__ __m512d __DEFAULT_FN_ATTRS6626_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, __m512d __B)6627{6628return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I6629/* idx */ ,6630(__v8df) __A,6631(__v8df) __B,6632(__mmask8) __U);6633}66346635static __inline__ __m512d __DEFAULT_FN_ATTRS6636_mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,6637__m512d __B)6638{6639return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I6640/* idx */ ,6641(__v8df) __A,6642(__v8df) __B,6643(__mmask8) __U);6644}66456646static __inline __m512 __DEFAULT_FN_ATTRS6647_mm512_permutex2var_ps(__m512 __A, __m512i __I, __m512 __B)6648{6649return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I6650/* idx */ ,6651(__v16sf) __A,6652(__v16sf) __B,6653(__mmask16) -1);6654}66556656static __inline__ __m512 __DEFAULT_FN_ATTRS6657_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)6658{6659return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I6660/* idx */ ,6661(__v16sf) __A,6662(__v16sf) __B,6663(__mmask16) __U);6664}66656666static __inline__ __m512 __DEFAULT_FN_ATTRS6667_mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,6668__m512 __B)6669{6670return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I6671/* idx */ ,6672(__v16sf) __A,6673(__v16sf) __B,6674(__mmask16) __U);6675}66766677static __inline__ __mmask16 __DEFAULT_FN_ATTRS6678_mm512_testn_epi32_mask (__m512i __A, __m512i __B)6679{6680return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,6681(__v16si) __B,6682(__mmask16) -1);6683}66846685static __inline__ __mmask16 __DEFAULT_FN_ATTRS6686_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)6687{6688return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,6689(__v16si) __B, __U);6690}66916692static __inline__ __mmask8 __DEFAULT_FN_ATTRS6693_mm512_testn_epi64_mask (__m512i __A, __m512i __B)6694{6695return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,6696(__v8di) __B,6697(__mmask8) -1);6698}66996700static __inline__ __mmask8 __DEFAULT_FN_ATTRS6701_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)6702{6703return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,6704(__v8di) __B, __U);6705}67066707#define _mm512_cvtt_roundpd_epu32(A, R) __extension__ ({ \6708(__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \6709(__v8si)_mm256_undefined_si256(), \6710(__mmask8)-1, (int)(R)); })67116712#define _mm512_mask_cvtt_roundpd_epu32(W, U, A, R) __extension__ ({ \6713(__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \6714(__v8si)(__m256i)(W), \6715(__mmask8)(U), (int)(R)); })67166717#define _mm512_maskz_cvtt_roundpd_epu32(U, A, R) __extension__ ({ \6718(__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \6719(__v8si)_mm256_setzero_si256(), \6720(__mmask8)(U), (int)(R)); })67216722static __inline__ __m256i __DEFAULT_FN_ATTRS6723_mm512_cvttpd_epu32 (__m512d __A)6724{6725return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,6726(__v8si)6727_mm256_undefined_si256 (),6728(__mmask8) -1,6729_MM_FROUND_CUR_DIRECTION);6730}67316732static __inline__ __m256i __DEFAULT_FN_ATTRS6733_mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)6734{6735return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,6736(__v8si) __W,6737(__mmask8) __U,6738_MM_FROUND_CUR_DIRECTION);6739}67406741static __inline__ __m256i __DEFAULT_FN_ATTRS6742_mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)6743{6744return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,6745(__v8si)6746_mm256_setzero_si256 (),6747(__mmask8) __U,6748_MM_FROUND_CUR_DIRECTION);6749}67506751#define _mm_roundscale_round_sd(A, B, imm, R) __extension__ ({ \6752(__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \6753(__v2df)(__m128d)(B), \6754(__v2df)_mm_setzero_pd(), \6755(__mmask8)-1, (int)(imm), \6756(int)(R)); })67576758#define _mm_roundscale_sd(A, B, imm) __extension__ ({ \6759(__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \6760(__v2df)(__m128d)(B), \6761(__v2df)_mm_setzero_pd(), \6762(__mmask8)-1, (int)(imm), \6763_MM_FROUND_CUR_DIRECTION); })67646765#define _mm_mask_roundscale_sd(W, U, A, B, imm) __extension__ ({ \6766(__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \6767(__v2df)(__m128d)(B), \6768(__v2df)(__m128d)(W), \6769(__mmask8)(U), (int)(imm), \6770_MM_FROUND_CUR_DIRECTION); })67716772#define _mm_mask_roundscale_round_sd(W, U, A, B, I, R) __extension__ ({ \6773(__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \6774(__v2df)(__m128d)(B), \6775(__v2df)(__m128d)(W), \6776(__mmask8)(U), (int)(I), \6777(int)(R)); })67786779#define _mm_maskz_roundscale_sd(U, A, B, I) __extension__ ({ \6780(__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \6781(__v2df)(__m128d)(B), \6782(__v2df)_mm_setzero_pd(), \6783(__mmask8)(U), (int)(I), \6784_MM_FROUND_CUR_DIRECTION); })67856786#define _mm_maskz_roundscale_round_sd(U, A, B, I, R) __extension__ ({ \6787(__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \6788(__v2df)(__m128d)(B), \6789(__v2df)_mm_setzero_pd(), \6790(__mmask8)(U), (int)(I), \6791(int)(R)); })67926793#define _mm_roundscale_round_ss(A, B, imm, R) __extension__ ({ \6794(__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \6795(__v4sf)(__m128)(B), \6796(__v4sf)_mm_setzero_ps(), \6797(__mmask8)-1, (int)(imm), \6798(int)(R)); })67996800#define _mm_roundscale_ss(A, B, imm) __extension__ ({ \6801(__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \6802(__v4sf)(__m128)(B), \6803(__v4sf)_mm_setzero_ps(), \6804(__mmask8)-1, (int)(imm), \6805_MM_FROUND_CUR_DIRECTION); })68066807#define _mm_mask_roundscale_ss(W, U, A, B, I) __extension__ ({ \6808(__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \6809(__v4sf)(__m128)(B), \6810(__v4sf)(__m128)(W), \6811(__mmask8)(U), (int)(I), \6812_MM_FROUND_CUR_DIRECTION); })68136814#define _mm_mask_roundscale_round_ss(W, U, A, B, I, R) __extension__ ({ \6815(__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \6816(__v4sf)(__m128)(B), \6817(__v4sf)(__m128)(W), \6818(__mmask8)(U), (int)(I), \6819(int)(R)); })68206821#define _mm_maskz_roundscale_ss(U, A, B, I) __extension__ ({ \6822(__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \6823(__v4sf)(__m128)(B), \6824(__v4sf)_mm_setzero_ps(), \6825(__mmask8)(U), (int)(I), \6826_MM_FROUND_CUR_DIRECTION); })68276828#define _mm_maskz_roundscale_round_ss(U, A, B, I, R) __extension__ ({ \6829(__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \6830(__v4sf)(__m128)(B), \6831(__v4sf)_mm_setzero_ps(), \6832(__mmask8)(U), (int)(I), \6833(int)(R)); })68346835#define _mm512_scalef_round_pd(A, B, R) __extension__ ({ \6836(__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \6837(__v8df)(__m512d)(B), \6838(__v8df)_mm512_undefined_pd(), \6839(__mmask8)-1, (int)(R)); })68406841#define _mm512_mask_scalef_round_pd(W, U, A, B, R) __extension__ ({ \6842(__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \6843(__v8df)(__m512d)(B), \6844(__v8df)(__m512d)(W), \6845(__mmask8)(U), (int)(R)); })68466847#define _mm512_maskz_scalef_round_pd(U, A, B, R) __extension__ ({ \6848(__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \6849(__v8df)(__m512d)(B), \6850(__v8df)_mm512_setzero_pd(), \6851(__mmask8)(U), (int)(R)); })68526853static __inline__ __m512d __DEFAULT_FN_ATTRS6854_mm512_scalef_pd (__m512d __A, __m512d __B)6855{6856return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,6857(__v8df) __B,6858(__v8df)6859_mm512_undefined_pd (),6860(__mmask8) -1,6861_MM_FROUND_CUR_DIRECTION);6862}68636864static __inline__ __m512d __DEFAULT_FN_ATTRS6865_mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)6866{6867return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,6868(__v8df) __B,6869(__v8df) __W,6870(__mmask8) __U,6871_MM_FROUND_CUR_DIRECTION);6872}68736874static __inline__ __m512d __DEFAULT_FN_ATTRS6875_mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)6876{6877return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,6878(__v8df) __B,6879(__v8df)6880_mm512_setzero_pd (),6881(__mmask8) __U,6882_MM_FROUND_CUR_DIRECTION);6883}68846885#define _mm512_scalef_round_ps(A, B, R) __extension__ ({ \6886(__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \6887(__v16sf)(__m512)(B), \6888(__v16sf)_mm512_undefined_ps(), \6889(__mmask16)-1, (int)(R)); })68906891#define _mm512_mask_scalef_round_ps(W, U, A, B, R) __extension__ ({ \6892(__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \6893(__v16sf)(__m512)(B), \6894(__v16sf)(__m512)(W), \6895(__mmask16)(U), (int)(R)); })68966897#define _mm512_maskz_scalef_round_ps(U, A, B, R) __extension__ ({ \6898(__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \6899(__v16sf)(__m512)(B), \6900(__v16sf)_mm512_setzero_ps(), \6901(__mmask16)(U), (int)(R)); })69026903static __inline__ __m512 __DEFAULT_FN_ATTRS6904_mm512_scalef_ps (__m512 __A, __m512 __B)6905{6906return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,6907(__v16sf) __B,6908(__v16sf)6909_mm512_undefined_ps (),6910(__mmask16) -1,6911_MM_FROUND_CUR_DIRECTION);6912}69136914static __inline__ __m512 __DEFAULT_FN_ATTRS6915_mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)6916{6917return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,6918(__v16sf) __B,6919(__v16sf) __W,6920(__mmask16) __U,6921_MM_FROUND_CUR_DIRECTION);6922}69236924static __inline__ __m512 __DEFAULT_FN_ATTRS6925_mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)6926{6927return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,6928(__v16sf) __B,6929(__v16sf)6930_mm512_setzero_ps (),6931(__mmask16) __U,6932_MM_FROUND_CUR_DIRECTION);6933}69346935#define _mm_scalef_round_sd(A, B, R) __extension__ ({ \6936(__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \6937(__v2df)(__m128d)(B), \6938(__v2df)_mm_setzero_pd(), \6939(__mmask8)-1, (int)(R)); })69406941static __inline__ __m128d __DEFAULT_FN_ATTRS6942_mm_scalef_sd (__m128d __A, __m128d __B)6943{6944return (__m128d) __builtin_ia32_scalefsd_round_mask ((__v2df) __A,6945(__v2df)( __B), (__v2df) _mm_setzero_pd(),6946(__mmask8) -1,6947_MM_FROUND_CUR_DIRECTION);6948}69496950static __inline__ __m128d __DEFAULT_FN_ATTRS6951_mm_mask_scalef_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)6952{6953return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A,6954(__v2df) __B,6955(__v2df) __W,6956(__mmask8) __U,6957_MM_FROUND_CUR_DIRECTION);6958}69596960#define _mm_mask_scalef_round_sd(W, U, A, B, R) __extension__ ({ \6961(__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \6962(__v2df)(__m128d)(B), \6963(__v2df)(__m128d)(W), \6964(__mmask8)(U), (int)(R)); })69656966static __inline__ __m128d __DEFAULT_FN_ATTRS6967_mm_maskz_scalef_sd (__mmask8 __U, __m128d __A, __m128d __B)6968{6969return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A,6970(__v2df) __B,6971(__v2df) _mm_setzero_pd (),6972(__mmask8) __U,6973_MM_FROUND_CUR_DIRECTION);6974}69756976#define _mm_maskz_scalef_round_sd(U, A, B, R) __extension__ ({ \6977(__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \6978(__v2df)(__m128d)(B), \6979(__v2df)_mm_setzero_pd(), \6980(__mmask8)(U), (int)(R)); })69816982#define _mm_scalef_round_ss(A, B, R) __extension__ ({ \6983(__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \6984(__v4sf)(__m128)(B), \6985(__v4sf)_mm_setzero_ps(), \6986(__mmask8)-1, (int)(R)); })69876988static __inline__ __m128 __DEFAULT_FN_ATTRS6989_mm_scalef_ss (__m128 __A, __m128 __B)6990{6991return (__m128) __builtin_ia32_scalefss_round_mask ((__v4sf) __A,6992(__v4sf)( __B), (__v4sf) _mm_setzero_ps(),6993(__mmask8) -1,6994_MM_FROUND_CUR_DIRECTION);6995}69966997static __inline__ __m128 __DEFAULT_FN_ATTRS6998_mm_mask_scalef_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)6999{7000return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A,7001(__v4sf) __B,7002(__v4sf) __W,7003(__mmask8) __U,7004_MM_FROUND_CUR_DIRECTION);7005}70067007#define _mm_mask_scalef_round_ss(W, U, A, B, R) __extension__ ({ \7008(__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \7009(__v4sf)(__m128)(B), \7010(__v4sf)(__m128)(W), \7011(__mmask8)(U), (int)(R)); })70127013static __inline__ __m128 __DEFAULT_FN_ATTRS7014_mm_maskz_scalef_ss (__mmask8 __U, __m128 __A, __m128 __B)7015{7016return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A,7017(__v4sf) __B,7018(__v4sf) _mm_setzero_ps (),7019(__mmask8) __U,7020_MM_FROUND_CUR_DIRECTION);7021}70227023#define _mm_maskz_scalef_round_ss(U, A, B, R) __extension__ ({ \7024(__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \7025(__v4sf)(__m128)(B), \7026(__v4sf)_mm_setzero_ps(), \7027(__mmask8)(U), \7028_MM_FROUND_CUR_DIRECTION); })70297030#define _mm512_srai_epi32(A, B) __extension__ ({ \7031(__m512i)__builtin_ia32_psradi512_mask((__v16si)(__m512i)(A), (int)(B), \7032(__v16si)_mm512_setzero_si512(), \7033(__mmask16)-1); })70347035#define _mm512_mask_srai_epi32(W, U, A, B) __extension__ ({ \7036(__m512i)__builtin_ia32_psradi512_mask((__v16si)(__m512i)(A), (int)(B), \7037(__v16si)(__m512i)(W), \7038(__mmask16)(U)); })70397040#define _mm512_maskz_srai_epi32(U, A, B) __extension__ ({ \7041(__m512i)__builtin_ia32_psradi512_mask((__v16si)(__m512i)(A), (int)(B), \7042(__v16si)_mm512_setzero_si512(), \7043(__mmask16)(U)); })70447045#define _mm512_srai_epi64(A, B) __extension__ ({ \7046(__m512i)__builtin_ia32_psraqi512_mask((__v8di)(__m512i)(A), (int)(B), \7047(__v8di)_mm512_setzero_si512(), \7048(__mmask8)-1); })70497050#define _mm512_mask_srai_epi64(W, U, A, B) __extension__ ({ \7051(__m512i)__builtin_ia32_psraqi512_mask((__v8di)(__m512i)(A), (int)(B), \7052(__v8di)(__m512i)(W), \7053(__mmask8)(U)); })70547055#define _mm512_maskz_srai_epi64(U, A, B) __extension__ ({ \7056(__m512i)__builtin_ia32_psraqi512_mask((__v8di)(__m512i)(A), (int)(B), \7057(__v8di)_mm512_setzero_si512(), \7058(__mmask8)(U)); })70597060#define _mm512_shuffle_f32x4(A, B, imm) __extension__ ({ \7061(__m512)__builtin_ia32_shuf_f32x4_mask((__v16sf)(__m512)(A), \7062(__v16sf)(__m512)(B), (int)(imm), \7063(__v16sf)_mm512_undefined_ps(), \7064(__mmask16)-1); })70657066#define _mm512_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \7067(__m512)__builtin_ia32_shuf_f32x4_mask((__v16sf)(__m512)(A), \7068(__v16sf)(__m512)(B), (int)(imm), \7069(__v16sf)(__m512)(W), \7070(__mmask16)(U)); })70717072#define _mm512_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \7073(__m512)__builtin_ia32_shuf_f32x4_mask((__v16sf)(__m512)(A), \7074(__v16sf)(__m512)(B), (int)(imm), \7075(__v16sf)_mm512_setzero_ps(), \7076(__mmask16)(U)); })70777078#define _mm512_shuffle_f64x2(A, B, imm) __extension__ ({ \7079(__m512d)__builtin_ia32_shuf_f64x2_mask((__v8df)(__m512d)(A), \7080(__v8df)(__m512d)(B), (int)(imm), \7081(__v8df)_mm512_undefined_pd(), \7082(__mmask8)-1); })70837084#define _mm512_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \7085(__m512d)__builtin_ia32_shuf_f64x2_mask((__v8df)(__m512d)(A), \7086(__v8df)(__m512d)(B), (int)(imm), \7087(__v8df)(__m512d)(W), \7088(__mmask8)(U)); })70897090#define _mm512_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \7091(__m512d)__builtin_ia32_shuf_f64x2_mask((__v8df)(__m512d)(A), \7092(__v8df)(__m512d)(B), (int)(imm), \7093(__v8df)_mm512_setzero_pd(), \7094(__mmask8)(U)); })70957096#define _mm512_shuffle_i32x4(A, B, imm) __extension__ ({ \7097(__m512i)__builtin_ia32_shuf_i32x4_mask((__v16si)(__m512i)(A), \7098(__v16si)(__m512i)(B), (int)(imm), \7099(__v16si)_mm512_setzero_si512(), \7100(__mmask16)-1); })71017102#define _mm512_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \7103(__m512i)__builtin_ia32_shuf_i32x4_mask((__v16si)(__m512i)(A), \7104(__v16si)(__m512i)(B), (int)(imm), \7105(__v16si)(__m512i)(W), \7106(__mmask16)(U)); })71077108#define _mm512_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \7109(__m512i)__builtin_ia32_shuf_i32x4_mask((__v16si)(__m512i)(A), \7110(__v16si)(__m512i)(B), (int)(imm), \7111(__v16si)_mm512_setzero_si512(), \7112(__mmask16)(U)); })71137114#define _mm512_shuffle_i64x2(A, B, imm) __extension__ ({ \7115(__m512i)__builtin_ia32_shuf_i64x2_mask((__v8di)(__m512i)(A), \7116(__v8di)(__m512i)(B), (int)(imm), \7117(__v8di)_mm512_setzero_si512(), \7118(__mmask8)-1); })71197120#define _mm512_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \7121(__m512i)__builtin_ia32_shuf_i64x2_mask((__v8di)(__m512i)(A), \7122(__v8di)(__m512i)(B), (int)(imm), \7123(__v8di)(__m512i)(W), \7124(__mmask8)(U)); })71257126#define _mm512_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \7127(__m512i)__builtin_ia32_shuf_i64x2_mask((__v8di)(__m512i)(A), \7128(__v8di)(__m512i)(B), (int)(imm), \7129(__v8di)_mm512_setzero_si512(), \7130(__mmask8)(U)); })71317132#define _mm512_shuffle_pd(A, B, M) __extension__ ({ \7133(__m512d)__builtin_shufflevector((__v8df)(__m512d)(A), \7134(__v8df)(__m512d)(B), \71350 + (((M) >> 0) & 0x1), \71368 + (((M) >> 1) & 0x1), \71372 + (((M) >> 2) & 0x1), \713810 + (((M) >> 3) & 0x1), \71394 + (((M) >> 4) & 0x1), \714012 + (((M) >> 5) & 0x1), \71416 + (((M) >> 6) & 0x1), \714214 + (((M) >> 7) & 0x1)); })71437144#define _mm512_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \7145(__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \7146(__v8df)_mm512_shuffle_pd((A), (B), (M)), \7147(__v8df)(__m512d)(W)); })71487149#define _mm512_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \7150(__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \7151(__v8df)_mm512_shuffle_pd((A), (B), (M)), \7152(__v8df)_mm512_setzero_pd()); })71537154#define _mm512_shuffle_ps(A, B, M) __extension__ ({ \7155(__m512d)__builtin_shufflevector((__v16sf)(__m512)(A), \7156(__v16sf)(__m512)(B), \71570 + (((M) >> 0) & 0x3), \71580 + (((M) >> 2) & 0x3), \715916 + (((M) >> 4) & 0x3), \716016 + (((M) >> 6) & 0x3), \71614 + (((M) >> 0) & 0x3), \71624 + (((M) >> 2) & 0x3), \716320 + (((M) >> 4) & 0x3), \716420 + (((M) >> 6) & 0x3), \71658 + (((M) >> 0) & 0x3), \71668 + (((M) >> 2) & 0x3), \716724 + (((M) >> 4) & 0x3), \716824 + (((M) >> 6) & 0x3), \716912 + (((M) >> 0) & 0x3), \717012 + (((M) >> 2) & 0x3), \717128 + (((M) >> 4) & 0x3), \717228 + (((M) >> 6) & 0x3)); })71737174#define _mm512_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \7175(__m512)__builtin_ia32_selectps_512((__mmask16)(U), \7176(__v16sf)_mm512_shuffle_ps((A), (B), (M)), \7177(__v16sf)(__m512)(W)); })71787179#define _mm512_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \7180(__m512)__builtin_ia32_selectps_512((__mmask16)(U), \7181(__v16sf)_mm512_shuffle_ps((A), (B), (M)), \7182(__v16sf)_mm512_setzero_ps()); })71837184#define _mm_sqrt_round_sd(A, B, R) __extension__ ({ \7185(__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \7186(__v2df)(__m128d)(B), \7187(__v2df)_mm_setzero_pd(), \7188(__mmask8)-1, (int)(R)); })71897190static __inline__ __m128d __DEFAULT_FN_ATTRS7191_mm_mask_sqrt_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)7192{7193return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A,7194(__v2df) __B,7195(__v2df) __W,7196(__mmask8) __U,7197_MM_FROUND_CUR_DIRECTION);7198}71997200#define _mm_mask_sqrt_round_sd(W, U, A, B, R) __extension__ ({ \7201(__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \7202(__v2df)(__m128d)(B), \7203(__v2df)(__m128d)(W), \7204(__mmask8)(U), (int)(R)); })72057206static __inline__ __m128d __DEFAULT_FN_ATTRS7207_mm_maskz_sqrt_sd (__mmask8 __U, __m128d __A, __m128d __B)7208{7209return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A,7210(__v2df) __B,7211(__v2df) _mm_setzero_pd (),7212(__mmask8) __U,7213_MM_FROUND_CUR_DIRECTION);7214}72157216#define _mm_maskz_sqrt_round_sd(U, A, B, R) __extension__ ({ \7217(__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \7218(__v2df)(__m128d)(B), \7219(__v2df)_mm_setzero_pd(), \7220(__mmask8)(U), (int)(R)); })72217222#define _mm_sqrt_round_ss(A, B, R) __extension__ ({ \7223(__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \7224(__v4sf)(__m128)(B), \7225(__v4sf)_mm_setzero_ps(), \7226(__mmask8)-1, (int)(R)); })72277228static __inline__ __m128 __DEFAULT_FN_ATTRS7229_mm_mask_sqrt_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)7230{7231return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A,7232(__v4sf) __B,7233(__v4sf) __W,7234(__mmask8) __U,7235_MM_FROUND_CUR_DIRECTION);7236}72377238#define _mm_mask_sqrt_round_ss(W, U, A, B, R) __extension__ ({ \7239(__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \7240(__v4sf)(__m128)(B), \7241(__v4sf)(__m128)(W), (__mmask8)(U), \7242(int)(R)); })72437244static __inline__ __m128 __DEFAULT_FN_ATTRS7245_mm_maskz_sqrt_ss (__mmask8 __U, __m128 __A, __m128 __B)7246{7247return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A,7248(__v4sf) __B,7249(__v4sf) _mm_setzero_ps (),7250(__mmask8) __U,7251_MM_FROUND_CUR_DIRECTION);7252}72537254#define _mm_maskz_sqrt_round_ss(U, A, B, R) __extension__ ({ \7255(__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \7256(__v4sf)(__m128)(B), \7257(__v4sf)_mm_setzero_ps(), \7258(__mmask8)(U), (int)(R)); })72597260static __inline__ __m512 __DEFAULT_FN_ATTRS7261_mm512_broadcast_f32x4 (__m128 __A)7262{7263return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,7264(__v16sf)7265_mm512_undefined_ps (),7266(__mmask16) -1);7267}72687269static __inline__ __m512 __DEFAULT_FN_ATTRS7270_mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A)7271{7272return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,7273(__v16sf) __O,7274__M);7275}72767277static __inline__ __m512 __DEFAULT_FN_ATTRS7278_mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A)7279{7280return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,7281(__v16sf)7282_mm512_setzero_ps (),7283__M);7284}72857286static __inline__ __m512d __DEFAULT_FN_ATTRS7287_mm512_broadcast_f64x4 (__m256d __A)7288{7289return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,7290(__v8df)7291_mm512_undefined_pd (),7292(__mmask8) -1);7293}72947295static __inline__ __m512d __DEFAULT_FN_ATTRS7296_mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A)7297{7298return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,7299(__v8df) __O,7300__M);7301}73027303static __inline__ __m512d __DEFAULT_FN_ATTRS7304_mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A)7305{7306return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,7307(__v8df)7308_mm512_setzero_pd (),7309__M);7310}73117312static __inline__ __m512i __DEFAULT_FN_ATTRS7313_mm512_broadcast_i32x4 (__m128i __A)7314{7315return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,7316(__v16si)7317_mm512_undefined_epi32 (),7318(__mmask16) -1);7319}73207321static __inline__ __m512i __DEFAULT_FN_ATTRS7322_mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A)7323{7324return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,7325(__v16si) __O,7326__M);7327}73287329static __inline__ __m512i __DEFAULT_FN_ATTRS7330_mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A)7331{7332return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,7333(__v16si)7334_mm512_setzero_si512 (),7335__M);7336}73377338static __inline__ __m512i __DEFAULT_FN_ATTRS7339_mm512_broadcast_i64x4 (__m256i __A)7340{7341return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,7342(__v8di)7343_mm512_undefined_epi32 (),7344(__mmask8) -1);7345}73467347static __inline__ __m512i __DEFAULT_FN_ATTRS7348_mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A)7349{7350return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,7351(__v8di) __O,7352__M);7353}73547355static __inline__ __m512i __DEFAULT_FN_ATTRS7356_mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A)7357{7358return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,7359(__v8di)7360_mm512_setzero_si512 (),7361__M);7362}73637364static __inline__ __m512d __DEFAULT_FN_ATTRS7365_mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A)7366{7367return (__m512d)__builtin_ia32_selectpd_512(__M,7368(__v8df) _mm512_broadcastsd_pd(__A),7369(__v8df) __O);7370}73717372static __inline__ __m512d __DEFAULT_FN_ATTRS7373_mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)7374{7375return (__m512d)__builtin_ia32_selectpd_512(__M,7376(__v8df) _mm512_broadcastsd_pd(__A),7377(__v8df) _mm512_setzero_pd());7378}73797380static __inline__ __m512 __DEFAULT_FN_ATTRS7381_mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A)7382{7383return (__m512)__builtin_ia32_selectps_512(__M,7384(__v16sf) _mm512_broadcastss_ps(__A),7385(__v16sf) __O);7386}73877388static __inline__ __m512 __DEFAULT_FN_ATTRS7389_mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A)7390{7391return (__m512)__builtin_ia32_selectps_512(__M,7392(__v16sf) _mm512_broadcastss_ps(__A),7393(__v16sf) _mm512_setzero_ps());7394}73957396static __inline__ __m128i __DEFAULT_FN_ATTRS7397_mm512_cvtsepi32_epi8 (__m512i __A)7398{7399return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,7400(__v16qi) _mm_undefined_si128 (),7401(__mmask16) -1);7402}74037404static __inline__ __m128i __DEFAULT_FN_ATTRS7405_mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)7406{7407return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,7408(__v16qi) __O, __M);7409}74107411static __inline__ __m128i __DEFAULT_FN_ATTRS7412_mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A)7413{7414return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,7415(__v16qi) _mm_setzero_si128 (),7416__M);7417}74187419static __inline__ void __DEFAULT_FN_ATTRS7420_mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)7421{7422__builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);7423}74247425static __inline__ __m256i __DEFAULT_FN_ATTRS7426_mm512_cvtsepi32_epi16 (__m512i __A)7427{7428return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,7429(__v16hi) _mm256_undefined_si256 (),7430(__mmask16) -1);7431}74327433static __inline__ __m256i __DEFAULT_FN_ATTRS7434_mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)7435{7436return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,7437(__v16hi) __O, __M);7438}74397440static __inline__ __m256i __DEFAULT_FN_ATTRS7441_mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A)7442{7443return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,7444(__v16hi) _mm256_setzero_si256 (),7445__M);7446}74477448static __inline__ void __DEFAULT_FN_ATTRS7449_mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)7450{7451__builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);7452}74537454static __inline__ __m128i __DEFAULT_FN_ATTRS7455_mm512_cvtsepi64_epi8 (__m512i __A)7456{7457return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,7458(__v16qi) _mm_undefined_si128 (),7459(__mmask8) -1);7460}74617462static __inline__ __m128i __DEFAULT_FN_ATTRS7463_mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)7464{7465return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,7466(__v16qi) __O, __M);7467}74687469static __inline__ __m128i __DEFAULT_FN_ATTRS7470_mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A)7471{7472return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,7473(__v16qi) _mm_setzero_si128 (),7474__M);7475}74767477static __inline__ void __DEFAULT_FN_ATTRS7478_mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)7479{7480__builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);7481}74827483static __inline__ __m256i __DEFAULT_FN_ATTRS7484_mm512_cvtsepi64_epi32 (__m512i __A)7485{7486__v8si __O;7487return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,7488(__v8si) _mm256_undefined_si256 (),7489(__mmask8) -1);7490}74917492static __inline__ __m256i __DEFAULT_FN_ATTRS7493_mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)7494{7495return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,7496(__v8si) __O, __M);7497}74987499static __inline__ __m256i __DEFAULT_FN_ATTRS7500_mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A)7501{7502return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,7503(__v8si) _mm256_setzero_si256 (),7504__M);7505}75067507static __inline__ void __DEFAULT_FN_ATTRS7508_mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A)7509{7510__builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);7511}75127513static __inline__ __m128i __DEFAULT_FN_ATTRS7514_mm512_cvtsepi64_epi16 (__m512i __A)7515{7516return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,7517(__v8hi) _mm_undefined_si128 (),7518(__mmask8) -1);7519}75207521static __inline__ __m128i __DEFAULT_FN_ATTRS7522_mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)7523{7524return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,7525(__v8hi) __O, __M);7526}75277528static __inline__ __m128i __DEFAULT_FN_ATTRS7529_mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A)7530{7531return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,7532(__v8hi) _mm_setzero_si128 (),7533__M);7534}75357536static __inline__ void __DEFAULT_FN_ATTRS7537_mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A)7538{7539__builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);7540}75417542static __inline__ __m128i __DEFAULT_FN_ATTRS7543_mm512_cvtusepi32_epi8 (__m512i __A)7544{7545return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,7546(__v16qi) _mm_undefined_si128 (),7547(__mmask16) -1);7548}75497550static __inline__ __m128i __DEFAULT_FN_ATTRS7551_mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)7552{7553return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,7554(__v16qi) __O,7555__M);7556}75577558static __inline__ __m128i __DEFAULT_FN_ATTRS7559_mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A)7560{7561return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,7562(__v16qi) _mm_setzero_si128 (),7563__M);7564}75657566static __inline__ void __DEFAULT_FN_ATTRS7567_mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)7568{7569__builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);7570}75717572static __inline__ __m256i __DEFAULT_FN_ATTRS7573_mm512_cvtusepi32_epi16 (__m512i __A)7574{7575return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,7576(__v16hi) _mm256_undefined_si256 (),7577(__mmask16) -1);7578}75797580static __inline__ __m256i __DEFAULT_FN_ATTRS7581_mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)7582{7583return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,7584(__v16hi) __O,7585__M);7586}75877588static __inline__ __m256i __DEFAULT_FN_ATTRS7589_mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A)7590{7591return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,7592(__v16hi) _mm256_setzero_si256 (),7593__M);7594}75957596static __inline__ void __DEFAULT_FN_ATTRS7597_mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)7598{7599__builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);7600}76017602static __inline__ __m128i __DEFAULT_FN_ATTRS7603_mm512_cvtusepi64_epi8 (__m512i __A)7604{7605return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,7606(__v16qi) _mm_undefined_si128 (),7607(__mmask8) -1);7608}76097610static __inline__ __m128i __DEFAULT_FN_ATTRS7611_mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)7612{7613return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,7614(__v16qi) __O,7615__M);7616}76177618static __inline__ __m128i __DEFAULT_FN_ATTRS7619_mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A)7620{7621return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,7622(__v16qi) _mm_setzero_si128 (),7623__M);7624}76257626static __inline__ void __DEFAULT_FN_ATTRS7627_mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)7628{7629__builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);7630}76317632static __inline__ __m256i __DEFAULT_FN_ATTRS7633_mm512_cvtusepi64_epi32 (__m512i __A)7634{7635return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,7636(__v8si) _mm256_undefined_si256 (),7637(__mmask8) -1);7638}76397640static __inline__ __m256i __DEFAULT_FN_ATTRS7641_mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)7642{7643return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,7644(__v8si) __O, __M);7645}76467647static __inline__ __m256i __DEFAULT_FN_ATTRS7648_mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A)7649{7650return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,7651(__v8si) _mm256_setzero_si256 (),7652__M);7653}76547655static __inline__ void __DEFAULT_FN_ATTRS7656_mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)7657{7658__builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M);7659}76607661static __inline__ __m128i __DEFAULT_FN_ATTRS7662_mm512_cvtusepi64_epi16 (__m512i __A)7663{7664return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,7665(__v8hi) _mm_undefined_si128 (),7666(__mmask8) -1);7667}76687669static __inline__ __m128i __DEFAULT_FN_ATTRS7670_mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)7671{7672return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,7673(__v8hi) __O, __M);7674}76757676static __inline__ __m128i __DEFAULT_FN_ATTRS7677_mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A)7678{7679return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,7680(__v8hi) _mm_setzero_si128 (),7681__M);7682}76837684static __inline__ void __DEFAULT_FN_ATTRS7685_mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)7686{7687__builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M);7688}76897690static __inline__ __m128i __DEFAULT_FN_ATTRS7691_mm512_cvtepi32_epi8 (__m512i __A)7692{7693return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,7694(__v16qi) _mm_undefined_si128 (),7695(__mmask16) -1);7696}76977698static __inline__ __m128i __DEFAULT_FN_ATTRS7699_mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)7700{7701return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,7702(__v16qi) __O, __M);7703}77047705static __inline__ __m128i __DEFAULT_FN_ATTRS7706_mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A)7707{7708return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,7709(__v16qi) _mm_setzero_si128 (),7710__M);7711}77127713static __inline__ void __DEFAULT_FN_ATTRS7714_mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)7715{7716__builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);7717}77187719static __inline__ __m256i __DEFAULT_FN_ATTRS7720_mm512_cvtepi32_epi16 (__m512i __A)7721{7722return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,7723(__v16hi) _mm256_undefined_si256 (),7724(__mmask16) -1);7725}77267727static __inline__ __m256i __DEFAULT_FN_ATTRS7728_mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)7729{7730return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,7731(__v16hi) __O, __M);7732}77337734static __inline__ __m256i __DEFAULT_FN_ATTRS7735_mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A)7736{7737return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,7738(__v16hi) _mm256_setzero_si256 (),7739__M);7740}77417742static __inline__ void __DEFAULT_FN_ATTRS7743_mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A)7744{7745__builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M);7746}77477748static __inline__ __m128i __DEFAULT_FN_ATTRS7749_mm512_cvtepi64_epi8 (__m512i __A)7750{7751return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,7752(__v16qi) _mm_undefined_si128 (),7753(__mmask8) -1);7754}77557756static __inline__ __m128i __DEFAULT_FN_ATTRS7757_mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)7758{7759return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,7760(__v16qi) __O, __M);7761}77627763static __inline__ __m128i __DEFAULT_FN_ATTRS7764_mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A)7765{7766return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,7767(__v16qi) _mm_setzero_si128 (),7768__M);7769}77707771static __inline__ void __DEFAULT_FN_ATTRS7772_mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)7773{7774__builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);7775}77767777static __inline__ __m256i __DEFAULT_FN_ATTRS7778_mm512_cvtepi64_epi32 (__m512i __A)7779{7780return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,7781(__v8si) _mm256_undefined_si256 (),7782(__mmask8) -1);7783}77847785static __inline__ __m256i __DEFAULT_FN_ATTRS7786_mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)7787{7788return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,7789(__v8si) __O, __M);7790}77917792static __inline__ __m256i __DEFAULT_FN_ATTRS7793_mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A)7794{7795return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,7796(__v8si) _mm256_setzero_si256 (),7797__M);7798}77997800static __inline__ void __DEFAULT_FN_ATTRS7801_mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)7802{7803__builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);7804}78057806static __inline__ __m128i __DEFAULT_FN_ATTRS7807_mm512_cvtepi64_epi16 (__m512i __A)7808{7809return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,7810(__v8hi) _mm_undefined_si128 (),7811(__mmask8) -1);7812}78137814static __inline__ __m128i __DEFAULT_FN_ATTRS7815_mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)7816{7817return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,7818(__v8hi) __O, __M);7819}78207821static __inline__ __m128i __DEFAULT_FN_ATTRS7822_mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A)7823{7824return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,7825(__v8hi) _mm_setzero_si128 (),7826__M);7827}78287829static __inline__ void __DEFAULT_FN_ATTRS7830_mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)7831{7832__builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);7833}78347835#define _mm512_extracti32x4_epi32(A, imm) __extension__ ({ \7836(__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \7837(__v4si)_mm_undefined_si128(), \7838(__mmask8)-1); })78397840#define _mm512_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \7841(__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \7842(__v4si)(__m128i)(W), \7843(__mmask8)(U)); })78447845#define _mm512_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \7846(__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \7847(__v4si)_mm_setzero_si128(), \7848(__mmask8)(U)); })78497850#define _mm512_extracti64x4_epi64(A, imm) __extension__ ({ \7851(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \7852(__v4di)_mm256_undefined_si256(), \7853(__mmask8)-1); })78547855#define _mm512_mask_extracti64x4_epi64(W, U, A, imm) __extension__ ({ \7856(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \7857(__v4di)(__m256i)(W), \7858(__mmask8)(U)); })78597860#define _mm512_maskz_extracti64x4_epi64(U, A, imm) __extension__ ({ \7861(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \7862(__v4di)_mm256_setzero_si256(), \7863(__mmask8)(U)); })78647865#define _mm512_insertf64x4(A, B, imm) __extension__ ({ \7866(__m512d)__builtin_ia32_insertf64x4_mask((__v8df)(__m512d)(A), \7867(__v4df)(__m256d)(B), (int)(imm), \7868(__v8df)_mm512_undefined_pd(), \7869(__mmask8)-1); })78707871#define _mm512_mask_insertf64x4(W, U, A, B, imm) __extension__ ({ \7872(__m512d)__builtin_ia32_insertf64x4_mask((__v8df)(__m512d)(A), \7873(__v4df)(__m256d)(B), (int)(imm), \7874(__v8df)(__m512d)(W), \7875(__mmask8)(U)); })78767877#define _mm512_maskz_insertf64x4(U, A, B, imm) __extension__ ({ \7878(__m512d)__builtin_ia32_insertf64x4_mask((__v8df)(__m512d)(A), \7879(__v4df)(__m256d)(B), (int)(imm), \7880(__v8df)_mm512_setzero_pd(), \7881(__mmask8)(U)); })78827883#define _mm512_inserti64x4(A, B, imm) __extension__ ({ \7884(__m512i)__builtin_ia32_inserti64x4_mask((__v8di)(__m512i)(A), \7885(__v4di)(__m256i)(B), (int)(imm), \7886(__v8di)_mm512_setzero_si512(), \7887(__mmask8)-1); })78887889#define _mm512_mask_inserti64x4(W, U, A, B, imm) __extension__ ({ \7890(__m512i)__builtin_ia32_inserti64x4_mask((__v8di)(__m512i)(A), \7891(__v4di)(__m256i)(B), (int)(imm), \7892(__v8di)(__m512i)(W), \7893(__mmask8)(U)); })78947895#define _mm512_maskz_inserti64x4(U, A, B, imm) __extension__ ({ \7896(__m512i)__builtin_ia32_inserti64x4_mask((__v8di)(__m512i)(A), \7897(__v4di)(__m256i)(B), (int)(imm), \7898(__v8di)_mm512_setzero_si512(), \7899(__mmask8)(U)); })79007901#define _mm512_insertf32x4(A, B, imm) __extension__ ({ \7902(__m512)__builtin_ia32_insertf32x4_mask((__v16sf)(__m512)(A), \7903(__v4sf)(__m128)(B), (int)(imm), \7904(__v16sf)_mm512_undefined_ps(), \7905(__mmask16)-1); })79067907#define _mm512_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \7908(__m512)__builtin_ia32_insertf32x4_mask((__v16sf)(__m512)(A), \7909(__v4sf)(__m128)(B), (int)(imm), \7910(__v16sf)(__m512)(W), \7911(__mmask16)(U)); })79127913#define _mm512_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \7914(__m512)__builtin_ia32_insertf32x4_mask((__v16sf)(__m512)(A), \7915(__v4sf)(__m128)(B), (int)(imm), \7916(__v16sf)_mm512_setzero_ps(), \7917(__mmask16)(U)); })79187919#define _mm512_inserti32x4(A, B, imm) __extension__ ({ \7920(__m512i)__builtin_ia32_inserti32x4_mask((__v16si)(__m512i)(A), \7921(__v4si)(__m128i)(B), (int)(imm), \7922(__v16si)_mm512_setzero_si512(), \7923(__mmask16)-1); })79247925#define _mm512_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \7926(__m512i)__builtin_ia32_inserti32x4_mask((__v16si)(__m512i)(A), \7927(__v4si)(__m128i)(B), (int)(imm), \7928(__v16si)(__m512i)(W), \7929(__mmask16)(U)); })79307931#define _mm512_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \7932(__m512i)__builtin_ia32_inserti32x4_mask((__v16si)(__m512i)(A), \7933(__v4si)(__m128i)(B), (int)(imm), \7934(__v16si)_mm512_setzero_si512(), \7935(__mmask16)(U)); })79367937#define _mm512_getmant_round_pd(A, B, C, R) __extension__ ({ \7938(__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \7939(int)(((C)<<2) | (B)), \7940(__v8df)_mm512_undefined_pd(), \7941(__mmask8)-1, (int)(R)); })79427943#define _mm512_mask_getmant_round_pd(W, U, A, B, C, R) __extension__ ({ \7944(__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \7945(int)(((C)<<2) | (B)), \7946(__v8df)(__m512d)(W), \7947(__mmask8)(U), (int)(R)); })79487949#define _mm512_maskz_getmant_round_pd(U, A, B, C, R) __extension__ ({ \7950(__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \7951(int)(((C)<<2) | (B)), \7952(__v8df)_mm512_setzero_pd(), \7953(__mmask8)(U), (int)(R)); })79547955#define _mm512_getmant_pd(A, B, C) __extension__ ({ \7956(__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \7957(int)(((C)<<2) | (B)), \7958(__v8df)_mm512_setzero_pd(), \7959(__mmask8)-1, \7960_MM_FROUND_CUR_DIRECTION); })79617962#define _mm512_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \7963(__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \7964(int)(((C)<<2) | (B)), \7965(__v8df)(__m512d)(W), \7966(__mmask8)(U), \7967_MM_FROUND_CUR_DIRECTION); })79687969#define _mm512_maskz_getmant_pd(U, A, B, C) __extension__ ({ \7970(__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \7971(int)(((C)<<2) | (B)), \7972(__v8df)_mm512_setzero_pd(), \7973(__mmask8)(U), \7974_MM_FROUND_CUR_DIRECTION); })79757976#define _mm512_getmant_round_ps(A, B, C, R) __extension__ ({ \7977(__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \7978(int)(((C)<<2) | (B)), \7979(__v16sf)_mm512_undefined_ps(), \7980(__mmask16)-1, (int)(R)); })79817982#define _mm512_mask_getmant_round_ps(W, U, A, B, C, R) __extension__ ({ \7983(__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \7984(int)(((C)<<2) | (B)), \7985(__v16sf)(__m512)(W), \7986(__mmask16)(U), (int)(R)); })79877988#define _mm512_maskz_getmant_round_ps(U, A, B, C, R) __extension__ ({ \7989(__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \7990(int)(((C)<<2) | (B)), \7991(__v16sf)_mm512_setzero_ps(), \7992(__mmask16)(U), (int)(R)); })79937994#define _mm512_getmant_ps(A, B, C) __extension__ ({ \7995(__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \7996(int)(((C)<<2)|(B)), \7997(__v16sf)_mm512_undefined_ps(), \7998(__mmask16)-1, \7999_MM_FROUND_CUR_DIRECTION); })80008001#define _mm512_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \8002(__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \8003(int)(((C)<<2)|(B)), \8004(__v16sf)(__m512)(W), \8005(__mmask16)(U), \8006_MM_FROUND_CUR_DIRECTION); })80078008#define _mm512_maskz_getmant_ps(U, A, B, C) __extension__ ({ \8009(__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \8010(int)(((C)<<2)|(B)), \8011(__v16sf)_mm512_setzero_ps(), \8012(__mmask16)(U), \8013_MM_FROUND_CUR_DIRECTION); })80148015#define _mm512_getexp_round_pd(A, R) __extension__ ({ \8016(__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \8017(__v8df)_mm512_undefined_pd(), \8018(__mmask8)-1, (int)(R)); })80198020#define _mm512_mask_getexp_round_pd(W, U, A, R) __extension__ ({ \8021(__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \8022(__v8df)(__m512d)(W), \8023(__mmask8)(U), (int)(R)); })80248025#define _mm512_maskz_getexp_round_pd(U, A, R) __extension__ ({ \8026(__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \8027(__v8df)_mm512_setzero_pd(), \8028(__mmask8)(U), (int)(R)); })80298030static __inline__ __m512d __DEFAULT_FN_ATTRS8031_mm512_getexp_pd (__m512d __A)8032{8033return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,8034(__v8df) _mm512_undefined_pd (),8035(__mmask8) -1,8036_MM_FROUND_CUR_DIRECTION);8037}80388039static __inline__ __m512d __DEFAULT_FN_ATTRS8040_mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)8041{8042return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,8043(__v8df) __W,8044(__mmask8) __U,8045_MM_FROUND_CUR_DIRECTION);8046}80478048static __inline__ __m512d __DEFAULT_FN_ATTRS8049_mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A)8050{8051return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,8052(__v8df) _mm512_setzero_pd (),8053(__mmask8) __U,8054_MM_FROUND_CUR_DIRECTION);8055}80568057#define _mm512_getexp_round_ps(A, R) __extension__ ({ \8058(__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \8059(__v16sf)_mm512_undefined_ps(), \8060(__mmask16)-1, (int)(R)); })80618062#define _mm512_mask_getexp_round_ps(W, U, A, R) __extension__ ({ \8063(__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \8064(__v16sf)(__m512)(W), \8065(__mmask16)(U), (int)(R)); })80668067#define _mm512_maskz_getexp_round_ps(U, A, R) __extension__ ({ \8068(__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \8069(__v16sf)_mm512_setzero_ps(), \8070(__mmask16)(U), (int)(R)); })80718072static __inline__ __m512 __DEFAULT_FN_ATTRS8073_mm512_getexp_ps (__m512 __A)8074{8075return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,8076(__v16sf) _mm512_undefined_ps (),8077(__mmask16) -1,8078_MM_FROUND_CUR_DIRECTION);8079}80808081static __inline__ __m512 __DEFAULT_FN_ATTRS8082_mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)8083{8084return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,8085(__v16sf) __W,8086(__mmask16) __U,8087_MM_FROUND_CUR_DIRECTION);8088}80898090static __inline__ __m512 __DEFAULT_FN_ATTRS8091_mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)8092{8093return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,8094(__v16sf) _mm512_setzero_ps (),8095(__mmask16) __U,8096_MM_FROUND_CUR_DIRECTION);8097}80988099#define _mm512_i64gather_ps(index, addr, scale) __extension__ ({ \8100(__m256)__builtin_ia32_gatherdiv16sf((__v8sf)_mm256_undefined_ps(), \8101(float const *)(addr), \8102(__v8di)(__m512i)(index), (__mmask8)-1, \8103(int)(scale)); })81048105#define _mm512_mask_i64gather_ps( __v1_old, __mask, __index,\8106__addr, __scale) __extension__({\8107__builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,\8108__addr,(__v8di) __index, __mask, __scale);\8109})81108111#define _mm512_i64gather_epi32(index, addr, scale) __extension__ ({\8112(__m256i)__builtin_ia32_gatherdiv16si((__v8si)_mm256_undefined_ps(), \8113(int const *)(addr), \8114(__v8di)(__m512i)(index), \8115(__mmask8)-1, (int)(scale)); })81168117#define _mm512_mask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\8118(__m256i)__builtin_ia32_gatherdiv16si((__v8si)(__m256i)(v1_old), \8119(int const *)(addr), \8120(__v8di)(__m512i)(index), \8121(__mmask8)(mask), (int)(scale)); })81228123#define _mm512_i64gather_pd(index, addr, scale) __extension__ ({\8124(__m512d)__builtin_ia32_gatherdiv8df((__v8df)_mm512_undefined_pd(), \8125(double const *)(addr), \8126(__v8di)(__m512i)(index), (__mmask8)-1, \8127(int)(scale)); })81288129#define _mm512_mask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\8130(__m512d)__builtin_ia32_gatherdiv8df((__v8df)(__m512d)(v1_old), \8131(double const *)(addr), \8132(__v8di)(__m512i)(index), \8133(__mmask8)(mask), (int)(scale)); })81348135#define _mm512_i64gather_epi64(index, addr, scale) __extension__ ({\8136(__m512i)__builtin_ia32_gatherdiv8di((__v8di)_mm512_undefined_pd(), \8137(long long const *)(addr), \8138(__v8di)(__m512i)(index), (__mmask8)-1, \8139(int)(scale)); })81408141#define _mm512_mask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\8142(__m512i)__builtin_ia32_gatherdiv8di((__v8di)(__m512i)(v1_old), \8143(long long const *)(addr), \8144(__v8di)(__m512i)(index), \8145(__mmask8)(mask), (int)(scale)); })81468147#define _mm512_i32gather_ps(index, addr, scale) __extension__ ({\8148(__m512)__builtin_ia32_gathersiv16sf((__v16sf)_mm512_undefined_ps(), \8149(float const *)(addr), \8150(__v16sf)(__m512)(index), \8151(__mmask16)-1, (int)(scale)); })81528153#define _mm512_mask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\8154(__m512)__builtin_ia32_gathersiv16sf((__v16sf)(__m512)(v1_old), \8155(float const *)(addr), \8156(__v16sf)(__m512)(index), \8157(__mmask16)(mask), (int)(scale)); })81588159#define _mm512_i32gather_epi32(index, addr, scale) __extension__ ({\8160(__m512i)__builtin_ia32_gathersiv16si((__v16si)_mm512_undefined_epi32(), \8161(int const *)(addr), \8162(__v16si)(__m512i)(index), \8163(__mmask16)-1, (int)(scale)); })81648165#define _mm512_mask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\8166(__m512i)__builtin_ia32_gathersiv16si((__v16si)(__m512i)(v1_old), \8167(int const *)(addr), \8168(__v16si)(__m512i)(index), \8169(__mmask16)(mask), (int)(scale)); })81708171#define _mm512_i32gather_pd(index, addr, scale) __extension__ ({\8172(__m512d)__builtin_ia32_gathersiv8df((__v8df)_mm512_undefined_pd(), \8173(double const *)(addr), \8174(__v8si)(__m256i)(index), (__mmask8)-1, \8175(int)(scale)); })81768177#define _mm512_mask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\8178(__m512d)__builtin_ia32_gathersiv8df((__v8df)(__m512d)(v1_old), \8179(double const *)(addr), \8180(__v8si)(__m256i)(index), \8181(__mmask8)(mask), (int)(scale)); })81828183#define _mm512_i32gather_epi64(index, addr, scale) __extension__ ({\8184(__m512i)__builtin_ia32_gathersiv8di((__v8di)_mm512_undefined_epi32(), \8185(long long const *)(addr), \8186(__v8si)(__m256i)(index), (__mmask8)-1, \8187(int)(scale)); })81888189#define _mm512_mask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\8190(__m512i)__builtin_ia32_gathersiv8di((__v8di)(__m512i)(v1_old), \8191(long long const *)(addr), \8192(__v8si)(__m256i)(index), \8193(__mmask8)(mask), (int)(scale)); })81948195#define _mm512_i64scatter_ps(addr, index, v1, scale) __extension__ ({\8196__builtin_ia32_scatterdiv16sf((float *)(addr), (__mmask8)-1, \8197(__v8di)(__m512i)(index), \8198(__v8sf)(__m256)(v1), (int)(scale)); })81998200#define _mm512_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({\8201__builtin_ia32_scatterdiv16sf((float *)(addr), (__mmask8)(mask), \8202(__v8di)(__m512i)(index), \8203(__v8sf)(__m256)(v1), (int)(scale)); })82048205#define _mm512_i64scatter_epi32(addr, index, v1, scale) __extension__ ({\8206__builtin_ia32_scatterdiv16si((int *)(addr), (__mmask8)-1, \8207(__v8di)(__m512i)(index), \8208(__v8si)(__m256i)(v1), (int)(scale)); })82098210#define _mm512_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({\8211__builtin_ia32_scatterdiv16si((int *)(addr), (__mmask8)(mask), \8212(__v8di)(__m512i)(index), \8213(__v8si)(__m256i)(v1), (int)(scale)); })82148215#define _mm512_i64scatter_pd(addr, index, v1, scale) __extension__ ({\8216__builtin_ia32_scatterdiv8df((double *)(addr), (__mmask8)-1, \8217(__v8di)(__m512i)(index), \8218(__v8df)(__m512d)(v1), (int)(scale)); })82198220#define _mm512_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({\8221__builtin_ia32_scatterdiv8df((double *)(addr), (__mmask8)(mask), \8222(__v8di)(__m512i)(index), \8223(__v8df)(__m512d)(v1), (int)(scale)); })82248225#define _mm512_i64scatter_epi64(addr, index, v1, scale) __extension__ ({\8226__builtin_ia32_scatterdiv8di((long long *)(addr), (__mmask8)-1, \8227(__v8di)(__m512i)(index), \8228(__v8di)(__m512i)(v1), (int)(scale)); })82298230#define _mm512_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({\8231__builtin_ia32_scatterdiv8di((long long *)(addr), (__mmask8)(mask), \8232(__v8di)(__m512i)(index), \8233(__v8di)(__m512i)(v1), (int)(scale)); })82348235#define _mm512_i32scatter_ps(addr, index, v1, scale) __extension__ ({\8236__builtin_ia32_scattersiv16sf((float *)(addr), (__mmask16)-1, \8237(__v16si)(__m512i)(index), \8238(__v16sf)(__m512)(v1), (int)(scale)); })82398240#define _mm512_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({\8241__builtin_ia32_scattersiv16sf((float *)(addr), (__mmask16)(mask), \8242(__v16si)(__m512i)(index), \8243(__v16sf)(__m512)(v1), (int)(scale)); })82448245#define _mm512_i32scatter_epi32(addr, index, v1, scale) __extension__ ({\8246__builtin_ia32_scattersiv16si((int *)(addr), (__mmask16)-1, \8247(__v16si)(__m512i)(index), \8248(__v16si)(__m512i)(v1), (int)(scale)); })82498250#define _mm512_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({\8251__builtin_ia32_scattersiv16si((int *)(addr), (__mmask16)(mask), \8252(__v16si)(__m512i)(index), \8253(__v16si)(__m512i)(v1), (int)(scale)); })82548255#define _mm512_i32scatter_pd(addr, index, v1, scale) __extension__ ({\8256__builtin_ia32_scattersiv8df((double *)(addr), (__mmask8)-1, \8257(__v8si)(__m256i)(index), \8258(__v8df)(__m512d)(v1), (int)(scale)); })82598260#define _mm512_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({\8261__builtin_ia32_scattersiv8df((double *)(addr), (__mmask8)(mask), \8262(__v8si)(__m256i)(index), \8263(__v8df)(__m512d)(v1), (int)(scale)); })82648265#define _mm512_i32scatter_epi64(addr, index, v1, scale) __extension__ ({\8266__builtin_ia32_scattersiv8di((long long *)(addr), (__mmask8)-1, \8267(__v8si)(__m256i)(index), \8268(__v8di)(__m512i)(v1), (int)(scale)); })82698270#define _mm512_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({\8271__builtin_ia32_scattersiv8di((long long *)(addr), (__mmask8)(mask), \8272(__v8si)(__m256i)(index), \8273(__v8di)(__m512i)(v1), (int)(scale)); })82748275static __inline__ __m128 __DEFAULT_FN_ATTRS8276_mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)8277{8278return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __A,8279(__v4sf) __B,8280(__v4sf) __W,8281(__mmask8) __U,8282_MM_FROUND_CUR_DIRECTION);8283}82848285#define _mm_mask_fmadd_round_ss(W, U, A, B, R) __extension__({\8286(__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \8287(__v4sf)(__m128)(B), \8288(__v4sf)(__m128)(W), (__mmask8)(U), \8289(int)(R)); })82908291static __inline__ __m128 __DEFAULT_FN_ATTRS8292_mm_maskz_fmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)8293{8294return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,8295(__v4sf) __B,8296(__v4sf) __C,8297(__mmask8) __U,8298_MM_FROUND_CUR_DIRECTION);8299}83008301#define _mm_maskz_fmadd_round_ss(U, A, B, C, R) __extension__ ({\8302(__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \8303(__v4sf)(__m128)(B), \8304(__v4sf)(__m128)(C), (__mmask8)(U), \8305_MM_FROUND_CUR_DIRECTION); })83068307static __inline__ __m128 __DEFAULT_FN_ATTRS8308_mm_mask3_fmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)8309{8310return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,8311(__v4sf) __X,8312(__v4sf) __Y,8313(__mmask8) __U,8314_MM_FROUND_CUR_DIRECTION);8315}83168317#define _mm_mask3_fmadd_round_ss(W, X, Y, U, R) __extension__ ({\8318(__m128)__builtin_ia32_vfmaddss3_mask3((__v4sf)(__m128)(W), \8319(__v4sf)(__m128)(X), \8320(__v4sf)(__m128)(Y), (__mmask8)(U), \8321(int)(R)); })83228323static __inline__ __m128 __DEFAULT_FN_ATTRS8324_mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)8325{8326return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __A,8327-(__v4sf) __B,8328(__v4sf) __W,8329(__mmask8) __U,8330_MM_FROUND_CUR_DIRECTION);8331}83328333#define _mm_mask_fmsub_round_ss(W, U, A, B, R) __extension__ ({\8334(__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \8335-(__v4sf)(__m128)(B), \8336(__v4sf)(__m128)(W), (__mmask8)(U), \8337(int)(R)); })83388339static __inline__ __m128 __DEFAULT_FN_ATTRS8340_mm_maskz_fmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)8341{8342return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,8343(__v4sf) __B,8344-(__v4sf) __C,8345(__mmask8) __U,8346_MM_FROUND_CUR_DIRECTION);8347}83488349#define _mm_maskz_fmsub_round_ss(U, A, B, C, R) __extension__ ({\8350(__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \8351(__v4sf)(__m128)(B), \8352-(__v4sf)(__m128)(C), (__mmask8)(U), \8353(int)(R)); })83548355static __inline__ __m128 __DEFAULT_FN_ATTRS8356_mm_mask3_fmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)8357{8358return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,8359(__v4sf) __X,8360-(__v4sf) __Y,8361(__mmask8) __U,8362_MM_FROUND_CUR_DIRECTION);8363}83648365#define _mm_mask3_fmsub_round_ss(W, X, Y, U, R) __extension__ ({\8366(__m128)__builtin_ia32_vfmaddss3_mask3((__v4sf)(__m128)(W), \8367(__v4sf)(__m128)(X), \8368-(__v4sf)(__m128)(Y), (__mmask8)(U), \8369(int)(R)); })83708371static __inline__ __m128 __DEFAULT_FN_ATTRS8372_mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)8373{8374return (__m128) __builtin_ia32_vfmaddss3_mask (-(__v4sf) __A,8375(__v4sf) __B,8376(__v4sf) __W,8377(__mmask8) __U,8378_MM_FROUND_CUR_DIRECTION);8379}83808381#define _mm_mask_fnmadd_round_ss(W, U, A, B, R) __extension__ ({\8382(__m128)__builtin_ia32_vfmaddss3_mask(-(__v4sf)(__m128)(A), \8383(__v4sf)(__m128)(B), \8384(__v4sf)(__m128)(W), (__mmask8)(U), \8385(int)(R)); })83868387static __inline__ __m128 __DEFAULT_FN_ATTRS8388_mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)8389{8390return (__m128) __builtin_ia32_vfmaddss3_maskz (-(__v4sf) __A,8391(__v4sf) __B,8392(__v4sf) __C,8393(__mmask8) __U,8394_MM_FROUND_CUR_DIRECTION);8395}83968397#define _mm_maskz_fnmadd_round_ss(U, A, B, C, R) __extension__ ({\8398(__m128)__builtin_ia32_vfmaddss3_maskz(-(__v4sf)(__m128)(A), \8399(__v4sf)(__m128)(B), \8400(__v4sf)(__m128)(C), (__mmask8)(U), \8401(int)(R)); })84028403static __inline__ __m128 __DEFAULT_FN_ATTRS8404_mm_mask3_fnmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)8405{8406return (__m128) __builtin_ia32_vfmaddss3_mask3 (-(__v4sf) __W,8407(__v4sf) __X,8408(__v4sf) __Y,8409(__mmask8) __U,8410_MM_FROUND_CUR_DIRECTION);8411}84128413#define _mm_mask3_fnmadd_round_ss(W, X, Y, U, R) __extension__({\8414(__m128)__builtin_ia32_vfmaddss3_mask3(-(__v4sf)(__m128)(W), \8415(__v4sf)(__m128)(X), \8416(__v4sf)(__m128)(Y), (__mmask8)(U), \8417(int)(R)); })84188419static __inline__ __m128 __DEFAULT_FN_ATTRS8420_mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)8421{8422return (__m128) __builtin_ia32_vfmaddss3_mask (-(__v4sf) __A,8423-(__v4sf) __B,8424(__v4sf) __W,8425(__mmask8) __U,8426_MM_FROUND_CUR_DIRECTION);8427}84288429#define _mm_mask_fnmsub_round_ss(W, U, A, B, R) __extension__ ({\8430(__m128)__builtin_ia32_vfmaddss3_mask(-(__v4sf)(__m128)(A), \8431-(__v4sf)(__m128)(B), \8432(__v4sf)(__m128)(W), (__mmask8)(U), \8433(int)(R)); })84348435static __inline__ __m128 __DEFAULT_FN_ATTRS8436_mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)8437{8438return (__m128) __builtin_ia32_vfmaddss3_maskz (-(__v4sf) __A,8439(__v4sf) __B,8440-(__v4sf) __C,8441(__mmask8) __U,8442_MM_FROUND_CUR_DIRECTION);8443}84448445#define _mm_maskz_fnmsub_round_ss(U, A, B, C, R) __extension__ ({\8446(__m128)__builtin_ia32_vfmaddss3_maskz(-(__v4sf)(__m128)(A), \8447(__v4sf)(__m128)(B), \8448-(__v4sf)(__m128)(C), (__mmask8)(U), \8449_MM_FROUND_CUR_DIRECTION); })84508451static __inline__ __m128 __DEFAULT_FN_ATTRS8452_mm_mask3_fnmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)8453{8454return (__m128) __builtin_ia32_vfmaddss3_mask3 (-(__v4sf) __W,8455(__v4sf) __X,8456-(__v4sf) __Y,8457(__mmask8) __U,8458_MM_FROUND_CUR_DIRECTION);8459}84608461#define _mm_mask3_fnmsub_round_ss(W, X, Y, U, R) __extension__({\8462(__m128)__builtin_ia32_vfmaddss3_mask3(-(__v4sf)(__m128)(W), \8463(__v4sf)(__m128)(X), \8464-(__v4sf)(__m128)(Y), (__mmask8)(U), \8465(int)(R)); })84668467static __inline__ __m128d __DEFAULT_FN_ATTRS8468_mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)8469{8470return (__m128d) __builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,8471(__v2df) __B,8472(__v2df) __W,8473(__mmask8) __U,8474_MM_FROUND_CUR_DIRECTION);8475}84768477#define _mm_mask_fmadd_round_sd(W, U, A, B, R) __extension__({\8478(__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \8479(__v2df)(__m128d)(B), \8480(__v2df)(__m128d)(W), (__mmask8)(U), \8481(int)(R)); })84828483static __inline__ __m128d __DEFAULT_FN_ATTRS8484_mm_maskz_fmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)8485{8486return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,8487(__v2df) __B,8488(__v2df) __C,8489(__mmask8) __U,8490_MM_FROUND_CUR_DIRECTION);8491}84928493#define _mm_maskz_fmadd_round_sd(U, A, B, C, R) __extension__ ({\8494(__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \8495(__v2df)(__m128d)(B), \8496(__v2df)(__m128d)(C), (__mmask8)(U), \8497_MM_FROUND_CUR_DIRECTION); })84988499static __inline__ __m128d __DEFAULT_FN_ATTRS8500_mm_mask3_fmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)8501{8502return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,8503(__v2df) __X,8504(__v2df) __Y,8505(__mmask8) __U,8506_MM_FROUND_CUR_DIRECTION);8507}85088509#define _mm_mask3_fmadd_round_sd(W, X, Y, U, R) __extension__ ({\8510(__m128d)__builtin_ia32_vfmaddsd3_mask3((__v2df)(__m128d)(W), \8511(__v2df)(__m128d)(X), \8512(__v2df)(__m128d)(Y), (__mmask8)(U), \8513(int)(R)); })85148515static __inline__ __m128d __DEFAULT_FN_ATTRS8516_mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)8517{8518return (__m128d) __builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,8519-(__v2df) __B,8520(__v2df) __W,8521(__mmask8) __U,8522_MM_FROUND_CUR_DIRECTION);8523}85248525#define _mm_mask_fmsub_round_sd(W, U, A, B, R) __extension__ ({\8526(__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \8527-(__v2df)(__m128d)(B), \8528(__v2df)(__m128d)(W), (__mmask8)(U), \8529(int)(R)); })85308531static __inline__ __m128d __DEFAULT_FN_ATTRS8532_mm_maskz_fmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)8533{8534return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,8535(__v2df) __B,8536-(__v2df) __C,8537(__mmask8) __U,8538_MM_FROUND_CUR_DIRECTION);8539}85408541#define _mm_maskz_fmsub_round_sd(U, A, B, C, R) __extension__ ({\8542(__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \8543(__v2df)(__m128d)(B), \8544-(__v2df)(__m128d)(C), \8545(__mmask8)(U), (int)(R)); })85468547static __inline__ __m128d __DEFAULT_FN_ATTRS8548_mm_mask3_fmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)8549{8550return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,8551(__v2df) __X,8552-(__v2df) __Y,8553(__mmask8) __U,8554_MM_FROUND_CUR_DIRECTION);8555}85568557#define _mm_mask3_fmsub_round_sd(W, X, Y, U, R) __extension__ ({\8558(__m128d)__builtin_ia32_vfmaddsd3_mask3((__v2df)(__m128d)(W), \8559(__v2df)(__m128d)(X), \8560-(__v2df)(__m128d)(Y), \8561(__mmask8)(U), (int)(R)); })85628563static __inline__ __m128d __DEFAULT_FN_ATTRS8564_mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)8565{8566return (__m128d) __builtin_ia32_vfmaddsd3_mask ( -(__v2df) __A,8567(__v2df) __B,8568(__v2df) __W,8569(__mmask8) __U,8570_MM_FROUND_CUR_DIRECTION);8571}85728573#define _mm_mask_fnmadd_round_sd(W, U, A, B, R) __extension__ ({\8574(__m128d)__builtin_ia32_vfmaddsd3_mask(-(__v2df)(__m128d)(A), \8575(__v2df)(__m128d)(B), \8576(__v2df)(__m128d)(W), (__mmask8)(U), \8577(int)(R)); })85788579static __inline__ __m128d __DEFAULT_FN_ATTRS8580_mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)8581{8582return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( -(__v2df) __A,8583(__v2df) __B,8584(__v2df) __C,8585(__mmask8) __U,8586_MM_FROUND_CUR_DIRECTION);8587}85888589#define _mm_maskz_fnmadd_round_sd(U, A, B, C, R) __extension__ ({\8590(__m128d)__builtin_ia32_vfmaddsd3_maskz(-(__v2df)(__m128d)(A), \8591(__v2df)(__m128d)(B), \8592(__v2df)(__m128d)(C), (__mmask8)(U), \8593(int)(R)); })85948595static __inline__ __m128d __DEFAULT_FN_ATTRS8596_mm_mask3_fnmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)8597{8598return (__m128d) __builtin_ia32_vfmaddsd3_mask3 (-(__v2df) __W,8599(__v2df) __X,8600(__v2df) __Y,8601(__mmask8) __U,8602_MM_FROUND_CUR_DIRECTION);8603}86048605#define _mm_mask3_fnmadd_round_sd(W, X, Y, U, R) __extension__({\8606(__m128d)__builtin_ia32_vfmaddsd3_mask3(-(__v2df)(__m128d)(W), \8607(__v2df)(__m128d)(X), \8608(__v2df)(__m128d)(Y), (__mmask8)(U), \8609(int)(R)); })86108611static __inline__ __m128d __DEFAULT_FN_ATTRS8612_mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)8613{8614return (__m128d) __builtin_ia32_vfmaddsd3_mask ( -(__v2df) __A,8615-(__v2df) __B,8616(__v2df) __W,8617(__mmask8) __U,8618_MM_FROUND_CUR_DIRECTION);8619}86208621#define _mm_mask_fnmsub_round_sd(W, U, A, B, R) __extension__ ({\8622(__m128d)__builtin_ia32_vfmaddsd3_mask(-(__v2df)(__m128d)(A), \8623-(__v2df)(__m128d)(B), \8624(__v2df)(__m128d)(W), (__mmask8)(U), \8625(int)(R)); })86268627static __inline__ __m128d __DEFAULT_FN_ATTRS8628_mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)8629{8630return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( -(__v2df) __A,8631(__v2df) __B,8632-(__v2df) __C,8633(__mmask8) __U,8634_MM_FROUND_CUR_DIRECTION);8635}86368637#define _mm_maskz_fnmsub_round_sd(U, A, B, C, R) __extension__ ({\8638(__m128d)__builtin_ia32_vfmaddsd3_maskz(-(__v2df)(__m128d)(A), \8639(__v2df)(__m128d)(B), \8640-(__v2df)(__m128d)(C), \8641(__mmask8)(U), \8642_MM_FROUND_CUR_DIRECTION); })86438644static __inline__ __m128d __DEFAULT_FN_ATTRS8645_mm_mask3_fnmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)8646{8647return (__m128d) __builtin_ia32_vfmaddsd3_mask3 (-(__v2df) (__W),8648(__v2df) __X,8649-(__v2df) (__Y),8650(__mmask8) __U,8651_MM_FROUND_CUR_DIRECTION);8652}86538654#define _mm_mask3_fnmsub_round_sd(W, X, Y, U, R) __extension__({\8655(__m128d)__builtin_ia32_vfmaddsd3_mask3(-(__v2df)(__m128d)(W), \8656(__v2df)(__m128d)(X), \8657-(__v2df)(__m128d)(Y), \8658(__mmask8)(U), (int)(R)); })86598660#define _mm512_permutex_pd(X, C) __extension__ ({ \8661(__m512d)__builtin_shufflevector((__v8df)(__m512d)(X), \8662(__v8df)_mm512_undefined_pd(), \86630 + (((C) >> 0) & 0x3), \86640 + (((C) >> 2) & 0x3), \86650 + (((C) >> 4) & 0x3), \86660 + (((C) >> 6) & 0x3), \86674 + (((C) >> 0) & 0x3), \86684 + (((C) >> 2) & 0x3), \86694 + (((C) >> 4) & 0x3), \86704 + (((C) >> 6) & 0x3)); })86718672#define _mm512_mask_permutex_pd(W, U, X, C) __extension__ ({ \8673(__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \8674(__v8df)_mm512_permutex_pd((X), (C)), \8675(__v8df)(__m512d)(W)); })86768677#define _mm512_maskz_permutex_pd(U, X, C) __extension__ ({ \8678(__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \8679(__v8df)_mm512_permutex_pd((X), (C)), \8680(__v8df)_mm512_setzero_pd()); })86818682#define _mm512_permutex_epi64(X, C) __extension__ ({ \8683(__m512i)__builtin_shufflevector((__v8di)(__m512i)(X), \8684(__v8di)_mm512_undefined_epi32(), \86850 + (((C) >> 0) & 0x3), \86860 + (((C) >> 2) & 0x3), \86870 + (((C) >> 4) & 0x3), \86880 + (((C) >> 6) & 0x3), \86894 + (((C) >> 0) & 0x3), \86904 + (((C) >> 2) & 0x3), \86914 + (((C) >> 4) & 0x3), \86924 + (((C) >> 6) & 0x3)); })86938694#define _mm512_mask_permutex_epi64(W, U, X, C) __extension__ ({ \8695(__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \8696(__v8di)_mm512_permutex_epi64((X), (C)), \8697(__v8di)(__m512i)(W)); })86988699#define _mm512_maskz_permutex_epi64(U, X, C) __extension__ ({ \8700(__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \8701(__v8di)_mm512_permutex_epi64((X), (C)), \8702(__v8di)_mm512_setzero_si512()); })87038704static __inline__ __m512d __DEFAULT_FN_ATTRS8705_mm512_permutexvar_pd (__m512i __X, __m512d __Y)8706{8707return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,8708(__v8di) __X,8709(__v8df) _mm512_undefined_pd (),8710(__mmask8) -1);8711}87128713static __inline__ __m512d __DEFAULT_FN_ATTRS8714_mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)8715{8716return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,8717(__v8di) __X,8718(__v8df) __W,8719(__mmask8) __U);8720}87218722static __inline__ __m512d __DEFAULT_FN_ATTRS8723_mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)8724{8725return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,8726(__v8di) __X,8727(__v8df) _mm512_setzero_pd (),8728(__mmask8) __U);8729}87308731static __inline__ __m512i __DEFAULT_FN_ATTRS8732_mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)8733{8734return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,8735(__v8di) __X,8736(__v8di) _mm512_setzero_si512 (),8737__M);8738}87398740static __inline__ __m512i __DEFAULT_FN_ATTRS8741_mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)8742{8743return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,8744(__v8di) __X,8745(__v8di) _mm512_undefined_epi32 (),8746(__mmask8) -1);8747}87488749static __inline__ __m512i __DEFAULT_FN_ATTRS8750_mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,8751__m512i __Y)8752{8753return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,8754(__v8di) __X,8755(__v8di) __W,8756__M);8757}87588759static __inline__ __m512 __DEFAULT_FN_ATTRS8760_mm512_permutexvar_ps (__m512i __X, __m512 __Y)8761{8762return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,8763(__v16si) __X,8764(__v16sf) _mm512_undefined_ps (),8765(__mmask16) -1);8766}87678768static __inline__ __m512 __DEFAULT_FN_ATTRS8769_mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)8770{8771return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,8772(__v16si) __X,8773(__v16sf) __W,8774(__mmask16) __U);8775}87768777static __inline__ __m512 __DEFAULT_FN_ATTRS8778_mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)8779{8780return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,8781(__v16si) __X,8782(__v16sf) _mm512_setzero_ps (),8783(__mmask16) __U);8784}87858786static __inline__ __m512i __DEFAULT_FN_ATTRS8787_mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)8788{8789return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,8790(__v16si) __X,8791(__v16si) _mm512_setzero_si512 (),8792__M);8793}87948795static __inline__ __m512i __DEFAULT_FN_ATTRS8796_mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)8797{8798return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,8799(__v16si) __X,8800(__v16si) _mm512_undefined_epi32 (),8801(__mmask16) -1);8802}88038804static __inline__ __m512i __DEFAULT_FN_ATTRS8805_mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,8806__m512i __Y)8807{8808return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,8809(__v16si) __X,8810(__v16si) __W,8811__M);8812}88138814static __inline__ __mmask16 __DEFAULT_FN_ATTRS8815_mm512_kand (__mmask16 __A, __mmask16 __B)8816{8817return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);8818}88198820static __inline__ __mmask16 __DEFAULT_FN_ATTRS8821_mm512_kandn (__mmask16 __A, __mmask16 __B)8822{8823return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B);8824}88258826static __inline__ __mmask16 __DEFAULT_FN_ATTRS8827_mm512_kor (__mmask16 __A, __mmask16 __B)8828{8829return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);8830}88318832static __inline__ int __DEFAULT_FN_ATTRS8833_mm512_kortestc (__mmask16 __A, __mmask16 __B)8834{8835return __builtin_ia32_kortestchi ((__mmask16) __A, (__mmask16) __B);8836}88378838static __inline__ int __DEFAULT_FN_ATTRS8839_mm512_kortestz (__mmask16 __A, __mmask16 __B)8840{8841return __builtin_ia32_kortestzhi ((__mmask16) __A, (__mmask16) __B);8842}88438844static __inline__ __mmask16 __DEFAULT_FN_ATTRS8845_mm512_kunpackb (__mmask16 __A, __mmask16 __B)8846{8847return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);8848}88498850static __inline__ __mmask16 __DEFAULT_FN_ATTRS8851_mm512_kxnor (__mmask16 __A, __mmask16 __B)8852{8853return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);8854}88558856static __inline__ __mmask16 __DEFAULT_FN_ATTRS8857_mm512_kxor (__mmask16 __A, __mmask16 __B)8858{8859return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);8860}88618862static __inline__ void __DEFAULT_FN_ATTRS8863_mm512_stream_si512 (__m512i * __P, __m512i __A)8864{8865__builtin_nontemporal_store((__v8di)__A, (__v8di*)__P);8866}88678868static __inline__ __m512i __DEFAULT_FN_ATTRS8869_mm512_stream_load_si512 (void *__P)8870{8871return __builtin_ia32_movntdqa512 ((__v8di *)__P);8872}88738874static __inline__ void __DEFAULT_FN_ATTRS8875_mm512_stream_pd (double *__P, __m512d __A)8876{8877__builtin_nontemporal_store((__v8df)__A, (__v8df*)__P);8878}88798880static __inline__ void __DEFAULT_FN_ATTRS8881_mm512_stream_ps (float *__P, __m512 __A)8882{8883__builtin_nontemporal_store((__v16sf)__A, (__v16sf*)__P);8884}88858886static __inline__ __m512d __DEFAULT_FN_ATTRS8887_mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)8888{8889return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,8890(__v8df) __W,8891(__mmask8) __U);8892}88938894static __inline__ __m512d __DEFAULT_FN_ATTRS8895_mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)8896{8897return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,8898(__v8df)8899_mm512_setzero_pd (),8900(__mmask8) __U);8901}89028903static __inline__ __m512i __DEFAULT_FN_ATTRS8904_mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)8905{8906return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,8907(__v8di) __W,8908(__mmask8) __U);8909}89108911static __inline__ __m512i __DEFAULT_FN_ATTRS8912_mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)8913{8914return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,8915(__v8di)8916_mm512_setzero_si512 (),8917(__mmask8) __U);8918}89198920static __inline__ __m512 __DEFAULT_FN_ATTRS8921_mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)8922{8923return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,8924(__v16sf) __W,8925(__mmask16) __U);8926}89278928static __inline__ __m512 __DEFAULT_FN_ATTRS8929_mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)8930{8931return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,8932(__v16sf)8933_mm512_setzero_ps (),8934(__mmask16) __U);8935}89368937static __inline__ __m512i __DEFAULT_FN_ATTRS8938_mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)8939{8940return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,8941(__v16si) __W,8942(__mmask16) __U);8943}89448945static __inline__ __m512i __DEFAULT_FN_ATTRS8946_mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)8947{8948return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,8949(__v16si)8950_mm512_setzero_si512 (),8951(__mmask16) __U);8952}89538954#define _mm_cmp_round_ss_mask(X, Y, P, R) __extension__ ({ \8955(__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \8956(__v4sf)(__m128)(Y), (int)(P), \8957(__mmask8)-1, (int)(R)); })89588959#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) __extension__ ({ \8960(__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \8961(__v4sf)(__m128)(Y), (int)(P), \8962(__mmask8)(M), (int)(R)); })89638964#define _mm_cmp_ss_mask(X, Y, P) __extension__ ({ \8965(__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \8966(__v4sf)(__m128)(Y), (int)(P), \8967(__mmask8)-1, \8968_MM_FROUND_CUR_DIRECTION); })89698970#define _mm_mask_cmp_ss_mask(M, X, Y, P) __extension__ ({ \8971(__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \8972(__v4sf)(__m128)(Y), (int)(P), \8973(__mmask8)(M), \8974_MM_FROUND_CUR_DIRECTION); })89758976#define _mm_cmp_round_sd_mask(X, Y, P, R) __extension__ ({ \8977(__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \8978(__v2df)(__m128d)(Y), (int)(P), \8979(__mmask8)-1, (int)(R)); })89808981#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) __extension__ ({ \8982(__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \8983(__v2df)(__m128d)(Y), (int)(P), \8984(__mmask8)(M), (int)(R)); })89858986#define _mm_cmp_sd_mask(X, Y, P) __extension__ ({ \8987(__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \8988(__v2df)(__m128d)(Y), (int)(P), \8989(__mmask8)-1, \8990_MM_FROUND_CUR_DIRECTION); })89918992#define _mm_mask_cmp_sd_mask(M, X, Y, P) __extension__ ({ \8993(__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \8994(__v2df)(__m128d)(Y), (int)(P), \8995(__mmask8)(M), \8996_MM_FROUND_CUR_DIRECTION); })89978998static __inline__ __m512 __DEFAULT_FN_ATTRS8999_mm512_movehdup_ps (__m512 __A)9000{9001return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A,90021, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 13, 13, 15, 15);9003}90049005static __inline__ __m512 __DEFAULT_FN_ATTRS9006_mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)9007{9008return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,9009(__v16sf)_mm512_movehdup_ps(__A),9010(__v16sf)__W);9011}90129013static __inline__ __m512 __DEFAULT_FN_ATTRS9014_mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)9015{9016return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,9017(__v16sf)_mm512_movehdup_ps(__A),9018(__v16sf)_mm512_setzero_ps());9019}90209021static __inline__ __m512 __DEFAULT_FN_ATTRS9022_mm512_moveldup_ps (__m512 __A)9023{9024return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A,90250, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14);9026}90279028static __inline__ __m512 __DEFAULT_FN_ATTRS9029_mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)9030{9031return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,9032(__v16sf)_mm512_moveldup_ps(__A),9033(__v16sf)__W);9034}90359036static __inline__ __m512 __DEFAULT_FN_ATTRS9037_mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)9038{9039return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,9040(__v16sf)_mm512_moveldup_ps(__A),9041(__v16sf)_mm512_setzero_ps());9042}90439044#define _mm512_shuffle_epi32(A, I) __extension__ ({ \9045(__m512i)__builtin_shufflevector((__v16si)(__m512i)(A), \9046(__v16si)_mm512_undefined_epi32(), \90470 + (((I) >> 0) & 0x3), \90480 + (((I) >> 2) & 0x3), \90490 + (((I) >> 4) & 0x3), \90500 + (((I) >> 6) & 0x3), \90514 + (((I) >> 0) & 0x3), \90524 + (((I) >> 2) & 0x3), \90534 + (((I) >> 4) & 0x3), \90544 + (((I) >> 6) & 0x3), \90558 + (((I) >> 0) & 0x3), \90568 + (((I) >> 2) & 0x3), \90578 + (((I) >> 4) & 0x3), \90588 + (((I) >> 6) & 0x3), \905912 + (((I) >> 0) & 0x3), \906012 + (((I) >> 2) & 0x3), \906112 + (((I) >> 4) & 0x3), \906212 + (((I) >> 6) & 0x3)); })90639064#define _mm512_mask_shuffle_epi32(W, U, A, I) __extension__ ({ \9065(__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \9066(__v16si)_mm512_shuffle_epi32((A), (I)), \9067(__v16si)(__m512i)(W)); })90689069#define _mm512_maskz_shuffle_epi32(U, A, I) __extension__ ({ \9070(__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \9071(__v16si)_mm512_shuffle_epi32((A), (I)), \9072(__v16si)_mm512_setzero_si512()); })90739074static __inline__ __m512d __DEFAULT_FN_ATTRS9075_mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)9076{9077return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,9078(__v8df) __W,9079(__mmask8) __U);9080}90819082static __inline__ __m512d __DEFAULT_FN_ATTRS9083_mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)9084{9085return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,9086(__v8df) _mm512_setzero_pd (),9087(__mmask8) __U);9088}90899090static __inline__ __m512i __DEFAULT_FN_ATTRS9091_mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)9092{9093return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,9094(__v8di) __W,9095(__mmask8) __U);9096}90979098static __inline__ __m512i __DEFAULT_FN_ATTRS9099_mm512_maskz_expand_epi64 ( __mmask8 __U, __m512i __A)9100{9101return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,9102(__v8di) _mm512_setzero_pd (),9103(__mmask8) __U);9104}91059106static __inline__ __m512d __DEFAULT_FN_ATTRS9107_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P)9108{9109return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P,9110(__v8df) __W,9111(__mmask8) __U);9112}91139114static __inline__ __m512d __DEFAULT_FN_ATTRS9115_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P)9116{9117return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P,9118(__v8df) _mm512_setzero_pd(),9119(__mmask8) __U);9120}91219122static __inline__ __m512i __DEFAULT_FN_ATTRS9123_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P)9124{9125return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P,9126(__v8di) __W,9127(__mmask8) __U);9128}91299130static __inline__ __m512i __DEFAULT_FN_ATTRS9131_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P)9132{9133return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P,9134(__v8di) _mm512_setzero_pd(),9135(__mmask8) __U);9136}91379138static __inline__ __m512 __DEFAULT_FN_ATTRS9139_mm512_mask_expandloadu_ps(__m512 __W, __mmask16 __U, void const *__P)9140{9141return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P,9142(__v16sf) __W,9143(__mmask16) __U);9144}91459146static __inline__ __m512 __DEFAULT_FN_ATTRS9147_mm512_maskz_expandloadu_ps(__mmask16 __U, void const *__P)9148{9149return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P,9150(__v16sf) _mm512_setzero_ps(),9151(__mmask16) __U);9152}91539154static __inline__ __m512i __DEFAULT_FN_ATTRS9155_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P)9156{9157return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P,9158(__v16si) __W,9159(__mmask16) __U);9160}91619162static __inline__ __m512i __DEFAULT_FN_ATTRS9163_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P)9164{9165return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P,9166(__v16si) _mm512_setzero_ps(),9167(__mmask16) __U);9168}91699170static __inline__ __m512 __DEFAULT_FN_ATTRS9171_mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)9172{9173return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,9174(__v16sf) __W,9175(__mmask16) __U);9176}91779178static __inline__ __m512 __DEFAULT_FN_ATTRS9179_mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)9180{9181return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,9182(__v16sf) _mm512_setzero_ps(),9183(__mmask16) __U);9184}91859186static __inline__ __m512i __DEFAULT_FN_ATTRS9187_mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)9188{9189return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,9190(__v16si) __W,9191(__mmask16) __U);9192}91939194static __inline__ __m512i __DEFAULT_FN_ATTRS9195_mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)9196{9197return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,9198(__v16si) _mm512_setzero_ps(),9199(__mmask16) __U);9200}92019202#define _mm512_cvt_roundps_pd(A, R) __extension__ ({ \9203(__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \9204(__v8df)_mm512_undefined_pd(), \9205(__mmask8)-1, (int)(R)); })92069207#define _mm512_mask_cvt_roundps_pd(W, U, A, R) __extension__ ({ \9208(__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \9209(__v8df)(__m512d)(W), \9210(__mmask8)(U), (int)(R)); })92119212#define _mm512_maskz_cvt_roundps_pd(U, A, R) __extension__ ({ \9213(__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \9214(__v8df)_mm512_setzero_pd(), \9215(__mmask8)(U), (int)(R)); })92169217static __inline__ __m512d __DEFAULT_FN_ATTRS9218_mm512_cvtps_pd (__m256 __A)9219{9220return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,9221(__v8df)9222_mm512_undefined_pd (),9223(__mmask8) -1,9224_MM_FROUND_CUR_DIRECTION);9225}92269227static __inline__ __m512d __DEFAULT_FN_ATTRS9228_mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)9229{9230return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,9231(__v8df) __W,9232(__mmask8) __U,9233_MM_FROUND_CUR_DIRECTION);9234}92359236static __inline__ __m512d __DEFAULT_FN_ATTRS9237_mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)9238{9239return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,9240(__v8df)9241_mm512_setzero_pd (),9242(__mmask8) __U,9243_MM_FROUND_CUR_DIRECTION);9244}92459246static __inline__ __m512d __DEFAULT_FN_ATTRS9247_mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A)9248{9249return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U,9250(__v8df) __A,9251(__v8df) __W);9252}92539254static __inline__ __m512d __DEFAULT_FN_ATTRS9255_mm512_maskz_mov_pd (__mmask8 __U, __m512d __A)9256{9257return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U,9258(__v8df) __A,9259(__v8df) _mm512_setzero_pd ());9260}92619262static __inline__ __m512 __DEFAULT_FN_ATTRS9263_mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A)9264{9265return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U,9266(__v16sf) __A,9267(__v16sf) __W);9268}92699270static __inline__ __m512 __DEFAULT_FN_ATTRS9271_mm512_maskz_mov_ps (__mmask16 __U, __m512 __A)9272{9273return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U,9274(__v16sf) __A,9275(__v16sf) _mm512_setzero_ps ());9276}92779278static __inline__ void __DEFAULT_FN_ATTRS9279_mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)9280{9281__builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,9282(__mmask8) __U);9283}92849285static __inline__ void __DEFAULT_FN_ATTRS9286_mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)9287{9288__builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,9289(__mmask8) __U);9290}92919292static __inline__ void __DEFAULT_FN_ATTRS9293_mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)9294{9295__builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,9296(__mmask16) __U);9297}92989299static __inline__ void __DEFAULT_FN_ATTRS9300_mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)9301{9302__builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,9303(__mmask16) __U);9304}93059306#define _mm_cvt_roundsd_ss(A, B, R) __extension__ ({ \9307(__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \9308(__v2df)(__m128d)(B), \9309(__v4sf)_mm_undefined_ps(), \9310(__mmask8)-1, (int)(R)); })93119312#define _mm_mask_cvt_roundsd_ss(W, U, A, B, R) __extension__ ({ \9313(__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \9314(__v2df)(__m128d)(B), \9315(__v4sf)(__m128)(W), \9316(__mmask8)(U), (int)(R)); })93179318#define _mm_maskz_cvt_roundsd_ss(U, A, B, R) __extension__ ({ \9319(__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \9320(__v2df)(__m128d)(B), \9321(__v4sf)_mm_setzero_ps(), \9322(__mmask8)(U), (int)(R)); })93239324static __inline__ __m128 __DEFAULT_FN_ATTRS9325_mm_mask_cvtsd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128d __B)9326{9327return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)(__A),9328(__v2df)(__B),9329(__v4sf)(__W),9330(__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);9331}93329333static __inline__ __m128 __DEFAULT_FN_ATTRS9334_mm_maskz_cvtsd_ss (__mmask8 __U, __m128 __A, __m128d __B)9335{9336return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)(__A),9337(__v2df)(__B),9338(__v4sf)_mm_setzero_ps(),9339(__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);9340}93419342#define _mm_cvtss_i32 _mm_cvtss_si329343#define _mm_cvtss_i64 _mm_cvtss_si649344#define _mm_cvtsd_i32 _mm_cvtsd_si329345#define _mm_cvtsd_i64 _mm_cvtsd_si649346#define _mm_cvti32_sd _mm_cvtsi32_sd9347#define _mm_cvti64_sd _mm_cvtsi64_sd9348#define _mm_cvti32_ss _mm_cvtsi32_ss9349#define _mm_cvti64_ss _mm_cvtsi64_ss93509351#define _mm_cvt_roundi64_sd(A, B, R) __extension__ ({ \9352(__m128d)__builtin_ia32_cvtsi2sd64((__v2df)(__m128d)(A), (long long)(B), \9353(int)(R)); })93549355#define _mm_cvt_roundsi64_sd(A, B, R) __extension__ ({ \9356(__m128d)__builtin_ia32_cvtsi2sd64((__v2df)(__m128d)(A), (long long)(B), \9357(int)(R)); })93589359#define _mm_cvt_roundsi32_ss(A, B, R) __extension__ ({ \9360(__m128)__builtin_ia32_cvtsi2ss32((__v4sf)(__m128)(A), (int)(B), (int)(R)); })93619362#define _mm_cvt_roundi32_ss(A, B, R) __extension__ ({ \9363(__m128)__builtin_ia32_cvtsi2ss32((__v4sf)(__m128)(A), (int)(B), (int)(R)); })93649365#define _mm_cvt_roundsi64_ss(A, B, R) __extension__ ({ \9366(__m128)__builtin_ia32_cvtsi2ss64((__v4sf)(__m128)(A), (long long)(B), \9367(int)(R)); })93689369#define _mm_cvt_roundi64_ss(A, B, R) __extension__ ({ \9370(__m128)__builtin_ia32_cvtsi2ss64((__v4sf)(__m128)(A), (long long)(B), \9371(int)(R)); })93729373#define _mm_cvt_roundss_sd(A, B, R) __extension__ ({ \9374(__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \9375(__v4sf)(__m128)(B), \9376(__v2df)_mm_undefined_pd(), \9377(__mmask8)-1, (int)(R)); })93789379#define _mm_mask_cvt_roundss_sd(W, U, A, B, R) __extension__ ({ \9380(__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \9381(__v4sf)(__m128)(B), \9382(__v2df)(__m128d)(W), \9383(__mmask8)(U), (int)(R)); })93849385#define _mm_maskz_cvt_roundss_sd(U, A, B, R) __extension__ ({ \9386(__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \9387(__v4sf)(__m128)(B), \9388(__v2df)_mm_setzero_pd(), \9389(__mmask8)(U), (int)(R)); })93909391static __inline__ __m128d __DEFAULT_FN_ATTRS9392_mm_mask_cvtss_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128 __B)9393{9394return __builtin_ia32_cvtss2sd_round_mask((__v2df)(__A),9395(__v4sf)(__B),9396(__v2df)(__W),9397(__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);9398}93999400static __inline__ __m128d __DEFAULT_FN_ATTRS9401_mm_maskz_cvtss_sd (__mmask8 __U, __m128d __A, __m128 __B)9402{9403return __builtin_ia32_cvtss2sd_round_mask((__v2df)(__A),9404(__v4sf)(__B),9405(__v2df)_mm_setzero_pd(),9406(__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);9407}94089409static __inline__ __m128d __DEFAULT_FN_ATTRS9410_mm_cvtu32_sd (__m128d __A, unsigned __B)9411{9412return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B);9413}94149415#define _mm_cvt_roundu64_sd(A, B, R) __extension__ ({ \9416(__m128d)__builtin_ia32_cvtusi2sd64((__v2df)(__m128d)(A), \9417(unsigned long long)(B), (int)(R)); })94189419static __inline__ __m128d __DEFAULT_FN_ATTRS9420_mm_cvtu64_sd (__m128d __A, unsigned long long __B)9421{9422return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,9423_MM_FROUND_CUR_DIRECTION);9424}94259426#define _mm_cvt_roundu32_ss(A, B, R) __extension__ ({ \9427(__m128)__builtin_ia32_cvtusi2ss32((__v4sf)(__m128)(A), (unsigned int)(B), \9428(int)(R)); })94299430static __inline__ __m128 __DEFAULT_FN_ATTRS9431_mm_cvtu32_ss (__m128 __A, unsigned __B)9432{9433return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,9434_MM_FROUND_CUR_DIRECTION);9435}94369437#define _mm_cvt_roundu64_ss(A, B, R) __extension__ ({ \9438(__m128)__builtin_ia32_cvtusi2ss64((__v4sf)(__m128)(A), \9439(unsigned long long)(B), (int)(R)); })94409441static __inline__ __m128 __DEFAULT_FN_ATTRS9442_mm_cvtu64_ss (__m128 __A, unsigned long long __B)9443{9444return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,9445_MM_FROUND_CUR_DIRECTION);9446}94479448static __inline__ __m512i __DEFAULT_FN_ATTRS9449_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)9450{9451return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O,9452__M);9453}94549455static __inline__ __m512i __DEFAULT_FN_ATTRS9456_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)9457{9458return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O,9459__M);9460}94619462static __inline __m512i __DEFAULT_FN_ATTRS9463_mm512_set_epi32 (int __A, int __B, int __C, int __D,9464int __E, int __F, int __G, int __H,9465int __I, int __J, int __K, int __L,9466int __M, int __N, int __O, int __P)9467{9468return __extension__ (__m512i)(__v16si)9469{ __P, __O, __N, __M, __L, __K, __J, __I,9470__H, __G, __F, __E, __D, __C, __B, __A };9471}94729473#define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \9474e8,e9,e10,e11,e12,e13,e14,e15) \9475_mm512_set_epi32((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6), \9476(e5),(e4),(e3),(e2),(e1),(e0))94779478static __inline__ __m512i __DEFAULT_FN_ATTRS9479_mm512_set_epi64 (long long __A, long long __B, long long __C,9480long long __D, long long __E, long long __F,9481long long __G, long long __H)9482{9483return __extension__ (__m512i) (__v8di)9484{ __H, __G, __F, __E, __D, __C, __B, __A };9485}94869487#define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \9488_mm512_set_epi64((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0))94899490static __inline__ __m512d __DEFAULT_FN_ATTRS9491_mm512_set_pd (double __A, double __B, double __C, double __D,9492double __E, double __F, double __G, double __H)9493{9494return __extension__ (__m512d)9495{ __H, __G, __F, __E, __D, __C, __B, __A };9496}94979498#define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \9499_mm512_set_pd((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0))95009501static __inline__ __m512 __DEFAULT_FN_ATTRS9502_mm512_set_ps (float __A, float __B, float __C, float __D,9503float __E, float __F, float __G, float __H,9504float __I, float __J, float __K, float __L,9505float __M, float __N, float __O, float __P)9506{9507return __extension__ (__m512)9508{ __P, __O, __N, __M, __L, __K, __J, __I,9509__H, __G, __F, __E, __D, __C, __B, __A };9510}95119512#define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \9513_mm512_set_ps((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6),(e5), \9514(e4),(e3),(e2),(e1),(e0))95159516static __inline__ __m512 __DEFAULT_FN_ATTRS9517_mm512_abs_ps(__m512 A)9518{9519return (__m512)_mm512_and_epi32(_mm512_set1_epi32(0x7FFFFFFF),(__m512i)A) ;9520}95219522static __inline__ __m512 __DEFAULT_FN_ATTRS9523_mm512_mask_abs_ps(__m512 W, __mmask16 K, __m512 A)9524{9525return (__m512)_mm512_mask_and_epi32((__m512i)W, K, _mm512_set1_epi32(0x7FFFFFFF),(__m512i)A) ;9526}95279528static __inline__ __m512d __DEFAULT_FN_ATTRS9529_mm512_abs_pd(__m512d A)9530{9531return (__m512d)_mm512_and_epi64(_mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)A) ;9532}95339534static __inline__ __m512d __DEFAULT_FN_ATTRS9535_mm512_mask_abs_pd(__m512d W, __mmask8 K, __m512d A)9536{9537return (__m512d)_mm512_mask_and_epi64((__v8di)W, K, _mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)A);9538}95399540#undef __DEFAULT_FN_ATTRS95419542#endif // __AVX512FINTRIN_H954395449545