xref: /aosp_15_r20/prebuilts/sdk/renderscript/clang-include/avx512fintrin.h (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker /*===---- avx512fintrin.h - AVX512F intrinsics -----------------------------===
2*344a7f5eSAndroid Build Coastguard Worker  *
3*344a7f5eSAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a copy
4*344a7f5eSAndroid Build Coastguard Worker  * of this software and associated documentation files (the "Software"), to deal
5*344a7f5eSAndroid Build Coastguard Worker  * in the Software without restriction, including without limitation the rights
6*344a7f5eSAndroid Build Coastguard Worker  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*344a7f5eSAndroid Build Coastguard Worker  * copies of the Software, and to permit persons to whom the Software is
8*344a7f5eSAndroid Build Coastguard Worker  * furnished to do so, subject to the following conditions:
9*344a7f5eSAndroid Build Coastguard Worker  *
10*344a7f5eSAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included in
11*344a7f5eSAndroid Build Coastguard Worker  * all copies or substantial portions of the Software.
12*344a7f5eSAndroid Build Coastguard Worker  *
13*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14*344a7f5eSAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15*344a7f5eSAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16*344a7f5eSAndroid Build Coastguard Worker  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17*344a7f5eSAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18*344a7f5eSAndroid Build Coastguard Worker  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE.
20*344a7f5eSAndroid Build Coastguard Worker  *
21*344a7f5eSAndroid Build Coastguard Worker  *===-----------------------------------------------------------------------===
22*344a7f5eSAndroid Build Coastguard Worker  */
23*344a7f5eSAndroid Build Coastguard Worker #ifndef __IMMINTRIN_H
24*344a7f5eSAndroid Build Coastguard Worker #error "Never use <avx512fintrin.h> directly; include <immintrin.h> instead."
25*344a7f5eSAndroid Build Coastguard Worker #endif
26*344a7f5eSAndroid Build Coastguard Worker 
27*344a7f5eSAndroid Build Coastguard Worker #ifndef __AVX512FINTRIN_H
28*344a7f5eSAndroid Build Coastguard Worker #define __AVX512FINTRIN_H
29*344a7f5eSAndroid Build Coastguard Worker 
30*344a7f5eSAndroid Build Coastguard Worker typedef char __v64qi __attribute__((__vector_size__(64)));
31*344a7f5eSAndroid Build Coastguard Worker typedef short __v32hi __attribute__((__vector_size__(64)));
32*344a7f5eSAndroid Build Coastguard Worker typedef double __v8df __attribute__((__vector_size__(64)));
33*344a7f5eSAndroid Build Coastguard Worker typedef float __v16sf __attribute__((__vector_size__(64)));
34*344a7f5eSAndroid Build Coastguard Worker typedef long long __v8di __attribute__((__vector_size__(64)));
35*344a7f5eSAndroid Build Coastguard Worker typedef int __v16si __attribute__((__vector_size__(64)));
36*344a7f5eSAndroid Build Coastguard Worker 
37*344a7f5eSAndroid Build Coastguard Worker /* Unsigned types */
38*344a7f5eSAndroid Build Coastguard Worker typedef unsigned char __v64qu __attribute__((__vector_size__(64)));
39*344a7f5eSAndroid Build Coastguard Worker typedef unsigned short __v32hu __attribute__((__vector_size__(64)));
40*344a7f5eSAndroid Build Coastguard Worker typedef unsigned long long __v8du __attribute__((__vector_size__(64)));
41*344a7f5eSAndroid Build Coastguard Worker typedef unsigned int __v16su __attribute__((__vector_size__(64)));
42*344a7f5eSAndroid Build Coastguard Worker 
43*344a7f5eSAndroid Build Coastguard Worker typedef float __m512 __attribute__((__vector_size__(64)));
44*344a7f5eSAndroid Build Coastguard Worker typedef double __m512d __attribute__((__vector_size__(64)));
45*344a7f5eSAndroid Build Coastguard Worker typedef long long __m512i __attribute__((__vector_size__(64)));
46*344a7f5eSAndroid Build Coastguard Worker 
47*344a7f5eSAndroid Build Coastguard Worker typedef unsigned char __mmask8;
48*344a7f5eSAndroid Build Coastguard Worker typedef unsigned short __mmask16;
49*344a7f5eSAndroid Build Coastguard Worker 
50*344a7f5eSAndroid Build Coastguard Worker /* Rounding mode macros.  */
51*344a7f5eSAndroid Build Coastguard Worker #define _MM_FROUND_TO_NEAREST_INT   0x00
52*344a7f5eSAndroid Build Coastguard Worker #define _MM_FROUND_TO_NEG_INF       0x01
53*344a7f5eSAndroid Build Coastguard Worker #define _MM_FROUND_TO_POS_INF       0x02
54*344a7f5eSAndroid Build Coastguard Worker #define _MM_FROUND_TO_ZERO          0x03
55*344a7f5eSAndroid Build Coastguard Worker #define _MM_FROUND_CUR_DIRECTION    0x04
56*344a7f5eSAndroid Build Coastguard Worker 
57*344a7f5eSAndroid Build Coastguard Worker typedef enum
58*344a7f5eSAndroid Build Coastguard Worker {
59*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02,
60*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05,
61*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08,
62*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B,
63*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E,
64*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11,
65*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14,
66*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17,
67*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A,
68*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D,
69*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20,
70*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23,
71*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26,
72*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29,
73*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C,
74*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F,
75*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32,
76*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35,
77*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38,
78*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B,
79*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E,
80*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41,
81*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44,
82*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47,
83*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A,
84*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D,
85*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50,
86*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53,
87*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56,
88*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59,
89*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C,
90*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F,
91*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62,
92*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65,
93*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68,
94*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B,
95*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E,
96*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71,
97*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74,
98*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77,
99*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A,
100*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D,
101*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80,
102*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83,
103*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86,
104*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89,
105*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C,
106*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F,
107*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92,
108*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95,
109*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98,
110*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B,
111*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E,
112*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1,
113*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4,
114*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7,
115*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA,
116*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD,
117*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0,
118*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3,
119*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6,
120*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9,
121*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC,
122*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF,
123*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2,
124*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5,
125*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8,
126*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB,
127*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE,
128*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1,
129*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4,
130*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7,
131*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA,
132*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD,
133*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0,
134*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3,
135*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6,
136*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9,
137*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC,
138*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF,
139*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2,
140*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5,
141*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8,
142*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB,
143*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE,
144*344a7f5eSAndroid Build Coastguard Worker   _MM_PERM_DDDD = 0xFF
145*344a7f5eSAndroid Build Coastguard Worker } _MM_PERM_ENUM;
146*344a7f5eSAndroid Build Coastguard Worker 
147*344a7f5eSAndroid Build Coastguard Worker typedef enum
148*344a7f5eSAndroid Build Coastguard Worker {
149*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_NORM_1_2,    /* interval [1, 2)      */
150*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_NORM_p5_2,   /* interval [0.5, 2)    */
151*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_NORM_p5_1,   /* interval [0.5, 1)    */
152*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_NORM_p75_1p5   /* interval [0.75, 1.5) */
153*344a7f5eSAndroid Build Coastguard Worker } _MM_MANTISSA_NORM_ENUM;
154*344a7f5eSAndroid Build Coastguard Worker 
155*344a7f5eSAndroid Build Coastguard Worker typedef enum
156*344a7f5eSAndroid Build Coastguard Worker {
157*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_SIGN_src,    /* sign = sign(SRC)     */
158*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_SIGN_zero,   /* sign = 0             */
159*344a7f5eSAndroid Build Coastguard Worker   _MM_MANT_SIGN_nan   /* DEST = NaN if sign(SRC) = 1 */
160*344a7f5eSAndroid Build Coastguard Worker } _MM_MANTISSA_SIGN_ENUM;
161*344a7f5eSAndroid Build Coastguard Worker 
162*344a7f5eSAndroid Build Coastguard Worker /* Define the default attributes for the functions in this file. */
163*344a7f5eSAndroid Build Coastguard Worker #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512f")))
164*344a7f5eSAndroid Build Coastguard Worker 
165*344a7f5eSAndroid Build Coastguard Worker /* Create vectors with repeated elements */
166*344a7f5eSAndroid Build Coastguard Worker 
167*344a7f5eSAndroid Build Coastguard Worker static  __inline __m512i __DEFAULT_FN_ATTRS
_mm512_setzero_si512(void)168*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_si512(void)
169*344a7f5eSAndroid Build Coastguard Worker {
170*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
171*344a7f5eSAndroid Build Coastguard Worker }
172*344a7f5eSAndroid Build Coastguard Worker 
173*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setzero_epi32 _mm512_setzero_si512
174*344a7f5eSAndroid Build Coastguard Worker 
175*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_undefined_pd(void)176*344a7f5eSAndroid Build Coastguard Worker _mm512_undefined_pd(void)
177*344a7f5eSAndroid Build Coastguard Worker {
178*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_undef512();
179*344a7f5eSAndroid Build Coastguard Worker }
180*344a7f5eSAndroid Build Coastguard Worker 
181*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_undefined(void)182*344a7f5eSAndroid Build Coastguard Worker _mm512_undefined(void)
183*344a7f5eSAndroid Build Coastguard Worker {
184*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_undef512();
185*344a7f5eSAndroid Build Coastguard Worker }
186*344a7f5eSAndroid Build Coastguard Worker 
187*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_undefined_ps(void)188*344a7f5eSAndroid Build Coastguard Worker _mm512_undefined_ps(void)
189*344a7f5eSAndroid Build Coastguard Worker {
190*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_undef512();
191*344a7f5eSAndroid Build Coastguard Worker }
192*344a7f5eSAndroid Build Coastguard Worker 
193*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_undefined_epi32(void)194*344a7f5eSAndroid Build Coastguard Worker _mm512_undefined_epi32(void)
195*344a7f5eSAndroid Build Coastguard Worker {
196*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_undef512();
197*344a7f5eSAndroid Build Coastguard Worker }
198*344a7f5eSAndroid Build Coastguard Worker 
199*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcastd_epi32(__m128i __A)200*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcastd_epi32 (__m128i __A)
201*344a7f5eSAndroid Build Coastguard Worker {
202*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_shufflevector((__v4si) __A,
203*344a7f5eSAndroid Build Coastguard Worker                                           (__v4si)_mm_undefined_si128(),
204*344a7f5eSAndroid Build Coastguard Worker                                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
205*344a7f5eSAndroid Build Coastguard Worker }
206*344a7f5eSAndroid Build Coastguard Worker 
207*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_broadcastd_epi32(__m512i __O,__mmask16 __M,__m128i __A)208*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A)
209*344a7f5eSAndroid Build Coastguard Worker {
210*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512(__M,
211*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si) _mm512_broadcastd_epi32(__A),
212*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si) __O);
213*344a7f5eSAndroid Build Coastguard Worker }
214*344a7f5eSAndroid Build Coastguard Worker 
215*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_broadcastd_epi32(__mmask16 __M,__m128i __A)216*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)
217*344a7f5eSAndroid Build Coastguard Worker {
218*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512(__M,
219*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si) _mm512_broadcastd_epi32(__A),
220*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si) _mm512_setzero_si512());
221*344a7f5eSAndroid Build Coastguard Worker }
222*344a7f5eSAndroid Build Coastguard Worker 
223*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcastq_epi64(__m128i __A)224*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcastq_epi64 (__m128i __A)
225*344a7f5eSAndroid Build Coastguard Worker {
226*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_shufflevector((__v2di) __A,
227*344a7f5eSAndroid Build Coastguard Worker                                           (__v2di) _mm_undefined_si128(),
228*344a7f5eSAndroid Build Coastguard Worker                                           0, 0, 0, 0, 0, 0, 0, 0);
229*344a7f5eSAndroid Build Coastguard Worker }
230*344a7f5eSAndroid Build Coastguard Worker 
231*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_broadcastq_epi64(__m512i __O,__mmask8 __M,__m128i __A)232*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A)
233*344a7f5eSAndroid Build Coastguard Worker {
234*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512(__M,
235*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di) _mm512_broadcastq_epi64(__A),
236*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di) __O);
237*344a7f5eSAndroid Build Coastguard Worker 
238*344a7f5eSAndroid Build Coastguard Worker }
239*344a7f5eSAndroid Build Coastguard Worker 
240*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_broadcastq_epi64(__mmask8 __M,__m128i __A)241*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
242*344a7f5eSAndroid Build Coastguard Worker {
243*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512(__M,
244*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di) _mm512_broadcastq_epi64(__A),
245*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di) _mm512_setzero_si512());
246*344a7f5eSAndroid Build Coastguard Worker }
247*344a7f5eSAndroid Build Coastguard Worker 
248*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_set1_epi32(__mmask16 __M,int __A)249*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_set1_epi32(__mmask16 __M, int __A)
250*344a7f5eSAndroid Build Coastguard Worker {
251*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A,
252*344a7f5eSAndroid Build Coastguard Worker                  (__v16si)
253*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_si512 (),
254*344a7f5eSAndroid Build Coastguard Worker                  __M);
255*344a7f5eSAndroid Build Coastguard Worker }
256*344a7f5eSAndroid Build Coastguard Worker 
257*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_set1_epi64(__mmask8 __M,long long __A)258*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_set1_epi64(__mmask8 __M, long long __A)
259*344a7f5eSAndroid Build Coastguard Worker {
260*344a7f5eSAndroid Build Coastguard Worker #ifdef __x86_64__
261*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A,
262*344a7f5eSAndroid Build Coastguard Worker                  (__v8di)
263*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_si512 (),
264*344a7f5eSAndroid Build Coastguard Worker                  __M);
265*344a7f5eSAndroid Build Coastguard Worker #else
266*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pbroadcastq512_mem_mask (__A,
267*344a7f5eSAndroid Build Coastguard Worker                  (__v8di)
268*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_si512 (),
269*344a7f5eSAndroid Build Coastguard Worker                  __M);
270*344a7f5eSAndroid Build Coastguard Worker #endif
271*344a7f5eSAndroid Build Coastguard Worker }
272*344a7f5eSAndroid Build Coastguard Worker 
273*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_setzero_ps(void)274*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_ps(void)
275*344a7f5eSAndroid Build Coastguard Worker {
276*344a7f5eSAndroid Build Coastguard Worker   return (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
277*344a7f5eSAndroid Build Coastguard Worker                    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
278*344a7f5eSAndroid Build Coastguard Worker }
279*344a7f5eSAndroid Build Coastguard Worker 
280*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setzero _mm512_setzero_ps
281*344a7f5eSAndroid Build Coastguard Worker 
282*344a7f5eSAndroid Build Coastguard Worker static  __inline __m512d __DEFAULT_FN_ATTRS
_mm512_setzero_pd(void)283*344a7f5eSAndroid Build Coastguard Worker _mm512_setzero_pd(void)
284*344a7f5eSAndroid Build Coastguard Worker {
285*344a7f5eSAndroid Build Coastguard Worker   return (__m512d){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
286*344a7f5eSAndroid Build Coastguard Worker }
287*344a7f5eSAndroid Build Coastguard Worker 
288*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_set1_ps(float __w)289*344a7f5eSAndroid Build Coastguard Worker _mm512_set1_ps(float __w)
290*344a7f5eSAndroid Build Coastguard Worker {
291*344a7f5eSAndroid Build Coastguard Worker   return (__m512){ __w, __w, __w, __w, __w, __w, __w, __w,
292*344a7f5eSAndroid Build Coastguard Worker                    __w, __w, __w, __w, __w, __w, __w, __w  };
293*344a7f5eSAndroid Build Coastguard Worker }
294*344a7f5eSAndroid Build Coastguard Worker 
295*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_set1_pd(double __w)296*344a7f5eSAndroid Build Coastguard Worker _mm512_set1_pd(double __w)
297*344a7f5eSAndroid Build Coastguard Worker {
298*344a7f5eSAndroid Build Coastguard Worker   return (__m512d){ __w, __w, __w, __w, __w, __w, __w, __w };
299*344a7f5eSAndroid Build Coastguard Worker }
300*344a7f5eSAndroid Build Coastguard Worker 
301*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set1_epi8(char __w)302*344a7f5eSAndroid Build Coastguard Worker _mm512_set1_epi8(char __w)
303*344a7f5eSAndroid Build Coastguard Worker {
304*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(__v64qi){ __w, __w, __w, __w, __w, __w, __w, __w,
305*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
306*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
307*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
308*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
309*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
310*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
311*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w  };
312*344a7f5eSAndroid Build Coastguard Worker }
313*344a7f5eSAndroid Build Coastguard Worker 
314*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set1_epi16(short __w)315*344a7f5eSAndroid Build Coastguard Worker _mm512_set1_epi16(short __w)
316*344a7f5eSAndroid Build Coastguard Worker {
317*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(__v32hi){ __w, __w, __w, __w, __w, __w, __w, __w,
318*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
319*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w,
320*344a7f5eSAndroid Build Coastguard Worker                              __w, __w, __w, __w, __w, __w, __w, __w };
321*344a7f5eSAndroid Build Coastguard Worker }
322*344a7f5eSAndroid Build Coastguard Worker 
323*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set1_epi32(int __s)324*344a7f5eSAndroid Build Coastguard Worker _mm512_set1_epi32(int __s)
325*344a7f5eSAndroid Build Coastguard Worker {
326*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(__v16si){ __s, __s, __s, __s, __s, __s, __s, __s,
327*344a7f5eSAndroid Build Coastguard Worker                              __s, __s, __s, __s, __s, __s, __s, __s };
328*344a7f5eSAndroid Build Coastguard Worker }
329*344a7f5eSAndroid Build Coastguard Worker 
330*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set1_epi64(long long __d)331*344a7f5eSAndroid Build Coastguard Worker _mm512_set1_epi64(long long __d)
332*344a7f5eSAndroid Build Coastguard Worker {
333*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(__v8di){ __d, __d, __d, __d, __d, __d, __d, __d };
334*344a7f5eSAndroid Build Coastguard Worker }
335*344a7f5eSAndroid Build Coastguard Worker 
336*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_broadcastss_ps(__m128 __A)337*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcastss_ps(__m128 __A)
338*344a7f5eSAndroid Build Coastguard Worker {
339*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_shufflevector((__v4sf) __A,
340*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)_mm_undefined_ps(),
341*344a7f5eSAndroid Build Coastguard Worker                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
342*344a7f5eSAndroid Build Coastguard Worker }
343*344a7f5eSAndroid Build Coastguard Worker 
344*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set4_epi32(int __A,int __B,int __C,int __D)345*344a7f5eSAndroid Build Coastguard Worker _mm512_set4_epi32 (int __A, int __B, int __C, int __D)
346*344a7f5eSAndroid Build Coastguard Worker {
347*344a7f5eSAndroid Build Coastguard Worker   return  (__m512i)(__v16si)
348*344a7f5eSAndroid Build Coastguard Worker    { __D, __C, __B, __A, __D, __C, __B, __A,
349*344a7f5eSAndroid Build Coastguard Worker      __D, __C, __B, __A, __D, __C, __B, __A };
350*344a7f5eSAndroid Build Coastguard Worker }
351*344a7f5eSAndroid Build Coastguard Worker 
352*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set4_epi64(long long __A,long long __B,long long __C,long long __D)353*344a7f5eSAndroid Build Coastguard Worker _mm512_set4_epi64 (long long __A, long long __B, long long __C,
354*344a7f5eSAndroid Build Coastguard Worker        long long __D)
355*344a7f5eSAndroid Build Coastguard Worker {
356*344a7f5eSAndroid Build Coastguard Worker   return  (__m512i) (__v8di)
357*344a7f5eSAndroid Build Coastguard Worker    { __D, __C, __B, __A, __D, __C, __B, __A };
358*344a7f5eSAndroid Build Coastguard Worker }
359*344a7f5eSAndroid Build Coastguard Worker 
360*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_set4_pd(double __A,double __B,double __C,double __D)361*344a7f5eSAndroid Build Coastguard Worker _mm512_set4_pd (double __A, double __B, double __C, double __D)
362*344a7f5eSAndroid Build Coastguard Worker {
363*344a7f5eSAndroid Build Coastguard Worker   return  (__m512d)
364*344a7f5eSAndroid Build Coastguard Worker    { __D, __C, __B, __A, __D, __C, __B, __A };
365*344a7f5eSAndroid Build Coastguard Worker }
366*344a7f5eSAndroid Build Coastguard Worker 
367*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_set4_ps(float __A,float __B,float __C,float __D)368*344a7f5eSAndroid Build Coastguard Worker _mm512_set4_ps (float __A, float __B, float __C, float __D)
369*344a7f5eSAndroid Build Coastguard Worker {
370*344a7f5eSAndroid Build Coastguard Worker   return  (__m512)
371*344a7f5eSAndroid Build Coastguard Worker    { __D, __C, __B, __A, __D, __C, __B, __A,
372*344a7f5eSAndroid Build Coastguard Worker      __D, __C, __B, __A, __D, __C, __B, __A };
373*344a7f5eSAndroid Build Coastguard Worker }
374*344a7f5eSAndroid Build Coastguard Worker 
375*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr4_epi32(e0,e1,e2,e3)               \
376*344a7f5eSAndroid Build Coastguard Worker   _mm512_set4_epi32((e3),(e2),(e1),(e0))
377*344a7f5eSAndroid Build Coastguard Worker 
378*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr4_epi64(e0,e1,e2,e3)               \
379*344a7f5eSAndroid Build Coastguard Worker   _mm512_set4_epi64((e3),(e2),(e1),(e0))
380*344a7f5eSAndroid Build Coastguard Worker 
381*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr4_pd(e0,e1,e2,e3)                \
382*344a7f5eSAndroid Build Coastguard Worker   _mm512_set4_pd((e3),(e2),(e1),(e0))
383*344a7f5eSAndroid Build Coastguard Worker 
384*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr4_ps(e0,e1,e2,e3)                \
385*344a7f5eSAndroid Build Coastguard Worker   _mm512_set4_ps((e3),(e2),(e1),(e0))
386*344a7f5eSAndroid Build Coastguard Worker 
387*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_broadcastsd_pd(__m128d __A)388*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcastsd_pd(__m128d __A)
389*344a7f5eSAndroid Build Coastguard Worker {
390*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_shufflevector((__v2df) __A,
391*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df) _mm_undefined_pd(),
392*344a7f5eSAndroid Build Coastguard Worker                                           0, 0, 0, 0, 0, 0, 0, 0);
393*344a7f5eSAndroid Build Coastguard Worker }
394*344a7f5eSAndroid Build Coastguard Worker 
395*344a7f5eSAndroid Build Coastguard Worker /* Cast between vector types */
396*344a7f5eSAndroid Build Coastguard Worker 
397*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_castpd256_pd512(__m256d __a)398*344a7f5eSAndroid Build Coastguard Worker _mm512_castpd256_pd512(__m256d __a)
399*344a7f5eSAndroid Build Coastguard Worker {
400*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, -1, -1, -1, -1);
401*344a7f5eSAndroid Build Coastguard Worker }
402*344a7f5eSAndroid Build Coastguard Worker 
403*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_castps256_ps512(__m256 __a)404*344a7f5eSAndroid Build Coastguard Worker _mm512_castps256_ps512(__m256 __a)
405*344a7f5eSAndroid Build Coastguard Worker {
406*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector(__a, __a, 0,  1,  2,  3,  4,  5,  6,  7,
407*344a7f5eSAndroid Build Coastguard Worker                                           -1, -1, -1, -1, -1, -1, -1, -1);
408*344a7f5eSAndroid Build Coastguard Worker }
409*344a7f5eSAndroid Build Coastguard Worker 
410*344a7f5eSAndroid Build Coastguard Worker static __inline __m128d __DEFAULT_FN_ATTRS
_mm512_castpd512_pd128(__m512d __a)411*344a7f5eSAndroid Build Coastguard Worker _mm512_castpd512_pd128(__m512d __a)
412*344a7f5eSAndroid Build Coastguard Worker {
413*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector(__a, __a, 0, 1);
414*344a7f5eSAndroid Build Coastguard Worker }
415*344a7f5eSAndroid Build Coastguard Worker 
416*344a7f5eSAndroid Build Coastguard Worker static __inline __m256d __DEFAULT_FN_ATTRS
_mm512_castpd512_pd256(__m512d __A)417*344a7f5eSAndroid Build Coastguard Worker _mm512_castpd512_pd256 (__m512d __A)
418*344a7f5eSAndroid Build Coastguard Worker {
419*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector(__A, __A, 0, 1, 2, 3);
420*344a7f5eSAndroid Build Coastguard Worker }
421*344a7f5eSAndroid Build Coastguard Worker 
422*344a7f5eSAndroid Build Coastguard Worker static __inline __m128 __DEFAULT_FN_ATTRS
_mm512_castps512_ps128(__m512 __a)423*344a7f5eSAndroid Build Coastguard Worker _mm512_castps512_ps128(__m512 __a)
424*344a7f5eSAndroid Build Coastguard Worker {
425*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector(__a, __a, 0, 1, 2, 3);
426*344a7f5eSAndroid Build Coastguard Worker }
427*344a7f5eSAndroid Build Coastguard Worker 
428*344a7f5eSAndroid Build Coastguard Worker static __inline __m256 __DEFAULT_FN_ATTRS
_mm512_castps512_ps256(__m512 __A)429*344a7f5eSAndroid Build Coastguard Worker _mm512_castps512_ps256 (__m512 __A)
430*344a7f5eSAndroid Build Coastguard Worker {
431*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector(__A, __A, 0, 1, 2, 3, 4, 5, 6, 7);
432*344a7f5eSAndroid Build Coastguard Worker }
433*344a7f5eSAndroid Build Coastguard Worker 
434*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_castpd_ps(__m512d __A)435*344a7f5eSAndroid Build Coastguard Worker _mm512_castpd_ps (__m512d __A)
436*344a7f5eSAndroid Build Coastguard Worker {
437*344a7f5eSAndroid Build Coastguard Worker   return (__m512) (__A);
438*344a7f5eSAndroid Build Coastguard Worker }
439*344a7f5eSAndroid Build Coastguard Worker 
440*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_castpd_si512(__m512d __A)441*344a7f5eSAndroid Build Coastguard Worker _mm512_castpd_si512 (__m512d __A)
442*344a7f5eSAndroid Build Coastguard Worker {
443*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) (__A);
444*344a7f5eSAndroid Build Coastguard Worker }
445*344a7f5eSAndroid Build Coastguard Worker 
446*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_castpd128_pd512(__m128d __A)447*344a7f5eSAndroid Build Coastguard Worker _mm512_castpd128_pd512 (__m128d __A)
448*344a7f5eSAndroid Build Coastguard Worker {
449*344a7f5eSAndroid Build Coastguard Worker   return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1);
450*344a7f5eSAndroid Build Coastguard Worker }
451*344a7f5eSAndroid Build Coastguard Worker 
452*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_castps_pd(__m512 __A)453*344a7f5eSAndroid Build Coastguard Worker _mm512_castps_pd (__m512 __A)
454*344a7f5eSAndroid Build Coastguard Worker {
455*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) (__A);
456*344a7f5eSAndroid Build Coastguard Worker }
457*344a7f5eSAndroid Build Coastguard Worker 
458*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_castps_si512(__m512 __A)459*344a7f5eSAndroid Build Coastguard Worker _mm512_castps_si512 (__m512 __A)
460*344a7f5eSAndroid Build Coastguard Worker {
461*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) (__A);
462*344a7f5eSAndroid Build Coastguard Worker }
463*344a7f5eSAndroid Build Coastguard Worker 
464*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_castps128_ps512(__m128 __A)465*344a7f5eSAndroid Build Coastguard Worker _mm512_castps128_ps512 (__m128 __A)
466*344a7f5eSAndroid Build Coastguard Worker {
467*344a7f5eSAndroid Build Coastguard Worker     return  __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
468*344a7f5eSAndroid Build Coastguard Worker }
469*344a7f5eSAndroid Build Coastguard Worker 
470*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_castsi128_si512(__m128i __A)471*344a7f5eSAndroid Build Coastguard Worker _mm512_castsi128_si512 (__m128i __A)
472*344a7f5eSAndroid Build Coastguard Worker {
473*344a7f5eSAndroid Build Coastguard Worker    return  __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1);
474*344a7f5eSAndroid Build Coastguard Worker }
475*344a7f5eSAndroid Build Coastguard Worker 
476*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_castsi256_si512(__m256i __A)477*344a7f5eSAndroid Build Coastguard Worker _mm512_castsi256_si512 (__m256i __A)
478*344a7f5eSAndroid Build Coastguard Worker {
479*344a7f5eSAndroid Build Coastguard Worker    return  __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1);
480*344a7f5eSAndroid Build Coastguard Worker }
481*344a7f5eSAndroid Build Coastguard Worker 
482*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_castsi512_ps(__m512i __A)483*344a7f5eSAndroid Build Coastguard Worker _mm512_castsi512_ps (__m512i __A)
484*344a7f5eSAndroid Build Coastguard Worker {
485*344a7f5eSAndroid Build Coastguard Worker   return (__m512) (__A);
486*344a7f5eSAndroid Build Coastguard Worker }
487*344a7f5eSAndroid Build Coastguard Worker 
488*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_castsi512_pd(__m512i __A)489*344a7f5eSAndroid Build Coastguard Worker _mm512_castsi512_pd (__m512i __A)
490*344a7f5eSAndroid Build Coastguard Worker {
491*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) (__A);
492*344a7f5eSAndroid Build Coastguard Worker }
493*344a7f5eSAndroid Build Coastguard Worker 
494*344a7f5eSAndroid Build Coastguard Worker static __inline __m128i __DEFAULT_FN_ATTRS
_mm512_castsi512_si128(__m512i __A)495*344a7f5eSAndroid Build Coastguard Worker _mm512_castsi512_si128 (__m512i __A)
496*344a7f5eSAndroid Build Coastguard Worker {
497*344a7f5eSAndroid Build Coastguard Worker   return (__m128i)__builtin_shufflevector(__A, __A , 0, 1);
498*344a7f5eSAndroid Build Coastguard Worker }
499*344a7f5eSAndroid Build Coastguard Worker 
500*344a7f5eSAndroid Build Coastguard Worker static __inline __m256i __DEFAULT_FN_ATTRS
_mm512_castsi512_si256(__m512i __A)501*344a7f5eSAndroid Build Coastguard Worker _mm512_castsi512_si256 (__m512i __A)
502*344a7f5eSAndroid Build Coastguard Worker {
503*344a7f5eSAndroid Build Coastguard Worker   return (__m256i)__builtin_shufflevector(__A, __A , 0, 1, 2, 3);
504*344a7f5eSAndroid Build Coastguard Worker }
505*344a7f5eSAndroid Build Coastguard Worker 
506*344a7f5eSAndroid Build Coastguard Worker /* Bitwise operators */
507*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_and_epi32(__m512i __a,__m512i __b)508*344a7f5eSAndroid Build Coastguard Worker _mm512_and_epi32(__m512i __a, __m512i __b)
509*344a7f5eSAndroid Build Coastguard Worker {
510*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v16su)__a & (__v16su)__b);
511*344a7f5eSAndroid Build Coastguard Worker }
512*344a7f5eSAndroid Build Coastguard Worker 
513*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)514*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_and_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b)
515*344a7f5eSAndroid Build Coastguard Worker {
516*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k,
517*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) _mm512_and_epi32(__a, __b),
518*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __src);
519*344a7f5eSAndroid Build Coastguard Worker }
520*344a7f5eSAndroid Build Coastguard Worker 
521*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_and_epi32(__mmask16 __k,__m512i __a,__m512i __b)522*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b)
523*344a7f5eSAndroid Build Coastguard Worker {
524*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) _mm512_mask_and_epi32(_mm512_setzero_si512 (),
525*344a7f5eSAndroid Build Coastguard Worker                                          __k, __a, __b);
526*344a7f5eSAndroid Build Coastguard Worker }
527*344a7f5eSAndroid Build Coastguard Worker 
528*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_and_epi64(__m512i __a,__m512i __b)529*344a7f5eSAndroid Build Coastguard Worker _mm512_and_epi64(__m512i __a, __m512i __b)
530*344a7f5eSAndroid Build Coastguard Worker {
531*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v8du)__a & (__v8du)__b);
532*344a7f5eSAndroid Build Coastguard Worker }
533*344a7f5eSAndroid Build Coastguard Worker 
534*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)535*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_and_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b)
536*344a7f5eSAndroid Build Coastguard Worker {
537*344a7f5eSAndroid Build Coastguard Worker     return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __k,
538*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) _mm512_and_epi64(__a, __b),
539*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __src);
540*344a7f5eSAndroid Build Coastguard Worker }
541*344a7f5eSAndroid Build Coastguard Worker 
542*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_and_epi64(__mmask8 __k,__m512i __a,__m512i __b)543*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b)
544*344a7f5eSAndroid Build Coastguard Worker {
545*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) _mm512_mask_and_epi64(_mm512_setzero_si512 (),
546*344a7f5eSAndroid Build Coastguard Worker                                          __k, __a, __b);
547*344a7f5eSAndroid Build Coastguard Worker }
548*344a7f5eSAndroid Build Coastguard Worker 
549*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_andnot_si512(__m512i __A,__m512i __B)550*344a7f5eSAndroid Build Coastguard Worker _mm512_andnot_si512 (__m512i __A, __m512i __B)
551*344a7f5eSAndroid Build Coastguard Worker {
552*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(~(__v8du)(__A) & (__v8du)__B);
553*344a7f5eSAndroid Build Coastguard Worker }
554*344a7f5eSAndroid Build Coastguard Worker 
555*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_andnot_epi32(__m512i __A,__m512i __B)556*344a7f5eSAndroid Build Coastguard Worker _mm512_andnot_epi32 (__m512i __A, __m512i __B)
557*344a7f5eSAndroid Build Coastguard Worker {
558*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(~(__v16su)(__A) & (__v16su)__B);
559*344a7f5eSAndroid Build Coastguard Worker }
560*344a7f5eSAndroid Build Coastguard Worker 
561*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_andnot_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)562*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_andnot_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
563*344a7f5eSAndroid Build Coastguard Worker {
564*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
565*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_andnot_epi32(__A, __B),
566*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)__W);
567*344a7f5eSAndroid Build Coastguard Worker }
568*344a7f5eSAndroid Build Coastguard Worker 
569*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_andnot_epi32(__mmask16 __U,__m512i __A,__m512i __B)570*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_andnot_epi32(__mmask16 __U, __m512i __A, __m512i __B)
571*344a7f5eSAndroid Build Coastguard Worker {
572*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)_mm512_mask_andnot_epi32(_mm512_setzero_si512(),
573*344a7f5eSAndroid Build Coastguard Worker                                            __U, __A, __B);
574*344a7f5eSAndroid Build Coastguard Worker }
575*344a7f5eSAndroid Build Coastguard Worker 
576*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_andnot_epi64(__m512i __A,__m512i __B)577*344a7f5eSAndroid Build Coastguard Worker _mm512_andnot_epi64(__m512i __A, __m512i __B)
578*344a7f5eSAndroid Build Coastguard Worker {
579*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)(~(__v8du)(__A) & (__v8du)__B);
580*344a7f5eSAndroid Build Coastguard Worker }
581*344a7f5eSAndroid Build Coastguard Worker 
582*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_andnot_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)583*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_andnot_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
584*344a7f5eSAndroid Build Coastguard Worker {
585*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
586*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)_mm512_andnot_epi64(__A, __B),
587*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)__W);
588*344a7f5eSAndroid Build Coastguard Worker }
589*344a7f5eSAndroid Build Coastguard Worker 
590*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_andnot_epi64(__mmask8 __U,__m512i __A,__m512i __B)591*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_andnot_epi64(__mmask8 __U, __m512i __A, __m512i __B)
592*344a7f5eSAndroid Build Coastguard Worker {
593*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)_mm512_mask_andnot_epi64(_mm512_setzero_si512(),
594*344a7f5eSAndroid Build Coastguard Worker                                            __U, __A, __B);
595*344a7f5eSAndroid Build Coastguard Worker }
596*344a7f5eSAndroid Build Coastguard Worker 
597*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_or_epi32(__m512i __a,__m512i __b)598*344a7f5eSAndroid Build Coastguard Worker _mm512_or_epi32(__m512i __a, __m512i __b)
599*344a7f5eSAndroid Build Coastguard Worker {
600*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v16su)__a | (__v16su)__b);
601*344a7f5eSAndroid Build Coastguard Worker }
602*344a7f5eSAndroid Build Coastguard Worker 
603*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)604*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_or_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b)
605*344a7f5eSAndroid Build Coastguard Worker {
606*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k,
607*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)_mm512_or_epi32(__a, __b),
608*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)__src);
609*344a7f5eSAndroid Build Coastguard Worker }
610*344a7f5eSAndroid Build Coastguard Worker 
611*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_or_epi32(__mmask16 __k,__m512i __a,__m512i __b)612*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b)
613*344a7f5eSAndroid Build Coastguard Worker {
614*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)_mm512_mask_or_epi32(_mm512_setzero_si512(), __k, __a, __b);
615*344a7f5eSAndroid Build Coastguard Worker }
616*344a7f5eSAndroid Build Coastguard Worker 
617*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_or_epi64(__m512i __a,__m512i __b)618*344a7f5eSAndroid Build Coastguard Worker _mm512_or_epi64(__m512i __a, __m512i __b)
619*344a7f5eSAndroid Build Coastguard Worker {
620*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v8du)__a | (__v8du)__b);
621*344a7f5eSAndroid Build Coastguard Worker }
622*344a7f5eSAndroid Build Coastguard Worker 
623*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)624*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_or_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b)
625*344a7f5eSAndroid Build Coastguard Worker {
626*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k,
627*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)_mm512_or_epi64(__a, __b),
628*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)__src);
629*344a7f5eSAndroid Build Coastguard Worker }
630*344a7f5eSAndroid Build Coastguard Worker 
631*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_or_epi64(__mmask8 __k,__m512i __a,__m512i __b)632*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b)
633*344a7f5eSAndroid Build Coastguard Worker {
634*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)_mm512_mask_or_epi64(_mm512_setzero_si512(), __k, __a, __b);
635*344a7f5eSAndroid Build Coastguard Worker }
636*344a7f5eSAndroid Build Coastguard Worker 
637*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_xor_epi32(__m512i __a,__m512i __b)638*344a7f5eSAndroid Build Coastguard Worker _mm512_xor_epi32(__m512i __a, __m512i __b)
639*344a7f5eSAndroid Build Coastguard Worker {
640*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v16su)__a ^ (__v16su)__b);
641*344a7f5eSAndroid Build Coastguard Worker }
642*344a7f5eSAndroid Build Coastguard Worker 
643*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)644*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_xor_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b)
645*344a7f5eSAndroid Build Coastguard Worker {
646*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k,
647*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)_mm512_xor_epi32(__a, __b),
648*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)__src);
649*344a7f5eSAndroid Build Coastguard Worker }
650*344a7f5eSAndroid Build Coastguard Worker 
651*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_xor_epi32(__mmask16 __k,__m512i __a,__m512i __b)652*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b)
653*344a7f5eSAndroid Build Coastguard Worker {
654*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)_mm512_mask_xor_epi32(_mm512_setzero_si512(), __k, __a, __b);
655*344a7f5eSAndroid Build Coastguard Worker }
656*344a7f5eSAndroid Build Coastguard Worker 
657*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_xor_epi64(__m512i __a,__m512i __b)658*344a7f5eSAndroid Build Coastguard Worker _mm512_xor_epi64(__m512i __a, __m512i __b)
659*344a7f5eSAndroid Build Coastguard Worker {
660*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v8du)__a ^ (__v8du)__b);
661*344a7f5eSAndroid Build Coastguard Worker }
662*344a7f5eSAndroid Build Coastguard Worker 
663*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)664*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_xor_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b)
665*344a7f5eSAndroid Build Coastguard Worker {
666*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k,
667*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)_mm512_xor_epi64(__a, __b),
668*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)__src);
669*344a7f5eSAndroid Build Coastguard Worker }
670*344a7f5eSAndroid Build Coastguard Worker 
671*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_xor_epi64(__mmask8 __k,__m512i __a,__m512i __b)672*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b)
673*344a7f5eSAndroid Build Coastguard Worker {
674*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)_mm512_mask_xor_epi64(_mm512_setzero_si512(), __k, __a, __b);
675*344a7f5eSAndroid Build Coastguard Worker }
676*344a7f5eSAndroid Build Coastguard Worker 
677*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_and_si512(__m512i __a,__m512i __b)678*344a7f5eSAndroid Build Coastguard Worker _mm512_and_si512(__m512i __a, __m512i __b)
679*344a7f5eSAndroid Build Coastguard Worker {
680*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v8du)__a & (__v8du)__b);
681*344a7f5eSAndroid Build Coastguard Worker }
682*344a7f5eSAndroid Build Coastguard Worker 
683*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_or_si512(__m512i __a,__m512i __b)684*344a7f5eSAndroid Build Coastguard Worker _mm512_or_si512(__m512i __a, __m512i __b)
685*344a7f5eSAndroid Build Coastguard Worker {
686*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v8du)__a | (__v8du)__b);
687*344a7f5eSAndroid Build Coastguard Worker }
688*344a7f5eSAndroid Build Coastguard Worker 
689*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_xor_si512(__m512i __a,__m512i __b)690*344a7f5eSAndroid Build Coastguard Worker _mm512_xor_si512(__m512i __a, __m512i __b)
691*344a7f5eSAndroid Build Coastguard Worker {
692*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)((__v8du)__a ^ (__v8du)__b);
693*344a7f5eSAndroid Build Coastguard Worker }
694*344a7f5eSAndroid Build Coastguard Worker 
695*344a7f5eSAndroid Build Coastguard Worker /* Arithmetic */
696*344a7f5eSAndroid Build Coastguard Worker 
697*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_add_pd(__m512d __a,__m512d __b)698*344a7f5eSAndroid Build Coastguard Worker _mm512_add_pd(__m512d __a, __m512d __b)
699*344a7f5eSAndroid Build Coastguard Worker {
700*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)((__v8df)__a + (__v8df)__b);
701*344a7f5eSAndroid Build Coastguard Worker }
702*344a7f5eSAndroid Build Coastguard Worker 
703*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_add_ps(__m512 __a,__m512 __b)704*344a7f5eSAndroid Build Coastguard Worker _mm512_add_ps(__m512 __a, __m512 __b)
705*344a7f5eSAndroid Build Coastguard Worker {
706*344a7f5eSAndroid Build Coastguard Worker   return (__m512)((__v16sf)__a + (__v16sf)__b);
707*344a7f5eSAndroid Build Coastguard Worker }
708*344a7f5eSAndroid Build Coastguard Worker 
709*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_mul_pd(__m512d __a,__m512d __b)710*344a7f5eSAndroid Build Coastguard Worker _mm512_mul_pd(__m512d __a, __m512d __b)
711*344a7f5eSAndroid Build Coastguard Worker {
712*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)((__v8df)__a * (__v8df)__b);
713*344a7f5eSAndroid Build Coastguard Worker }
714*344a7f5eSAndroid Build Coastguard Worker 
715*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_mul_ps(__m512 __a,__m512 __b)716*344a7f5eSAndroid Build Coastguard Worker _mm512_mul_ps(__m512 __a, __m512 __b)
717*344a7f5eSAndroid Build Coastguard Worker {
718*344a7f5eSAndroid Build Coastguard Worker   return (__m512)((__v16sf)__a * (__v16sf)__b);
719*344a7f5eSAndroid Build Coastguard Worker }
720*344a7f5eSAndroid Build Coastguard Worker 
721*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_sub_pd(__m512d __a,__m512d __b)722*344a7f5eSAndroid Build Coastguard Worker _mm512_sub_pd(__m512d __a, __m512d __b)
723*344a7f5eSAndroid Build Coastguard Worker {
724*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)((__v8df)__a - (__v8df)__b);
725*344a7f5eSAndroid Build Coastguard Worker }
726*344a7f5eSAndroid Build Coastguard Worker 
727*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_sub_ps(__m512 __a,__m512 __b)728*344a7f5eSAndroid Build Coastguard Worker _mm512_sub_ps(__m512 __a, __m512 __b)
729*344a7f5eSAndroid Build Coastguard Worker {
730*344a7f5eSAndroid Build Coastguard Worker   return (__m512)((__v16sf)__a - (__v16sf)__b);
731*344a7f5eSAndroid Build Coastguard Worker }
732*344a7f5eSAndroid Build Coastguard Worker 
733*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_add_epi64(__m512i __A,__m512i __B)734*344a7f5eSAndroid Build Coastguard Worker _mm512_add_epi64 (__m512i __A, __m512i __B)
735*344a7f5eSAndroid Build Coastguard Worker {
736*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) ((__v8du) __A + (__v8du) __B);
737*344a7f5eSAndroid Build Coastguard Worker }
738*344a7f5eSAndroid Build Coastguard Worker 
739*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_add_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)740*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
741*344a7f5eSAndroid Build Coastguard Worker {
742*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
743*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __B,
744*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
745*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
746*344a7f5eSAndroid Build Coastguard Worker }
747*344a7f5eSAndroid Build Coastguard Worker 
748*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_add_epi64(__mmask8 __U,__m512i __A,__m512i __B)749*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_add_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
750*344a7f5eSAndroid Build Coastguard Worker {
751*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
752*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __B,
753*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
754*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
755*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
756*344a7f5eSAndroid Build Coastguard Worker }
757*344a7f5eSAndroid Build Coastguard Worker 
758*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sub_epi64(__m512i __A,__m512i __B)759*344a7f5eSAndroid Build Coastguard Worker _mm512_sub_epi64 (__m512i __A, __m512i __B)
760*344a7f5eSAndroid Build Coastguard Worker {
761*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) ((__v8du) __A - (__v8du) __B);
762*344a7f5eSAndroid Build Coastguard Worker }
763*344a7f5eSAndroid Build Coastguard Worker 
764*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sub_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)765*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sub_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
766*344a7f5eSAndroid Build Coastguard Worker {
767*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
768*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __B,
769*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
770*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
771*344a7f5eSAndroid Build Coastguard Worker }
772*344a7f5eSAndroid Build Coastguard Worker 
773*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sub_epi64(__mmask8 __U,__m512i __A,__m512i __B)774*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sub_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
775*344a7f5eSAndroid Build Coastguard Worker {
776*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
777*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __B,
778*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
779*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
780*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
781*344a7f5eSAndroid Build Coastguard Worker }
782*344a7f5eSAndroid Build Coastguard Worker 
783*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_add_epi32(__m512i __A,__m512i __B)784*344a7f5eSAndroid Build Coastguard Worker _mm512_add_epi32 (__m512i __A, __m512i __B)
785*344a7f5eSAndroid Build Coastguard Worker {
786*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) ((__v16su) __A + (__v16su) __B);
787*344a7f5eSAndroid Build Coastguard Worker }
788*344a7f5eSAndroid Build Coastguard Worker 
789*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_add_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)790*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_add_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
791*344a7f5eSAndroid Build Coastguard Worker {
792*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
793*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __B,
794*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __W,
795*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
796*344a7f5eSAndroid Build Coastguard Worker }
797*344a7f5eSAndroid Build Coastguard Worker 
798*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_add_epi32(__mmask16 __U,__m512i __A,__m512i __B)799*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
800*344a7f5eSAndroid Build Coastguard Worker {
801*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
802*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __B,
803*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
804*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
805*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
806*344a7f5eSAndroid Build Coastguard Worker }
807*344a7f5eSAndroid Build Coastguard Worker 
808*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sub_epi32(__m512i __A,__m512i __B)809*344a7f5eSAndroid Build Coastguard Worker _mm512_sub_epi32 (__m512i __A, __m512i __B)
810*344a7f5eSAndroid Build Coastguard Worker {
811*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) ((__v16su) __A - (__v16su) __B);
812*344a7f5eSAndroid Build Coastguard Worker }
813*344a7f5eSAndroid Build Coastguard Worker 
814*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sub_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)815*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sub_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
816*344a7f5eSAndroid Build Coastguard Worker {
817*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
818*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __B,
819*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __W,
820*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
821*344a7f5eSAndroid Build Coastguard Worker }
822*344a7f5eSAndroid Build Coastguard Worker 
823*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sub_epi32(__mmask16 __U,__m512i __A,__m512i __B)824*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sub_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
825*344a7f5eSAndroid Build Coastguard Worker {
826*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
827*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __B,
828*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
829*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
830*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
831*344a7f5eSAndroid Build Coastguard Worker }
832*344a7f5eSAndroid Build Coastguard Worker 
833*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_max_round_pd(W, U, A, B, R) __extension__ ({ \
834*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_maxpd512_mask((__v8df)(__m512d)(A), \
835*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
836*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(W), (__mmask8)(U), \
837*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
838*344a7f5eSAndroid Build Coastguard Worker 
839*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_max_round_pd(U, A, B, R) __extension__ ({ \
840*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_maxpd512_mask((__v8df)(__m512d)(A), \
841*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
842*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
843*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U), (int)(R)); })
844*344a7f5eSAndroid Build Coastguard Worker 
845*344a7f5eSAndroid Build Coastguard Worker #define _mm512_max_round_pd(A, B, R) __extension__ ({ \
846*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_maxpd512_mask((__v8df)(__m512d)(A), \
847*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
848*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_undefined_pd(), \
849*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(R)); })
850*344a7f5eSAndroid Build Coastguard Worker 
851*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_max_pd(__m512d __A,__m512d __B)852*344a7f5eSAndroid Build Coastguard Worker _mm512_max_pd(__m512d __A, __m512d __B)
853*344a7f5eSAndroid Build Coastguard Worker {
854*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
855*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
856*344a7f5eSAndroid Build Coastguard Worker              (__v8df)
857*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_pd (),
858*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1,
859*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
860*344a7f5eSAndroid Build Coastguard Worker }
861*344a7f5eSAndroid Build Coastguard Worker 
862*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_max_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)863*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
864*344a7f5eSAndroid Build Coastguard Worker {
865*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
866*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __B,
867*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __W,
868*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
869*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
870*344a7f5eSAndroid Build Coastguard Worker }
871*344a7f5eSAndroid Build Coastguard Worker 
872*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_max_pd(__mmask8 __U,__m512d __A,__m512d __B)873*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
874*344a7f5eSAndroid Build Coastguard Worker {
875*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
876*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __B,
877*344a7f5eSAndroid Build Coastguard Worker                   (__v8df)
878*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_pd (),
879*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
880*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
881*344a7f5eSAndroid Build Coastguard Worker }
882*344a7f5eSAndroid Build Coastguard Worker 
883*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_max_round_ps(W, U, A, B, R) __extension__ ({ \
884*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_maxps512_mask((__v16sf)(__m512)(A), \
885*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
886*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(W), (__mmask16)(U), \
887*344a7f5eSAndroid Build Coastguard Worker                                        (int)(R)); })
888*344a7f5eSAndroid Build Coastguard Worker 
889*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_max_round_ps(U, A, B, R) __extension__ ({ \
890*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_maxps512_mask((__v16sf)(__m512)(A), \
891*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
892*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
893*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(U), (int)(R)); })
894*344a7f5eSAndroid Build Coastguard Worker 
895*344a7f5eSAndroid Build Coastguard Worker #define _mm512_max_round_ps(A, B, R) __extension__ ({ \
896*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_maxps512_mask((__v16sf)(__m512)(A), \
897*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
898*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_undefined_ps(), \
899*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(R)); })
900*344a7f5eSAndroid Build Coastguard Worker 
901*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_max_ps(__m512 __A,__m512 __B)902*344a7f5eSAndroid Build Coastguard Worker _mm512_max_ps(__m512 __A, __m512 __B)
903*344a7f5eSAndroid Build Coastguard Worker {
904*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
905*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
906*344a7f5eSAndroid Build Coastguard Worker             (__v16sf)
907*344a7f5eSAndroid Build Coastguard Worker             _mm512_setzero_ps (),
908*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) -1,
909*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
910*344a7f5eSAndroid Build Coastguard Worker }
911*344a7f5eSAndroid Build Coastguard Worker 
912*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_max_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)913*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
914*344a7f5eSAndroid Build Coastguard Worker {
915*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
916*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __B,
917*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __W,
918*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
919*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
920*344a7f5eSAndroid Build Coastguard Worker }
921*344a7f5eSAndroid Build Coastguard Worker 
922*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_max_ps(__mmask16 __U,__m512 __A,__m512 __B)923*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
924*344a7f5eSAndroid Build Coastguard Worker {
925*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
926*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __B,
927*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf)
928*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_ps (),
929*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
930*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
931*344a7f5eSAndroid Build Coastguard Worker }
932*344a7f5eSAndroid Build Coastguard Worker 
933*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_max_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)934*344a7f5eSAndroid Build Coastguard Worker _mm_mask_max_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
935*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A,
936*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
937*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
938*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
939*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
940*344a7f5eSAndroid Build Coastguard Worker }
941*344a7f5eSAndroid Build Coastguard Worker 
942*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_max_ss(__mmask8 __U,__m128 __A,__m128 __B)943*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_max_ss(__mmask8 __U,__m128 __A, __m128 __B) {
944*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A,
945*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
946*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf)  _mm_setzero_ps (),
947*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
948*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
949*344a7f5eSAndroid Build Coastguard Worker }
950*344a7f5eSAndroid Build Coastguard Worker 
951*344a7f5eSAndroid Build Coastguard Worker #define _mm_max_round_ss(A, B, R) __extension__ ({ \
952*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \
953*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
954*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
955*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
956*344a7f5eSAndroid Build Coastguard Worker 
957*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_max_round_ss(W, U, A, B, R) __extension__ ({ \
958*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \
959*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
960*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(W), (__mmask8)(U), \
961*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
962*344a7f5eSAndroid Build Coastguard Worker 
963*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_max_round_ss(U, A, B, R) __extension__ ({ \
964*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \
965*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
966*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
967*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
968*344a7f5eSAndroid Build Coastguard Worker 
969*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_max_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)970*344a7f5eSAndroid Build Coastguard Worker _mm_mask_max_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {
971*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A,
972*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
973*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
974*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
975*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
976*344a7f5eSAndroid Build Coastguard Worker }
977*344a7f5eSAndroid Build Coastguard Worker 
978*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_max_sd(__mmask8 __U,__m128d __A,__m128d __B)979*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_max_sd(__mmask8 __U,__m128d __A, __m128d __B) {
980*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A,
981*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
982*344a7f5eSAndroid Build Coastguard Worker                 (__v2df)  _mm_setzero_pd (),
983*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
984*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
985*344a7f5eSAndroid Build Coastguard Worker }
986*344a7f5eSAndroid Build Coastguard Worker 
987*344a7f5eSAndroid Build Coastguard Worker #define _mm_max_round_sd(A, B, R) __extension__ ({ \
988*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \
989*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
990*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
991*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
992*344a7f5eSAndroid Build Coastguard Worker 
993*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_max_round_sd(W, U, A, B, R) __extension__ ({ \
994*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \
995*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
996*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(W), \
997*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
998*344a7f5eSAndroid Build Coastguard Worker 
999*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_max_round_sd(U, A, B, R) __extension__ ({ \
1000*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \
1001*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1002*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
1003*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
1004*344a7f5eSAndroid Build Coastguard Worker 
1005*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i
1006*344a7f5eSAndroid Build Coastguard Worker __DEFAULT_FN_ATTRS
_mm512_max_epi32(__m512i __A,__m512i __B)1007*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epi32(__m512i __A, __m512i __B)
1008*344a7f5eSAndroid Build Coastguard Worker {
1009*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
1010*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
1011*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
1012*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1013*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
1014*344a7f5eSAndroid Build Coastguard Worker }
1015*344a7f5eSAndroid Build Coastguard Worker 
1016*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)1017*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
1018*344a7f5eSAndroid Build Coastguard Worker {
1019*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
1020*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1021*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __W, __M);
1022*344a7f5eSAndroid Build Coastguard Worker }
1023*344a7f5eSAndroid Build Coastguard Worker 
1024*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epi32(__mmask16 __M,__m512i __A,__m512i __B)1025*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
1026*344a7f5eSAndroid Build Coastguard Worker {
1027*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
1028*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1029*344a7f5eSAndroid Build Coastguard Worker                    (__v16si)
1030*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1031*344a7f5eSAndroid Build Coastguard Worker                    __M);
1032*344a7f5eSAndroid Build Coastguard Worker }
1033*344a7f5eSAndroid Build Coastguard Worker 
1034*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_max_epu32(__m512i __A,__m512i __B)1035*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epu32(__m512i __A, __m512i __B)
1036*344a7f5eSAndroid Build Coastguard Worker {
1037*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
1038*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
1039*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
1040*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1041*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
1042*344a7f5eSAndroid Build Coastguard Worker }
1043*344a7f5eSAndroid Build Coastguard Worker 
1044*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)1045*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
1046*344a7f5eSAndroid Build Coastguard Worker {
1047*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
1048*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1049*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __W, __M);
1050*344a7f5eSAndroid Build Coastguard Worker }
1051*344a7f5eSAndroid Build Coastguard Worker 
1052*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epu32(__mmask16 __M,__m512i __A,__m512i __B)1053*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
1054*344a7f5eSAndroid Build Coastguard Worker {
1055*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
1056*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1057*344a7f5eSAndroid Build Coastguard Worker                    (__v16si)
1058*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1059*344a7f5eSAndroid Build Coastguard Worker                    __M);
1060*344a7f5eSAndroid Build Coastguard Worker }
1061*344a7f5eSAndroid Build Coastguard Worker 
1062*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_max_epi64(__m512i __A,__m512i __B)1063*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epi64(__m512i __A, __m512i __B)
1064*344a7f5eSAndroid Build Coastguard Worker {
1065*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
1066*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
1067*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
1068*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1069*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
1070*344a7f5eSAndroid Build Coastguard Worker }
1071*344a7f5eSAndroid Build Coastguard Worker 
1072*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)1073*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
1074*344a7f5eSAndroid Build Coastguard Worker {
1075*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
1076*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1077*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __W, __M);
1078*344a7f5eSAndroid Build Coastguard Worker }
1079*344a7f5eSAndroid Build Coastguard Worker 
1080*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epi64(__mmask8 __M,__m512i __A,__m512i __B)1081*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
1082*344a7f5eSAndroid Build Coastguard Worker {
1083*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
1084*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1085*344a7f5eSAndroid Build Coastguard Worker                    (__v8di)
1086*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1087*344a7f5eSAndroid Build Coastguard Worker                    __M);
1088*344a7f5eSAndroid Build Coastguard Worker }
1089*344a7f5eSAndroid Build Coastguard Worker 
1090*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_max_epu64(__m512i __A,__m512i __B)1091*344a7f5eSAndroid Build Coastguard Worker _mm512_max_epu64(__m512i __A, __m512i __B)
1092*344a7f5eSAndroid Build Coastguard Worker {
1093*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
1094*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
1095*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
1096*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1097*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
1098*344a7f5eSAndroid Build Coastguard Worker }
1099*344a7f5eSAndroid Build Coastguard Worker 
1100*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_max_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)1101*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
1102*344a7f5eSAndroid Build Coastguard Worker {
1103*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
1104*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1105*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __W, __M);
1106*344a7f5eSAndroid Build Coastguard Worker }
1107*344a7f5eSAndroid Build Coastguard Worker 
1108*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_max_epu64(__mmask8 __M,__m512i __A,__m512i __B)1109*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
1110*344a7f5eSAndroid Build Coastguard Worker {
1111*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
1112*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1113*344a7f5eSAndroid Build Coastguard Worker                    (__v8di)
1114*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1115*344a7f5eSAndroid Build Coastguard Worker                    __M);
1116*344a7f5eSAndroid Build Coastguard Worker }
1117*344a7f5eSAndroid Build Coastguard Worker 
1118*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_min_round_pd(W, U, A, B, R) __extension__ ({ \
1119*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_minpd512_mask((__v8df)(__m512d)(A), \
1120*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
1121*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(W), (__mmask8)(U), \
1122*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
1123*344a7f5eSAndroid Build Coastguard Worker 
1124*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_min_round_pd(U, A, B, R) __extension__ ({ \
1125*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_minpd512_mask((__v8df)(__m512d)(A), \
1126*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
1127*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
1128*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U), (int)(R)); })
1129*344a7f5eSAndroid Build Coastguard Worker 
1130*344a7f5eSAndroid Build Coastguard Worker #define _mm512_min_round_pd(A, B, R) __extension__ ({ \
1131*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_minpd512_mask((__v8df)(__m512d)(A), \
1132*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
1133*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_undefined_pd(), \
1134*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(R)); })
1135*344a7f5eSAndroid Build Coastguard Worker 
1136*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_min_pd(__m512d __A,__m512d __B)1137*344a7f5eSAndroid Build Coastguard Worker _mm512_min_pd(__m512d __A, __m512d __B)
1138*344a7f5eSAndroid Build Coastguard Worker {
1139*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
1140*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
1141*344a7f5eSAndroid Build Coastguard Worker              (__v8df)
1142*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_pd (),
1143*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1,
1144*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
1145*344a7f5eSAndroid Build Coastguard Worker }
1146*344a7f5eSAndroid Build Coastguard Worker 
1147*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_min_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1148*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
1149*344a7f5eSAndroid Build Coastguard Worker {
1150*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
1151*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __B,
1152*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __W,
1153*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
1154*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
1155*344a7f5eSAndroid Build Coastguard Worker }
1156*344a7f5eSAndroid Build Coastguard Worker 
1157*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_min_round_ps(W, U, A, B, R) __extension__ ({ \
1158*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_minps512_mask((__v16sf)(__m512)(A), \
1159*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
1160*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(W), (__mmask16)(U), \
1161*344a7f5eSAndroid Build Coastguard Worker                                        (int)(R)); })
1162*344a7f5eSAndroid Build Coastguard Worker 
1163*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_min_round_ps(U, A, B, R) __extension__ ({ \
1164*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_minps512_mask((__v16sf)(__m512)(A), \
1165*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
1166*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
1167*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(U), (int)(R)); })
1168*344a7f5eSAndroid Build Coastguard Worker 
1169*344a7f5eSAndroid Build Coastguard Worker #define _mm512_min_round_ps(A, B, R) __extension__ ({ \
1170*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_minps512_mask((__v16sf)(__m512)(A), \
1171*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
1172*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_undefined_ps(), \
1173*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(R)); })
1174*344a7f5eSAndroid Build Coastguard Worker 
1175*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_min_pd(__mmask8 __U,__m512d __A,__m512d __B)1176*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
1177*344a7f5eSAndroid Build Coastguard Worker {
1178*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
1179*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __B,
1180*344a7f5eSAndroid Build Coastguard Worker                   (__v8df)
1181*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_pd (),
1182*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
1183*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
1184*344a7f5eSAndroid Build Coastguard Worker }
1185*344a7f5eSAndroid Build Coastguard Worker 
1186*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_min_ps(__m512 __A,__m512 __B)1187*344a7f5eSAndroid Build Coastguard Worker _mm512_min_ps(__m512 __A, __m512 __B)
1188*344a7f5eSAndroid Build Coastguard Worker {
1189*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
1190*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
1191*344a7f5eSAndroid Build Coastguard Worker             (__v16sf)
1192*344a7f5eSAndroid Build Coastguard Worker             _mm512_setzero_ps (),
1193*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) -1,
1194*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
1195*344a7f5eSAndroid Build Coastguard Worker }
1196*344a7f5eSAndroid Build Coastguard Worker 
1197*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_min_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1198*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
1199*344a7f5eSAndroid Build Coastguard Worker {
1200*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
1201*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __B,
1202*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __W,
1203*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
1204*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
1205*344a7f5eSAndroid Build Coastguard Worker }
1206*344a7f5eSAndroid Build Coastguard Worker 
1207*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_min_ps(__mmask16 __U,__m512 __A,__m512 __B)1208*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
1209*344a7f5eSAndroid Build Coastguard Worker {
1210*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
1211*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __B,
1212*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf)
1213*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_ps (),
1214*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
1215*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
1216*344a7f5eSAndroid Build Coastguard Worker }
1217*344a7f5eSAndroid Build Coastguard Worker 
1218*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_min_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1219*344a7f5eSAndroid Build Coastguard Worker _mm_mask_min_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
1220*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A,
1221*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
1222*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
1223*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1224*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1225*344a7f5eSAndroid Build Coastguard Worker }
1226*344a7f5eSAndroid Build Coastguard Worker 
1227*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_min_ss(__mmask8 __U,__m128 __A,__m128 __B)1228*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_min_ss(__mmask8 __U,__m128 __A, __m128 __B) {
1229*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A,
1230*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
1231*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf)  _mm_setzero_ps (),
1232*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1233*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1234*344a7f5eSAndroid Build Coastguard Worker }
1235*344a7f5eSAndroid Build Coastguard Worker 
1236*344a7f5eSAndroid Build Coastguard Worker #define _mm_min_round_ss(A, B, R) __extension__ ({ \
1237*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \
1238*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
1239*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
1240*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
1241*344a7f5eSAndroid Build Coastguard Worker 
1242*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_min_round_ss(W, U, A, B, R) __extension__ ({ \
1243*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \
1244*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
1245*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(W), (__mmask8)(U), \
1246*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
1247*344a7f5eSAndroid Build Coastguard Worker 
1248*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_min_round_ss(U, A, B, R) __extension__ ({ \
1249*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \
1250*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
1251*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
1252*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
1253*344a7f5eSAndroid Build Coastguard Worker 
1254*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_min_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1255*344a7f5eSAndroid Build Coastguard Worker _mm_mask_min_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {
1256*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A,
1257*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
1258*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
1259*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1260*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1261*344a7f5eSAndroid Build Coastguard Worker }
1262*344a7f5eSAndroid Build Coastguard Worker 
1263*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_min_sd(__mmask8 __U,__m128d __A,__m128d __B)1264*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_min_sd(__mmask8 __U,__m128d __A, __m128d __B) {
1265*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A,
1266*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
1267*344a7f5eSAndroid Build Coastguard Worker                 (__v2df)  _mm_setzero_pd (),
1268*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1269*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1270*344a7f5eSAndroid Build Coastguard Worker }
1271*344a7f5eSAndroid Build Coastguard Worker 
1272*344a7f5eSAndroid Build Coastguard Worker #define _mm_min_round_sd(A, B, R) __extension__ ({ \
1273*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \
1274*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1275*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
1276*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
1277*344a7f5eSAndroid Build Coastguard Worker 
1278*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_min_round_sd(W, U, A, B, R) __extension__ ({ \
1279*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \
1280*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1281*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(W), \
1282*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
1283*344a7f5eSAndroid Build Coastguard Worker 
1284*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_min_round_sd(U, A, B, R) __extension__ ({ \
1285*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \
1286*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1287*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
1288*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
1289*344a7f5eSAndroid Build Coastguard Worker 
1290*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i
1291*344a7f5eSAndroid Build Coastguard Worker __DEFAULT_FN_ATTRS
_mm512_min_epi32(__m512i __A,__m512i __B)1292*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epi32(__m512i __A, __m512i __B)
1293*344a7f5eSAndroid Build Coastguard Worker {
1294*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
1295*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
1296*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
1297*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1298*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
1299*344a7f5eSAndroid Build Coastguard Worker }
1300*344a7f5eSAndroid Build Coastguard Worker 
1301*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)1302*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
1303*344a7f5eSAndroid Build Coastguard Worker {
1304*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
1305*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1306*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __W, __M);
1307*344a7f5eSAndroid Build Coastguard Worker }
1308*344a7f5eSAndroid Build Coastguard Worker 
1309*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epi32(__mmask16 __M,__m512i __A,__m512i __B)1310*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
1311*344a7f5eSAndroid Build Coastguard Worker {
1312*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
1313*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1314*344a7f5eSAndroid Build Coastguard Worker                    (__v16si)
1315*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1316*344a7f5eSAndroid Build Coastguard Worker                    __M);
1317*344a7f5eSAndroid Build Coastguard Worker }
1318*344a7f5eSAndroid Build Coastguard Worker 
1319*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_min_epu32(__m512i __A,__m512i __B)1320*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epu32(__m512i __A, __m512i __B)
1321*344a7f5eSAndroid Build Coastguard Worker {
1322*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
1323*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
1324*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
1325*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1326*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
1327*344a7f5eSAndroid Build Coastguard Worker }
1328*344a7f5eSAndroid Build Coastguard Worker 
1329*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epu32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)1330*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
1331*344a7f5eSAndroid Build Coastguard Worker {
1332*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
1333*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1334*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __W, __M);
1335*344a7f5eSAndroid Build Coastguard Worker }
1336*344a7f5eSAndroid Build Coastguard Worker 
1337*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epu32(__mmask16 __M,__m512i __A,__m512i __B)1338*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
1339*344a7f5eSAndroid Build Coastguard Worker {
1340*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
1341*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
1342*344a7f5eSAndroid Build Coastguard Worker                    (__v16si)
1343*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1344*344a7f5eSAndroid Build Coastguard Worker                    __M);
1345*344a7f5eSAndroid Build Coastguard Worker }
1346*344a7f5eSAndroid Build Coastguard Worker 
1347*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_min_epi64(__m512i __A,__m512i __B)1348*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epi64(__m512i __A, __m512i __B)
1349*344a7f5eSAndroid Build Coastguard Worker {
1350*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
1351*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
1352*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
1353*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1354*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
1355*344a7f5eSAndroid Build Coastguard Worker }
1356*344a7f5eSAndroid Build Coastguard Worker 
1357*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epi64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)1358*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
1359*344a7f5eSAndroid Build Coastguard Worker {
1360*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
1361*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1362*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __W, __M);
1363*344a7f5eSAndroid Build Coastguard Worker }
1364*344a7f5eSAndroid Build Coastguard Worker 
1365*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epi64(__mmask8 __M,__m512i __A,__m512i __B)1366*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
1367*344a7f5eSAndroid Build Coastguard Worker {
1368*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
1369*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1370*344a7f5eSAndroid Build Coastguard Worker                    (__v8di)
1371*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1372*344a7f5eSAndroid Build Coastguard Worker                    __M);
1373*344a7f5eSAndroid Build Coastguard Worker }
1374*344a7f5eSAndroid Build Coastguard Worker 
1375*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_min_epu64(__m512i __A,__m512i __B)1376*344a7f5eSAndroid Build Coastguard Worker _mm512_min_epu64(__m512i __A, __m512i __B)
1377*344a7f5eSAndroid Build Coastguard Worker {
1378*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
1379*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
1380*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
1381*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1382*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
1383*344a7f5eSAndroid Build Coastguard Worker }
1384*344a7f5eSAndroid Build Coastguard Worker 
1385*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_min_epu64(__m512i __W,__mmask8 __M,__m512i __A,__m512i __B)1386*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
1387*344a7f5eSAndroid Build Coastguard Worker {
1388*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
1389*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1390*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __W, __M);
1391*344a7f5eSAndroid Build Coastguard Worker }
1392*344a7f5eSAndroid Build Coastguard Worker 
1393*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_min_epu64(__mmask8 __M,__m512i __A,__m512i __B)1394*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
1395*344a7f5eSAndroid Build Coastguard Worker {
1396*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
1397*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
1398*344a7f5eSAndroid Build Coastguard Worker                    (__v8di)
1399*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_si512 (),
1400*344a7f5eSAndroid Build Coastguard Worker                    __M);
1401*344a7f5eSAndroid Build Coastguard Worker }
1402*344a7f5eSAndroid Build Coastguard Worker 
1403*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mul_epi32(__m512i __X,__m512i __Y)1404*344a7f5eSAndroid Build Coastguard Worker _mm512_mul_epi32(__m512i __X, __m512i __Y)
1405*344a7f5eSAndroid Build Coastguard Worker {
1406*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
1407*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
1408*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
1409*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1410*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
1411*344a7f5eSAndroid Build Coastguard Worker }
1412*344a7f5eSAndroid Build Coastguard Worker 
1413*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mul_epi32(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)1414*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mul_epi32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
1415*344a7f5eSAndroid Build Coastguard Worker {
1416*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
1417*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
1418*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __W, __M);
1419*344a7f5eSAndroid Build Coastguard Worker }
1420*344a7f5eSAndroid Build Coastguard Worker 
1421*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mul_epi32(__mmask8 __M,__m512i __X,__m512i __Y)1422*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mul_epi32 (__mmask8 __M, __m512i __X, __m512i __Y)
1423*344a7f5eSAndroid Build Coastguard Worker {
1424*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
1425*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
1426*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
1427*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1428*344a7f5eSAndroid Build Coastguard Worker               __M);
1429*344a7f5eSAndroid Build Coastguard Worker }
1430*344a7f5eSAndroid Build Coastguard Worker 
1431*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mul_epu32(__m512i __X,__m512i __Y)1432*344a7f5eSAndroid Build Coastguard Worker _mm512_mul_epu32(__m512i __X, __m512i __Y)
1433*344a7f5eSAndroid Build Coastguard Worker {
1434*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
1435*344a7f5eSAndroid Build Coastguard Worker                (__v16si) __Y,
1436*344a7f5eSAndroid Build Coastguard Worker                (__v8di)
1437*344a7f5eSAndroid Build Coastguard Worker                _mm512_setzero_si512 (),
1438*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
1439*344a7f5eSAndroid Build Coastguard Worker }
1440*344a7f5eSAndroid Build Coastguard Worker 
1441*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mul_epu32(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)1442*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mul_epu32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
1443*344a7f5eSAndroid Build Coastguard Worker {
1444*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
1445*344a7f5eSAndroid Build Coastguard Worker                (__v16si) __Y,
1446*344a7f5eSAndroid Build Coastguard Worker                (__v8di) __W, __M);
1447*344a7f5eSAndroid Build Coastguard Worker }
1448*344a7f5eSAndroid Build Coastguard Worker 
1449*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mul_epu32(__mmask8 __M,__m512i __X,__m512i __Y)1450*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mul_epu32 (__mmask8 __M, __m512i __X, __m512i __Y)
1451*344a7f5eSAndroid Build Coastguard Worker {
1452*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
1453*344a7f5eSAndroid Build Coastguard Worker                (__v16si) __Y,
1454*344a7f5eSAndroid Build Coastguard Worker                (__v8di)
1455*344a7f5eSAndroid Build Coastguard Worker                _mm512_setzero_si512 (),
1456*344a7f5eSAndroid Build Coastguard Worker                __M);
1457*344a7f5eSAndroid Build Coastguard Worker }
1458*344a7f5eSAndroid Build Coastguard Worker 
1459*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mullo_epi32(__m512i __A,__m512i __B)1460*344a7f5eSAndroid Build Coastguard Worker _mm512_mullo_epi32 (__m512i __A, __m512i __B)
1461*344a7f5eSAndroid Build Coastguard Worker {
1462*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) ((__v16su) __A * (__v16su) __B);
1463*344a7f5eSAndroid Build Coastguard Worker }
1464*344a7f5eSAndroid Build Coastguard Worker 
1465*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mullo_epi32(__mmask16 __M,__m512i __A,__m512i __B)1466*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mullo_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
1467*344a7f5eSAndroid Build Coastguard Worker {
1468*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
1469*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
1470*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
1471*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
1472*344a7f5eSAndroid Build Coastguard Worker               __M);
1473*344a7f5eSAndroid Build Coastguard Worker }
1474*344a7f5eSAndroid Build Coastguard Worker 
1475*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mullo_epi32(__m512i __W,__mmask16 __M,__m512i __A,__m512i __B)1476*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mullo_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
1477*344a7f5eSAndroid Build Coastguard Worker {
1478*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
1479*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
1480*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W, __M);
1481*344a7f5eSAndroid Build Coastguard Worker }
1482*344a7f5eSAndroid Build Coastguard Worker 
1483*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_sqrt_round_pd(W, U, A, R) __extension__ ({ \
1484*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)(__m512d)(A), \
1485*344a7f5eSAndroid Build Coastguard Worker                                          (__v8df)(__m512d)(W), (__mmask8)(U), \
1486*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
1487*344a7f5eSAndroid Build Coastguard Worker 
1488*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_sqrt_round_pd(U, A, R) __extension__ ({ \
1489*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)(__m512d)(A), \
1490*344a7f5eSAndroid Build Coastguard Worker                                          (__v8df)_mm512_setzero_pd(), \
1491*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U), (int)(R)); })
1492*344a7f5eSAndroid Build Coastguard Worker 
1493*344a7f5eSAndroid Build Coastguard Worker #define _mm512_sqrt_round_pd(A, R) __extension__ ({ \
1494*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)(__m512d)(A), \
1495*344a7f5eSAndroid Build Coastguard Worker                                          (__v8df)_mm512_undefined_pd(), \
1496*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1, (int)(R)); })
1497*344a7f5eSAndroid Build Coastguard Worker 
1498*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_sqrt_pd(__m512d __a)1499*344a7f5eSAndroid Build Coastguard Worker _mm512_sqrt_pd(__m512d __a)
1500*344a7f5eSAndroid Build Coastguard Worker {
1501*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_sqrtpd512_mask((__v8df)__a,
1502*344a7f5eSAndroid Build Coastguard Worker                                                 (__v8df) _mm512_setzero_pd (),
1503*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8) -1,
1504*344a7f5eSAndroid Build Coastguard Worker                                                 _MM_FROUND_CUR_DIRECTION);
1505*344a7f5eSAndroid Build Coastguard Worker }
1506*344a7f5eSAndroid Build Coastguard Worker 
1507*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_sqrt_pd(__m512d __W,__mmask8 __U,__m512d __A)1508*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
1509*344a7f5eSAndroid Build Coastguard Worker {
1510*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
1511*344a7f5eSAndroid Build Coastguard Worker                    (__v8df) __W,
1512*344a7f5eSAndroid Build Coastguard Worker                    (__mmask8) __U,
1513*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CUR_DIRECTION);
1514*344a7f5eSAndroid Build Coastguard Worker }
1515*344a7f5eSAndroid Build Coastguard Worker 
1516*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_sqrt_pd(__mmask8 __U,__m512d __A)1517*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
1518*344a7f5eSAndroid Build Coastguard Worker {
1519*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
1520*344a7f5eSAndroid Build Coastguard Worker                    (__v8df)
1521*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_pd (),
1522*344a7f5eSAndroid Build Coastguard Worker                    (__mmask8) __U,
1523*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CUR_DIRECTION);
1524*344a7f5eSAndroid Build Coastguard Worker }
1525*344a7f5eSAndroid Build Coastguard Worker 
1526*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_sqrt_round_ps(W, U, A, R) __extension__ ({ \
1527*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)(__m512)(A), \
1528*344a7f5eSAndroid Build Coastguard Worker                                         (__v16sf)(__m512)(W), (__mmask16)(U), \
1529*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
1530*344a7f5eSAndroid Build Coastguard Worker 
1531*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_sqrt_round_ps(U, A, R) __extension__ ({ \
1532*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)(__m512)(A), \
1533*344a7f5eSAndroid Build Coastguard Worker                                         (__v16sf)_mm512_setzero_ps(), \
1534*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)(U), (int)(R)); })
1535*344a7f5eSAndroid Build Coastguard Worker 
1536*344a7f5eSAndroid Build Coastguard Worker #define _mm512_sqrt_round_ps(A, R) __extension__ ({ \
1537*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)(__m512)(A), \
1538*344a7f5eSAndroid Build Coastguard Worker                                         (__v16sf)_mm512_undefined_ps(), \
1539*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)-1, (int)(R)); })
1540*344a7f5eSAndroid Build Coastguard Worker 
1541*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_sqrt_ps(__m512 __a)1542*344a7f5eSAndroid Build Coastguard Worker _mm512_sqrt_ps(__m512 __a)
1543*344a7f5eSAndroid Build Coastguard Worker {
1544*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)__a,
1545*344a7f5eSAndroid Build Coastguard Worker                                                (__v16sf) _mm512_setzero_ps (),
1546*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask16) -1,
1547*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION);
1548*344a7f5eSAndroid Build Coastguard Worker }
1549*344a7f5eSAndroid Build Coastguard Worker 
1550*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_sqrt_ps(__m512 __W,__mmask16 __U,__m512 __A)1551*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)
1552*344a7f5eSAndroid Build Coastguard Worker {
1553*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)__A,
1554*344a7f5eSAndroid Build Coastguard Worker                                                (__v16sf) __W,
1555*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask16) __U,
1556*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION);
1557*344a7f5eSAndroid Build Coastguard Worker }
1558*344a7f5eSAndroid Build Coastguard Worker 
1559*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_sqrt_ps(__mmask16 __U,__m512 __A)1560*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)
1561*344a7f5eSAndroid Build Coastguard Worker {
1562*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_sqrtps512_mask((__v16sf)__A,
1563*344a7f5eSAndroid Build Coastguard Worker                                                (__v16sf) _mm512_setzero_ps (),
1564*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask16) __U,
1565*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION);
1566*344a7f5eSAndroid Build Coastguard Worker }
1567*344a7f5eSAndroid Build Coastguard Worker 
1568*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_rsqrt14_pd(__m512d __A)1569*344a7f5eSAndroid Build Coastguard Worker _mm512_rsqrt14_pd(__m512d __A)
1570*344a7f5eSAndroid Build Coastguard Worker {
1571*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1572*344a7f5eSAndroid Build Coastguard Worker                  (__v8df)
1573*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_pd (),
1574*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);}
1575*344a7f5eSAndroid Build Coastguard Worker 
1576*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_rsqrt14_pd(__m512d __W,__mmask8 __U,__m512d __A)1577*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
1578*344a7f5eSAndroid Build Coastguard Worker {
1579*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1580*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __W,
1581*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
1582*344a7f5eSAndroid Build Coastguard Worker }
1583*344a7f5eSAndroid Build Coastguard Worker 
1584*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_rsqrt14_pd(__mmask8 __U,__m512d __A)1585*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
1586*344a7f5eSAndroid Build Coastguard Worker {
1587*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1588*344a7f5eSAndroid Build Coastguard Worker                   (__v8df)
1589*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_pd (),
1590*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
1591*344a7f5eSAndroid Build Coastguard Worker }
1592*344a7f5eSAndroid Build Coastguard Worker 
1593*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_rsqrt14_ps(__m512 __A)1594*344a7f5eSAndroid Build Coastguard Worker _mm512_rsqrt14_ps(__m512 __A)
1595*344a7f5eSAndroid Build Coastguard Worker {
1596*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1597*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf)
1598*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_ps (),
1599*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
1600*344a7f5eSAndroid Build Coastguard Worker }
1601*344a7f5eSAndroid Build Coastguard Worker 
1602*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_rsqrt14_ps(__m512 __W,__mmask16 __U,__m512 __A)1603*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
1604*344a7f5eSAndroid Build Coastguard Worker {
1605*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1606*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __W,
1607*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U);
1608*344a7f5eSAndroid Build Coastguard Worker }
1609*344a7f5eSAndroid Build Coastguard Worker 
1610*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_rsqrt14_ps(__mmask16 __U,__m512 __A)1611*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
1612*344a7f5eSAndroid Build Coastguard Worker {
1613*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1614*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf)
1615*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_ps (),
1616*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U);
1617*344a7f5eSAndroid Build Coastguard Worker }
1618*344a7f5eSAndroid Build Coastguard Worker 
1619*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_rsqrt14_ss(__m128 __A,__m128 __B)1620*344a7f5eSAndroid Build Coastguard Worker _mm_rsqrt14_ss(__m128 __A, __m128 __B)
1621*344a7f5eSAndroid Build Coastguard Worker {
1622*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,
1623*344a7f5eSAndroid Build Coastguard Worker              (__v4sf) __B,
1624*344a7f5eSAndroid Build Coastguard Worker              (__v4sf)
1625*344a7f5eSAndroid Build Coastguard Worker              _mm_setzero_ps (),
1626*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
1627*344a7f5eSAndroid Build Coastguard Worker }
1628*344a7f5eSAndroid Build Coastguard Worker 
1629*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_rsqrt14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1630*344a7f5eSAndroid Build Coastguard Worker _mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
1631*344a7f5eSAndroid Build Coastguard Worker {
1632*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,
1633*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
1634*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
1635*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1636*344a7f5eSAndroid Build Coastguard Worker }
1637*344a7f5eSAndroid Build Coastguard Worker 
1638*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_rsqrt14_ss(__mmask8 __U,__m128 __A,__m128 __B)1639*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B)
1640*344a7f5eSAndroid Build Coastguard Worker {
1641*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,
1642*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
1643*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) _mm_setzero_ps (),
1644*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1645*344a7f5eSAndroid Build Coastguard Worker }
1646*344a7f5eSAndroid Build Coastguard Worker 
1647*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_rsqrt14_sd(__m128d __A,__m128d __B)1648*344a7f5eSAndroid Build Coastguard Worker _mm_rsqrt14_sd(__m128d __A, __m128d __B)
1649*344a7f5eSAndroid Build Coastguard Worker {
1650*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __A,
1651*344a7f5eSAndroid Build Coastguard Worker               (__v2df) __B,
1652*344a7f5eSAndroid Build Coastguard Worker               (__v2df)
1653*344a7f5eSAndroid Build Coastguard Worker               _mm_setzero_pd (),
1654*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
1655*344a7f5eSAndroid Build Coastguard Worker }
1656*344a7f5eSAndroid Build Coastguard Worker 
1657*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_rsqrt14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1658*344a7f5eSAndroid Build Coastguard Worker _mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
1659*344a7f5eSAndroid Build Coastguard Worker {
1660*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A,
1661*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
1662*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
1663*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1664*344a7f5eSAndroid Build Coastguard Worker }
1665*344a7f5eSAndroid Build Coastguard Worker 
1666*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_rsqrt14_sd(__mmask8 __U,__m128d __A,__m128d __B)1667*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B)
1668*344a7f5eSAndroid Build Coastguard Worker {
1669*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A,
1670*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
1671*344a7f5eSAndroid Build Coastguard Worker           (__v2df) _mm_setzero_pd (),
1672*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1673*344a7f5eSAndroid Build Coastguard Worker }
1674*344a7f5eSAndroid Build Coastguard Worker 
1675*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_rcp14_pd(__m512d __A)1676*344a7f5eSAndroid Build Coastguard Worker _mm512_rcp14_pd(__m512d __A)
1677*344a7f5eSAndroid Build Coastguard Worker {
1678*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1679*344a7f5eSAndroid Build Coastguard Worker                (__v8df)
1680*344a7f5eSAndroid Build Coastguard Worker                _mm512_setzero_pd (),
1681*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
1682*344a7f5eSAndroid Build Coastguard Worker }
1683*344a7f5eSAndroid Build Coastguard Worker 
1684*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_rcp14_pd(__m512d __W,__mmask8 __U,__m512d __A)1685*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
1686*344a7f5eSAndroid Build Coastguard Worker {
1687*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1688*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
1689*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
1690*344a7f5eSAndroid Build Coastguard Worker }
1691*344a7f5eSAndroid Build Coastguard Worker 
1692*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_rcp14_pd(__mmask8 __U,__m512d __A)1693*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
1694*344a7f5eSAndroid Build Coastguard Worker {
1695*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1696*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
1697*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_pd (),
1698*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
1699*344a7f5eSAndroid Build Coastguard Worker }
1700*344a7f5eSAndroid Build Coastguard Worker 
1701*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_rcp14_ps(__m512 __A)1702*344a7f5eSAndroid Build Coastguard Worker _mm512_rcp14_ps(__m512 __A)
1703*344a7f5eSAndroid Build Coastguard Worker {
1704*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1705*344a7f5eSAndroid Build Coastguard Worker               (__v16sf)
1706*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_ps (),
1707*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
1708*344a7f5eSAndroid Build Coastguard Worker }
1709*344a7f5eSAndroid Build Coastguard Worker 
1710*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_rcp14_ps(__m512 __W,__mmask16 __U,__m512 __A)1711*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
1712*344a7f5eSAndroid Build Coastguard Worker {
1713*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1714*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W,
1715*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
1716*344a7f5eSAndroid Build Coastguard Worker }
1717*344a7f5eSAndroid Build Coastguard Worker 
1718*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_rcp14_ps(__mmask16 __U,__m512 __A)1719*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
1720*344a7f5eSAndroid Build Coastguard Worker {
1721*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1722*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf)
1723*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_ps (),
1724*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
1725*344a7f5eSAndroid Build Coastguard Worker }
1726*344a7f5eSAndroid Build Coastguard Worker 
1727*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_rcp14_ss(__m128 __A,__m128 __B)1728*344a7f5eSAndroid Build Coastguard Worker _mm_rcp14_ss(__m128 __A, __m128 __B)
1729*344a7f5eSAndroid Build Coastguard Worker {
1730*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,
1731*344a7f5eSAndroid Build Coastguard Worker                  (__v4sf) __B,
1732*344a7f5eSAndroid Build Coastguard Worker                  (__v4sf)
1733*344a7f5eSAndroid Build Coastguard Worker                  _mm_setzero_ps (),
1734*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
1735*344a7f5eSAndroid Build Coastguard Worker }
1736*344a7f5eSAndroid Build Coastguard Worker 
1737*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_rcp14_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1738*344a7f5eSAndroid Build Coastguard Worker _mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
1739*344a7f5eSAndroid Build Coastguard Worker {
1740*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,
1741*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
1742*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
1743*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1744*344a7f5eSAndroid Build Coastguard Worker }
1745*344a7f5eSAndroid Build Coastguard Worker 
1746*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_rcp14_ss(__mmask8 __U,__m128 __A,__m128 __B)1747*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B)
1748*344a7f5eSAndroid Build Coastguard Worker {
1749*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,
1750*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
1751*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) _mm_setzero_ps (),
1752*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1753*344a7f5eSAndroid Build Coastguard Worker }
1754*344a7f5eSAndroid Build Coastguard Worker 
1755*344a7f5eSAndroid Build Coastguard Worker static  __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_rcp14_sd(__m128d __A,__m128d __B)1756*344a7f5eSAndroid Build Coastguard Worker _mm_rcp14_sd(__m128d __A, __m128d __B)
1757*344a7f5eSAndroid Build Coastguard Worker {
1758*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __A,
1759*344a7f5eSAndroid Build Coastguard Worker             (__v2df) __B,
1760*344a7f5eSAndroid Build Coastguard Worker             (__v2df)
1761*344a7f5eSAndroid Build Coastguard Worker             _mm_setzero_pd (),
1762*344a7f5eSAndroid Build Coastguard Worker             (__mmask8) -1);
1763*344a7f5eSAndroid Build Coastguard Worker }
1764*344a7f5eSAndroid Build Coastguard Worker 
1765*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_rcp14_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1766*344a7f5eSAndroid Build Coastguard Worker _mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
1767*344a7f5eSAndroid Build Coastguard Worker {
1768*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A,
1769*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
1770*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
1771*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1772*344a7f5eSAndroid Build Coastguard Worker }
1773*344a7f5eSAndroid Build Coastguard Worker 
1774*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_rcp14_sd(__mmask8 __U,__m128d __A,__m128d __B)1775*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B)
1776*344a7f5eSAndroid Build Coastguard Worker {
1777*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A,
1778*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
1779*344a7f5eSAndroid Build Coastguard Worker           (__v2df) _mm_setzero_pd (),
1780*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
1781*344a7f5eSAndroid Build Coastguard Worker }
1782*344a7f5eSAndroid Build Coastguard Worker 
1783*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_floor_ps(__m512 __A)1784*344a7f5eSAndroid Build Coastguard Worker _mm512_floor_ps(__m512 __A)
1785*344a7f5eSAndroid Build Coastguard Worker {
1786*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
1787*344a7f5eSAndroid Build Coastguard Worker                                                   _MM_FROUND_FLOOR,
1788*344a7f5eSAndroid Build Coastguard Worker                                                   (__v16sf) __A, -1,
1789*344a7f5eSAndroid Build Coastguard Worker                                                   _MM_FROUND_CUR_DIRECTION);
1790*344a7f5eSAndroid Build Coastguard Worker }
1791*344a7f5eSAndroid Build Coastguard Worker 
1792*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_floor_ps(__m512 __W,__mmask16 __U,__m512 __A)1793*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
1794*344a7f5eSAndroid Build Coastguard Worker {
1795*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
1796*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_FLOOR,
1797*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W, __U,
1798*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CUR_DIRECTION);
1799*344a7f5eSAndroid Build Coastguard Worker }
1800*344a7f5eSAndroid Build Coastguard Worker 
1801*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_floor_pd(__m512d __A)1802*344a7f5eSAndroid Build Coastguard Worker _mm512_floor_pd(__m512d __A)
1803*344a7f5eSAndroid Build Coastguard Worker {
1804*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
1805*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_FLOOR,
1806*344a7f5eSAndroid Build Coastguard Worker                                                    (__v8df) __A, -1,
1807*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
1808*344a7f5eSAndroid Build Coastguard Worker }
1809*344a7f5eSAndroid Build Coastguard Worker 
1810*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_floor_pd(__m512d __W,__mmask8 __U,__m512d __A)1811*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
1812*344a7f5eSAndroid Build Coastguard Worker {
1813*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
1814*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_FLOOR,
1815*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W, __U,
1816*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1817*344a7f5eSAndroid Build Coastguard Worker }
1818*344a7f5eSAndroid Build Coastguard Worker 
1819*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_ceil_ps(__m512 __W,__mmask16 __U,__m512 __A)1820*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
1821*344a7f5eSAndroid Build Coastguard Worker {
1822*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
1823*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CEIL,
1824*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W, __U,
1825*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CUR_DIRECTION);
1826*344a7f5eSAndroid Build Coastguard Worker }
1827*344a7f5eSAndroid Build Coastguard Worker 
1828*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_ceil_ps(__m512 __A)1829*344a7f5eSAndroid Build Coastguard Worker _mm512_ceil_ps(__m512 __A)
1830*344a7f5eSAndroid Build Coastguard Worker {
1831*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
1832*344a7f5eSAndroid Build Coastguard Worker                                                   _MM_FROUND_CEIL,
1833*344a7f5eSAndroid Build Coastguard Worker                                                   (__v16sf) __A, -1,
1834*344a7f5eSAndroid Build Coastguard Worker                                                   _MM_FROUND_CUR_DIRECTION);
1835*344a7f5eSAndroid Build Coastguard Worker }
1836*344a7f5eSAndroid Build Coastguard Worker 
1837*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_ceil_pd(__m512d __A)1838*344a7f5eSAndroid Build Coastguard Worker _mm512_ceil_pd(__m512d __A)
1839*344a7f5eSAndroid Build Coastguard Worker {
1840*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
1841*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CEIL,
1842*344a7f5eSAndroid Build Coastguard Worker                                                    (__v8df) __A, -1,
1843*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
1844*344a7f5eSAndroid Build Coastguard Worker }
1845*344a7f5eSAndroid Build Coastguard Worker 
1846*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_ceil_pd(__m512d __W,__mmask8 __U,__m512d __A)1847*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
1848*344a7f5eSAndroid Build Coastguard Worker {
1849*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
1850*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CEIL,
1851*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W, __U,
1852*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1853*344a7f5eSAndroid Build Coastguard Worker }
1854*344a7f5eSAndroid Build Coastguard Worker 
1855*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_abs_epi64(__m512i __A)1856*344a7f5eSAndroid Build Coastguard Worker _mm512_abs_epi64(__m512i __A)
1857*344a7f5eSAndroid Build Coastguard Worker {
1858*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
1859*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
1860*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
1861*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
1862*344a7f5eSAndroid Build Coastguard Worker }
1863*344a7f5eSAndroid Build Coastguard Worker 
1864*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_abs_epi64(__m512i __W,__mmask8 __U,__m512i __A)1865*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
1866*344a7f5eSAndroid Build Coastguard Worker {
1867*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
1868*344a7f5eSAndroid Build Coastguard Worker                   (__v8di) __W,
1869*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
1870*344a7f5eSAndroid Build Coastguard Worker }
1871*344a7f5eSAndroid Build Coastguard Worker 
1872*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_abs_epi64(__mmask8 __U,__m512i __A)1873*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
1874*344a7f5eSAndroid Build Coastguard Worker {
1875*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
1876*344a7f5eSAndroid Build Coastguard Worker                   (__v8di)
1877*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
1878*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
1879*344a7f5eSAndroid Build Coastguard Worker }
1880*344a7f5eSAndroid Build Coastguard Worker 
1881*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_abs_epi32(__m512i __A)1882*344a7f5eSAndroid Build Coastguard Worker _mm512_abs_epi32(__m512i __A)
1883*344a7f5eSAndroid Build Coastguard Worker {
1884*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
1885*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
1886*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
1887*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) -1);
1888*344a7f5eSAndroid Build Coastguard Worker }
1889*344a7f5eSAndroid Build Coastguard Worker 
1890*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_abs_epi32(__m512i __W,__mmask16 __U,__m512i __A)1891*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
1892*344a7f5eSAndroid Build Coastguard Worker {
1893*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
1894*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) __W,
1895*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U);
1896*344a7f5eSAndroid Build Coastguard Worker }
1897*344a7f5eSAndroid Build Coastguard Worker 
1898*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_abs_epi32(__mmask16 __U,__m512i __A)1899*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
1900*344a7f5eSAndroid Build Coastguard Worker {
1901*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
1902*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
1903*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
1904*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U);
1905*344a7f5eSAndroid Build Coastguard Worker }
1906*344a7f5eSAndroid Build Coastguard Worker 
1907*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_add_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)1908*344a7f5eSAndroid Build Coastguard Worker _mm_mask_add_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
1909*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_addss_round_mask ((__v4sf) __A,
1910*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
1911*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
1912*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1913*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1914*344a7f5eSAndroid Build Coastguard Worker }
1915*344a7f5eSAndroid Build Coastguard Worker 
1916*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_add_ss(__mmask8 __U,__m128 __A,__m128 __B)1917*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_add_ss(__mmask8 __U,__m128 __A, __m128 __B) {
1918*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_addss_round_mask ((__v4sf) __A,
1919*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
1920*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf)  _mm_setzero_ps (),
1921*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1922*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1923*344a7f5eSAndroid Build Coastguard Worker }
1924*344a7f5eSAndroid Build Coastguard Worker 
1925*344a7f5eSAndroid Build Coastguard Worker #define _mm_add_round_ss(A, B, R) __extension__ ({ \
1926*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \
1927*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
1928*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
1929*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
1930*344a7f5eSAndroid Build Coastguard Worker 
1931*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_add_round_ss(W, U, A, B, R) __extension__ ({ \
1932*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \
1933*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
1934*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(W), (__mmask8)(U), \
1935*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
1936*344a7f5eSAndroid Build Coastguard Worker 
1937*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_add_round_ss(U, A, B, R) __extension__ ({ \
1938*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \
1939*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
1940*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
1941*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
1942*344a7f5eSAndroid Build Coastguard Worker 
1943*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_add_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)1944*344a7f5eSAndroid Build Coastguard Worker _mm_mask_add_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {
1945*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_addsd_round_mask ((__v2df) __A,
1946*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
1947*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
1948*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1949*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1950*344a7f5eSAndroid Build Coastguard Worker }
1951*344a7f5eSAndroid Build Coastguard Worker 
1952*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_add_sd(__mmask8 __U,__m128d __A,__m128d __B)1953*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_add_sd(__mmask8 __U,__m128d __A, __m128d __B) {
1954*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_addsd_round_mask ((__v2df) __A,
1955*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
1956*344a7f5eSAndroid Build Coastguard Worker                 (__v2df)  _mm_setzero_pd (),
1957*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
1958*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
1959*344a7f5eSAndroid Build Coastguard Worker }
1960*344a7f5eSAndroid Build Coastguard Worker #define _mm_add_round_sd(A, B, R) __extension__ ({ \
1961*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \
1962*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1963*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
1964*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
1965*344a7f5eSAndroid Build Coastguard Worker 
1966*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_add_round_sd(W, U, A, B, R) __extension__ ({ \
1967*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \
1968*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1969*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(W), \
1970*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
1971*344a7f5eSAndroid Build Coastguard Worker 
1972*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_add_round_sd(U, A, B, R) __extension__ ({ \
1973*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \
1974*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
1975*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
1976*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
1977*344a7f5eSAndroid Build Coastguard Worker 
1978*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_add_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)1979*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1980*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
1981*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
1982*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __W,
1983*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
1984*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
1985*344a7f5eSAndroid Build Coastguard Worker }
1986*344a7f5eSAndroid Build Coastguard Worker 
1987*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_add_pd(__mmask8 __U,__m512d __A,__m512d __B)1988*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1989*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
1990*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
1991*344a7f5eSAndroid Build Coastguard Worker              (__v8df) _mm512_setzero_pd (),
1992*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
1993*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
1994*344a7f5eSAndroid Build Coastguard Worker }
1995*344a7f5eSAndroid Build Coastguard Worker 
1996*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_add_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)1997*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1998*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
1999*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2000*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __W,
2001*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2002*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2003*344a7f5eSAndroid Build Coastguard Worker }
2004*344a7f5eSAndroid Build Coastguard Worker 
2005*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_add_ps(__mmask16 __U,__m512 __A,__m512 __B)2006*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2007*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2008*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2009*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) _mm512_setzero_ps (),
2010*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2011*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2012*344a7f5eSAndroid Build Coastguard Worker }
2013*344a7f5eSAndroid Build Coastguard Worker 
2014*344a7f5eSAndroid Build Coastguard Worker #define _mm512_add_round_pd(A, B, R) __extension__ ({ \
2015*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_addpd512_mask((__v8df)(__m512d)(A), \
2016*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2017*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2018*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(R)); })
2019*344a7f5eSAndroid Build Coastguard Worker 
2020*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_add_round_pd(W, U, A, B, R) __extension__ ({ \
2021*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_addpd512_mask((__v8df)(__m512d)(A), \
2022*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2023*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(W), (__mmask8)(U), \
2024*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
2025*344a7f5eSAndroid Build Coastguard Worker 
2026*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_add_round_pd(U, A, B, R) __extension__ ({ \
2027*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_addpd512_mask((__v8df)(__m512d)(A), \
2028*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2029*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2030*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U), (int)(R)); })
2031*344a7f5eSAndroid Build Coastguard Worker 
2032*344a7f5eSAndroid Build Coastguard Worker #define _mm512_add_round_ps(A, B, R) __extension__ ({ \
2033*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_addps512_mask((__v16sf)(__m512)(A), \
2034*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2035*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2036*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(R)); })
2037*344a7f5eSAndroid Build Coastguard Worker 
2038*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_add_round_ps(W, U, A, B, R) __extension__ ({ \
2039*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_addps512_mask((__v16sf)(__m512)(A), \
2040*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2041*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(W), (__mmask16)(U), \
2042*344a7f5eSAndroid Build Coastguard Worker                                        (int)(R)); })
2043*344a7f5eSAndroid Build Coastguard Worker 
2044*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_add_round_ps(U, A, B, R) __extension__ ({ \
2045*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_addps512_mask((__v16sf)(__m512)(A), \
2046*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2047*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2048*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(U), (int)(R)); })
2049*344a7f5eSAndroid Build Coastguard Worker 
2050*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_sub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2051*344a7f5eSAndroid Build Coastguard Worker _mm_mask_sub_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
2052*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_subss_round_mask ((__v4sf) __A,
2053*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
2054*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
2055*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2056*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2057*344a7f5eSAndroid Build Coastguard Worker }
2058*344a7f5eSAndroid Build Coastguard Worker 
2059*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_sub_ss(__mmask8 __U,__m128 __A,__m128 __B)2060*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_sub_ss(__mmask8 __U,__m128 __A, __m128 __B) {
2061*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_subss_round_mask ((__v4sf) __A,
2062*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
2063*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf)  _mm_setzero_ps (),
2064*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2065*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2066*344a7f5eSAndroid Build Coastguard Worker }
2067*344a7f5eSAndroid Build Coastguard Worker #define _mm_sub_round_ss(A, B, R) __extension__ ({ \
2068*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \
2069*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2070*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
2071*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
2072*344a7f5eSAndroid Build Coastguard Worker 
2073*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_sub_round_ss(W, U, A, B, R) __extension__ ({ \
2074*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \
2075*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2076*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(W), (__mmask8)(U), \
2077*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
2078*344a7f5eSAndroid Build Coastguard Worker 
2079*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_sub_round_ss(U, A, B, R) __extension__ ({ \
2080*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \
2081*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2082*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
2083*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
2084*344a7f5eSAndroid Build Coastguard Worker 
2085*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_sub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2086*344a7f5eSAndroid Build Coastguard Worker _mm_mask_sub_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {
2087*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_subsd_round_mask ((__v2df) __A,
2088*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
2089*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
2090*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2091*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2092*344a7f5eSAndroid Build Coastguard Worker }
2093*344a7f5eSAndroid Build Coastguard Worker 
2094*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_sub_sd(__mmask8 __U,__m128d __A,__m128d __B)2095*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_sub_sd(__mmask8 __U,__m128d __A, __m128d __B) {
2096*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_subsd_round_mask ((__v2df) __A,
2097*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
2098*344a7f5eSAndroid Build Coastguard Worker                 (__v2df)  _mm_setzero_pd (),
2099*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2100*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2101*344a7f5eSAndroid Build Coastguard Worker }
2102*344a7f5eSAndroid Build Coastguard Worker 
2103*344a7f5eSAndroid Build Coastguard Worker #define _mm_sub_round_sd(A, B, R) __extension__ ({ \
2104*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \
2105*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2106*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
2107*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
2108*344a7f5eSAndroid Build Coastguard Worker 
2109*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_sub_round_sd(W, U, A, B, R) __extension__ ({ \
2110*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \
2111*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2112*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(W), \
2113*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2114*344a7f5eSAndroid Build Coastguard Worker 
2115*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_sub_round_sd(U, A, B, R) __extension__ ({ \
2116*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \
2117*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2118*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
2119*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2120*344a7f5eSAndroid Build Coastguard Worker 
2121*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_sub_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2122*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2123*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2124*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
2125*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __W,
2126*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
2127*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
2128*344a7f5eSAndroid Build Coastguard Worker }
2129*344a7f5eSAndroid Build Coastguard Worker 
2130*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_sub_pd(__mmask8 __U,__m512d __A,__m512d __B)2131*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2132*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2133*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
2134*344a7f5eSAndroid Build Coastguard Worker              (__v8df)
2135*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_pd (),
2136*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
2137*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
2138*344a7f5eSAndroid Build Coastguard Worker }
2139*344a7f5eSAndroid Build Coastguard Worker 
2140*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_sub_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2141*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2142*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2143*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2144*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __W,
2145*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2146*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2147*344a7f5eSAndroid Build Coastguard Worker }
2148*344a7f5eSAndroid Build Coastguard Worker 
2149*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_sub_ps(__mmask16 __U,__m512 __A,__m512 __B)2150*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2151*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2152*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2153*344a7f5eSAndroid Build Coastguard Worker             (__v16sf)
2154*344a7f5eSAndroid Build Coastguard Worker             _mm512_setzero_ps (),
2155*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2156*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2157*344a7f5eSAndroid Build Coastguard Worker }
2158*344a7f5eSAndroid Build Coastguard Worker 
2159*344a7f5eSAndroid Build Coastguard Worker #define _mm512_sub_round_pd(A, B, R) __extension__ ({ \
2160*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_subpd512_mask((__v8df)(__m512d)(A), \
2161*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2162*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2163*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(R)); })
2164*344a7f5eSAndroid Build Coastguard Worker 
2165*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_sub_round_pd(W, U, A, B, R) __extension__ ({ \
2166*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_subpd512_mask((__v8df)(__m512d)(A), \
2167*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2168*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(W), (__mmask8)(U), \
2169*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
2170*344a7f5eSAndroid Build Coastguard Worker 
2171*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_sub_round_pd(U, A, B, R) __extension__ ({ \
2172*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_subpd512_mask((__v8df)(__m512d)(A), \
2173*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2174*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2175*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U), (int)(R)); })
2176*344a7f5eSAndroid Build Coastguard Worker 
2177*344a7f5eSAndroid Build Coastguard Worker #define _mm512_sub_round_ps(A, B, R) __extension__ ({ \
2178*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_subps512_mask((__v16sf)(__m512)(A), \
2179*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2180*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2181*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(R)); })
2182*344a7f5eSAndroid Build Coastguard Worker 
2183*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_sub_round_ps(W, U, A, B, R)  __extension__ ({ \
2184*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_subps512_mask((__v16sf)(__m512)(A), \
2185*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2186*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(W), (__mmask16)(U), \
2187*344a7f5eSAndroid Build Coastguard Worker                                        (int)(R)); });
2188*344a7f5eSAndroid Build Coastguard Worker 
2189*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_sub_round_ps(U, A, B, R)  __extension__ ({ \
2190*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_subps512_mask((__v16sf)(__m512)(A), \
2191*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2192*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2193*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(U), (int)(R)); });
2194*344a7f5eSAndroid Build Coastguard Worker 
2195*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_mul_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2196*344a7f5eSAndroid Build Coastguard Worker _mm_mask_mul_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
2197*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_mulss_round_mask ((__v4sf) __A,
2198*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
2199*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
2200*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2201*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2202*344a7f5eSAndroid Build Coastguard Worker }
2203*344a7f5eSAndroid Build Coastguard Worker 
2204*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_mul_ss(__mmask8 __U,__m128 __A,__m128 __B)2205*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_mul_ss(__mmask8 __U,__m128 __A, __m128 __B) {
2206*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_mulss_round_mask ((__v4sf) __A,
2207*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
2208*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf)  _mm_setzero_ps (),
2209*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2210*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2211*344a7f5eSAndroid Build Coastguard Worker }
2212*344a7f5eSAndroid Build Coastguard Worker #define _mm_mul_round_ss(A, B, R) __extension__ ({ \
2213*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \
2214*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2215*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
2216*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
2217*344a7f5eSAndroid Build Coastguard Worker 
2218*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_mul_round_ss(W, U, A, B, R) __extension__ ({ \
2219*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \
2220*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2221*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(W), (__mmask8)(U), \
2222*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
2223*344a7f5eSAndroid Build Coastguard Worker 
2224*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_mul_round_ss(U, A, B, R) __extension__ ({ \
2225*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \
2226*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2227*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
2228*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
2229*344a7f5eSAndroid Build Coastguard Worker 
2230*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_mul_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2231*344a7f5eSAndroid Build Coastguard Worker _mm_mask_mul_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {
2232*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_mulsd_round_mask ((__v2df) __A,
2233*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
2234*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
2235*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2236*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2237*344a7f5eSAndroid Build Coastguard Worker }
2238*344a7f5eSAndroid Build Coastguard Worker 
2239*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_mul_sd(__mmask8 __U,__m128d __A,__m128d __B)2240*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_mul_sd(__mmask8 __U,__m128d __A, __m128d __B) {
2241*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_mulsd_round_mask ((__v2df) __A,
2242*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
2243*344a7f5eSAndroid Build Coastguard Worker                 (__v2df)  _mm_setzero_pd (),
2244*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2245*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2246*344a7f5eSAndroid Build Coastguard Worker }
2247*344a7f5eSAndroid Build Coastguard Worker 
2248*344a7f5eSAndroid Build Coastguard Worker #define _mm_mul_round_sd(A, B, R) __extension__ ({ \
2249*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \
2250*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2251*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
2252*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
2253*344a7f5eSAndroid Build Coastguard Worker 
2254*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_mul_round_sd(W, U, A, B, R) __extension__ ({ \
2255*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \
2256*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2257*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(W), \
2258*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2259*344a7f5eSAndroid Build Coastguard Worker 
2260*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_mul_round_sd(U, A, B, R) __extension__ ({ \
2261*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \
2262*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2263*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
2264*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2265*344a7f5eSAndroid Build Coastguard Worker 
2266*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_mul_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2267*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2268*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2269*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
2270*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __W,
2271*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
2272*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
2273*344a7f5eSAndroid Build Coastguard Worker }
2274*344a7f5eSAndroid Build Coastguard Worker 
2275*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_mul_pd(__mmask8 __U,__m512d __A,__m512d __B)2276*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2277*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2278*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
2279*344a7f5eSAndroid Build Coastguard Worker              (__v8df)
2280*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_pd (),
2281*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
2282*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
2283*344a7f5eSAndroid Build Coastguard Worker }
2284*344a7f5eSAndroid Build Coastguard Worker 
2285*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_mul_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2286*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2287*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2288*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2289*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __W,
2290*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2291*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2292*344a7f5eSAndroid Build Coastguard Worker }
2293*344a7f5eSAndroid Build Coastguard Worker 
2294*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_mul_ps(__mmask16 __U,__m512 __A,__m512 __B)2295*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2296*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2297*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2298*344a7f5eSAndroid Build Coastguard Worker             (__v16sf)
2299*344a7f5eSAndroid Build Coastguard Worker             _mm512_setzero_ps (),
2300*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2301*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2302*344a7f5eSAndroid Build Coastguard Worker }
2303*344a7f5eSAndroid Build Coastguard Worker 
2304*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mul_round_pd(A, B, R) __extension__ ({ \
2305*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_mulpd512_mask((__v8df)(__m512d)(A), \
2306*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2307*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2308*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(R)); })
2309*344a7f5eSAndroid Build Coastguard Worker 
2310*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_mul_round_pd(W, U, A, B, R) __extension__ ({ \
2311*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_mulpd512_mask((__v8df)(__m512d)(A), \
2312*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2313*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(W), (__mmask8)(U), \
2314*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
2315*344a7f5eSAndroid Build Coastguard Worker 
2316*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_mul_round_pd(U, A, B, R) __extension__ ({ \
2317*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_mulpd512_mask((__v8df)(__m512d)(A), \
2318*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2319*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2320*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U), (int)(R)); })
2321*344a7f5eSAndroid Build Coastguard Worker 
2322*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mul_round_ps(A, B, R) __extension__ ({ \
2323*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_mulps512_mask((__v16sf)(__m512)(A), \
2324*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2325*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2326*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(R)); })
2327*344a7f5eSAndroid Build Coastguard Worker 
2328*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_mul_round_ps(W, U, A, B, R)  __extension__ ({ \
2329*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_mulps512_mask((__v16sf)(__m512)(A), \
2330*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2331*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(W), (__mmask16)(U), \
2332*344a7f5eSAndroid Build Coastguard Worker                                        (int)(R)); });
2333*344a7f5eSAndroid Build Coastguard Worker 
2334*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_mul_round_ps(U, A, B, R)  __extension__ ({ \
2335*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_mulps512_mask((__v16sf)(__m512)(A), \
2336*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2337*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2338*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(U), (int)(R)); });
2339*344a7f5eSAndroid Build Coastguard Worker 
2340*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_div_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)2341*344a7f5eSAndroid Build Coastguard Worker _mm_mask_div_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
2342*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_divss_round_mask ((__v4sf) __A,
2343*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
2344*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
2345*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2346*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2347*344a7f5eSAndroid Build Coastguard Worker }
2348*344a7f5eSAndroid Build Coastguard Worker 
2349*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_div_ss(__mmask8 __U,__m128 __A,__m128 __B)2350*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_div_ss(__mmask8 __U,__m128 __A, __m128 __B) {
2351*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_divss_round_mask ((__v4sf) __A,
2352*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
2353*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf)  _mm_setzero_ps (),
2354*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2355*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2356*344a7f5eSAndroid Build Coastguard Worker }
2357*344a7f5eSAndroid Build Coastguard Worker 
2358*344a7f5eSAndroid Build Coastguard Worker #define _mm_div_round_ss(A, B, R) __extension__ ({ \
2359*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \
2360*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2361*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
2362*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
2363*344a7f5eSAndroid Build Coastguard Worker 
2364*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_div_round_ss(W, U, A, B, R) __extension__ ({ \
2365*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \
2366*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2367*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(W), (__mmask8)(U), \
2368*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
2369*344a7f5eSAndroid Build Coastguard Worker 
2370*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_div_round_ss(U, A, B, R) __extension__ ({ \
2371*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \
2372*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
2373*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)_mm_setzero_ps(), \
2374*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
2375*344a7f5eSAndroid Build Coastguard Worker 
2376*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_div_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)2377*344a7f5eSAndroid Build Coastguard Worker _mm_mask_div_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) {
2378*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_divsd_round_mask ((__v2df) __A,
2379*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
2380*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
2381*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2382*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2383*344a7f5eSAndroid Build Coastguard Worker }
2384*344a7f5eSAndroid Build Coastguard Worker 
2385*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_div_sd(__mmask8 __U,__m128d __A,__m128d __B)2386*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_div_sd(__mmask8 __U,__m128d __A, __m128d __B) {
2387*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_divsd_round_mask ((__v2df) __A,
2388*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __B,
2389*344a7f5eSAndroid Build Coastguard Worker                 (__v2df)  _mm_setzero_pd (),
2390*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
2391*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
2392*344a7f5eSAndroid Build Coastguard Worker }
2393*344a7f5eSAndroid Build Coastguard Worker 
2394*344a7f5eSAndroid Build Coastguard Worker #define _mm_div_round_sd(A, B, R) __extension__ ({ \
2395*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \
2396*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2397*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
2398*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
2399*344a7f5eSAndroid Build Coastguard Worker 
2400*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_div_round_sd(W, U, A, B, R) __extension__ ({ \
2401*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \
2402*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2403*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(W), \
2404*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2405*344a7f5eSAndroid Build Coastguard Worker 
2406*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_div_round_sd(U, A, B, R) __extension__ ({ \
2407*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \
2408*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
2409*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)_mm_setzero_pd(), \
2410*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2411*344a7f5eSAndroid Build Coastguard Worker 
2412*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_div_pd(__m512d __a,__m512d __b)2413*344a7f5eSAndroid Build Coastguard Worker _mm512_div_pd(__m512d __a, __m512d __b)
2414*344a7f5eSAndroid Build Coastguard Worker {
2415*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)((__v8df)__a/(__v8df)__b);
2416*344a7f5eSAndroid Build Coastguard Worker }
2417*344a7f5eSAndroid Build Coastguard Worker 
2418*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_div_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)2419*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
2420*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __A,
2421*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
2422*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __W,
2423*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
2424*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
2425*344a7f5eSAndroid Build Coastguard Worker }
2426*344a7f5eSAndroid Build Coastguard Worker 
2427*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_div_pd(__mmask8 __U,__m512d __A,__m512d __B)2428*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
2429*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __A,
2430*344a7f5eSAndroid Build Coastguard Worker              (__v8df) __B,
2431*344a7f5eSAndroid Build Coastguard Worker              (__v8df)
2432*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_pd (),
2433*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U,
2434*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
2435*344a7f5eSAndroid Build Coastguard Worker }
2436*344a7f5eSAndroid Build Coastguard Worker 
2437*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_div_ps(__m512 __a,__m512 __b)2438*344a7f5eSAndroid Build Coastguard Worker _mm512_div_ps(__m512 __a, __m512 __b)
2439*344a7f5eSAndroid Build Coastguard Worker {
2440*344a7f5eSAndroid Build Coastguard Worker   return (__m512)((__v16sf)__a/(__v16sf)__b);
2441*344a7f5eSAndroid Build Coastguard Worker }
2442*344a7f5eSAndroid Build Coastguard Worker 
2443*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_div_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)2444*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
2445*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2446*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2447*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __W,
2448*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2449*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2450*344a7f5eSAndroid Build Coastguard Worker }
2451*344a7f5eSAndroid Build Coastguard Worker 
2452*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_div_ps(__mmask16 __U,__m512 __A,__m512 __B)2453*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
2454*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2455*344a7f5eSAndroid Build Coastguard Worker             (__v16sf) __B,
2456*344a7f5eSAndroid Build Coastguard Worker             (__v16sf)
2457*344a7f5eSAndroid Build Coastguard Worker             _mm512_setzero_ps (),
2458*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U,
2459*344a7f5eSAndroid Build Coastguard Worker             _MM_FROUND_CUR_DIRECTION);
2460*344a7f5eSAndroid Build Coastguard Worker }
2461*344a7f5eSAndroid Build Coastguard Worker 
2462*344a7f5eSAndroid Build Coastguard Worker #define _mm512_div_round_pd(A, B, R) __extension__ ({ \
2463*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_divpd512_mask((__v8df)(__m512d)(A), \
2464*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2465*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2466*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(R)); })
2467*344a7f5eSAndroid Build Coastguard Worker 
2468*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_div_round_pd(W, U, A, B, R) __extension__ ({ \
2469*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_divpd512_mask((__v8df)(__m512d)(A), \
2470*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2471*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(W), (__mmask8)(U), \
2472*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
2473*344a7f5eSAndroid Build Coastguard Worker 
2474*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_div_round_pd(U, A, B, R) __extension__ ({ \
2475*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_divpd512_mask((__v8df)(__m512d)(A), \
2476*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)(__m512d)(B), \
2477*344a7f5eSAndroid Build Coastguard Worker                                         (__v8df)_mm512_setzero_pd(), \
2478*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U), (int)(R)); })
2479*344a7f5eSAndroid Build Coastguard Worker 
2480*344a7f5eSAndroid Build Coastguard Worker #define _mm512_div_round_ps(A, B, R) __extension__ ({ \
2481*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_divps512_mask((__v16sf)(__m512)(A), \
2482*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2483*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2484*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(R)); })
2485*344a7f5eSAndroid Build Coastguard Worker 
2486*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_div_round_ps(W, U, A, B, R)  __extension__ ({ \
2487*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_divps512_mask((__v16sf)(__m512)(A), \
2488*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2489*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(W), (__mmask16)(U), \
2490*344a7f5eSAndroid Build Coastguard Worker                                        (int)(R)); });
2491*344a7f5eSAndroid Build Coastguard Worker 
2492*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_div_round_ps(U, A, B, R)  __extension__ ({ \
2493*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_divps512_mask((__v16sf)(__m512)(A), \
2494*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(B), \
2495*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)_mm512_setzero_ps(), \
2496*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(U), (int)(R)); });
2497*344a7f5eSAndroid Build Coastguard Worker 
2498*344a7f5eSAndroid Build Coastguard Worker #define _mm512_roundscale_ps(A, B) __extension__ ({ \
2499*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(A), (int)(B), \
2500*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(A), (__mmask16)-1, \
2501*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
2502*344a7f5eSAndroid Build Coastguard Worker 
2503*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_roundscale_ps(A, B, C, imm) __extension__ ({\
2504*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(C), (int)(imm), \
2505*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(A), (__mmask16)(B), \
2506*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
2507*344a7f5eSAndroid Build Coastguard Worker 
2508*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_roundscale_ps(A, B, imm) __extension__ ({\
2509*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(B), (int)(imm), \
2510*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)_mm512_setzero_ps(), \
2511*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(A), \
2512*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
2513*344a7f5eSAndroid Build Coastguard Worker 
2514*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_roundscale_round_ps(A, B, C, imm, R) __extension__ ({ \
2515*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(C), (int)(imm), \
2516*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(A), (__mmask16)(B), \
2517*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
2518*344a7f5eSAndroid Build Coastguard Worker 
2519*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_roundscale_round_ps(A, B, imm, R) __extension__ ({ \
2520*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(B), (int)(imm), \
2521*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)_mm512_setzero_ps(), \
2522*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(A), (int)(R)); })
2523*344a7f5eSAndroid Build Coastguard Worker 
2524*344a7f5eSAndroid Build Coastguard Worker #define _mm512_roundscale_round_ps(A, imm, R) __extension__ ({ \
2525*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(A), (int)(imm), \
2526*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)_mm512_undefined_ps(), \
2527*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1, (int)(R)); })
2528*344a7f5eSAndroid Build Coastguard Worker 
2529*344a7f5eSAndroid Build Coastguard Worker #define _mm512_roundscale_pd(A, B) __extension__ ({ \
2530*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(A), (int)(B), \
2531*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(A), (__mmask8)-1, \
2532*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
2533*344a7f5eSAndroid Build Coastguard Worker 
2534*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_roundscale_pd(A, B, C, imm) __extension__ ({\
2535*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(C), (int)(imm), \
2536*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(A), (__mmask8)(B), \
2537*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
2538*344a7f5eSAndroid Build Coastguard Worker 
2539*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_roundscale_pd(A, B, imm) __extension__ ({\
2540*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(B), (int)(imm), \
2541*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)_mm512_setzero_pd(), \
2542*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(A), \
2543*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
2544*344a7f5eSAndroid Build Coastguard Worker 
2545*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_roundscale_round_pd(A, B, C, imm, R) __extension__ ({ \
2546*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(C), (int)(imm), \
2547*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(A), (__mmask8)(B), \
2548*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
2549*344a7f5eSAndroid Build Coastguard Worker 
2550*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_roundscale_round_pd(A, B, imm, R) __extension__ ({ \
2551*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(B), (int)(imm), \
2552*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)_mm512_setzero_pd(), \
2553*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(A), (int)(R)); })
2554*344a7f5eSAndroid Build Coastguard Worker 
2555*344a7f5eSAndroid Build Coastguard Worker #define _mm512_roundscale_round_pd(A, imm, R) __extension__ ({ \
2556*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(A), (int)(imm), \
2557*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)_mm512_undefined_pd(), \
2558*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
2559*344a7f5eSAndroid Build Coastguard Worker 
2560*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmadd_round_pd(A, B, C, R) __extension__ ({ \
2561*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \
2562*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
2563*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(C), (__mmask8)-1, \
2564*344a7f5eSAndroid Build Coastguard Worker                                            (int)(R)); })
2565*344a7f5eSAndroid Build Coastguard Worker 
2566*344a7f5eSAndroid Build Coastguard Worker 
2567*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmadd_round_pd(A, U, B, C, R) __extension__ ({ \
2568*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \
2569*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
2570*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(C), \
2571*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2572*344a7f5eSAndroid Build Coastguard Worker 
2573*344a7f5eSAndroid Build Coastguard Worker 
2574*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) __extension__ ({ \
2575*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask3((__v8df)(__m512d)(A), \
2576*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
2577*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
2578*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
2579*344a7f5eSAndroid Build Coastguard Worker 
2580*344a7f5eSAndroid Build Coastguard Worker 
2581*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) __extension__ ({ \
2582*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_maskz((__v8df)(__m512d)(A), \
2583*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
2584*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
2585*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
2586*344a7f5eSAndroid Build Coastguard Worker 
2587*344a7f5eSAndroid Build Coastguard Worker 
2588*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmsub_round_pd(A, B, C, R) __extension__ ({ \
2589*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \
2590*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
2591*344a7f5eSAndroid Build Coastguard Worker                                            -(__v8df)(__m512d)(C), \
2592*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
2593*344a7f5eSAndroid Build Coastguard Worker 
2594*344a7f5eSAndroid Build Coastguard Worker 
2595*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmsub_round_pd(A, U, B, C, R) __extension__ ({ \
2596*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \
2597*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
2598*344a7f5eSAndroid Build Coastguard Worker                                            -(__v8df)(__m512d)(C), \
2599*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
2600*344a7f5eSAndroid Build Coastguard Worker 
2601*344a7f5eSAndroid Build Coastguard Worker 
2602*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) __extension__ ({ \
2603*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_maskz((__v8df)(__m512d)(A), \
2604*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
2605*344a7f5eSAndroid Build Coastguard Worker                                             -(__v8df)(__m512d)(C), \
2606*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
2607*344a7f5eSAndroid Build Coastguard Worker 
2608*344a7f5eSAndroid Build Coastguard Worker 
2609*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fnmadd_round_pd(A, B, C, R) __extension__ ({ \
2610*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask(-(__v8df)(__m512d)(A), \
2611*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
2612*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(C), (__mmask8)-1, \
2613*344a7f5eSAndroid Build Coastguard Worker                                            (int)(R)); })
2614*344a7f5eSAndroid Build Coastguard Worker 
2615*344a7f5eSAndroid Build Coastguard Worker 
2616*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) __extension__ ({ \
2617*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask3(-(__v8df)(__m512d)(A), \
2618*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
2619*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
2620*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
2621*344a7f5eSAndroid Build Coastguard Worker 
2622*344a7f5eSAndroid Build Coastguard Worker 
2623*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) __extension__ ({ \
2624*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(__v8df)(__m512d)(A), \
2625*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
2626*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
2627*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
2628*344a7f5eSAndroid Build Coastguard Worker 
2629*344a7f5eSAndroid Build Coastguard Worker 
2630*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fnmsub_round_pd(A, B, C, R) __extension__ ({ \
2631*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_mask(-(__v8df)(__m512d)(A), \
2632*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
2633*344a7f5eSAndroid Build Coastguard Worker                                            -(__v8df)(__m512d)(C), \
2634*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
2635*344a7f5eSAndroid Build Coastguard Worker 
2636*344a7f5eSAndroid Build Coastguard Worker 
2637*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) __extension__ ({ \
2638*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(__v8df)(__m512d)(A), \
2639*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
2640*344a7f5eSAndroid Build Coastguard Worker                                             -(__v8df)(__m512d)(C), \
2641*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
2642*344a7f5eSAndroid Build Coastguard Worker 
2643*344a7f5eSAndroid Build Coastguard Worker 
2644*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_fmadd_pd(__m512d __A,__m512d __B,__m512d __C)2645*344a7f5eSAndroid Build Coastguard Worker _mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C)
2646*344a7f5eSAndroid Build Coastguard Worker {
2647*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
2648*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __B,
2649*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __C,
2650*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask8) -1,
2651*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2652*344a7f5eSAndroid Build Coastguard Worker }
2653*344a7f5eSAndroid Build Coastguard Worker 
2654*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_fmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)2655*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
2656*344a7f5eSAndroid Build Coastguard Worker {
2657*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
2658*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __B,
2659*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __C,
2660*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask8) __U,
2661*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2662*344a7f5eSAndroid Build Coastguard Worker }
2663*344a7f5eSAndroid Build Coastguard Worker 
2664*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask3_fmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)2665*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
2666*344a7f5eSAndroid Build Coastguard Worker {
2667*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
2668*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
2669*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
2670*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
2671*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
2672*344a7f5eSAndroid Build Coastguard Worker }
2673*344a7f5eSAndroid Build Coastguard Worker 
2674*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_fmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)2675*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
2676*344a7f5eSAndroid Build Coastguard Worker {
2677*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
2678*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
2679*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
2680*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
2681*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
2682*344a7f5eSAndroid Build Coastguard Worker }
2683*344a7f5eSAndroid Build Coastguard Worker 
2684*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_fmsub_pd(__m512d __A,__m512d __B,__m512d __C)2685*344a7f5eSAndroid Build Coastguard Worker _mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C)
2686*344a7f5eSAndroid Build Coastguard Worker {
2687*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
2688*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __B,
2689*344a7f5eSAndroid Build Coastguard Worker                                                     -(__v8df) __C,
2690*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask8) -1,
2691*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2692*344a7f5eSAndroid Build Coastguard Worker }
2693*344a7f5eSAndroid Build Coastguard Worker 
2694*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_fmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)2695*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
2696*344a7f5eSAndroid Build Coastguard Worker {
2697*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
2698*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __B,
2699*344a7f5eSAndroid Build Coastguard Worker                                                     -(__v8df) __C,
2700*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask8) __U,
2701*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2702*344a7f5eSAndroid Build Coastguard Worker }
2703*344a7f5eSAndroid Build Coastguard Worker 
2704*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_fmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)2705*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
2706*344a7f5eSAndroid Build Coastguard Worker {
2707*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
2708*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
2709*344a7f5eSAndroid Build Coastguard Worker                                                      -(__v8df) __C,
2710*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
2711*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
2712*344a7f5eSAndroid Build Coastguard Worker }
2713*344a7f5eSAndroid Build Coastguard Worker 
2714*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C)2715*344a7f5eSAndroid Build Coastguard Worker _mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C)
2716*344a7f5eSAndroid Build Coastguard Worker {
2717*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask (-(__v8df) __A,
2718*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __B,
2719*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __C,
2720*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask8) -1,
2721*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2722*344a7f5eSAndroid Build Coastguard Worker }
2723*344a7f5eSAndroid Build Coastguard Worker 
2724*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask3_fnmadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)2725*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
2726*344a7f5eSAndroid Build Coastguard Worker {
2727*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df) __A,
2728*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
2729*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
2730*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
2731*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
2732*344a7f5eSAndroid Build Coastguard Worker }
2733*344a7f5eSAndroid Build Coastguard Worker 
2734*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_fnmadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)2735*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
2736*344a7f5eSAndroid Build Coastguard Worker {
2737*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A,
2738*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
2739*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
2740*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
2741*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
2742*344a7f5eSAndroid Build Coastguard Worker }
2743*344a7f5eSAndroid Build Coastguard Worker 
2744*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C)2745*344a7f5eSAndroid Build Coastguard Worker _mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C)
2746*344a7f5eSAndroid Build Coastguard Worker {
2747*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_mask (-(__v8df) __A,
2748*344a7f5eSAndroid Build Coastguard Worker                                                     (__v8df) __B,
2749*344a7f5eSAndroid Build Coastguard Worker                                                     -(__v8df) __C,
2750*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask8) -1,
2751*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2752*344a7f5eSAndroid Build Coastguard Worker }
2753*344a7f5eSAndroid Build Coastguard Worker 
2754*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_fnmsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)2755*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
2756*344a7f5eSAndroid Build Coastguard Worker {
2757*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A,
2758*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
2759*344a7f5eSAndroid Build Coastguard Worker                                                      -(__v8df) __C,
2760*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
2761*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
2762*344a7f5eSAndroid Build Coastguard Worker }
2763*344a7f5eSAndroid Build Coastguard Worker 
2764*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmadd_round_ps(A, B, C, R) __extension__ ({ \
2765*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \
2766*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
2767*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(C), (__mmask16)-1, \
2768*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
2769*344a7f5eSAndroid Build Coastguard Worker 
2770*344a7f5eSAndroid Build Coastguard Worker 
2771*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmadd_round_ps(A, U, B, C, R) __extension__ ({ \
2772*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \
2773*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
2774*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(C), \
2775*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
2776*344a7f5eSAndroid Build Coastguard Worker 
2777*344a7f5eSAndroid Build Coastguard Worker 
2778*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) __extension__ ({ \
2779*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask3((__v16sf)(__m512)(A), \
2780*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
2781*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
2782*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
2783*344a7f5eSAndroid Build Coastguard Worker 
2784*344a7f5eSAndroid Build Coastguard Worker 
2785*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) __extension__ ({ \
2786*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_maskz((__v16sf)(__m512)(A), \
2787*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
2788*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
2789*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
2790*344a7f5eSAndroid Build Coastguard Worker 
2791*344a7f5eSAndroid Build Coastguard Worker 
2792*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmsub_round_ps(A, B, C, R) __extension__ ({ \
2793*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \
2794*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
2795*344a7f5eSAndroid Build Coastguard Worker                                           -(__v16sf)(__m512)(C), \
2796*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1, (int)(R)); })
2797*344a7f5eSAndroid Build Coastguard Worker 
2798*344a7f5eSAndroid Build Coastguard Worker 
2799*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmsub_round_ps(A, U, B, C, R) __extension__ ({ \
2800*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \
2801*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
2802*344a7f5eSAndroid Build Coastguard Worker                                           -(__v16sf)(__m512)(C), \
2803*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
2804*344a7f5eSAndroid Build Coastguard Worker 
2805*344a7f5eSAndroid Build Coastguard Worker 
2806*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) __extension__ ({ \
2807*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_maskz((__v16sf)(__m512)(A), \
2808*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
2809*344a7f5eSAndroid Build Coastguard Worker                                            -(__v16sf)(__m512)(C), \
2810*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
2811*344a7f5eSAndroid Build Coastguard Worker 
2812*344a7f5eSAndroid Build Coastguard Worker 
2813*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fnmadd_round_ps(A, B, C, R) __extension__ ({ \
2814*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask(-(__v16sf)(__m512)(A), \
2815*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
2816*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(C), (__mmask16)-1, \
2817*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
2818*344a7f5eSAndroid Build Coastguard Worker 
2819*344a7f5eSAndroid Build Coastguard Worker 
2820*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) __extension__ ({ \
2821*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask3(-(__v16sf)(__m512)(A), \
2822*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
2823*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
2824*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
2825*344a7f5eSAndroid Build Coastguard Worker 
2826*344a7f5eSAndroid Build Coastguard Worker 
2827*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) __extension__ ({ \
2828*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_maskz(-(__v16sf)(__m512)(A), \
2829*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
2830*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
2831*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
2832*344a7f5eSAndroid Build Coastguard Worker 
2833*344a7f5eSAndroid Build Coastguard Worker 
2834*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fnmsub_round_ps(A, B, C, R) __extension__ ({ \
2835*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_mask(-(__v16sf)(__m512)(A), \
2836*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
2837*344a7f5eSAndroid Build Coastguard Worker                                           -(__v16sf)(__m512)(C), \
2838*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1, (int)(R)); })
2839*344a7f5eSAndroid Build Coastguard Worker 
2840*344a7f5eSAndroid Build Coastguard Worker 
2841*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) __extension__ ({ \
2842*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddps512_maskz(-(__v16sf)(__m512)(A), \
2843*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
2844*344a7f5eSAndroid Build Coastguard Worker                                            -(__v16sf)(__m512)(C), \
2845*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
2846*344a7f5eSAndroid Build Coastguard Worker 
2847*344a7f5eSAndroid Build Coastguard Worker 
2848*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_fmadd_ps(__m512 __A,__m512 __B,__m512 __C)2849*344a7f5eSAndroid Build Coastguard Worker _mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C)
2850*344a7f5eSAndroid Build Coastguard Worker {
2851*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
2852*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __B,
2853*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __C,
2854*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16) -1,
2855*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
2856*344a7f5eSAndroid Build Coastguard Worker }
2857*344a7f5eSAndroid Build Coastguard Worker 
2858*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_fmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)2859*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
2860*344a7f5eSAndroid Build Coastguard Worker {
2861*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
2862*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __B,
2863*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __C,
2864*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16) __U,
2865*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
2866*344a7f5eSAndroid Build Coastguard Worker }
2867*344a7f5eSAndroid Build Coastguard Worker 
2868*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask3_fmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)2869*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
2870*344a7f5eSAndroid Build Coastguard Worker {
2871*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
2872*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
2873*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
2874*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
2875*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2876*344a7f5eSAndroid Build Coastguard Worker }
2877*344a7f5eSAndroid Build Coastguard Worker 
2878*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_fmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)2879*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
2880*344a7f5eSAndroid Build Coastguard Worker {
2881*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
2882*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
2883*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
2884*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
2885*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2886*344a7f5eSAndroid Build Coastguard Worker }
2887*344a7f5eSAndroid Build Coastguard Worker 
2888*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_fmsub_ps(__m512 __A,__m512 __B,__m512 __C)2889*344a7f5eSAndroid Build Coastguard Worker _mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C)
2890*344a7f5eSAndroid Build Coastguard Worker {
2891*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
2892*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __B,
2893*344a7f5eSAndroid Build Coastguard Worker                                                    -(__v16sf) __C,
2894*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16) -1,
2895*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
2896*344a7f5eSAndroid Build Coastguard Worker }
2897*344a7f5eSAndroid Build Coastguard Worker 
2898*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_fmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)2899*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
2900*344a7f5eSAndroid Build Coastguard Worker {
2901*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
2902*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __B,
2903*344a7f5eSAndroid Build Coastguard Worker                                                    -(__v16sf) __C,
2904*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16) __U,
2905*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
2906*344a7f5eSAndroid Build Coastguard Worker }
2907*344a7f5eSAndroid Build Coastguard Worker 
2908*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_fmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)2909*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
2910*344a7f5eSAndroid Build Coastguard Worker {
2911*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
2912*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
2913*344a7f5eSAndroid Build Coastguard Worker                                                     -(__v16sf) __C,
2914*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
2915*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2916*344a7f5eSAndroid Build Coastguard Worker }
2917*344a7f5eSAndroid Build Coastguard Worker 
2918*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C)2919*344a7f5eSAndroid Build Coastguard Worker _mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C)
2920*344a7f5eSAndroid Build Coastguard Worker {
2921*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask (-(__v16sf) __A,
2922*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __B,
2923*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __C,
2924*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16) -1,
2925*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
2926*344a7f5eSAndroid Build Coastguard Worker }
2927*344a7f5eSAndroid Build Coastguard Worker 
2928*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask3_fnmadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)2929*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
2930*344a7f5eSAndroid Build Coastguard Worker {
2931*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf) __A,
2932*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
2933*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
2934*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
2935*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2936*344a7f5eSAndroid Build Coastguard Worker }
2937*344a7f5eSAndroid Build Coastguard Worker 
2938*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_fnmadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)2939*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
2940*344a7f5eSAndroid Build Coastguard Worker {
2941*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A,
2942*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
2943*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
2944*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
2945*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2946*344a7f5eSAndroid Build Coastguard Worker }
2947*344a7f5eSAndroid Build Coastguard Worker 
2948*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C)2949*344a7f5eSAndroid Build Coastguard Worker _mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C)
2950*344a7f5eSAndroid Build Coastguard Worker {
2951*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_mask (-(__v16sf) __A,
2952*344a7f5eSAndroid Build Coastguard Worker                                                    (__v16sf) __B,
2953*344a7f5eSAndroid Build Coastguard Worker                                                    -(__v16sf) __C,
2954*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16) -1,
2955*344a7f5eSAndroid Build Coastguard Worker                                                    _MM_FROUND_CUR_DIRECTION);
2956*344a7f5eSAndroid Build Coastguard Worker }
2957*344a7f5eSAndroid Build Coastguard Worker 
2958*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_fnmsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)2959*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
2960*344a7f5eSAndroid Build Coastguard Worker {
2961*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A,
2962*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
2963*344a7f5eSAndroid Build Coastguard Worker                                                     -(__v16sf) __C,
2964*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
2965*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
2966*344a7f5eSAndroid Build Coastguard Worker }
2967*344a7f5eSAndroid Build Coastguard Worker 
2968*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmaddsub_round_pd(A, B, C, R) __extension__ ({ \
2969*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \
2970*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(B), \
2971*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(C), \
2972*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)-1, (int)(R)); })
2973*344a7f5eSAndroid Build Coastguard Worker 
2974*344a7f5eSAndroid Build Coastguard Worker 
2975*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) __extension__ ({ \
2976*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \
2977*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(B), \
2978*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(C), \
2979*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
2980*344a7f5eSAndroid Build Coastguard Worker 
2981*344a7f5eSAndroid Build Coastguard Worker 
2982*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) __extension__ ({ \
2983*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_mask3((__v8df)(__m512d)(A), \
2984*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(B), \
2985*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(C), \
2986*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(R)); })
2987*344a7f5eSAndroid Build Coastguard Worker 
2988*344a7f5eSAndroid Build Coastguard Worker 
2989*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) __extension__ ({ \
2990*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_maskz((__v8df)(__m512d)(A), \
2991*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(B), \
2992*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(C), \
2993*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(R)); })
2994*344a7f5eSAndroid Build Coastguard Worker 
2995*344a7f5eSAndroid Build Coastguard Worker 
2996*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmsubadd_round_pd(A, B, C, R) __extension__ ({ \
2997*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \
2998*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(B), \
2999*344a7f5eSAndroid Build Coastguard Worker                                               -(__v8df)(__m512d)(C), \
3000*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)-1, (int)(R)); })
3001*344a7f5eSAndroid Build Coastguard Worker 
3002*344a7f5eSAndroid Build Coastguard Worker 
3003*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) __extension__ ({ \
3004*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \
3005*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(B), \
3006*344a7f5eSAndroid Build Coastguard Worker                                               -(__v8df)(__m512d)(C), \
3007*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
3008*344a7f5eSAndroid Build Coastguard Worker 
3009*344a7f5eSAndroid Build Coastguard Worker 
3010*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) __extension__ ({ \
3011*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmaddsubpd512_maskz((__v8df)(__m512d)(A), \
3012*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(B), \
3013*344a7f5eSAndroid Build Coastguard Worker                                                -(__v8df)(__m512d)(C), \
3014*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(R)); })
3015*344a7f5eSAndroid Build Coastguard Worker 
3016*344a7f5eSAndroid Build Coastguard Worker 
3017*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C)3018*344a7f5eSAndroid Build Coastguard Worker _mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C)
3019*344a7f5eSAndroid Build Coastguard Worker {
3020*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3021*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8df) __B,
3022*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8df) __C,
3023*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask8) -1,
3024*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3025*344a7f5eSAndroid Build Coastguard Worker }
3026*344a7f5eSAndroid Build Coastguard Worker 
3027*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_fmaddsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)3028*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
3029*344a7f5eSAndroid Build Coastguard Worker {
3030*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3031*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8df) __B,
3032*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8df) __C,
3033*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask8) __U,
3034*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3035*344a7f5eSAndroid Build Coastguard Worker }
3036*344a7f5eSAndroid Build Coastguard Worker 
3037*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask3_fmaddsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)3038*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
3039*344a7f5eSAndroid Build Coastguard Worker {
3040*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
3041*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __B,
3042*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __C,
3043*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask8) __U,
3044*344a7f5eSAndroid Build Coastguard Worker                                                         _MM_FROUND_CUR_DIRECTION);
3045*344a7f5eSAndroid Build Coastguard Worker }
3046*344a7f5eSAndroid Build Coastguard Worker 
3047*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_fmaddsub_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)3048*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
3049*344a7f5eSAndroid Build Coastguard Worker {
3050*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
3051*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __B,
3052*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __C,
3053*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask8) __U,
3054*344a7f5eSAndroid Build Coastguard Worker                                                         _MM_FROUND_CUR_DIRECTION);
3055*344a7f5eSAndroid Build Coastguard Worker }
3056*344a7f5eSAndroid Build Coastguard Worker 
3057*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C)3058*344a7f5eSAndroid Build Coastguard Worker _mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C)
3059*344a7f5eSAndroid Build Coastguard Worker {
3060*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3061*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8df) __B,
3062*344a7f5eSAndroid Build Coastguard Worker                                                        -(__v8df) __C,
3063*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask8) -1,
3064*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3065*344a7f5eSAndroid Build Coastguard Worker }
3066*344a7f5eSAndroid Build Coastguard Worker 
3067*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_fmsubadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)3068*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
3069*344a7f5eSAndroid Build Coastguard Worker {
3070*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3071*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8df) __B,
3072*344a7f5eSAndroid Build Coastguard Worker                                                        -(__v8df) __C,
3073*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask8) __U,
3074*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3075*344a7f5eSAndroid Build Coastguard Worker }
3076*344a7f5eSAndroid Build Coastguard Worker 
3077*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_fmsubadd_pd(__mmask8 __U,__m512d __A,__m512d __B,__m512d __C)3078*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
3079*344a7f5eSAndroid Build Coastguard Worker {
3080*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
3081*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __B,
3082*344a7f5eSAndroid Build Coastguard Worker                                                         -(__v8df) __C,
3083*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask8) __U,
3084*344a7f5eSAndroid Build Coastguard Worker                                                         _MM_FROUND_CUR_DIRECTION);
3085*344a7f5eSAndroid Build Coastguard Worker }
3086*344a7f5eSAndroid Build Coastguard Worker 
3087*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmaddsub_round_ps(A, B, C, R) __extension__ ({ \
3088*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \
3089*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(B), \
3090*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(C), \
3091*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)-1, (int)(R)); })
3092*344a7f5eSAndroid Build Coastguard Worker 
3093*344a7f5eSAndroid Build Coastguard Worker 
3094*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) __extension__ ({ \
3095*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \
3096*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(B), \
3097*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(C), \
3098*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)(U), (int)(R)); })
3099*344a7f5eSAndroid Build Coastguard Worker 
3100*344a7f5eSAndroid Build Coastguard Worker 
3101*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) __extension__ ({ \
3102*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_mask3((__v16sf)(__m512)(A), \
3103*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(B), \
3104*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(C), \
3105*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask16)(U), (int)(R)); })
3106*344a7f5eSAndroid Build Coastguard Worker 
3107*344a7f5eSAndroid Build Coastguard Worker 
3108*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) __extension__ ({ \
3109*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_maskz((__v16sf)(__m512)(A), \
3110*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(B), \
3111*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(C), \
3112*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask16)(U), (int)(R)); })
3113*344a7f5eSAndroid Build Coastguard Worker 
3114*344a7f5eSAndroid Build Coastguard Worker 
3115*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fmsubadd_round_ps(A, B, C, R) __extension__ ({ \
3116*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \
3117*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(B), \
3118*344a7f5eSAndroid Build Coastguard Worker                                              -(__v16sf)(__m512)(C), \
3119*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)-1, (int)(R)); })
3120*344a7f5eSAndroid Build Coastguard Worker 
3121*344a7f5eSAndroid Build Coastguard Worker 
3122*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) __extension__ ({ \
3123*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \
3124*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(B), \
3125*344a7f5eSAndroid Build Coastguard Worker                                              -(__v16sf)(__m512)(C), \
3126*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)(U), (int)(R)); })
3127*344a7f5eSAndroid Build Coastguard Worker 
3128*344a7f5eSAndroid Build Coastguard Worker 
3129*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) __extension__ ({ \
3130*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmaddsubps512_maskz((__v16sf)(__m512)(A), \
3131*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(B), \
3132*344a7f5eSAndroid Build Coastguard Worker                                               -(__v16sf)(__m512)(C), \
3133*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask16)(U), (int)(R)); })
3134*344a7f5eSAndroid Build Coastguard Worker 
3135*344a7f5eSAndroid Build Coastguard Worker 
3136*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C)3137*344a7f5eSAndroid Build Coastguard Worker _mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C)
3138*344a7f5eSAndroid Build Coastguard Worker {
3139*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3140*344a7f5eSAndroid Build Coastguard Worker                                                       (__v16sf) __B,
3141*344a7f5eSAndroid Build Coastguard Worker                                                       (__v16sf) __C,
3142*344a7f5eSAndroid Build Coastguard Worker                                                       (__mmask16) -1,
3143*344a7f5eSAndroid Build Coastguard Worker                                                       _MM_FROUND_CUR_DIRECTION);
3144*344a7f5eSAndroid Build Coastguard Worker }
3145*344a7f5eSAndroid Build Coastguard Worker 
3146*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_fmaddsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)3147*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
3148*344a7f5eSAndroid Build Coastguard Worker {
3149*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3150*344a7f5eSAndroid Build Coastguard Worker                                                       (__v16sf) __B,
3151*344a7f5eSAndroid Build Coastguard Worker                                                       (__v16sf) __C,
3152*344a7f5eSAndroid Build Coastguard Worker                                                       (__mmask16) __U,
3153*344a7f5eSAndroid Build Coastguard Worker                                                       _MM_FROUND_CUR_DIRECTION);
3154*344a7f5eSAndroid Build Coastguard Worker }
3155*344a7f5eSAndroid Build Coastguard Worker 
3156*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask3_fmaddsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)3157*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
3158*344a7f5eSAndroid Build Coastguard Worker {
3159*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
3160*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __B,
3161*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __C,
3162*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask16) __U,
3163*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3164*344a7f5eSAndroid Build Coastguard Worker }
3165*344a7f5eSAndroid Build Coastguard Worker 
3166*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_fmaddsub_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)3167*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
3168*344a7f5eSAndroid Build Coastguard Worker {
3169*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
3170*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __B,
3171*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __C,
3172*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask16) __U,
3173*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3174*344a7f5eSAndroid Build Coastguard Worker }
3175*344a7f5eSAndroid Build Coastguard Worker 
3176*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C)3177*344a7f5eSAndroid Build Coastguard Worker _mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C)
3178*344a7f5eSAndroid Build Coastguard Worker {
3179*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3180*344a7f5eSAndroid Build Coastguard Worker                                                       (__v16sf) __B,
3181*344a7f5eSAndroid Build Coastguard Worker                                                       -(__v16sf) __C,
3182*344a7f5eSAndroid Build Coastguard Worker                                                       (__mmask16) -1,
3183*344a7f5eSAndroid Build Coastguard Worker                                                       _MM_FROUND_CUR_DIRECTION);
3184*344a7f5eSAndroid Build Coastguard Worker }
3185*344a7f5eSAndroid Build Coastguard Worker 
3186*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_fmsubadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)3187*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
3188*344a7f5eSAndroid Build Coastguard Worker {
3189*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3190*344a7f5eSAndroid Build Coastguard Worker                                                       (__v16sf) __B,
3191*344a7f5eSAndroid Build Coastguard Worker                                                       -(__v16sf) __C,
3192*344a7f5eSAndroid Build Coastguard Worker                                                       (__mmask16) __U,
3193*344a7f5eSAndroid Build Coastguard Worker                                                       _MM_FROUND_CUR_DIRECTION);
3194*344a7f5eSAndroid Build Coastguard Worker }
3195*344a7f5eSAndroid Build Coastguard Worker 
3196*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_fmsubadd_ps(__mmask16 __U,__m512 __A,__m512 __B,__m512 __C)3197*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
3198*344a7f5eSAndroid Build Coastguard Worker {
3199*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
3200*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __B,
3201*344a7f5eSAndroid Build Coastguard Worker                                                        -(__v16sf) __C,
3202*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask16) __U,
3203*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3204*344a7f5eSAndroid Build Coastguard Worker }
3205*344a7f5eSAndroid Build Coastguard Worker 
3206*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) __extension__ ({ \
3207*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmsubpd512_mask3((__v8df)(__m512d)(A), \
3208*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
3209*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
3210*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
3211*344a7f5eSAndroid Build Coastguard Worker 
3212*344a7f5eSAndroid Build Coastguard Worker 
3213*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask3_fmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)3214*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
3215*344a7f5eSAndroid Build Coastguard Worker {
3216*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
3217*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
3218*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
3219*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
3220*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
3221*344a7f5eSAndroid Build Coastguard Worker }
3222*344a7f5eSAndroid Build Coastguard Worker 
3223*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) __extension__ ({ \
3224*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmsubps512_mask3((__v16sf)(__m512)(A), \
3225*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
3226*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
3227*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3228*344a7f5eSAndroid Build Coastguard Worker 
3229*344a7f5eSAndroid Build Coastguard Worker 
3230*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask3_fmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)3231*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
3232*344a7f5eSAndroid Build Coastguard Worker {
3233*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
3234*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
3235*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
3236*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
3237*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
3238*344a7f5eSAndroid Build Coastguard Worker }
3239*344a7f5eSAndroid Build Coastguard Worker 
3240*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) __extension__ ({ \
3241*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfmsubaddpd512_mask3((__v8df)(__m512d)(A), \
3242*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(B), \
3243*344a7f5eSAndroid Build Coastguard Worker                                                (__v8df)(__m512d)(C), \
3244*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(R)); })
3245*344a7f5eSAndroid Build Coastguard Worker 
3246*344a7f5eSAndroid Build Coastguard Worker 
3247*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask3_fmsubadd_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)3248*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
3249*344a7f5eSAndroid Build Coastguard Worker {
3250*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
3251*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __B,
3252*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8df) __C,
3253*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask8) __U,
3254*344a7f5eSAndroid Build Coastguard Worker                                                         _MM_FROUND_CUR_DIRECTION);
3255*344a7f5eSAndroid Build Coastguard Worker }
3256*344a7f5eSAndroid Build Coastguard Worker 
3257*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) __extension__ ({ \
3258*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfmsubaddps512_mask3((__v16sf)(__m512)(A), \
3259*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(B), \
3260*344a7f5eSAndroid Build Coastguard Worker                                               (__v16sf)(__m512)(C), \
3261*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask16)(U), (int)(R)); })
3262*344a7f5eSAndroid Build Coastguard Worker 
3263*344a7f5eSAndroid Build Coastguard Worker 
3264*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask3_fmsubadd_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)3265*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
3266*344a7f5eSAndroid Build Coastguard Worker {
3267*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
3268*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __B,
3269*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16sf) __C,
3270*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask16) __U,
3271*344a7f5eSAndroid Build Coastguard Worker                                                        _MM_FROUND_CUR_DIRECTION);
3272*344a7f5eSAndroid Build Coastguard Worker }
3273*344a7f5eSAndroid Build Coastguard Worker 
3274*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) __extension__ ({ \
3275*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfnmaddpd512_mask((__v8df)(__m512d)(A), \
3276*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
3277*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
3278*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
3279*344a7f5eSAndroid Build Coastguard Worker 
3280*344a7f5eSAndroid Build Coastguard Worker 
3281*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_fnmadd_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)3282*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
3283*344a7f5eSAndroid Build Coastguard Worker {
3284*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
3285*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
3286*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
3287*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
3288*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
3289*344a7f5eSAndroid Build Coastguard Worker }
3290*344a7f5eSAndroid Build Coastguard Worker 
3291*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) __extension__ ({ \
3292*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfnmaddps512_mask((__v16sf)(__m512)(A), \
3293*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
3294*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
3295*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3296*344a7f5eSAndroid Build Coastguard Worker 
3297*344a7f5eSAndroid Build Coastguard Worker 
3298*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_fnmadd_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)3299*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
3300*344a7f5eSAndroid Build Coastguard Worker {
3301*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
3302*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
3303*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
3304*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
3305*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
3306*344a7f5eSAndroid Build Coastguard Worker }
3307*344a7f5eSAndroid Build Coastguard Worker 
3308*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) __extension__ ({ \
3309*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfnmsubpd512_mask((__v8df)(__m512d)(A), \
3310*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(B), \
3311*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(C), \
3312*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
3313*344a7f5eSAndroid Build Coastguard Worker 
3314*344a7f5eSAndroid Build Coastguard Worker 
3315*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) __extension__ ({ \
3316*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_vfnmsubpd512_mask3((__v8df)(__m512d)(A), \
3317*344a7f5eSAndroid Build Coastguard Worker                                              (__v8df)(__m512d)(B), \
3318*344a7f5eSAndroid Build Coastguard Worker                                              (__v8df)(__m512d)(C), \
3319*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
3320*344a7f5eSAndroid Build Coastguard Worker 
3321*344a7f5eSAndroid Build Coastguard Worker 
3322*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_fnmsub_pd(__m512d __A,__mmask8 __U,__m512d __B,__m512d __C)3323*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
3324*344a7f5eSAndroid Build Coastguard Worker {
3325*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
3326*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __B,
3327*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8df) __C,
3328*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U,
3329*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
3330*344a7f5eSAndroid Build Coastguard Worker }
3331*344a7f5eSAndroid Build Coastguard Worker 
3332*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask3_fnmsub_pd(__m512d __A,__m512d __B,__m512d __C,__mmask8 __U)3333*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
3334*344a7f5eSAndroid Build Coastguard Worker {
3335*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
3336*344a7f5eSAndroid Build Coastguard Worker                                                       (__v8df) __B,
3337*344a7f5eSAndroid Build Coastguard Worker                                                       (__v8df) __C,
3338*344a7f5eSAndroid Build Coastguard Worker                                                       (__mmask8) __U,
3339*344a7f5eSAndroid Build Coastguard Worker                                                       _MM_FROUND_CUR_DIRECTION);
3340*344a7f5eSAndroid Build Coastguard Worker }
3341*344a7f5eSAndroid Build Coastguard Worker 
3342*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) __extension__ ({ \
3343*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfnmsubps512_mask((__v16sf)(__m512)(A), \
3344*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(B), \
3345*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(C), \
3346*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3347*344a7f5eSAndroid Build Coastguard Worker 
3348*344a7f5eSAndroid Build Coastguard Worker 
3349*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) __extension__ ({ \
3350*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vfnmsubps512_mask3((__v16sf)(__m512)(A), \
3351*344a7f5eSAndroid Build Coastguard Worker                                             (__v16sf)(__m512)(B), \
3352*344a7f5eSAndroid Build Coastguard Worker                                             (__v16sf)(__m512)(C), \
3353*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), (int)(R)); })
3354*344a7f5eSAndroid Build Coastguard Worker 
3355*344a7f5eSAndroid Build Coastguard Worker 
3356*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_fnmsub_ps(__m512 __A,__mmask16 __U,__m512 __B,__m512 __C)3357*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
3358*344a7f5eSAndroid Build Coastguard Worker {
3359*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
3360*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __B,
3361*344a7f5eSAndroid Build Coastguard Worker                                                     (__v16sf) __C,
3362*344a7f5eSAndroid Build Coastguard Worker                                                     (__mmask16) __U,
3363*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
3364*344a7f5eSAndroid Build Coastguard Worker }
3365*344a7f5eSAndroid Build Coastguard Worker 
3366*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask3_fnmsub_ps(__m512 __A,__m512 __B,__m512 __C,__mmask16 __U)3367*344a7f5eSAndroid Build Coastguard Worker _mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
3368*344a7f5eSAndroid Build Coastguard Worker {
3369*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
3370*344a7f5eSAndroid Build Coastguard Worker                                                      (__v16sf) __B,
3371*344a7f5eSAndroid Build Coastguard Worker                                                      (__v16sf) __C,
3372*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask16) __U,
3373*344a7f5eSAndroid Build Coastguard Worker                                                      _MM_FROUND_CUR_DIRECTION);
3374*344a7f5eSAndroid Build Coastguard Worker }
3375*344a7f5eSAndroid Build Coastguard Worker 
3376*344a7f5eSAndroid Build Coastguard Worker 
3377*344a7f5eSAndroid Build Coastguard Worker 
3378*344a7f5eSAndroid Build Coastguard Worker /* Vector permutations */
3379*344a7f5eSAndroid Build Coastguard Worker 
3380*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_permutex2var_epi32(__m512i __A,__m512i __I,__m512i __B)3381*344a7f5eSAndroid Build Coastguard Worker _mm512_permutex2var_epi32(__m512i __A, __m512i __I, __m512i __B)
3382*344a7f5eSAndroid Build Coastguard Worker {
3383*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
3384*344a7f5eSAndroid Build Coastguard Worker                                                        /* idx */ ,
3385*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16si) __A,
3386*344a7f5eSAndroid Build Coastguard Worker                                                        (__v16si) __B,
3387*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask16) -1);
3388*344a7f5eSAndroid Build Coastguard Worker }
3389*344a7f5eSAndroid Build Coastguard Worker 
3390*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_permutex2var_epi32(__m512i __A,__mmask16 __U,__m512i __I,__m512i __B)3391*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U,
3392*344a7f5eSAndroid Build Coastguard Worker                                 __m512i __I, __m512i __B)
3393*344a7f5eSAndroid Build Coastguard Worker {
3394*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
3395*344a7f5eSAndroid Build Coastguard Worker                                                         /* idx */ ,
3396*344a7f5eSAndroid Build Coastguard Worker                                                         (__v16si) __A,
3397*344a7f5eSAndroid Build Coastguard Worker                                                         (__v16si) __B,
3398*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask16) __U);
3399*344a7f5eSAndroid Build Coastguard Worker }
3400*344a7f5eSAndroid Build Coastguard Worker 
3401*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_permutex2var_epi32(__mmask16 __U,__m512i __A,__m512i __I,__m512i __B)3402*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,
3403*344a7f5eSAndroid Build Coastguard Worker                                  __m512i __I, __m512i __B)
3404*344a7f5eSAndroid Build Coastguard Worker {
3405*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I
3406*344a7f5eSAndroid Build Coastguard Worker                                                         /* idx */ ,
3407*344a7f5eSAndroid Build Coastguard Worker                                                         (__v16si) __A,
3408*344a7f5eSAndroid Build Coastguard Worker                                                         (__v16si) __B,
3409*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask16) __U);
3410*344a7f5eSAndroid Build Coastguard Worker }
3411*344a7f5eSAndroid Build Coastguard Worker 
3412*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_permutex2var_epi64(__m512i __A,__m512i __I,__m512i __B)3413*344a7f5eSAndroid Build Coastguard Worker _mm512_permutex2var_epi64(__m512i __A, __m512i __I, __m512i __B)
3414*344a7f5eSAndroid Build Coastguard Worker {
3415*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
3416*344a7f5eSAndroid Build Coastguard Worker                                                        /* idx */ ,
3417*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8di) __A,
3418*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8di) __B,
3419*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask8) -1);
3420*344a7f5eSAndroid Build Coastguard Worker }
3421*344a7f5eSAndroid Build Coastguard Worker 
3422*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_permutex2var_epi64(__m512i __A,__mmask8 __U,__m512i __I,__m512i __B)3423*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I,
3424*344a7f5eSAndroid Build Coastguard Worker                                 __m512i __B)
3425*344a7f5eSAndroid Build Coastguard Worker {
3426*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
3427*344a7f5eSAndroid Build Coastguard Worker                                                        /* idx */ ,
3428*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8di) __A,
3429*344a7f5eSAndroid Build Coastguard Worker                                                        (__v8di) __B,
3430*344a7f5eSAndroid Build Coastguard Worker                                                        (__mmask8) __U);
3431*344a7f5eSAndroid Build Coastguard Worker }
3432*344a7f5eSAndroid Build Coastguard Worker 
3433*344a7f5eSAndroid Build Coastguard Worker 
3434*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_permutex2var_epi64(__mmask8 __U,__m512i __A,__m512i __I,__m512i __B)3435*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,
3436*344a7f5eSAndroid Build Coastguard Worker          __m512i __I, __m512i __B)
3437*344a7f5eSAndroid Build Coastguard Worker {
3438*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I
3439*344a7f5eSAndroid Build Coastguard Worker                                                         /* idx */ ,
3440*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8di) __A,
3441*344a7f5eSAndroid Build Coastguard Worker                                                         (__v8di) __B,
3442*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask8) __U);
3443*344a7f5eSAndroid Build Coastguard Worker }
3444*344a7f5eSAndroid Build Coastguard Worker 
3445*344a7f5eSAndroid Build Coastguard Worker #define _mm512_alignr_epi64(A, B, I) __extension__ ({ \
3446*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \
3447*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(B), (int)(I), \
3448*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
3449*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1); })
3450*344a7f5eSAndroid Build Coastguard Worker 
3451*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_alignr_epi64(W, U, A, B, imm) __extension__({\
3452*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \
3453*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(B), (int)(imm), \
3454*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(W), \
3455*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
3456*344a7f5eSAndroid Build Coastguard Worker 
3457*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_alignr_epi64(U, A, B, imm) __extension__({\
3458*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \
3459*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(B), (int)(imm), \
3460*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
3461*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
3462*344a7f5eSAndroid Build Coastguard Worker 
3463*344a7f5eSAndroid Build Coastguard Worker #define _mm512_alignr_epi32(A, B, I) __extension__ ({ \
3464*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \
3465*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(B), (int)(I), \
3466*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
3467*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1); })
3468*344a7f5eSAndroid Build Coastguard Worker 
3469*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({\
3470*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \
3471*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(B), (int)(imm), \
3472*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(W), \
3473*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
3474*344a7f5eSAndroid Build Coastguard Worker 
3475*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_alignr_epi32(U, A, B, imm) __extension__({\
3476*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \
3477*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(B), (int)(imm), \
3478*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
3479*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
3480*344a7f5eSAndroid Build Coastguard Worker /* Vector Extract */
3481*344a7f5eSAndroid Build Coastguard Worker 
3482*344a7f5eSAndroid Build Coastguard Worker #define _mm512_extractf64x4_pd(A, I) __extension__ ({                    \
3483*344a7f5eSAndroid Build Coastguard Worker   (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(I), \
3484*344a7f5eSAndroid Build Coastguard Worker                                             (__v4df)_mm256_setzero_si256(), \
3485*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1); })
3486*344a7f5eSAndroid Build Coastguard Worker 
3487*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_extractf64x4_pd(W, U, A, imm) __extension__ ({\
3488*344a7f5eSAndroid Build Coastguard Worker   (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(imm), \
3489*344a7f5eSAndroid Build Coastguard Worker                                             (__v4df)(__m256d)(W), \
3490*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
3491*344a7f5eSAndroid Build Coastguard Worker 
3492*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_extractf64x4_pd(U, A, imm) __extension__ ({\
3493*344a7f5eSAndroid Build Coastguard Worker   (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(imm), \
3494*344a7f5eSAndroid Build Coastguard Worker                                             (__v4df)_mm256_setzero_pd(), \
3495*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
3496*344a7f5eSAndroid Build Coastguard Worker 
3497*344a7f5eSAndroid Build Coastguard Worker #define _mm512_extractf32x4_ps(A, I) __extension__ ({                    \
3498*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(I), \
3499*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)_mm_setzero_ps(), \
3500*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1); })
3501*344a7f5eSAndroid Build Coastguard Worker 
3502*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({\
3503*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(imm), \
3504*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)(__m128)(W), \
3505*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U)); })
3506*344a7f5eSAndroid Build Coastguard Worker 
3507*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_extractf32x4_ps(U, A, imm) __extension__ ({\
3508*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(imm), \
3509*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)_mm_setzero_ps(), \
3510*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U)); })
3511*344a7f5eSAndroid Build Coastguard Worker /* Vector Blend */
3512*344a7f5eSAndroid Build Coastguard Worker 
3513*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_mask_blend_pd(__mmask8 __U,__m512d __A,__m512d __W)3514*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_blend_pd(__mmask8 __U, __m512d __A, __m512d __W)
3515*344a7f5eSAndroid Build Coastguard Worker {
3516*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U,
3517*344a7f5eSAndroid Build Coastguard Worker                  (__v8df) __W,
3518*344a7f5eSAndroid Build Coastguard Worker                  (__v8df) __A);
3519*344a7f5eSAndroid Build Coastguard Worker }
3520*344a7f5eSAndroid Build Coastguard Worker 
3521*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_mask_blend_ps(__mmask16 __U,__m512 __A,__m512 __W)3522*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_blend_ps(__mmask16 __U, __m512 __A, __m512 __W)
3523*344a7f5eSAndroid Build Coastguard Worker {
3524*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U,
3525*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) __W,
3526*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) __A);
3527*344a7f5eSAndroid Build Coastguard Worker }
3528*344a7f5eSAndroid Build Coastguard Worker 
3529*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_blend_epi64(__mmask8 __U,__m512i __A,__m512i __W)3530*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_blend_epi64(__mmask8 __U, __m512i __A, __m512i __W)
3531*344a7f5eSAndroid Build Coastguard Worker {
3532*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U,
3533*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
3534*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __A);
3535*344a7f5eSAndroid Build Coastguard Worker }
3536*344a7f5eSAndroid Build Coastguard Worker 
3537*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_blend_epi32(__mmask16 __U,__m512i __A,__m512i __W)3538*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_blend_epi32(__mmask16 __U, __m512i __A, __m512i __W)
3539*344a7f5eSAndroid Build Coastguard Worker {
3540*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U,
3541*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __W,
3542*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __A);
3543*344a7f5eSAndroid Build Coastguard Worker }
3544*344a7f5eSAndroid Build Coastguard Worker 
3545*344a7f5eSAndroid Build Coastguard Worker /* Compare */
3546*344a7f5eSAndroid Build Coastguard Worker 
3547*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_round_ps_mask(A, B, P, R) __extension__ ({ \
3548*344a7f5eSAndroid Build Coastguard Worker   (__mmask16)__builtin_ia32_cmpps512_mask((__v16sf)(__m512)(A), \
3549*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), (int)(P), \
3550*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1, (int)(R)); })
3551*344a7f5eSAndroid Build Coastguard Worker 
3552*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_round_ps_mask(U, A, B, P, R) __extension__ ({ \
3553*344a7f5eSAndroid Build Coastguard Worker   (__mmask16)__builtin_ia32_cmpps512_mask((__v16sf)(__m512)(A), \
3554*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), (int)(P), \
3555*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
3556*344a7f5eSAndroid Build Coastguard Worker 
3557*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_ps_mask(A, B, P) \
3558*344a7f5eSAndroid Build Coastguard Worker   _mm512_cmp_round_ps_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION)
3559*344a7f5eSAndroid Build Coastguard Worker 
3560*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_ps_mask(U, A, B, P) \
3561*344a7f5eSAndroid Build Coastguard Worker   _mm512_mask_cmp_round_ps_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION)
3562*344a7f5eSAndroid Build Coastguard Worker 
3563*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_round_pd_mask(A, B, P, R) __extension__ ({ \
3564*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmppd512_mask((__v8df)(__m512d)(A), \
3565*344a7f5eSAndroid Build Coastguard Worker                                          (__v8df)(__m512d)(B), (int)(P), \
3566*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1, (int)(R)); })
3567*344a7f5eSAndroid Build Coastguard Worker 
3568*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_round_pd_mask(U, A, B, P, R) __extension__ ({ \
3569*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmppd512_mask((__v8df)(__m512d)(A), \
3570*344a7f5eSAndroid Build Coastguard Worker                                          (__v8df)(__m512d)(B), (int)(P), \
3571*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U), (int)(R)); })
3572*344a7f5eSAndroid Build Coastguard Worker 
3573*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_pd_mask(A, B, P) \
3574*344a7f5eSAndroid Build Coastguard Worker   _mm512_cmp_round_pd_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION)
3575*344a7f5eSAndroid Build Coastguard Worker 
3576*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_pd_mask(U, A, B, P) \
3577*344a7f5eSAndroid Build Coastguard Worker   _mm512_mask_cmp_round_pd_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION)
3578*344a7f5eSAndroid Build Coastguard Worker 
3579*344a7f5eSAndroid Build Coastguard Worker /* Conversion */
3580*344a7f5eSAndroid Build Coastguard Worker 
3581*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvtt_roundps_epu32(A, R) __extension__ ({ \
3582*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \
3583*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)_mm512_undefined_epi32(), \
3584*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)-1, (int)(R)); })
3585*344a7f5eSAndroid Build Coastguard Worker 
3586*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvtt_roundps_epu32(W, U, A, R) __extension__ ({ \
3587*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \
3588*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)(__m512i)(W), \
3589*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)(U), (int)(R)); })
3590*344a7f5eSAndroid Build Coastguard Worker 
3591*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvtt_roundps_epu32(U, A, R) __extension__ ({ \
3592*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \
3593*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)_mm512_setzero_si512(), \
3594*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask16)(U), (int)(R)); })
3595*344a7f5eSAndroid Build Coastguard Worker 
3596*344a7f5eSAndroid Build Coastguard Worker 
3597*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_cvttps_epu32(__m512 __A)3598*344a7f5eSAndroid Build Coastguard Worker _mm512_cvttps_epu32(__m512 __A)
3599*344a7f5eSAndroid Build Coastguard Worker {
3600*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
3601*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
3602*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
3603*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) -1,
3604*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
3605*344a7f5eSAndroid Build Coastguard Worker }
3606*344a7f5eSAndroid Build Coastguard Worker 
3607*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvttps_epu32(__m512i __W,__mmask16 __U,__m512 __A)3608*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
3609*344a7f5eSAndroid Build Coastguard Worker {
3610*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
3611*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __W,
3612*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U,
3613*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CUR_DIRECTION);
3614*344a7f5eSAndroid Build Coastguard Worker }
3615*344a7f5eSAndroid Build Coastguard Worker 
3616*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvttps_epu32(__mmask16 __U,__m512 __A)3617*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
3618*344a7f5eSAndroid Build Coastguard Worker {
3619*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
3620*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) _mm512_setzero_si512 (),
3621*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U,
3622*344a7f5eSAndroid Build Coastguard Worker                    _MM_FROUND_CUR_DIRECTION);
3623*344a7f5eSAndroid Build Coastguard Worker }
3624*344a7f5eSAndroid Build Coastguard Worker 
3625*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundepi32_ps(A, R) __extension__ ({ \
3626*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \
3627*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps(), \
3628*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1, (int)(R)); })
3629*344a7f5eSAndroid Build Coastguard Worker 
3630*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundepi32_ps(W, U, A, R) __extension__ ({ \
3631*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \
3632*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(W), \
3633*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
3634*344a7f5eSAndroid Build Coastguard Worker 
3635*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundepi32_ps(U, A, R) __extension__ ({ \
3636*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \
3637*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps(), \
3638*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
3639*344a7f5eSAndroid Build Coastguard Worker 
3640*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundepu32_ps(A, R) __extension__ ({ \
3641*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \
3642*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_setzero_ps(), \
3643*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)-1, (int)(R)); })
3644*344a7f5eSAndroid Build Coastguard Worker 
3645*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundepu32_ps(W, U, A, R) __extension__ ({ \
3646*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \
3647*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(W), \
3648*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3649*344a7f5eSAndroid Build Coastguard Worker 
3650*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundepu32_ps(U, A, R) __extension__ ({ \
3651*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \
3652*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_setzero_ps(), \
3653*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3654*344a7f5eSAndroid Build Coastguard Worker 
3655*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_cvtepu32_ps(__m512i __A)3656*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu32_ps (__m512i __A)
3657*344a7f5eSAndroid Build Coastguard Worker {
3658*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
3659*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) _mm512_undefined_ps (),
3660*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) -1,
3661*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3662*344a7f5eSAndroid Build Coastguard Worker }
3663*344a7f5eSAndroid Build Coastguard Worker 
3664*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu32_ps(__m512 __W,__mmask16 __U,__m512i __A)3665*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
3666*344a7f5eSAndroid Build Coastguard Worker {
3667*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
3668*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __W,
3669*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
3670*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3671*344a7f5eSAndroid Build Coastguard Worker }
3672*344a7f5eSAndroid Build Coastguard Worker 
3673*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu32_ps(__mmask16 __U,__m512i __A)3674*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
3675*344a7f5eSAndroid Build Coastguard Worker {
3676*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
3677*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) _mm512_setzero_ps (),
3678*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
3679*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3680*344a7f5eSAndroid Build Coastguard Worker }
3681*344a7f5eSAndroid Build Coastguard Worker 
3682*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_cvtepi32_pd(__m256i __A)3683*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi32_pd(__m256i __A)
3684*344a7f5eSAndroid Build Coastguard Worker {
3685*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
3686*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
3687*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_pd (),
3688*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
3689*344a7f5eSAndroid Build Coastguard Worker }
3690*344a7f5eSAndroid Build Coastguard Worker 
3691*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_pd(__m512d __W,__mmask8 __U,__m256i __A)3692*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
3693*344a7f5eSAndroid Build Coastguard Worker {
3694*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
3695*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
3696*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
3697*344a7f5eSAndroid Build Coastguard Worker }
3698*344a7f5eSAndroid Build Coastguard Worker 
3699*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi32_pd(__mmask8 __U,__m256i __A)3700*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
3701*344a7f5eSAndroid Build Coastguard Worker {
3702*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
3703*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) _mm512_setzero_pd (),
3704*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
3705*344a7f5eSAndroid Build Coastguard Worker }
3706*344a7f5eSAndroid Build Coastguard Worker 
3707*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_cvtepi32_ps(__m512i __A)3708*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi32_ps (__m512i __A)
3709*344a7f5eSAndroid Build Coastguard Worker {
3710*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
3711*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) _mm512_undefined_ps (),
3712*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1,
3713*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3714*344a7f5eSAndroid Build Coastguard Worker }
3715*344a7f5eSAndroid Build Coastguard Worker 
3716*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_ps(__m512 __W,__mmask16 __U,__m512i __A)3717*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
3718*344a7f5eSAndroid Build Coastguard Worker {
3719*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
3720*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) __W,
3721*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U,
3722*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3723*344a7f5eSAndroid Build Coastguard Worker }
3724*344a7f5eSAndroid Build Coastguard Worker 
3725*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi32_ps(__mmask16 __U,__m512i __A)3726*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
3727*344a7f5eSAndroid Build Coastguard Worker {
3728*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
3729*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) _mm512_setzero_ps (),
3730*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U,
3731*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3732*344a7f5eSAndroid Build Coastguard Worker }
3733*344a7f5eSAndroid Build Coastguard Worker 
3734*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_cvtepu32_pd(__m256i __A)3735*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu32_pd(__m256i __A)
3736*344a7f5eSAndroid Build Coastguard Worker {
3737*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
3738*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
3739*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_pd (),
3740*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
3741*344a7f5eSAndroid Build Coastguard Worker }
3742*344a7f5eSAndroid Build Coastguard Worker 
3743*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu32_pd(__m512d __W,__mmask8 __U,__m256i __A)3744*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
3745*344a7f5eSAndroid Build Coastguard Worker {
3746*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
3747*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __W,
3748*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
3749*344a7f5eSAndroid Build Coastguard Worker }
3750*344a7f5eSAndroid Build Coastguard Worker 
3751*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu32_pd(__mmask8 __U,__m256i __A)3752*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
3753*344a7f5eSAndroid Build Coastguard Worker {
3754*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
3755*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) _mm512_setzero_pd (),
3756*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
3757*344a7f5eSAndroid Build Coastguard Worker }
3758*344a7f5eSAndroid Build Coastguard Worker 
3759*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundpd_ps(A, R) __extension__ ({ \
3760*344a7f5eSAndroid Build Coastguard Worker   (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \
3761*344a7f5eSAndroid Build Coastguard Worker                                           (__v8sf)_mm256_setzero_ps(), \
3762*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
3763*344a7f5eSAndroid Build Coastguard Worker 
3764*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundpd_ps(W, U, A, R) __extension__ ({ \
3765*344a7f5eSAndroid Build Coastguard Worker   (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \
3766*344a7f5eSAndroid Build Coastguard Worker                                           (__v8sf)(__m256)(W), (__mmask8)(U), \
3767*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
3768*344a7f5eSAndroid Build Coastguard Worker 
3769*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundpd_ps(U, A, R) __extension__ ({ \
3770*344a7f5eSAndroid Build Coastguard Worker   (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \
3771*344a7f5eSAndroid Build Coastguard Worker                                           (__v8sf)_mm256_setzero_ps(), \
3772*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
3773*344a7f5eSAndroid Build Coastguard Worker 
3774*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm512_cvtpd_ps(__m512d __A)3775*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtpd_ps (__m512d __A)
3776*344a7f5eSAndroid Build Coastguard Worker {
3777*344a7f5eSAndroid Build Coastguard Worker   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
3778*344a7f5eSAndroid Build Coastguard Worker                 (__v8sf) _mm256_undefined_ps (),
3779*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1,
3780*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3781*344a7f5eSAndroid Build Coastguard Worker }
3782*344a7f5eSAndroid Build Coastguard Worker 
3783*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm512_mask_cvtpd_ps(__m256 __W,__mmask8 __U,__m512d __A)3784*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
3785*344a7f5eSAndroid Build Coastguard Worker {
3786*344a7f5eSAndroid Build Coastguard Worker   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
3787*344a7f5eSAndroid Build Coastguard Worker                 (__v8sf) __W,
3788*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
3789*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3790*344a7f5eSAndroid Build Coastguard Worker }
3791*344a7f5eSAndroid Build Coastguard Worker 
3792*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256 __DEFAULT_FN_ATTRS
_mm512_maskz_cvtpd_ps(__mmask8 __U,__m512d __A)3793*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
3794*344a7f5eSAndroid Build Coastguard Worker {
3795*344a7f5eSAndroid Build Coastguard Worker   return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
3796*344a7f5eSAndroid Build Coastguard Worker                 (__v8sf) _mm256_setzero_ps (),
3797*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
3798*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3799*344a7f5eSAndroid Build Coastguard Worker }
3800*344a7f5eSAndroid Build Coastguard Worker 
3801*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundps_ph(A, I) __extension__ ({ \
3802*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \
3803*344a7f5eSAndroid Build Coastguard Worker                                             (__v16hi)_mm256_undefined_si256(), \
3804*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1); })
3805*344a7f5eSAndroid Build Coastguard Worker 
3806*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundps_ph(U, W, A, I) __extension__ ({ \
3807*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \
3808*344a7f5eSAndroid Build Coastguard Worker                                             (__v16hi)(__m256i)(U), \
3809*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(W)); })
3810*344a7f5eSAndroid Build Coastguard Worker 
3811*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundps_ph(W, A, I) __extension__ ({ \
3812*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \
3813*344a7f5eSAndroid Build Coastguard Worker                                             (__v16hi)_mm256_setzero_si256(), \
3814*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(W)); })
3815*344a7f5eSAndroid Build Coastguard Worker 
3816*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvtps_ph(A, I) __extension__ ({ \
3817*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \
3818*344a7f5eSAndroid Build Coastguard Worker                                             (__v16hi)_mm256_setzero_si256(), \
3819*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1); })
3820*344a7f5eSAndroid Build Coastguard Worker 
3821*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvtps_ph(U, W, A, I) __extension__ ({ \
3822*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \
3823*344a7f5eSAndroid Build Coastguard Worker                                             (__v16hi)(__m256i)(U), \
3824*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(W)); })
3825*344a7f5eSAndroid Build Coastguard Worker 
3826*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvtps_ph(W, A, I) __extension__ ({\
3827*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \
3828*344a7f5eSAndroid Build Coastguard Worker                                             (__v16hi)_mm256_setzero_si256(), \
3829*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(W)); })
3830*344a7f5eSAndroid Build Coastguard Worker 
3831*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundph_ps(A, R) __extension__ ({ \
3832*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \
3833*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_undefined_ps(), \
3834*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)-1, (int)(R)); })
3835*344a7f5eSAndroid Build Coastguard Worker 
3836*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundph_ps(W, U, A, R) __extension__ ({ \
3837*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \
3838*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(W), \
3839*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3840*344a7f5eSAndroid Build Coastguard Worker 
3841*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundph_ps(U, A, R) __extension__ ({ \
3842*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \
3843*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_setzero_ps(), \
3844*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3845*344a7f5eSAndroid Build Coastguard Worker 
3846*344a7f5eSAndroid Build Coastguard Worker 
3847*344a7f5eSAndroid Build Coastguard Worker static  __inline __m512 __DEFAULT_FN_ATTRS
_mm512_cvtph_ps(__m256i __A)3848*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtph_ps(__m256i __A)
3849*344a7f5eSAndroid Build Coastguard Worker {
3850*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
3851*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf)
3852*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_ps (),
3853*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1,
3854*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
3855*344a7f5eSAndroid Build Coastguard Worker }
3856*344a7f5eSAndroid Build Coastguard Worker 
3857*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_cvtph_ps(__m512 __W,__mmask16 __U,__m256i __A)3858*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
3859*344a7f5eSAndroid Build Coastguard Worker {
3860*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
3861*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __W,
3862*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
3863*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3864*344a7f5eSAndroid Build Coastguard Worker }
3865*344a7f5eSAndroid Build Coastguard Worker 
3866*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_cvtph_ps(__mmask16 __U,__m256i __A)3867*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
3868*344a7f5eSAndroid Build Coastguard Worker {
3869*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
3870*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) _mm512_setzero_ps (),
3871*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
3872*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3873*344a7f5eSAndroid Build Coastguard Worker }
3874*344a7f5eSAndroid Build Coastguard Worker 
3875*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvtt_roundpd_epi32(A, R) __extension__ ({ \
3876*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \
3877*344a7f5eSAndroid Build Coastguard Worker                                             (__v8si)_mm256_setzero_si256(), \
3878*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1, (int)(R)); })
3879*344a7f5eSAndroid Build Coastguard Worker 
3880*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvtt_roundpd_epi32(W, U, A, R) __extension__ ({ \
3881*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \
3882*344a7f5eSAndroid Build Coastguard Worker                                             (__v8si)(__m256i)(W), \
3883*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
3884*344a7f5eSAndroid Build Coastguard Worker 
3885*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvtt_roundpd_epi32(U, A, R) __extension__ ({ \
3886*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \
3887*344a7f5eSAndroid Build Coastguard Worker                                             (__v8si)_mm256_setzero_si256(), \
3888*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
3889*344a7f5eSAndroid Build Coastguard Worker 
3890*344a7f5eSAndroid Build Coastguard Worker static __inline __m256i __DEFAULT_FN_ATTRS
_mm512_cvttpd_epi32(__m512d __a)3891*344a7f5eSAndroid Build Coastguard Worker _mm512_cvttpd_epi32(__m512d __a)
3892*344a7f5eSAndroid Build Coastguard Worker {
3893*344a7f5eSAndroid Build Coastguard Worker   return (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df) __a,
3894*344a7f5eSAndroid Build Coastguard Worker                                                    (__v8si)_mm256_setzero_si256(),
3895*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask8) -1,
3896*344a7f5eSAndroid Build Coastguard Worker                                                     _MM_FROUND_CUR_DIRECTION);
3897*344a7f5eSAndroid Build Coastguard Worker }
3898*344a7f5eSAndroid Build Coastguard Worker 
3899*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvttpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)3900*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
3901*344a7f5eSAndroid Build Coastguard Worker {
3902*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
3903*344a7f5eSAndroid Build Coastguard Worker                   (__v8si) __W,
3904*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
3905*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
3906*344a7f5eSAndroid Build Coastguard Worker }
3907*344a7f5eSAndroid Build Coastguard Worker 
3908*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvttpd_epi32(__mmask8 __U,__m512d __A)3909*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
3910*344a7f5eSAndroid Build Coastguard Worker {
3911*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
3912*344a7f5eSAndroid Build Coastguard Worker                   (__v8si) _mm256_setzero_si256 (),
3913*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
3914*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
3915*344a7f5eSAndroid Build Coastguard Worker }
3916*344a7f5eSAndroid Build Coastguard Worker 
3917*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvtt_roundps_epi32(A, R) __extension__ ({ \
3918*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \
3919*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)_mm512_setzero_si512(), \
3920*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1, (int)(R)); })
3921*344a7f5eSAndroid Build Coastguard Worker 
3922*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvtt_roundps_epi32(W, U, A, R) __extension__ ({ \
3923*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \
3924*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(W), \
3925*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), (int)(R)); })
3926*344a7f5eSAndroid Build Coastguard Worker 
3927*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvtt_roundps_epi32(U, A, R) __extension__ ({ \
3928*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \
3929*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)_mm512_setzero_si512(), \
3930*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), (int)(R)); })
3931*344a7f5eSAndroid Build Coastguard Worker 
3932*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_cvttps_epi32(__m512 __a)3933*344a7f5eSAndroid Build Coastguard Worker _mm512_cvttps_epi32(__m512 __a)
3934*344a7f5eSAndroid Build Coastguard Worker {
3935*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)
3936*344a7f5eSAndroid Build Coastguard Worker     __builtin_ia32_cvttps2dq512_mask((__v16sf) __a,
3937*344a7f5eSAndroid Build Coastguard Worker                                      (__v16si) _mm512_setzero_si512 (),
3938*344a7f5eSAndroid Build Coastguard Worker                                      (__mmask16) -1, _MM_FROUND_CUR_DIRECTION);
3939*344a7f5eSAndroid Build Coastguard Worker }
3940*344a7f5eSAndroid Build Coastguard Worker 
3941*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvttps_epi32(__m512i __W,__mmask16 __U,__m512 __A)3942*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
3943*344a7f5eSAndroid Build Coastguard Worker {
3944*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
3945*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) __W,
3946*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U,
3947*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
3948*344a7f5eSAndroid Build Coastguard Worker }
3949*344a7f5eSAndroid Build Coastguard Worker 
3950*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvttps_epi32(__mmask16 __U,__m512 __A)3951*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
3952*344a7f5eSAndroid Build Coastguard Worker {
3953*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
3954*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) _mm512_setzero_si512 (),
3955*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U,
3956*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
3957*344a7f5eSAndroid Build Coastguard Worker }
3958*344a7f5eSAndroid Build Coastguard Worker 
3959*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundps_epi32(A, R) __extension__ ({ \
3960*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \
3961*344a7f5eSAndroid Build Coastguard Worker                                            (__v16si)_mm512_setzero_si512(), \
3962*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)-1, (int)(R)); })
3963*344a7f5eSAndroid Build Coastguard Worker 
3964*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundps_epi32(W, U, A, R) __extension__ ({ \
3965*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \
3966*344a7f5eSAndroid Build Coastguard Worker                                            (__v16si)(__m512i)(W), \
3967*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3968*344a7f5eSAndroid Build Coastguard Worker 
3969*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundps_epi32(U, A, R) __extension__ ({ \
3970*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \
3971*344a7f5eSAndroid Build Coastguard Worker                                            (__v16si)_mm512_setzero_si512(), \
3972*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
3973*344a7f5eSAndroid Build Coastguard Worker 
3974*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtps_epi32(__m512 __A)3975*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtps_epi32 (__m512 __A)
3976*344a7f5eSAndroid Build Coastguard Worker {
3977*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
3978*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) _mm512_undefined_epi32 (),
3979*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) -1,
3980*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3981*344a7f5eSAndroid Build Coastguard Worker }
3982*344a7f5eSAndroid Build Coastguard Worker 
3983*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtps_epi32(__m512i __W,__mmask16 __U,__m512 __A)3984*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
3985*344a7f5eSAndroid Build Coastguard Worker {
3986*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
3987*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __W,
3988*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
3989*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
3990*344a7f5eSAndroid Build Coastguard Worker }
3991*344a7f5eSAndroid Build Coastguard Worker 
3992*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtps_epi32(__mmask16 __U,__m512 __A)3993*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
3994*344a7f5eSAndroid Build Coastguard Worker {
3995*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
3996*344a7f5eSAndroid Build Coastguard Worker                  (__v16si)
3997*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_si512 (),
3998*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U,
3999*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
4000*344a7f5eSAndroid Build Coastguard Worker }
4001*344a7f5eSAndroid Build Coastguard Worker 
4002*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundpd_epi32(A, R) __extension__ ({ \
4003*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \
4004*344a7f5eSAndroid Build Coastguard Worker                                            (__v8si)_mm256_setzero_si256(), \
4005*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
4006*344a7f5eSAndroid Build Coastguard Worker 
4007*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundpd_epi32(W, U, A, R) __extension__ ({ \
4008*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \
4009*344a7f5eSAndroid Build Coastguard Worker                                            (__v8si)(__m256i)(W), \
4010*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
4011*344a7f5eSAndroid Build Coastguard Worker 
4012*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundpd_epi32(U, A, R) __extension__ ({ \
4013*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \
4014*344a7f5eSAndroid Build Coastguard Worker                                            (__v8si)_mm256_setzero_si256(), \
4015*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
4016*344a7f5eSAndroid Build Coastguard Worker 
4017*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtpd_epi32(__m512d __A)4018*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtpd_epi32 (__m512d __A)
4019*344a7f5eSAndroid Build Coastguard Worker {
4020*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4021*344a7f5eSAndroid Build Coastguard Worker                  (__v8si)
4022*344a7f5eSAndroid Build Coastguard Worker                  _mm256_undefined_si256 (),
4023*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1,
4024*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
4025*344a7f5eSAndroid Build Coastguard Worker }
4026*344a7f5eSAndroid Build Coastguard Worker 
4027*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtpd_epi32(__m256i __W,__mmask8 __U,__m512d __A)4028*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
4029*344a7f5eSAndroid Build Coastguard Worker {
4030*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4031*344a7f5eSAndroid Build Coastguard Worker                  (__v8si) __W,
4032*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U,
4033*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
4034*344a7f5eSAndroid Build Coastguard Worker }
4035*344a7f5eSAndroid Build Coastguard Worker 
4036*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtpd_epi32(__mmask8 __U,__m512d __A)4037*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
4038*344a7f5eSAndroid Build Coastguard Worker {
4039*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4040*344a7f5eSAndroid Build Coastguard Worker                  (__v8si)
4041*344a7f5eSAndroid Build Coastguard Worker                  _mm256_setzero_si256 (),
4042*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U,
4043*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
4044*344a7f5eSAndroid Build Coastguard Worker }
4045*344a7f5eSAndroid Build Coastguard Worker 
4046*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundps_epu32(A, R) __extension__ ({ \
4047*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \
4048*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)_mm512_setzero_si512(), \
4049*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1, (int)(R)); })
4050*344a7f5eSAndroid Build Coastguard Worker 
4051*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundps_epu32(W, U, A, R) __extension__ ({ \
4052*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \
4053*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(W), \
4054*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), (int)(R)); })
4055*344a7f5eSAndroid Build Coastguard Worker 
4056*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundps_epu32(U, A, R) __extension__ ({ \
4057*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \
4058*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)_mm512_setzero_si512(), \
4059*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), (int)(R)); })
4060*344a7f5eSAndroid Build Coastguard Worker 
4061*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtps_epu32(__m512 __A)4062*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtps_epu32 ( __m512 __A)
4063*344a7f5eSAndroid Build Coastguard Worker {
4064*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,\
4065*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)\
4066*344a7f5eSAndroid Build Coastguard Worker                   _mm512_undefined_epi32 (),\
4067*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) -1,\
4068*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);\
4069*344a7f5eSAndroid Build Coastguard Worker }
4070*344a7f5eSAndroid Build Coastguard Worker 
4071*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtps_epu32(__m512i __W,__mmask16 __U,__m512 __A)4072*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
4073*344a7f5eSAndroid Build Coastguard Worker {
4074*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
4075*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) __W,
4076*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U,
4077*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
4078*344a7f5eSAndroid Build Coastguard Worker }
4079*344a7f5eSAndroid Build Coastguard Worker 
4080*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtps_epu32(__mmask16 __U,__m512 __A)4081*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtps_epu32 ( __mmask16 __U, __m512 __A)
4082*344a7f5eSAndroid Build Coastguard Worker {
4083*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
4084*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
4085*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
4086*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U ,
4087*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
4088*344a7f5eSAndroid Build Coastguard Worker }
4089*344a7f5eSAndroid Build Coastguard Worker 
4090*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundpd_epu32(A, R) __extension__ ({ \
4091*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \
4092*344a7f5eSAndroid Build Coastguard Worker                                             (__v8si)_mm256_setzero_si256(), \
4093*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1, (int)(R)); })
4094*344a7f5eSAndroid Build Coastguard Worker 
4095*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundpd_epu32(W, U, A, R) __extension__ ({ \
4096*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \
4097*344a7f5eSAndroid Build Coastguard Worker                                             (__v8si)(W), \
4098*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
4099*344a7f5eSAndroid Build Coastguard Worker 
4100*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundpd_epu32(U, A, R) __extension__ ({ \
4101*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \
4102*344a7f5eSAndroid Build Coastguard Worker                                             (__v8si)_mm256_setzero_si256(), \
4103*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
4104*344a7f5eSAndroid Build Coastguard Worker 
4105*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtpd_epu32(__m512d __A)4106*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtpd_epu32 (__m512d __A)
4107*344a7f5eSAndroid Build Coastguard Worker {
4108*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4109*344a7f5eSAndroid Build Coastguard Worker                   (__v8si)
4110*344a7f5eSAndroid Build Coastguard Worker                   _mm256_undefined_si256 (),
4111*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) -1,
4112*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
4113*344a7f5eSAndroid Build Coastguard Worker }
4114*344a7f5eSAndroid Build Coastguard Worker 
4115*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)4116*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
4117*344a7f5eSAndroid Build Coastguard Worker {
4118*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4119*344a7f5eSAndroid Build Coastguard Worker                   (__v8si) __W,
4120*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
4121*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
4122*344a7f5eSAndroid Build Coastguard Worker }
4123*344a7f5eSAndroid Build Coastguard Worker 
4124*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtpd_epu32(__mmask8 __U,__m512d __A)4125*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
4126*344a7f5eSAndroid Build Coastguard Worker {
4127*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4128*344a7f5eSAndroid Build Coastguard Worker                   (__v8si)
4129*344a7f5eSAndroid Build Coastguard Worker                   _mm256_setzero_si256 (),
4130*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
4131*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
4132*344a7f5eSAndroid Build Coastguard Worker }
4133*344a7f5eSAndroid Build Coastguard Worker 
4134*344a7f5eSAndroid Build Coastguard Worker /* Unpack and Interleave */
4135*344a7f5eSAndroid Build Coastguard Worker 
4136*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_unpackhi_pd(__m512d __a,__m512d __b)4137*344a7f5eSAndroid Build Coastguard Worker _mm512_unpackhi_pd(__m512d __a, __m512d __b)
4138*344a7f5eSAndroid Build Coastguard Worker {
4139*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b,
4140*344a7f5eSAndroid Build Coastguard Worker                                           1, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6);
4141*344a7f5eSAndroid Build Coastguard Worker }
4142*344a7f5eSAndroid Build Coastguard Worker 
4143*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_unpackhi_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)4144*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
4145*344a7f5eSAndroid Build Coastguard Worker {
4146*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,
4147*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_unpackhi_pd(__A, __B),
4148*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)__W);
4149*344a7f5eSAndroid Build Coastguard Worker }
4150*344a7f5eSAndroid Build Coastguard Worker 
4151*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_unpackhi_pd(__mmask8 __U,__m512d __A,__m512d __B)4152*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B)
4153*344a7f5eSAndroid Build Coastguard Worker {
4154*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,
4155*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_unpackhi_pd(__A, __B),
4156*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_setzero_pd());
4157*344a7f5eSAndroid Build Coastguard Worker }
4158*344a7f5eSAndroid Build Coastguard Worker 
4159*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_unpacklo_pd(__m512d __a,__m512d __b)4160*344a7f5eSAndroid Build Coastguard Worker _mm512_unpacklo_pd(__m512d __a, __m512d __b)
4161*344a7f5eSAndroid Build Coastguard Worker {
4162*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b,
4163*344a7f5eSAndroid Build Coastguard Worker                                           0, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6);
4164*344a7f5eSAndroid Build Coastguard Worker }
4165*344a7f5eSAndroid Build Coastguard Worker 
4166*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_unpacklo_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)4167*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
4168*344a7f5eSAndroid Build Coastguard Worker {
4169*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,
4170*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_unpacklo_pd(__A, __B),
4171*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)__W);
4172*344a7f5eSAndroid Build Coastguard Worker }
4173*344a7f5eSAndroid Build Coastguard Worker 
4174*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_unpacklo_pd(__mmask8 __U,__m512d __A,__m512d __B)4175*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)
4176*344a7f5eSAndroid Build Coastguard Worker {
4177*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U,
4178*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_unpacklo_pd(__A, __B),
4179*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_setzero_pd());
4180*344a7f5eSAndroid Build Coastguard Worker }
4181*344a7f5eSAndroid Build Coastguard Worker 
4182*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_unpackhi_ps(__m512 __a,__m512 __b)4183*344a7f5eSAndroid Build Coastguard Worker _mm512_unpackhi_ps(__m512 __a, __m512 __b)
4184*344a7f5eSAndroid Build Coastguard Worker {
4185*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b,
4186*344a7f5eSAndroid Build Coastguard Worker                                          2,    18,    3,    19,
4187*344a7f5eSAndroid Build Coastguard Worker                                          2+4,  18+4,  3+4,  19+4,
4188*344a7f5eSAndroid Build Coastguard Worker                                          2+8,  18+8,  3+8,  19+8,
4189*344a7f5eSAndroid Build Coastguard Worker                                          2+12, 18+12, 3+12, 19+12);
4190*344a7f5eSAndroid Build Coastguard Worker }
4191*344a7f5eSAndroid Build Coastguard Worker 
4192*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_unpackhi_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)4193*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
4194*344a7f5eSAndroid Build Coastguard Worker {
4195*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,
4196*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_unpackhi_ps(__A, __B),
4197*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)__W);
4198*344a7f5eSAndroid Build Coastguard Worker }
4199*344a7f5eSAndroid Build Coastguard Worker 
4200*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_unpackhi_ps(__mmask16 __U,__m512 __A,__m512 __B)4201*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)
4202*344a7f5eSAndroid Build Coastguard Worker {
4203*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,
4204*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_unpackhi_ps(__A, __B),
4205*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps());
4206*344a7f5eSAndroid Build Coastguard Worker }
4207*344a7f5eSAndroid Build Coastguard Worker 
4208*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_unpacklo_ps(__m512 __a,__m512 __b)4209*344a7f5eSAndroid Build Coastguard Worker _mm512_unpacklo_ps(__m512 __a, __m512 __b)
4210*344a7f5eSAndroid Build Coastguard Worker {
4211*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b,
4212*344a7f5eSAndroid Build Coastguard Worker                                          0,    16,    1,    17,
4213*344a7f5eSAndroid Build Coastguard Worker                                          0+4,  16+4,  1+4,  17+4,
4214*344a7f5eSAndroid Build Coastguard Worker                                          0+8,  16+8,  1+8,  17+8,
4215*344a7f5eSAndroid Build Coastguard Worker                                          0+12, 16+12, 1+12, 17+12);
4216*344a7f5eSAndroid Build Coastguard Worker }
4217*344a7f5eSAndroid Build Coastguard Worker 
4218*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_unpacklo_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)4219*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
4220*344a7f5eSAndroid Build Coastguard Worker {
4221*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,
4222*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_unpacklo_ps(__A, __B),
4223*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)__W);
4224*344a7f5eSAndroid Build Coastguard Worker }
4225*344a7f5eSAndroid Build Coastguard Worker 
4226*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_unpacklo_ps(__mmask16 __U,__m512 __A,__m512 __B)4227*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)
4228*344a7f5eSAndroid Build Coastguard Worker {
4229*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16) __U,
4230*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_unpacklo_ps(__A, __B),
4231*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps());
4232*344a7f5eSAndroid Build Coastguard Worker }
4233*344a7f5eSAndroid Build Coastguard Worker 
4234*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpackhi_epi32(__m512i __A,__m512i __B)4235*344a7f5eSAndroid Build Coastguard Worker _mm512_unpackhi_epi32(__m512i __A, __m512i __B)
4236*344a7f5eSAndroid Build Coastguard Worker {
4237*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B,
4238*344a7f5eSAndroid Build Coastguard Worker                                           2,    18,    3,    19,
4239*344a7f5eSAndroid Build Coastguard Worker                                           2+4,  18+4,  3+4,  19+4,
4240*344a7f5eSAndroid Build Coastguard Worker                                           2+8,  18+8,  3+8,  19+8,
4241*344a7f5eSAndroid Build Coastguard Worker                                           2+12, 18+12, 3+12, 19+12);
4242*344a7f5eSAndroid Build Coastguard Worker }
4243*344a7f5eSAndroid Build Coastguard Worker 
4244*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpackhi_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)4245*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
4246*344a7f5eSAndroid Build Coastguard Worker {
4247*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,
4248*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)_mm512_unpackhi_epi32(__A, __B),
4249*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)__W);
4250*344a7f5eSAndroid Build Coastguard Worker }
4251*344a7f5eSAndroid Build Coastguard Worker 
4252*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpackhi_epi32(__mmask16 __U,__m512i __A,__m512i __B)4253*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B)
4254*344a7f5eSAndroid Build Coastguard Worker {
4255*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,
4256*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)_mm512_unpackhi_epi32(__A, __B),
4257*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)_mm512_setzero_si512());
4258*344a7f5eSAndroid Build Coastguard Worker }
4259*344a7f5eSAndroid Build Coastguard Worker 
4260*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpacklo_epi32(__m512i __A,__m512i __B)4261*344a7f5eSAndroid Build Coastguard Worker _mm512_unpacklo_epi32(__m512i __A, __m512i __B)
4262*344a7f5eSAndroid Build Coastguard Worker {
4263*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B,
4264*344a7f5eSAndroid Build Coastguard Worker                                           0,    16,    1,    17,
4265*344a7f5eSAndroid Build Coastguard Worker                                           0+4,  16+4,  1+4,  17+4,
4266*344a7f5eSAndroid Build Coastguard Worker                                           0+8,  16+8,  1+8,  17+8,
4267*344a7f5eSAndroid Build Coastguard Worker                                           0+12, 16+12, 1+12, 17+12);
4268*344a7f5eSAndroid Build Coastguard Worker }
4269*344a7f5eSAndroid Build Coastguard Worker 
4270*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpacklo_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)4271*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
4272*344a7f5eSAndroid Build Coastguard Worker {
4273*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,
4274*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)_mm512_unpacklo_epi32(__A, __B),
4275*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)__W);
4276*344a7f5eSAndroid Build Coastguard Worker }
4277*344a7f5eSAndroid Build Coastguard Worker 
4278*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpacklo_epi32(__mmask16 __U,__m512i __A,__m512i __B)4279*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B)
4280*344a7f5eSAndroid Build Coastguard Worker {
4281*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U,
4282*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)_mm512_unpacklo_epi32(__A, __B),
4283*344a7f5eSAndroid Build Coastguard Worker                                        (__v16si)_mm512_setzero_si512());
4284*344a7f5eSAndroid Build Coastguard Worker }
4285*344a7f5eSAndroid Build Coastguard Worker 
4286*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpackhi_epi64(__m512i __A,__m512i __B)4287*344a7f5eSAndroid Build Coastguard Worker _mm512_unpackhi_epi64(__m512i __A, __m512i __B)
4288*344a7f5eSAndroid Build Coastguard Worker {
4289*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B,
4290*344a7f5eSAndroid Build Coastguard Worker                                           1, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6);
4291*344a7f5eSAndroid Build Coastguard Worker }
4292*344a7f5eSAndroid Build Coastguard Worker 
4293*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpackhi_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)4294*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
4295*344a7f5eSAndroid Build Coastguard Worker {
4296*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,
4297*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_unpackhi_epi64(__A, __B),
4298*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)__W);
4299*344a7f5eSAndroid Build Coastguard Worker }
4300*344a7f5eSAndroid Build Coastguard Worker 
4301*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpackhi_epi64(__mmask8 __U,__m512i __A,__m512i __B)4302*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B)
4303*344a7f5eSAndroid Build Coastguard Worker {
4304*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,
4305*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_unpackhi_epi64(__A, __B),
4306*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_setzero_si512());
4307*344a7f5eSAndroid Build Coastguard Worker }
4308*344a7f5eSAndroid Build Coastguard Worker 
4309*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_unpacklo_epi64(__m512i __A,__m512i __B)4310*344a7f5eSAndroid Build Coastguard Worker _mm512_unpacklo_epi64 (__m512i __A, __m512i __B)
4311*344a7f5eSAndroid Build Coastguard Worker {
4312*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B,
4313*344a7f5eSAndroid Build Coastguard Worker                                           0, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6);
4314*344a7f5eSAndroid Build Coastguard Worker }
4315*344a7f5eSAndroid Build Coastguard Worker 
4316*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_unpacklo_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)4317*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
4318*344a7f5eSAndroid Build Coastguard Worker {
4319*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,
4320*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_unpacklo_epi64(__A, __B),
4321*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)__W);
4322*344a7f5eSAndroid Build Coastguard Worker }
4323*344a7f5eSAndroid Build Coastguard Worker 
4324*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_unpacklo_epi64(__mmask8 __U,__m512i __A,__m512i __B)4325*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
4326*344a7f5eSAndroid Build Coastguard Worker {
4327*344a7f5eSAndroid Build Coastguard Worker   return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U,
4328*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_unpacklo_epi64(__A, __B),
4329*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_setzero_si512());
4330*344a7f5eSAndroid Build Coastguard Worker }
4331*344a7f5eSAndroid Build Coastguard Worker 
4332*344a7f5eSAndroid Build Coastguard Worker /* Bit Test */
4333*344a7f5eSAndroid Build Coastguard Worker 
4334*344a7f5eSAndroid Build Coastguard Worker static __inline __mmask16 __DEFAULT_FN_ATTRS
_mm512_test_epi32_mask(__m512i __A,__m512i __B)4335*344a7f5eSAndroid Build Coastguard Worker _mm512_test_epi32_mask(__m512i __A, __m512i __B)
4336*344a7f5eSAndroid Build Coastguard Worker {
4337*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
4338*344a7f5eSAndroid Build Coastguard Worker             (__v16si) __B,
4339*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) -1);
4340*344a7f5eSAndroid Build Coastguard Worker }
4341*344a7f5eSAndroid Build Coastguard Worker 
4342*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_test_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)4343*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
4344*344a7f5eSAndroid Build Coastguard Worker {
4345*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
4346*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __B, __U);
4347*344a7f5eSAndroid Build Coastguard Worker }
4348*344a7f5eSAndroid Build Coastguard Worker 
4349*344a7f5eSAndroid Build Coastguard Worker static __inline __mmask8 __DEFAULT_FN_ATTRS
_mm512_test_epi64_mask(__m512i __A,__m512i __B)4350*344a7f5eSAndroid Build Coastguard Worker _mm512_test_epi64_mask(__m512i __A, __m512i __B)
4351*344a7f5eSAndroid Build Coastguard Worker {
4352*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A,
4353*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __B,
4354*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
4355*344a7f5eSAndroid Build Coastguard Worker }
4356*344a7f5eSAndroid Build Coastguard Worker 
4357*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_test_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)4358*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
4359*344a7f5eSAndroid Build Coastguard Worker {
4360*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U);
4361*344a7f5eSAndroid Build Coastguard Worker }
4362*344a7f5eSAndroid Build Coastguard Worker 
4363*344a7f5eSAndroid Build Coastguard Worker 
4364*344a7f5eSAndroid Build Coastguard Worker /* SIMD load ops */
4365*344a7f5eSAndroid Build Coastguard Worker 
4366*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_loadu_si512(void const * __P)4367*344a7f5eSAndroid Build Coastguard Worker _mm512_loadu_si512 (void const *__P)
4368*344a7f5eSAndroid Build Coastguard Worker {
4369*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
4370*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
4371*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
4372*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) -1);
4373*344a7f5eSAndroid Build Coastguard Worker }
4374*344a7f5eSAndroid Build Coastguard Worker 
4375*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_loadu_epi32(__m512i __W,__mmask16 __U,void const * __P)4376*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
4377*344a7f5eSAndroid Build Coastguard Worker {
4378*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
4379*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) __W,
4380*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U);
4381*344a7f5eSAndroid Build Coastguard Worker }
4382*344a7f5eSAndroid Build Coastguard Worker 
4383*344a7f5eSAndroid Build Coastguard Worker 
4384*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_loadu_epi32(__mmask16 __U,void const * __P)4385*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_loadu_epi32(__mmask16 __U, void const *__P)
4386*344a7f5eSAndroid Build Coastguard Worker {
4387*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *)__P,
4388*344a7f5eSAndroid Build Coastguard Worker                                                      (__v16si)
4389*344a7f5eSAndroid Build Coastguard Worker                                                      _mm512_setzero_si512 (),
4390*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask16) __U);
4391*344a7f5eSAndroid Build Coastguard Worker }
4392*344a7f5eSAndroid Build Coastguard Worker 
4393*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_mask_loadu_epi64(__m512i __W,__mmask8 __U,void const * __P)4394*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
4395*344a7f5eSAndroid Build Coastguard Worker {
4396*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
4397*344a7f5eSAndroid Build Coastguard Worker                   (__v8di) __W,
4398*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
4399*344a7f5eSAndroid Build Coastguard Worker }
4400*344a7f5eSAndroid Build Coastguard Worker 
4401*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_loadu_epi64(__mmask8 __U,void const * __P)4402*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_loadu_epi64(__mmask8 __U, void const *__P)
4403*344a7f5eSAndroid Build Coastguard Worker {
4404*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *)__P,
4405*344a7f5eSAndroid Build Coastguard Worker                                                      (__v8di)
4406*344a7f5eSAndroid Build Coastguard Worker                                                      _mm512_setzero_si512 (),
4407*344a7f5eSAndroid Build Coastguard Worker                                                      (__mmask8) __U);
4408*344a7f5eSAndroid Build Coastguard Worker }
4409*344a7f5eSAndroid Build Coastguard Worker 
4410*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_mask_loadu_ps(__m512 __W,__mmask16 __U,void const * __P)4411*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P)
4412*344a7f5eSAndroid Build Coastguard Worker {
4413*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
4414*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W,
4415*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
4416*344a7f5eSAndroid Build Coastguard Worker }
4417*344a7f5eSAndroid Build Coastguard Worker 
4418*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_loadu_ps(__mmask16 __U,void const * __P)4419*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_loadu_ps(__mmask16 __U, void const *__P)
4420*344a7f5eSAndroid Build Coastguard Worker {
4421*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_loadups512_mask ((const float *)__P,
4422*344a7f5eSAndroid Build Coastguard Worker                                                   (__v16sf)
4423*344a7f5eSAndroid Build Coastguard Worker                                                   _mm512_setzero_ps (),
4424*344a7f5eSAndroid Build Coastguard Worker                                                   (__mmask16) __U);
4425*344a7f5eSAndroid Build Coastguard Worker }
4426*344a7f5eSAndroid Build Coastguard Worker 
4427*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_mask_loadu_pd(__m512d __W,__mmask8 __U,void const * __P)4428*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P)
4429*344a7f5eSAndroid Build Coastguard Worker {
4430*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
4431*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
4432*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
4433*344a7f5eSAndroid Build Coastguard Worker }
4434*344a7f5eSAndroid Build Coastguard Worker 
4435*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_loadu_pd(__mmask8 __U,void const * __P)4436*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_loadu_pd(__mmask8 __U, void const *__P)
4437*344a7f5eSAndroid Build Coastguard Worker {
4438*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_loadupd512_mask ((const double *)__P,
4439*344a7f5eSAndroid Build Coastguard Worker                                                    (__v8df)
4440*344a7f5eSAndroid Build Coastguard Worker                                                    _mm512_setzero_pd (),
4441*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask8) __U);
4442*344a7f5eSAndroid Build Coastguard Worker }
4443*344a7f5eSAndroid Build Coastguard Worker 
4444*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_loadu_pd(double const * __p)4445*344a7f5eSAndroid Build Coastguard Worker _mm512_loadu_pd(double const *__p)
4446*344a7f5eSAndroid Build Coastguard Worker {
4447*344a7f5eSAndroid Build Coastguard Worker   struct __loadu_pd {
4448*344a7f5eSAndroid Build Coastguard Worker     __m512d __v;
4449*344a7f5eSAndroid Build Coastguard Worker   } __attribute__((__packed__, __may_alias__));
4450*344a7f5eSAndroid Build Coastguard Worker   return ((struct __loadu_pd*)__p)->__v;
4451*344a7f5eSAndroid Build Coastguard Worker }
4452*344a7f5eSAndroid Build Coastguard Worker 
4453*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_loadu_ps(float const * __p)4454*344a7f5eSAndroid Build Coastguard Worker _mm512_loadu_ps(float const *__p)
4455*344a7f5eSAndroid Build Coastguard Worker {
4456*344a7f5eSAndroid Build Coastguard Worker   struct __loadu_ps {
4457*344a7f5eSAndroid Build Coastguard Worker     __m512 __v;
4458*344a7f5eSAndroid Build Coastguard Worker   } __attribute__((__packed__, __may_alias__));
4459*344a7f5eSAndroid Build Coastguard Worker   return ((struct __loadu_ps*)__p)->__v;
4460*344a7f5eSAndroid Build Coastguard Worker }
4461*344a7f5eSAndroid Build Coastguard Worker 
4462*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_load_ps(float const * __p)4463*344a7f5eSAndroid Build Coastguard Worker _mm512_load_ps(float const *__p)
4464*344a7f5eSAndroid Build Coastguard Worker {
4465*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *)__p,
4466*344a7f5eSAndroid Build Coastguard Worker                                                   (__v16sf)
4467*344a7f5eSAndroid Build Coastguard Worker                                                   _mm512_setzero_ps (),
4468*344a7f5eSAndroid Build Coastguard Worker                                                   (__mmask16) -1);
4469*344a7f5eSAndroid Build Coastguard Worker }
4470*344a7f5eSAndroid Build Coastguard Worker 
4471*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_mask_load_ps(__m512 __W,__mmask16 __U,void const * __P)4472*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P)
4473*344a7f5eSAndroid Build Coastguard Worker {
4474*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
4475*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W,
4476*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
4477*344a7f5eSAndroid Build Coastguard Worker }
4478*344a7f5eSAndroid Build Coastguard Worker 
4479*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_load_ps(__mmask16 __U,void const * __P)4480*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_load_ps(__mmask16 __U, void const *__P)
4481*344a7f5eSAndroid Build Coastguard Worker {
4482*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *)__P,
4483*344a7f5eSAndroid Build Coastguard Worker                                                   (__v16sf)
4484*344a7f5eSAndroid Build Coastguard Worker                                                   _mm512_setzero_ps (),
4485*344a7f5eSAndroid Build Coastguard Worker                                                   (__mmask16) __U);
4486*344a7f5eSAndroid Build Coastguard Worker }
4487*344a7f5eSAndroid Build Coastguard Worker 
4488*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_load_pd(double const * __p)4489*344a7f5eSAndroid Build Coastguard Worker _mm512_load_pd(double const *__p)
4490*344a7f5eSAndroid Build Coastguard Worker {
4491*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *)__p,
4492*344a7f5eSAndroid Build Coastguard Worker                                                    (__v8df)
4493*344a7f5eSAndroid Build Coastguard Worker                                                    _mm512_setzero_pd (),
4494*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask8) -1);
4495*344a7f5eSAndroid Build Coastguard Worker }
4496*344a7f5eSAndroid Build Coastguard Worker 
4497*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_mask_load_pd(__m512d __W,__mmask8 __U,void const * __P)4498*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P)
4499*344a7f5eSAndroid Build Coastguard Worker {
4500*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
4501*344a7f5eSAndroid Build Coastguard Worker                           (__v8df) __W,
4502*344a7f5eSAndroid Build Coastguard Worker                           (__mmask8) __U);
4503*344a7f5eSAndroid Build Coastguard Worker }
4504*344a7f5eSAndroid Build Coastguard Worker 
4505*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_load_pd(__mmask8 __U,void const * __P)4506*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_load_pd(__mmask8 __U, void const *__P)
4507*344a7f5eSAndroid Build Coastguard Worker {
4508*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *)__P,
4509*344a7f5eSAndroid Build Coastguard Worker                                                    (__v8df)
4510*344a7f5eSAndroid Build Coastguard Worker                                                    _mm512_setzero_pd (),
4511*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask8) __U);
4512*344a7f5eSAndroid Build Coastguard Worker }
4513*344a7f5eSAndroid Build Coastguard Worker 
4514*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_load_si512(void const * __P)4515*344a7f5eSAndroid Build Coastguard Worker _mm512_load_si512 (void const *__P)
4516*344a7f5eSAndroid Build Coastguard Worker {
4517*344a7f5eSAndroid Build Coastguard Worker   return *(__m512i *) __P;
4518*344a7f5eSAndroid Build Coastguard Worker }
4519*344a7f5eSAndroid Build Coastguard Worker 
4520*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_load_epi32(void const * __P)4521*344a7f5eSAndroid Build Coastguard Worker _mm512_load_epi32 (void const *__P)
4522*344a7f5eSAndroid Build Coastguard Worker {
4523*344a7f5eSAndroid Build Coastguard Worker   return *(__m512i *) __P;
4524*344a7f5eSAndroid Build Coastguard Worker }
4525*344a7f5eSAndroid Build Coastguard Worker 
4526*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_load_epi64(void const * __P)4527*344a7f5eSAndroid Build Coastguard Worker _mm512_load_epi64 (void const *__P)
4528*344a7f5eSAndroid Build Coastguard Worker {
4529*344a7f5eSAndroid Build Coastguard Worker   return *(__m512i *) __P;
4530*344a7f5eSAndroid Build Coastguard Worker }
4531*344a7f5eSAndroid Build Coastguard Worker 
4532*344a7f5eSAndroid Build Coastguard Worker /* SIMD store ops */
4533*344a7f5eSAndroid Build Coastguard Worker 
4534*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_mask_storeu_epi64(void * __P,__mmask8 __U,__m512i __A)4535*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A)
4536*344a7f5eSAndroid Build Coastguard Worker {
4537*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storedqudi512_mask ((long long *)__P, (__v8di) __A,
4538*344a7f5eSAndroid Build Coastguard Worker                                      (__mmask8) __U);
4539*344a7f5eSAndroid Build Coastguard Worker }
4540*344a7f5eSAndroid Build Coastguard Worker 
4541*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_storeu_si512(void * __P,__m512i __A)4542*344a7f5eSAndroid Build Coastguard Worker _mm512_storeu_si512 (void *__P, __m512i __A)
4543*344a7f5eSAndroid Build Coastguard Worker {
4544*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storedqusi512_mask ((int *) __P, (__v16si) __A,
4545*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) -1);
4546*344a7f5eSAndroid Build Coastguard Worker }
4547*344a7f5eSAndroid Build Coastguard Worker 
4548*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_mask_storeu_epi32(void * __P,__mmask16 __U,__m512i __A)4549*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A)
4550*344a7f5eSAndroid Build Coastguard Worker {
4551*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storedqusi512_mask ((int *)__P, (__v16si) __A,
4552*344a7f5eSAndroid Build Coastguard Worker                                      (__mmask16) __U);
4553*344a7f5eSAndroid Build Coastguard Worker }
4554*344a7f5eSAndroid Build Coastguard Worker 
4555*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_mask_storeu_pd(void * __P,__mmask8 __U,__m512d __A)4556*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_storeu_pd(void *__P, __mmask8 __U, __m512d __A)
4557*344a7f5eSAndroid Build Coastguard Worker {
4558*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storeupd512_mask ((double *)__P, (__v8df) __A, (__mmask8) __U);
4559*344a7f5eSAndroid Build Coastguard Worker }
4560*344a7f5eSAndroid Build Coastguard Worker 
4561*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_storeu_pd(void * __P,__m512d __A)4562*344a7f5eSAndroid Build Coastguard Worker _mm512_storeu_pd(void *__P, __m512d __A)
4563*344a7f5eSAndroid Build Coastguard Worker {
4564*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storeupd512_mask((double *)__P, (__v8df)__A, (__mmask8)-1);
4565*344a7f5eSAndroid Build Coastguard Worker }
4566*344a7f5eSAndroid Build Coastguard Worker 
4567*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_mask_storeu_ps(void * __P,__mmask16 __U,__m512 __A)4568*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_storeu_ps(void *__P, __mmask16 __U, __m512 __A)
4569*344a7f5eSAndroid Build Coastguard Worker {
4570*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storeups512_mask ((float *)__P, (__v16sf) __A,
4571*344a7f5eSAndroid Build Coastguard Worker                                    (__mmask16) __U);
4572*344a7f5eSAndroid Build Coastguard Worker }
4573*344a7f5eSAndroid Build Coastguard Worker 
4574*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_storeu_ps(void * __P,__m512 __A)4575*344a7f5eSAndroid Build Coastguard Worker _mm512_storeu_ps(void *__P, __m512 __A)
4576*344a7f5eSAndroid Build Coastguard Worker {
4577*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storeups512_mask((float *)__P, (__v16sf)__A, (__mmask16)-1);
4578*344a7f5eSAndroid Build Coastguard Worker }
4579*344a7f5eSAndroid Build Coastguard Worker 
4580*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_mask_store_pd(void * __P,__mmask8 __U,__m512d __A)4581*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_store_pd(void *__P, __mmask8 __U, __m512d __A)
4582*344a7f5eSAndroid Build Coastguard Worker {
4583*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storeapd512_mask ((__v8df *)__P, (__v8df) __A, (__mmask8) __U);
4584*344a7f5eSAndroid Build Coastguard Worker }
4585*344a7f5eSAndroid Build Coastguard Worker 
4586*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_store_pd(void * __P,__m512d __A)4587*344a7f5eSAndroid Build Coastguard Worker _mm512_store_pd(void *__P, __m512d __A)
4588*344a7f5eSAndroid Build Coastguard Worker {
4589*344a7f5eSAndroid Build Coastguard Worker   *(__m512d*)__P = __A;
4590*344a7f5eSAndroid Build Coastguard Worker }
4591*344a7f5eSAndroid Build Coastguard Worker 
4592*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_mask_store_ps(void * __P,__mmask16 __U,__m512 __A)4593*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_store_ps(void *__P, __mmask16 __U, __m512 __A)
4594*344a7f5eSAndroid Build Coastguard Worker {
4595*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_storeaps512_mask ((__v16sf *)__P, (__v16sf) __A,
4596*344a7f5eSAndroid Build Coastguard Worker                                    (__mmask16) __U);
4597*344a7f5eSAndroid Build Coastguard Worker }
4598*344a7f5eSAndroid Build Coastguard Worker 
4599*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_store_ps(void * __P,__m512 __A)4600*344a7f5eSAndroid Build Coastguard Worker _mm512_store_ps(void *__P, __m512 __A)
4601*344a7f5eSAndroid Build Coastguard Worker {
4602*344a7f5eSAndroid Build Coastguard Worker   *(__m512*)__P = __A;
4603*344a7f5eSAndroid Build Coastguard Worker }
4604*344a7f5eSAndroid Build Coastguard Worker 
4605*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_store_si512(void * __P,__m512i __A)4606*344a7f5eSAndroid Build Coastguard Worker _mm512_store_si512 (void *__P, __m512i __A)
4607*344a7f5eSAndroid Build Coastguard Worker {
4608*344a7f5eSAndroid Build Coastguard Worker   *(__m512i *) __P = __A;
4609*344a7f5eSAndroid Build Coastguard Worker }
4610*344a7f5eSAndroid Build Coastguard Worker 
4611*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_store_epi32(void * __P,__m512i __A)4612*344a7f5eSAndroid Build Coastguard Worker _mm512_store_epi32 (void *__P, __m512i __A)
4613*344a7f5eSAndroid Build Coastguard Worker {
4614*344a7f5eSAndroid Build Coastguard Worker   *(__m512i *) __P = __A;
4615*344a7f5eSAndroid Build Coastguard Worker }
4616*344a7f5eSAndroid Build Coastguard Worker 
4617*344a7f5eSAndroid Build Coastguard Worker static __inline void __DEFAULT_FN_ATTRS
_mm512_store_epi64(void * __P,__m512i __A)4618*344a7f5eSAndroid Build Coastguard Worker _mm512_store_epi64 (void *__P, __m512i __A)
4619*344a7f5eSAndroid Build Coastguard Worker {
4620*344a7f5eSAndroid Build Coastguard Worker   *(__m512i *) __P = __A;
4621*344a7f5eSAndroid Build Coastguard Worker }
4622*344a7f5eSAndroid Build Coastguard Worker 
4623*344a7f5eSAndroid Build Coastguard Worker /* Mask ops */
4624*344a7f5eSAndroid Build Coastguard Worker 
4625*344a7f5eSAndroid Build Coastguard Worker static __inline __mmask16 __DEFAULT_FN_ATTRS
_mm512_knot(__mmask16 __M)4626*344a7f5eSAndroid Build Coastguard Worker _mm512_knot(__mmask16 __M)
4627*344a7f5eSAndroid Build Coastguard Worker {
4628*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_knothi(__M);
4629*344a7f5eSAndroid Build Coastguard Worker }
4630*344a7f5eSAndroid Build Coastguard Worker 
4631*344a7f5eSAndroid Build Coastguard Worker /* Integer compare */
4632*344a7f5eSAndroid Build Coastguard Worker 
4633*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epi32_mask(__m512i __a,__m512i __b)4634*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
4635*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_pcmpeqd512_mask((__v16si)__a, (__v16si)__b,
4636*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16)-1);
4637*344a7f5eSAndroid Build Coastguard Worker }
4638*344a7f5eSAndroid Build Coastguard Worker 
4639*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)4640*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4641*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_pcmpeqd512_mask((__v16si)__a, (__v16si)__b,
4642*344a7f5eSAndroid Build Coastguard Worker                                                    __u);
4643*344a7f5eSAndroid Build Coastguard Worker }
4644*344a7f5eSAndroid Build Coastguard Worker 
4645*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epu32_mask(__m512i __a,__m512i __b)4646*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
4647*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 0,
4648*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask16)-1);
4649*344a7f5eSAndroid Build Coastguard Worker }
4650*344a7f5eSAndroid Build Coastguard Worker 
4651*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)4652*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4653*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 0,
4654*344a7f5eSAndroid Build Coastguard Worker                                                  __u);
4655*344a7f5eSAndroid Build Coastguard Worker }
4656*344a7f5eSAndroid Build Coastguard Worker 
4657*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)4658*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4659*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_pcmpeqq512_mask((__v8di)__a, (__v8di)__b,
4660*344a7f5eSAndroid Build Coastguard Worker                                                   __u);
4661*344a7f5eSAndroid Build Coastguard Worker }
4662*344a7f5eSAndroid Build Coastguard Worker 
4663*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epi64_mask(__m512i __a,__m512i __b)4664*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
4665*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_pcmpeqq512_mask((__v8di)__a, (__v8di)__b,
4666*344a7f5eSAndroid Build Coastguard Worker                                                   (__mmask8)-1);
4667*344a7f5eSAndroid Build Coastguard Worker }
4668*344a7f5eSAndroid Build Coastguard Worker 
4669*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpeq_epu64_mask(__m512i __a,__m512i __b)4670*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
4671*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 0,
4672*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1);
4673*344a7f5eSAndroid Build Coastguard Worker }
4674*344a7f5eSAndroid Build Coastguard Worker 
4675*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpeq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)4676*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4677*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 0,
4678*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4679*344a7f5eSAndroid Build Coastguard Worker }
4680*344a7f5eSAndroid Build Coastguard Worker 
4681*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpge_epi32_mask(__m512i __a,__m512i __b)4682*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
4683*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 5,
4684*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask16)-1);
4685*344a7f5eSAndroid Build Coastguard Worker }
4686*344a7f5eSAndroid Build Coastguard Worker 
4687*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)4688*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4689*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 5,
4690*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4691*344a7f5eSAndroid Build Coastguard Worker }
4692*344a7f5eSAndroid Build Coastguard Worker 
4693*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpge_epu32_mask(__m512i __a,__m512i __b)4694*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
4695*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 5,
4696*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask16)-1);
4697*344a7f5eSAndroid Build Coastguard Worker }
4698*344a7f5eSAndroid Build Coastguard Worker 
4699*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)4700*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4701*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 5,
4702*344a7f5eSAndroid Build Coastguard Worker                                                  __u);
4703*344a7f5eSAndroid Build Coastguard Worker }
4704*344a7f5eSAndroid Build Coastguard Worker 
4705*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpge_epi64_mask(__m512i __a,__m512i __b)4706*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
4707*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 5,
4708*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1);
4709*344a7f5eSAndroid Build Coastguard Worker }
4710*344a7f5eSAndroid Build Coastguard Worker 
4711*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)4712*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4713*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 5,
4714*344a7f5eSAndroid Build Coastguard Worker                                                __u);
4715*344a7f5eSAndroid Build Coastguard Worker }
4716*344a7f5eSAndroid Build Coastguard Worker 
4717*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpge_epu64_mask(__m512i __a,__m512i __b)4718*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
4719*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 5,
4720*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1);
4721*344a7f5eSAndroid Build Coastguard Worker }
4722*344a7f5eSAndroid Build Coastguard Worker 
4723*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpge_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)4724*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4725*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 5,
4726*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4727*344a7f5eSAndroid Build Coastguard Worker }
4728*344a7f5eSAndroid Build Coastguard Worker 
4729*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epi32_mask(__m512i __a,__m512i __b)4730*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
4731*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_pcmpgtd512_mask((__v16si)__a, (__v16si)__b,
4732*344a7f5eSAndroid Build Coastguard Worker                                                    (__mmask16)-1);
4733*344a7f5eSAndroid Build Coastguard Worker }
4734*344a7f5eSAndroid Build Coastguard Worker 
4735*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)4736*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4737*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_pcmpgtd512_mask((__v16si)__a, (__v16si)__b,
4738*344a7f5eSAndroid Build Coastguard Worker                                                    __u);
4739*344a7f5eSAndroid Build Coastguard Worker }
4740*344a7f5eSAndroid Build Coastguard Worker 
4741*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epu32_mask(__m512i __a,__m512i __b)4742*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
4743*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 6,
4744*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask16)-1);
4745*344a7f5eSAndroid Build Coastguard Worker }
4746*344a7f5eSAndroid Build Coastguard Worker 
4747*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)4748*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4749*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 6,
4750*344a7f5eSAndroid Build Coastguard Worker                                                  __u);
4751*344a7f5eSAndroid Build Coastguard Worker }
4752*344a7f5eSAndroid Build Coastguard Worker 
4753*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)4754*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4755*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_pcmpgtq512_mask((__v8di)__a, (__v8di)__b,
4756*344a7f5eSAndroid Build Coastguard Worker                                                   __u);
4757*344a7f5eSAndroid Build Coastguard Worker }
4758*344a7f5eSAndroid Build Coastguard Worker 
4759*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epi64_mask(__m512i __a,__m512i __b)4760*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
4761*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_pcmpgtq512_mask((__v8di)__a, (__v8di)__b,
4762*344a7f5eSAndroid Build Coastguard Worker                                                   (__mmask8)-1);
4763*344a7f5eSAndroid Build Coastguard Worker }
4764*344a7f5eSAndroid Build Coastguard Worker 
4765*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpgt_epu64_mask(__m512i __a,__m512i __b)4766*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
4767*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 6,
4768*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1);
4769*344a7f5eSAndroid Build Coastguard Worker }
4770*344a7f5eSAndroid Build Coastguard Worker 
4771*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpgt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)4772*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4773*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 6,
4774*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4775*344a7f5eSAndroid Build Coastguard Worker }
4776*344a7f5eSAndroid Build Coastguard Worker 
4777*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmple_epi32_mask(__m512i __a,__m512i __b)4778*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
4779*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 2,
4780*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask16)-1);
4781*344a7f5eSAndroid Build Coastguard Worker }
4782*344a7f5eSAndroid Build Coastguard Worker 
4783*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)4784*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4785*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 2,
4786*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4787*344a7f5eSAndroid Build Coastguard Worker }
4788*344a7f5eSAndroid Build Coastguard Worker 
4789*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmple_epu32_mask(__m512i __a,__m512i __b)4790*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
4791*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 2,
4792*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask16)-1);
4793*344a7f5eSAndroid Build Coastguard Worker }
4794*344a7f5eSAndroid Build Coastguard Worker 
4795*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)4796*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4797*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 2,
4798*344a7f5eSAndroid Build Coastguard Worker                                                  __u);
4799*344a7f5eSAndroid Build Coastguard Worker }
4800*344a7f5eSAndroid Build Coastguard Worker 
4801*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmple_epi64_mask(__m512i __a,__m512i __b)4802*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
4803*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 2,
4804*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1);
4805*344a7f5eSAndroid Build Coastguard Worker }
4806*344a7f5eSAndroid Build Coastguard Worker 
4807*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)4808*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4809*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 2,
4810*344a7f5eSAndroid Build Coastguard Worker                                                __u);
4811*344a7f5eSAndroid Build Coastguard Worker }
4812*344a7f5eSAndroid Build Coastguard Worker 
4813*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmple_epu64_mask(__m512i __a,__m512i __b)4814*344a7f5eSAndroid Build Coastguard Worker _mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
4815*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 2,
4816*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1);
4817*344a7f5eSAndroid Build Coastguard Worker }
4818*344a7f5eSAndroid Build Coastguard Worker 
4819*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmple_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)4820*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4821*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 2,
4822*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4823*344a7f5eSAndroid Build Coastguard Worker }
4824*344a7f5eSAndroid Build Coastguard Worker 
4825*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmplt_epi32_mask(__m512i __a,__m512i __b)4826*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
4827*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 1,
4828*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask16)-1);
4829*344a7f5eSAndroid Build Coastguard Worker }
4830*344a7f5eSAndroid Build Coastguard Worker 
4831*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)4832*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4833*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 1,
4834*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4835*344a7f5eSAndroid Build Coastguard Worker }
4836*344a7f5eSAndroid Build Coastguard Worker 
4837*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmplt_epu32_mask(__m512i __a,__m512i __b)4838*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
4839*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 1,
4840*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask16)-1);
4841*344a7f5eSAndroid Build Coastguard Worker }
4842*344a7f5eSAndroid Build Coastguard Worker 
4843*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)4844*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4845*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 1,
4846*344a7f5eSAndroid Build Coastguard Worker                                                  __u);
4847*344a7f5eSAndroid Build Coastguard Worker }
4848*344a7f5eSAndroid Build Coastguard Worker 
4849*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmplt_epi64_mask(__m512i __a,__m512i __b)4850*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
4851*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 1,
4852*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1);
4853*344a7f5eSAndroid Build Coastguard Worker }
4854*344a7f5eSAndroid Build Coastguard Worker 
4855*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)4856*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4857*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 1,
4858*344a7f5eSAndroid Build Coastguard Worker                                                __u);
4859*344a7f5eSAndroid Build Coastguard Worker }
4860*344a7f5eSAndroid Build Coastguard Worker 
4861*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmplt_epu64_mask(__m512i __a,__m512i __b)4862*344a7f5eSAndroid Build Coastguard Worker _mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
4863*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 1,
4864*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1);
4865*344a7f5eSAndroid Build Coastguard Worker }
4866*344a7f5eSAndroid Build Coastguard Worker 
4867*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmplt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)4868*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4869*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 1,
4870*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4871*344a7f5eSAndroid Build Coastguard Worker }
4872*344a7f5eSAndroid Build Coastguard Worker 
4873*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epi32_mask(__m512i __a,__m512i __b)4874*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
4875*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 4,
4876*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask16)-1);
4877*344a7f5eSAndroid Build Coastguard Worker }
4878*344a7f5eSAndroid Build Coastguard Worker 
4879*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)4880*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4881*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)__a, (__v16si)__b, 4,
4882*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4883*344a7f5eSAndroid Build Coastguard Worker }
4884*344a7f5eSAndroid Build Coastguard Worker 
4885*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epu32_mask(__m512i __a,__m512i __b)4886*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
4887*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 4,
4888*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask16)-1);
4889*344a7f5eSAndroid Build Coastguard Worker }
4890*344a7f5eSAndroid Build Coastguard Worker 
4891*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)4892*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
4893*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)__a, (__v16si)__b, 4,
4894*344a7f5eSAndroid Build Coastguard Worker                                                  __u);
4895*344a7f5eSAndroid Build Coastguard Worker }
4896*344a7f5eSAndroid Build Coastguard Worker 
4897*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epi64_mask(__m512i __a,__m512i __b)4898*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
4899*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 4,
4900*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1);
4901*344a7f5eSAndroid Build Coastguard Worker }
4902*344a7f5eSAndroid Build Coastguard Worker 
4903*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)4904*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4905*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)__a, (__v8di)__b, 4,
4906*344a7f5eSAndroid Build Coastguard Worker                                                __u);
4907*344a7f5eSAndroid Build Coastguard Worker }
4908*344a7f5eSAndroid Build Coastguard Worker 
4909*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_cmpneq_epu64_mask(__m512i __a,__m512i __b)4910*344a7f5eSAndroid Build Coastguard Worker _mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
4911*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 4,
4912*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1);
4913*344a7f5eSAndroid Build Coastguard Worker }
4914*344a7f5eSAndroid Build Coastguard Worker 
4915*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_cmpneq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)4916*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
4917*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)__a, (__v8di)__b, 4,
4918*344a7f5eSAndroid Build Coastguard Worker                                                 __u);
4919*344a7f5eSAndroid Build Coastguard Worker }
4920*344a7f5eSAndroid Build Coastguard Worker 
4921*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepi8_epi32(__m128i __A)4922*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi8_epi32 (__m128i __A)
4923*344a7f5eSAndroid Build Coastguard Worker {
4924*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
4925*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
4926*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
4927*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
4928*344a7f5eSAndroid Build Coastguard Worker }
4929*344a7f5eSAndroid Build Coastguard Worker 
4930*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi8_epi32(__m512i __W,__mmask16 __U,__m128i __A)4931*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
4932*344a7f5eSAndroid Build Coastguard Worker {
4933*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
4934*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __W,
4935*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
4936*344a7f5eSAndroid Build Coastguard Worker }
4937*344a7f5eSAndroid Build Coastguard Worker 
4938*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi8_epi32(__mmask16 __U,__m128i __A)4939*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A)
4940*344a7f5eSAndroid Build Coastguard Worker {
4941*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
4942*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
4943*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
4944*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
4945*344a7f5eSAndroid Build Coastguard Worker }
4946*344a7f5eSAndroid Build Coastguard Worker 
4947*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepi8_epi64(__m128i __A)4948*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi8_epi64 (__m128i __A)
4949*344a7f5eSAndroid Build Coastguard Worker {
4950*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
4951*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
4952*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
4953*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
4954*344a7f5eSAndroid Build Coastguard Worker }
4955*344a7f5eSAndroid Build Coastguard Worker 
4956*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi8_epi64(__m512i __W,__mmask8 __U,__m128i __A)4957*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
4958*344a7f5eSAndroid Build Coastguard Worker {
4959*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
4960*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
4961*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
4962*344a7f5eSAndroid Build Coastguard Worker }
4963*344a7f5eSAndroid Build Coastguard Worker 
4964*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi8_epi64(__mmask8 __U,__m128i __A)4965*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
4966*344a7f5eSAndroid Build Coastguard Worker {
4967*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
4968*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
4969*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
4970*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
4971*344a7f5eSAndroid Build Coastguard Worker }
4972*344a7f5eSAndroid Build Coastguard Worker 
4973*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepi32_epi64(__m256i __X)4974*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi32_epi64 (__m256i __X)
4975*344a7f5eSAndroid Build Coastguard Worker {
4976*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
4977*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
4978*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
4979*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
4980*344a7f5eSAndroid Build Coastguard Worker }
4981*344a7f5eSAndroid Build Coastguard Worker 
4982*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_epi64(__m512i __W,__mmask8 __U,__m256i __X)4983*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
4984*344a7f5eSAndroid Build Coastguard Worker {
4985*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
4986*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
4987*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
4988*344a7f5eSAndroid Build Coastguard Worker }
4989*344a7f5eSAndroid Build Coastguard Worker 
4990*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi32_epi64(__mmask8 __U,__m256i __X)4991*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X)
4992*344a7f5eSAndroid Build Coastguard Worker {
4993*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
4994*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
4995*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
4996*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
4997*344a7f5eSAndroid Build Coastguard Worker }
4998*344a7f5eSAndroid Build Coastguard Worker 
4999*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepi16_epi32(__m256i __A)5000*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi16_epi32 (__m256i __A)
5001*344a7f5eSAndroid Build Coastguard Worker {
5002*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
5003*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
5004*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5005*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
5006*344a7f5eSAndroid Build Coastguard Worker }
5007*344a7f5eSAndroid Build Coastguard Worker 
5008*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi16_epi32(__m512i __W,__mmask16 __U,__m256i __A)5009*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
5010*344a7f5eSAndroid Build Coastguard Worker {
5011*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
5012*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __W,
5013*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
5014*344a7f5eSAndroid Build Coastguard Worker }
5015*344a7f5eSAndroid Build Coastguard Worker 
5016*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi16_epi32(__mmask16 __U,__m256i __A)5017*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A)
5018*344a7f5eSAndroid Build Coastguard Worker {
5019*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
5020*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
5021*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5022*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
5023*344a7f5eSAndroid Build Coastguard Worker }
5024*344a7f5eSAndroid Build Coastguard Worker 
5025*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepi16_epi64(__m128i __A)5026*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi16_epi64 (__m128i __A)
5027*344a7f5eSAndroid Build Coastguard Worker {
5028*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
5029*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5030*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5031*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
5032*344a7f5eSAndroid Build Coastguard Worker }
5033*344a7f5eSAndroid Build Coastguard Worker 
5034*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi16_epi64(__m512i __W,__mmask8 __U,__m128i __A)5035*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
5036*344a7f5eSAndroid Build Coastguard Worker {
5037*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
5038*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
5039*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5040*344a7f5eSAndroid Build Coastguard Worker }
5041*344a7f5eSAndroid Build Coastguard Worker 
5042*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi16_epi64(__mmask8 __U,__m128i __A)5043*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
5044*344a7f5eSAndroid Build Coastguard Worker {
5045*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
5046*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5047*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5048*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5049*344a7f5eSAndroid Build Coastguard Worker }
5050*344a7f5eSAndroid Build Coastguard Worker 
5051*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepu8_epi32(__m128i __A)5052*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu8_epi32 (__m128i __A)
5053*344a7f5eSAndroid Build Coastguard Worker {
5054*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
5055*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
5056*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5057*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
5058*344a7f5eSAndroid Build Coastguard Worker }
5059*344a7f5eSAndroid Build Coastguard Worker 
5060*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu8_epi32(__m512i __W,__mmask16 __U,__m128i __A)5061*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
5062*344a7f5eSAndroid Build Coastguard Worker {
5063*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
5064*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __W,
5065*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
5066*344a7f5eSAndroid Build Coastguard Worker }
5067*344a7f5eSAndroid Build Coastguard Worker 
5068*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu8_epi32(__mmask16 __U,__m128i __A)5069*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A)
5070*344a7f5eSAndroid Build Coastguard Worker {
5071*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
5072*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
5073*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5074*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
5075*344a7f5eSAndroid Build Coastguard Worker }
5076*344a7f5eSAndroid Build Coastguard Worker 
5077*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepu8_epi64(__m128i __A)5078*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu8_epi64 (__m128i __A)
5079*344a7f5eSAndroid Build Coastguard Worker {
5080*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
5081*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5082*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5083*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
5084*344a7f5eSAndroid Build Coastguard Worker }
5085*344a7f5eSAndroid Build Coastguard Worker 
5086*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu8_epi64(__m512i __W,__mmask8 __U,__m128i __A)5087*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
5088*344a7f5eSAndroid Build Coastguard Worker {
5089*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
5090*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
5091*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5092*344a7f5eSAndroid Build Coastguard Worker }
5093*344a7f5eSAndroid Build Coastguard Worker 
5094*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu8_epi64(__mmask8 __U,__m128i __A)5095*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
5096*344a7f5eSAndroid Build Coastguard Worker {
5097*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
5098*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5099*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5100*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5101*344a7f5eSAndroid Build Coastguard Worker }
5102*344a7f5eSAndroid Build Coastguard Worker 
5103*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepu32_epi64(__m256i __X)5104*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu32_epi64 (__m256i __X)
5105*344a7f5eSAndroid Build Coastguard Worker {
5106*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
5107*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5108*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5109*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
5110*344a7f5eSAndroid Build Coastguard Worker }
5111*344a7f5eSAndroid Build Coastguard Worker 
5112*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu32_epi64(__m512i __W,__mmask8 __U,__m256i __X)5113*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
5114*344a7f5eSAndroid Build Coastguard Worker {
5115*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
5116*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
5117*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5118*344a7f5eSAndroid Build Coastguard Worker }
5119*344a7f5eSAndroid Build Coastguard Worker 
5120*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu32_epi64(__mmask8 __U,__m256i __X)5121*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X)
5122*344a7f5eSAndroid Build Coastguard Worker {
5123*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
5124*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5125*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5126*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5127*344a7f5eSAndroid Build Coastguard Worker }
5128*344a7f5eSAndroid Build Coastguard Worker 
5129*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepu16_epi32(__m256i __A)5130*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu16_epi32 (__m256i __A)
5131*344a7f5eSAndroid Build Coastguard Worker {
5132*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
5133*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
5134*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5135*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
5136*344a7f5eSAndroid Build Coastguard Worker }
5137*344a7f5eSAndroid Build Coastguard Worker 
5138*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu16_epi32(__m512i __W,__mmask16 __U,__m256i __A)5139*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
5140*344a7f5eSAndroid Build Coastguard Worker {
5141*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
5142*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __W,
5143*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
5144*344a7f5eSAndroid Build Coastguard Worker }
5145*344a7f5eSAndroid Build Coastguard Worker 
5146*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu16_epi32(__mmask16 __U,__m256i __A)5147*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A)
5148*344a7f5eSAndroid Build Coastguard Worker {
5149*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
5150*344a7f5eSAndroid Build Coastguard Worker                 (__v16si)
5151*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5152*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
5153*344a7f5eSAndroid Build Coastguard Worker }
5154*344a7f5eSAndroid Build Coastguard Worker 
5155*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_cvtepu16_epi64(__m128i __A)5156*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepu16_epi64 (__m128i __A)
5157*344a7f5eSAndroid Build Coastguard Worker {
5158*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
5159*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5160*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5161*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
5162*344a7f5eSAndroid Build Coastguard Worker }
5163*344a7f5eSAndroid Build Coastguard Worker 
5164*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepu16_epi64(__m512i __W,__mmask8 __U,__m128i __A)5165*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
5166*344a7f5eSAndroid Build Coastguard Worker {
5167*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
5168*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
5169*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5170*344a7f5eSAndroid Build Coastguard Worker }
5171*344a7f5eSAndroid Build Coastguard Worker 
5172*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepu16_epi64(__mmask8 __U,__m128i __A)5173*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
5174*344a7f5eSAndroid Build Coastguard Worker {
5175*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
5176*344a7f5eSAndroid Build Coastguard Worker                 (__v8di)
5177*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_si512 (),
5178*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
5179*344a7f5eSAndroid Build Coastguard Worker }
5180*344a7f5eSAndroid Build Coastguard Worker 
5181*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_rorv_epi32(__m512i __A,__m512i __B)5182*344a7f5eSAndroid Build Coastguard Worker _mm512_rorv_epi32 (__m512i __A, __m512i __B)
5183*344a7f5eSAndroid Build Coastguard Worker {
5184*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
5185*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
5186*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
5187*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5188*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
5189*344a7f5eSAndroid Build Coastguard Worker }
5190*344a7f5eSAndroid Build Coastguard Worker 
5191*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_rorv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)5192*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
5193*344a7f5eSAndroid Build Coastguard Worker {
5194*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
5195*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
5196*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
5197*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
5198*344a7f5eSAndroid Build Coastguard Worker }
5199*344a7f5eSAndroid Build Coastguard Worker 
5200*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_rorv_epi32(__mmask16 __U,__m512i __A,__m512i __B)5201*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
5202*344a7f5eSAndroid Build Coastguard Worker {
5203*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
5204*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
5205*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
5206*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5207*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
5208*344a7f5eSAndroid Build Coastguard Worker }
5209*344a7f5eSAndroid Build Coastguard Worker 
5210*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_rorv_epi64(__m512i __A,__m512i __B)5211*344a7f5eSAndroid Build Coastguard Worker _mm512_rorv_epi64 (__m512i __A, __m512i __B)
5212*344a7f5eSAndroid Build Coastguard Worker {
5213*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
5214*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
5215*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
5216*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5217*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
5218*344a7f5eSAndroid Build Coastguard Worker }
5219*344a7f5eSAndroid Build Coastguard Worker 
5220*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_rorv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)5221*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
5222*344a7f5eSAndroid Build Coastguard Worker {
5223*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
5224*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
5225*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __W,
5226*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
5227*344a7f5eSAndroid Build Coastguard Worker }
5228*344a7f5eSAndroid Build Coastguard Worker 
5229*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_rorv_epi64(__mmask8 __U,__m512i __A,__m512i __B)5230*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
5231*344a7f5eSAndroid Build Coastguard Worker {
5232*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
5233*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
5234*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
5235*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5236*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
5237*344a7f5eSAndroid Build Coastguard Worker }
5238*344a7f5eSAndroid Build Coastguard Worker 
5239*344a7f5eSAndroid Build Coastguard Worker 
5240*344a7f5eSAndroid Build Coastguard Worker 
5241*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epi32_mask(a, b, p) __extension__ ({ \
5242*344a7f5eSAndroid Build Coastguard Worker   (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \
5243*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(b), (int)(p), \
5244*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1); })
5245*344a7f5eSAndroid Build Coastguard Worker 
5246*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epu32_mask(a, b, p) __extension__ ({ \
5247*344a7f5eSAndroid Build Coastguard Worker   (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)(__m512i)(a), \
5248*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)(__m512i)(b), (int)(p), \
5249*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1); })
5250*344a7f5eSAndroid Build Coastguard Worker 
5251*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epi64_mask(a, b, p) __extension__ ({ \
5252*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)(a), \
5253*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)(__m512i)(b), (int)(p), \
5254*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1); })
5255*344a7f5eSAndroid Build Coastguard Worker 
5256*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cmp_epu64_mask(a, b, p) __extension__ ({ \
5257*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)(__m512i)(a), \
5258*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(b), (int)(p), \
5259*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1); })
5260*344a7f5eSAndroid Build Coastguard Worker 
5261*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \
5262*344a7f5eSAndroid Build Coastguard Worker   (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \
5263*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(b), (int)(p), \
5264*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(m)); })
5265*344a7f5eSAndroid Build Coastguard Worker 
5266*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \
5267*344a7f5eSAndroid Build Coastguard Worker   (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)(__m512i)(a), \
5268*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)(__m512i)(b), (int)(p), \
5269*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(m)); })
5270*344a7f5eSAndroid Build Coastguard Worker 
5271*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \
5272*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)(a), \
5273*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)(__m512i)(b), (int)(p), \
5274*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(m)); })
5275*344a7f5eSAndroid Build Coastguard Worker 
5276*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \
5277*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)(__m512i)(a), \
5278*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(b), (int)(p), \
5279*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(m)); })
5280*344a7f5eSAndroid Build Coastguard Worker 
5281*344a7f5eSAndroid Build Coastguard Worker #define _mm512_rol_epi32(a, b) __extension__ ({ \
5282*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prold512_mask((__v16si)(__m512i)(a), (int)(b), \
5283*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)_mm512_setzero_si512(), \
5284*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)-1); })
5285*344a7f5eSAndroid Build Coastguard Worker 
5286*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_rol_epi32(W, U, a, b) __extension__ ({ \
5287*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prold512_mask((__v16si)(__m512i)(a), (int)(b), \
5288*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)(__m512i)(W), \
5289*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)(U)); })
5290*344a7f5eSAndroid Build Coastguard Worker 
5291*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_rol_epi32(U, a, b) __extension__ ({ \
5292*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prold512_mask((__v16si)(__m512i)(a), (int)(b), \
5293*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)_mm512_setzero_si512(), \
5294*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)(U)); })
5295*344a7f5eSAndroid Build Coastguard Worker 
5296*344a7f5eSAndroid Build Coastguard Worker #define _mm512_rol_epi64(a, b) __extension__ ({ \
5297*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prolq512_mask((__v8di)(__m512i)(a), (int)(b), \
5298*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_setzero_si512(), \
5299*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1); })
5300*344a7f5eSAndroid Build Coastguard Worker 
5301*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_rol_epi64(W, U, a, b) __extension__ ({ \
5302*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prolq512_mask((__v8di)(__m512i)(a), (int)(b), \
5303*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)(__m512i)(W), (__mmask8)(U)); })
5304*344a7f5eSAndroid Build Coastguard Worker 
5305*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_rol_epi64(U, a, b) __extension__ ({ \
5306*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prolq512_mask((__v8di)(__m512i)(a), (int)(b), \
5307*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_setzero_si512(), \
5308*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U)); })
5309*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_rolv_epi32(__m512i __A,__m512i __B)5310*344a7f5eSAndroid Build Coastguard Worker _mm512_rolv_epi32 (__m512i __A, __m512i __B)
5311*344a7f5eSAndroid Build Coastguard Worker {
5312*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
5313*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
5314*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
5315*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5316*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
5317*344a7f5eSAndroid Build Coastguard Worker }
5318*344a7f5eSAndroid Build Coastguard Worker 
5319*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_rolv_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m512i __B)5320*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
5321*344a7f5eSAndroid Build Coastguard Worker {
5322*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
5323*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
5324*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
5325*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
5326*344a7f5eSAndroid Build Coastguard Worker }
5327*344a7f5eSAndroid Build Coastguard Worker 
5328*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_rolv_epi32(__mmask16 __U,__m512i __A,__m512i __B)5329*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
5330*344a7f5eSAndroid Build Coastguard Worker {
5331*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
5332*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __B,
5333*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
5334*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5335*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
5336*344a7f5eSAndroid Build Coastguard Worker }
5337*344a7f5eSAndroid Build Coastguard Worker 
5338*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_rolv_epi64(__m512i __A,__m512i __B)5339*344a7f5eSAndroid Build Coastguard Worker _mm512_rolv_epi64 (__m512i __A, __m512i __B)
5340*344a7f5eSAndroid Build Coastguard Worker {
5341*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
5342*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
5343*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
5344*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5345*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
5346*344a7f5eSAndroid Build Coastguard Worker }
5347*344a7f5eSAndroid Build Coastguard Worker 
5348*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_rolv_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)5349*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
5350*344a7f5eSAndroid Build Coastguard Worker {
5351*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
5352*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
5353*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __W,
5354*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
5355*344a7f5eSAndroid Build Coastguard Worker }
5356*344a7f5eSAndroid Build Coastguard Worker 
5357*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_rolv_epi64(__mmask8 __U,__m512i __A,__m512i __B)5358*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
5359*344a7f5eSAndroid Build Coastguard Worker {
5360*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
5361*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __B,
5362*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
5363*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5364*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
5365*344a7f5eSAndroid Build Coastguard Worker }
5366*344a7f5eSAndroid Build Coastguard Worker 
5367*344a7f5eSAndroid Build Coastguard Worker #define _mm512_ror_epi32(A, B) __extension__ ({ \
5368*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prord512_mask((__v16si)(__m512i)(A), (int)(B), \
5369*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)_mm512_setzero_si512(), \
5370*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)-1); })
5371*344a7f5eSAndroid Build Coastguard Worker 
5372*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_ror_epi32(W, U, A, B) __extension__ ({ \
5373*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prord512_mask((__v16si)(__m512i)(A), (int)(B), \
5374*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)(__m512i)(W), \
5375*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)(U)); })
5376*344a7f5eSAndroid Build Coastguard Worker 
5377*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_ror_epi32(U, A, B) __extension__ ({ \
5378*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prord512_mask((__v16si)(__m512i)(A), (int)(B), \
5379*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)_mm512_setzero_si512(), \
5380*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)(U)); })
5381*344a7f5eSAndroid Build Coastguard Worker 
5382*344a7f5eSAndroid Build Coastguard Worker #define _mm512_ror_epi64(A, B) __extension__ ({ \
5383*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prorq512_mask((__v8di)(__m512i)(A), (int)(B), \
5384*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_setzero_si512(), \
5385*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1); })
5386*344a7f5eSAndroid Build Coastguard Worker 
5387*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_ror_epi64(W, U, A, B) __extension__ ({ \
5388*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prorq512_mask((__v8di)(__m512i)(A), (int)(B), \
5389*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)(__m512i)(W), (__mmask8)(U)); })
5390*344a7f5eSAndroid Build Coastguard Worker 
5391*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_ror_epi64(U, A, B) __extension__ ({ \
5392*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_prorq512_mask((__v8di)(__m512i)(A), (int)(B), \
5393*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)_mm512_setzero_si512(), \
5394*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(U)); })
5395*344a7f5eSAndroid Build Coastguard Worker 
5396*344a7f5eSAndroid Build Coastguard Worker #define _mm512_slli_epi32(A, B) __extension__ ({ \
5397*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pslldi512_mask((__v16si)(__m512i)(A), (int)(B), \
5398*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
5399*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1); })
5400*344a7f5eSAndroid Build Coastguard Worker 
5401*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_slli_epi32(W, U, A, B) __extension__ ({ \
5402*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pslldi512_mask((__v16si)(__m512i)(A), (int)(B), \
5403*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(W), \
5404*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
5405*344a7f5eSAndroid Build Coastguard Worker 
5406*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_slli_epi32(U, A, B) __extension__ ({ \
5407*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pslldi512_mask((__v16si)(__m512i)(A), (int)(B), \
5408*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
5409*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
5410*344a7f5eSAndroid Build Coastguard Worker 
5411*344a7f5eSAndroid Build Coastguard Worker #define _mm512_slli_epi64(A, B) __extension__ ({ \
5412*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psllqi512_mask((__v8di)(__m512i)(A), (int)(B), \
5413*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
5414*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1); })
5415*344a7f5eSAndroid Build Coastguard Worker 
5416*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_slli_epi64(W, U, A, B) __extension__ ({ \
5417*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psllqi512_mask((__v8di)(__m512i)(A), (int)(B), \
5418*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(W), \
5419*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
5420*344a7f5eSAndroid Build Coastguard Worker 
5421*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_slli_epi64(U, A, B) __extension__ ({ \
5422*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psllqi512_mask((__v8di)(__m512i)(A), (int)(B), \
5423*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
5424*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
5425*344a7f5eSAndroid Build Coastguard Worker 
5426*344a7f5eSAndroid Build Coastguard Worker 
5427*344a7f5eSAndroid Build Coastguard Worker 
5428*344a7f5eSAndroid Build Coastguard Worker #define _mm512_srli_epi32(A, B) __extension__ ({ \
5429*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psrldi512_mask((__v16si)(__m512i)(A), (int)(B), \
5430*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
5431*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1); })
5432*344a7f5eSAndroid Build Coastguard Worker 
5433*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_srli_epi32(W, U, A, B) __extension__ ({ \
5434*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psrldi512_mask((__v16si)(__m512i)(A), (int)(B), \
5435*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(W), \
5436*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
5437*344a7f5eSAndroid Build Coastguard Worker 
5438*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_srli_epi32(U, A, B) __extension__ ({ \
5439*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psrldi512_mask((__v16si)(__m512i)(A), (int)(B), \
5440*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
5441*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
5442*344a7f5eSAndroid Build Coastguard Worker 
5443*344a7f5eSAndroid Build Coastguard Worker #define _mm512_srli_epi64(A, B) __extension__ ({ \
5444*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psrlqi512_mask((__v8di)(__m512i)(A), (int)(B), \
5445*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
5446*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1); })
5447*344a7f5eSAndroid Build Coastguard Worker 
5448*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_srli_epi64(W, U, A, B) __extension__ ({ \
5449*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psrlqi512_mask((__v8di)(__m512i)(A), (int)(B), \
5450*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(W), \
5451*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
5452*344a7f5eSAndroid Build Coastguard Worker 
5453*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_srli_epi64(U, A, B) __extension__ ({ \
5454*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psrlqi512_mask((__v8di)(__m512i)(A), (int)(B), \
5455*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
5456*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
5457*344a7f5eSAndroid Build Coastguard Worker 
5458*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_load_epi32(__m512i __W,__mmask16 __U,void const * __P)5459*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P)
5460*344a7f5eSAndroid Build Coastguard Worker {
5461*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
5462*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
5463*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
5464*344a7f5eSAndroid Build Coastguard Worker }
5465*344a7f5eSAndroid Build Coastguard Worker 
5466*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_load_epi32(__mmask16 __U,void const * __P)5467*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_load_epi32 (__mmask16 __U, void const *__P)
5468*344a7f5eSAndroid Build Coastguard Worker {
5469*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
5470*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
5471*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5472*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
5473*344a7f5eSAndroid Build Coastguard Worker }
5474*344a7f5eSAndroid Build Coastguard Worker 
5475*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_store_epi32(void * __P,__mmask16 __U,__m512i __A)5476*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A)
5477*344a7f5eSAndroid Build Coastguard Worker {
5478*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A,
5479*344a7f5eSAndroid Build Coastguard Worker           (__mmask16) __U);
5480*344a7f5eSAndroid Build Coastguard Worker }
5481*344a7f5eSAndroid Build Coastguard Worker 
5482*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mov_epi32(__m512i __W,__mmask16 __U,__m512i __A)5483*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
5484*344a7f5eSAndroid Build Coastguard Worker {
5485*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U,
5486*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __A,
5487*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __W);
5488*344a7f5eSAndroid Build Coastguard Worker }
5489*344a7f5eSAndroid Build Coastguard Worker 
5490*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mov_epi32(__mmask16 __U,__m512i __A)5491*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A)
5492*344a7f5eSAndroid Build Coastguard Worker {
5493*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U,
5494*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __A,
5495*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) _mm512_setzero_si512 ());
5496*344a7f5eSAndroid Build Coastguard Worker }
5497*344a7f5eSAndroid Build Coastguard Worker 
5498*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_mov_epi64(__m512i __W,__mmask8 __U,__m512i __A)5499*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
5500*344a7f5eSAndroid Build Coastguard Worker {
5501*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U,
5502*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __A,
5503*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __W);
5504*344a7f5eSAndroid Build Coastguard Worker }
5505*344a7f5eSAndroid Build Coastguard Worker 
5506*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_mov_epi64(__mmask8 __U,__m512i __A)5507*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A)
5508*344a7f5eSAndroid Build Coastguard Worker {
5509*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U,
5510*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __A,
5511*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) _mm512_setzero_si512 ());
5512*344a7f5eSAndroid Build Coastguard Worker }
5513*344a7f5eSAndroid Build Coastguard Worker 
5514*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_load_epi64(__m512i __W,__mmask8 __U,void const * __P)5515*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P)
5516*344a7f5eSAndroid Build Coastguard Worker {
5517*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
5518*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __W,
5519*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
5520*344a7f5eSAndroid Build Coastguard Worker }
5521*344a7f5eSAndroid Build Coastguard Worker 
5522*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_load_epi64(__mmask8 __U,void const * __P)5523*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_load_epi64 (__mmask8 __U, void const *__P)
5524*344a7f5eSAndroid Build Coastguard Worker {
5525*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
5526*344a7f5eSAndroid Build Coastguard Worker               (__v8di)
5527*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5528*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
5529*344a7f5eSAndroid Build Coastguard Worker }
5530*344a7f5eSAndroid Build Coastguard Worker 
5531*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_store_epi64(void * __P,__mmask8 __U,__m512i __A)5532*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)
5533*344a7f5eSAndroid Build Coastguard Worker {
5534*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A,
5535*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U);
5536*344a7f5eSAndroid Build Coastguard Worker }
5537*344a7f5eSAndroid Build Coastguard Worker 
5538*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_movedup_pd(__m512d __A)5539*344a7f5eSAndroid Build Coastguard Worker _mm512_movedup_pd (__m512d __A)
5540*344a7f5eSAndroid Build Coastguard Worker {
5541*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_shufflevector((__v8df)__A, (__v8df)__A,
5542*344a7f5eSAndroid Build Coastguard Worker                                           0, 0, 2, 2, 4, 4, 6, 6);
5543*344a7f5eSAndroid Build Coastguard Worker }
5544*344a7f5eSAndroid Build Coastguard Worker 
5545*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_movedup_pd(__m512d __W,__mmask8 __U,__m512d __A)5546*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A)
5547*344a7f5eSAndroid Build Coastguard Worker {
5548*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
5549*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)_mm512_movedup_pd(__A),
5550*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)__W);
5551*344a7f5eSAndroid Build Coastguard Worker }
5552*344a7f5eSAndroid Build Coastguard Worker 
5553*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_movedup_pd(__mmask8 __U,__m512d __A)5554*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)
5555*344a7f5eSAndroid Build Coastguard Worker {
5556*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
5557*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)_mm512_movedup_pd(__A),
5558*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)_mm512_setzero_pd());
5559*344a7f5eSAndroid Build Coastguard Worker }
5560*344a7f5eSAndroid Build Coastguard Worker 
5561*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fixupimm_round_pd(A, B, C, imm, R) __extension__ ({ \
5562*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \
5563*344a7f5eSAndroid Build Coastguard Worker                                              (__v8df)(__m512d)(B), \
5564*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)(__m512i)(C), (int)(imm), \
5565*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)-1, (int)(R)); })
5566*344a7f5eSAndroid Build Coastguard Worker 
5567*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fixupimm_round_pd(A, U, B, C, imm, R) __extension__ ({ \
5568*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \
5569*344a7f5eSAndroid Build Coastguard Worker                                              (__v8df)(__m512d)(B), \
5570*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)(__m512i)(C), (int)(imm), \
5571*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
5572*344a7f5eSAndroid Build Coastguard Worker 
5573*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fixupimm_pd(A, B, C, imm) __extension__ ({ \
5574*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \
5575*344a7f5eSAndroid Build Coastguard Worker                                              (__v8df)(__m512d)(B), \
5576*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)(__m512i)(C), (int)(imm), \
5577*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)-1, \
5578*344a7f5eSAndroid Build Coastguard Worker                                              _MM_FROUND_CUR_DIRECTION); })
5579*344a7f5eSAndroid Build Coastguard Worker 
5580*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \
5581*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \
5582*344a7f5eSAndroid Build Coastguard Worker                                              (__v8df)(__m512d)(B), \
5583*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)(__m512i)(C), (int)(imm), \
5584*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), \
5585*344a7f5eSAndroid Build Coastguard Worker                                              _MM_FROUND_CUR_DIRECTION); })
5586*344a7f5eSAndroid Build Coastguard Worker 
5587*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fixupimm_round_pd(U, A, B, C, imm, R) __extension__ ({ \
5588*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_fixupimmpd512_maskz((__v8df)(__m512d)(A), \
5589*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(B), \
5590*344a7f5eSAndroid Build Coastguard Worker                                               (__v8di)(__m512i)(C), \
5591*344a7f5eSAndroid Build Coastguard Worker                                               (int)(imm), (__mmask8)(U), \
5592*344a7f5eSAndroid Build Coastguard Worker                                               (int)(R)); })
5593*344a7f5eSAndroid Build Coastguard Worker 
5594*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \
5595*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_fixupimmpd512_maskz((__v8df)(__m512d)(A), \
5596*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df)(__m512d)(B), \
5597*344a7f5eSAndroid Build Coastguard Worker                                               (__v8di)(__m512i)(C), \
5598*344a7f5eSAndroid Build Coastguard Worker                                               (int)(imm), (__mmask8)(U), \
5599*344a7f5eSAndroid Build Coastguard Worker                                               _MM_FROUND_CUR_DIRECTION); })
5600*344a7f5eSAndroid Build Coastguard Worker 
5601*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fixupimm_round_ps(A, B, C, imm, R) __extension__ ({ \
5602*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \
5603*344a7f5eSAndroid Build Coastguard Worker                                             (__v16sf)(__m512)(B), \
5604*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(C), (int)(imm), \
5605*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1, (int)(R)); })
5606*344a7f5eSAndroid Build Coastguard Worker 
5607*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fixupimm_round_ps(A, U, B, C, imm, R) __extension__ ({ \
5608*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \
5609*344a7f5eSAndroid Build Coastguard Worker                                             (__v16sf)(__m512)(B), \
5610*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(C), (int)(imm), \
5611*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), (int)(R)); })
5612*344a7f5eSAndroid Build Coastguard Worker 
5613*344a7f5eSAndroid Build Coastguard Worker #define _mm512_fixupimm_ps(A, B, C, imm) __extension__ ({ \
5614*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \
5615*344a7f5eSAndroid Build Coastguard Worker                                             (__v16sf)(__m512)(B), \
5616*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(C), (int)(imm), \
5617*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1, \
5618*344a7f5eSAndroid Build Coastguard Worker                                             _MM_FROUND_CUR_DIRECTION); })
5619*344a7f5eSAndroid Build Coastguard Worker 
5620*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \
5621*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \
5622*344a7f5eSAndroid Build Coastguard Worker                                             (__v16sf)(__m512)(B), \
5623*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(C), (int)(imm), \
5624*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U), \
5625*344a7f5eSAndroid Build Coastguard Worker                                             _MM_FROUND_CUR_DIRECTION); })
5626*344a7f5eSAndroid Build Coastguard Worker 
5627*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fixupimm_round_ps(U, A, B, C, imm, R) __extension__ ({ \
5628*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_fixupimmps512_maskz((__v16sf)(__m512)(A), \
5629*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(B), \
5630*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)(__m512i)(C), \
5631*344a7f5eSAndroid Build Coastguard Worker                                              (int)(imm), (__mmask16)(U), \
5632*344a7f5eSAndroid Build Coastguard Worker                                              (int)(R)); })
5633*344a7f5eSAndroid Build Coastguard Worker 
5634*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \
5635*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_fixupimmps512_maskz((__v16sf)(__m512)(A), \
5636*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)(__m512)(B), \
5637*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)(__m512i)(C), \
5638*344a7f5eSAndroid Build Coastguard Worker                                              (int)(imm), (__mmask16)(U), \
5639*344a7f5eSAndroid Build Coastguard Worker                                              _MM_FROUND_CUR_DIRECTION); })
5640*344a7f5eSAndroid Build Coastguard Worker 
5641*344a7f5eSAndroid Build Coastguard Worker #define _mm_fixupimm_round_sd(A, B, C, imm, R) __extension__ ({ \
5642*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \
5643*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
5644*344a7f5eSAndroid Build Coastguard Worker                                           (__v2di)(__m128i)(C), (int)(imm), \
5645*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, (int)(R)); })
5646*344a7f5eSAndroid Build Coastguard Worker 
5647*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fixupimm_round_sd(A, U, B, C, imm, R) __extension__ ({ \
5648*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \
5649*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
5650*344a7f5eSAndroid Build Coastguard Worker                                           (__v2di)(__m128i)(C), (int)(imm), \
5651*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
5652*344a7f5eSAndroid Build Coastguard Worker 
5653*344a7f5eSAndroid Build Coastguard Worker #define _mm_fixupimm_sd(A, B, C, imm) __extension__ ({ \
5654*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \
5655*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
5656*344a7f5eSAndroid Build Coastguard Worker                                           (__v2di)(__m128i)(C), (int)(imm), \
5657*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1, \
5658*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
5659*344a7f5eSAndroid Build Coastguard Worker 
5660*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fixupimm_sd(A, U, B, C, imm) __extension__ ({ \
5661*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \
5662*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
5663*344a7f5eSAndroid Build Coastguard Worker                                           (__v2di)(__m128i)(C), (int)(imm), \
5664*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), \
5665*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
5666*344a7f5eSAndroid Build Coastguard Worker 
5667*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fixupimm_round_sd(U, A, B, C, imm, R) __extension__ ({ \
5668*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_fixupimmsd_maskz((__v2df)(__m128d)(A), \
5669*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
5670*344a7f5eSAndroid Build Coastguard Worker                                            (__v2di)(__m128i)(C), (int)(imm), \
5671*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
5672*344a7f5eSAndroid Build Coastguard Worker 
5673*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fixupimm_sd(U, A, B, C, imm) __extension__ ({ \
5674*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_fixupimmsd_maskz((__v2df)(__m128d)(A), \
5675*344a7f5eSAndroid Build Coastguard Worker                                            (__v2df)(__m128d)(B), \
5676*344a7f5eSAndroid Build Coastguard Worker                                            (__v2di)(__m128i)(C), (int)(imm), \
5677*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), \
5678*344a7f5eSAndroid Build Coastguard Worker                                            _MM_FROUND_CUR_DIRECTION); })
5679*344a7f5eSAndroid Build Coastguard Worker 
5680*344a7f5eSAndroid Build Coastguard Worker #define _mm_fixupimm_round_ss(A, B, C, imm, R) __extension__ ({ \
5681*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \
5682*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
5683*344a7f5eSAndroid Build Coastguard Worker                                          (__v4si)(__m128i)(C), (int)(imm), \
5684*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1, (int)(R)); })
5685*344a7f5eSAndroid Build Coastguard Worker 
5686*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fixupimm_round_ss(A, U, B, C, imm, R) __extension__ ({ \
5687*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \
5688*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
5689*344a7f5eSAndroid Build Coastguard Worker                                          (__v4si)(__m128i)(C), (int)(imm), \
5690*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U), (int)(R)); })
5691*344a7f5eSAndroid Build Coastguard Worker 
5692*344a7f5eSAndroid Build Coastguard Worker #define _mm_fixupimm_ss(A, B, C, imm) __extension__ ({ \
5693*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \
5694*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
5695*344a7f5eSAndroid Build Coastguard Worker                                          (__v4si)(__m128i)(C), (int)(imm), \
5696*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1, \
5697*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
5698*344a7f5eSAndroid Build Coastguard Worker 
5699*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fixupimm_ss(A, U, B, C, imm) __extension__ ({ \
5700*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \
5701*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
5702*344a7f5eSAndroid Build Coastguard Worker                                          (__v4si)(__m128i)(C), (int)(imm), \
5703*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U), \
5704*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
5705*344a7f5eSAndroid Build Coastguard Worker 
5706*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fixupimm_round_ss(U, A, B, C, imm, R) __extension__ ({ \
5707*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_fixupimmss_maskz((__v4sf)(__m128)(A), \
5708*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
5709*344a7f5eSAndroid Build Coastguard Worker                                           (__v4si)(__m128i)(C), (int)(imm), \
5710*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
5711*344a7f5eSAndroid Build Coastguard Worker 
5712*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fixupimm_ss(U, A, B, C, imm) __extension__ ({ \
5713*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_fixupimmss_maskz((__v4sf)(__m128)(A), \
5714*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), \
5715*344a7f5eSAndroid Build Coastguard Worker                                           (__v4si)(__m128i)(C), (int)(imm), \
5716*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), \
5717*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
5718*344a7f5eSAndroid Build Coastguard Worker 
5719*344a7f5eSAndroid Build Coastguard Worker #define _mm_getexp_round_sd(A, B, R) __extension__ ({ \
5720*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \
5721*344a7f5eSAndroid Build Coastguard Worker                                                  (__v2df)(__m128d)(B), \
5722*344a7f5eSAndroid Build Coastguard Worker                                                  (__v2df)_mm_setzero_pd(), \
5723*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask8)-1, (int)(R)); })
5724*344a7f5eSAndroid Build Coastguard Worker 
5725*344a7f5eSAndroid Build Coastguard Worker 
5726*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_getexp_sd(__m128d __A,__m128d __B)5727*344a7f5eSAndroid Build Coastguard Worker _mm_getexp_sd (__m128d __A, __m128d __B)
5728*344a7f5eSAndroid Build Coastguard Worker {
5729*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_getexpsd128_round_mask ((__v2df) __A,
5730*344a7f5eSAndroid Build Coastguard Worker                  (__v2df) __B, (__v2df) _mm_setzero_pd(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);
5731*344a7f5eSAndroid Build Coastguard Worker }
5732*344a7f5eSAndroid Build Coastguard Worker 
5733*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_getexp_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)5734*344a7f5eSAndroid Build Coastguard Worker _mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
5735*344a7f5eSAndroid Build Coastguard Worker {
5736*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,
5737*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
5738*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
5739*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
5740*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
5741*344a7f5eSAndroid Build Coastguard Worker }
5742*344a7f5eSAndroid Build Coastguard Worker 
5743*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_getexp_round_sd(W, U, A, B, R) __extension__ ({\
5744*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \
5745*344a7f5eSAndroid Build Coastguard Worker                                                  (__v2df)(__m128d)(B), \
5746*344a7f5eSAndroid Build Coastguard Worker                                                  (__v2df)(__m128d)(W), \
5747*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask8)(U), (int)(R)); })
5748*344a7f5eSAndroid Build Coastguard Worker 
5749*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_getexp_sd(__mmask8 __U,__m128d __A,__m128d __B)5750*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B)
5751*344a7f5eSAndroid Build Coastguard Worker {
5752*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,
5753*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
5754*344a7f5eSAndroid Build Coastguard Worker           (__v2df) _mm_setzero_pd (),
5755*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
5756*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
5757*344a7f5eSAndroid Build Coastguard Worker }
5758*344a7f5eSAndroid Build Coastguard Worker 
5759*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_getexp_round_sd(U, A, B, R) __extension__ ({\
5760*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \
5761*344a7f5eSAndroid Build Coastguard Worker                                                  (__v2df)(__m128d)(B), \
5762*344a7f5eSAndroid Build Coastguard Worker                                                  (__v2df)_mm_setzero_pd(), \
5763*344a7f5eSAndroid Build Coastguard Worker                                                  (__mmask8)(U), (int)(R)); })
5764*344a7f5eSAndroid Build Coastguard Worker 
5765*344a7f5eSAndroid Build Coastguard Worker #define _mm_getexp_round_ss(A, B, R) __extension__ ({ \
5766*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \
5767*344a7f5eSAndroid Build Coastguard Worker                                                 (__v4sf)(__m128)(B), \
5768*344a7f5eSAndroid Build Coastguard Worker                                                 (__v4sf)_mm_setzero_ps(), \
5769*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1, (int)(R)); })
5770*344a7f5eSAndroid Build Coastguard Worker 
5771*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_getexp_ss(__m128 __A,__m128 __B)5772*344a7f5eSAndroid Build Coastguard Worker _mm_getexp_ss (__m128 __A, __m128 __B)
5773*344a7f5eSAndroid Build Coastguard Worker {
5774*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,
5775*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B, (__v4sf)  _mm_setzero_ps(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);
5776*344a7f5eSAndroid Build Coastguard Worker }
5777*344a7f5eSAndroid Build Coastguard Worker 
5778*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_getexp_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)5779*344a7f5eSAndroid Build Coastguard Worker _mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
5780*344a7f5eSAndroid Build Coastguard Worker {
5781*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,
5782*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
5783*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
5784*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
5785*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
5786*344a7f5eSAndroid Build Coastguard Worker }
5787*344a7f5eSAndroid Build Coastguard Worker 
5788*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_getexp_round_ss(W, U, A, B, R) __extension__ ({\
5789*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \
5790*344a7f5eSAndroid Build Coastguard Worker                                                 (__v4sf)(__m128)(B), \
5791*344a7f5eSAndroid Build Coastguard Worker                                                 (__v4sf)(__m128)(W), \
5792*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)(U), (int)(R)); })
5793*344a7f5eSAndroid Build Coastguard Worker 
5794*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_getexp_ss(__mmask8 __U,__m128 __A,__m128 __B)5795*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)
5796*344a7f5eSAndroid Build Coastguard Worker {
5797*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,
5798*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
5799*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) _mm_setzero_pd (),
5800*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
5801*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
5802*344a7f5eSAndroid Build Coastguard Worker }
5803*344a7f5eSAndroid Build Coastguard Worker 
5804*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_getexp_round_ss(U, A, B, R) __extension__ ({\
5805*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \
5806*344a7f5eSAndroid Build Coastguard Worker                                                 (__v4sf)(__m128)(B), \
5807*344a7f5eSAndroid Build Coastguard Worker                                                 (__v4sf)_mm_setzero_ps(), \
5808*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)(U), (int)(R)); })
5809*344a7f5eSAndroid Build Coastguard Worker 
5810*344a7f5eSAndroid Build Coastguard Worker #define _mm_getmant_round_sd(A, B, C, D, R) __extension__ ({ \
5811*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \
5812*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(B), \
5813*344a7f5eSAndroid Build Coastguard Worker                                                (int)(((D)<<2) | (C)), \
5814*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)_mm_setzero_pd(), \
5815*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1, (int)(R)); })
5816*344a7f5eSAndroid Build Coastguard Worker 
5817*344a7f5eSAndroid Build Coastguard Worker #define _mm_getmant_sd(A, B, C, D)  __extension__ ({ \
5818*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \
5819*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(B), \
5820*344a7f5eSAndroid Build Coastguard Worker                                                (int)(((D)<<2) | (C)), \
5821*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)_mm_setzero_pd(), \
5822*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1, \
5823*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION); })
5824*344a7f5eSAndroid Build Coastguard Worker 
5825*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_getmant_sd(W, U, A, B, C, D) __extension__ ({\
5826*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \
5827*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(B), \
5828*344a7f5eSAndroid Build Coastguard Worker                                                (int)(((D)<<2) | (C)), \
5829*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(W), \
5830*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), \
5831*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION); })
5832*344a7f5eSAndroid Build Coastguard Worker 
5833*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_getmant_round_sd(W, U, A, B, C, D, R)({\
5834*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \
5835*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(B), \
5836*344a7f5eSAndroid Build Coastguard Worker                                                (int)(((D)<<2) | (C)), \
5837*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(W), \
5838*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(R)); })
5839*344a7f5eSAndroid Build Coastguard Worker 
5840*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_getmant_sd(U, A, B, C, D) __extension__ ({\
5841*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \
5842*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(B), \
5843*344a7f5eSAndroid Build Coastguard Worker                                                (int)(((D)<<2) | (C)), \
5844*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)_mm_setzero_pd(), \
5845*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), \
5846*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION); })
5847*344a7f5eSAndroid Build Coastguard Worker 
5848*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_getmant_round_sd(U, A, B, C, D, R) __extension__ ({\
5849*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \
5850*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)(__m128d)(B), \
5851*344a7f5eSAndroid Build Coastguard Worker                                                (int)(((D)<<2) | (C)), \
5852*344a7f5eSAndroid Build Coastguard Worker                                                (__v2df)_mm_setzero_pd(), \
5853*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(R)); })
5854*344a7f5eSAndroid Build Coastguard Worker 
5855*344a7f5eSAndroid Build Coastguard Worker #define _mm_getmant_round_ss(A, B, C, D, R) __extension__ ({ \
5856*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \
5857*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
5858*344a7f5eSAndroid Build Coastguard Worker                                               (int)(((D)<<2) | (C)), \
5859*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)_mm_setzero_ps(), \
5860*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)-1, (int)(R)); })
5861*344a7f5eSAndroid Build Coastguard Worker 
5862*344a7f5eSAndroid Build Coastguard Worker #define _mm_getmant_ss(A, B, C, D) __extension__ ({ \
5863*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \
5864*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
5865*344a7f5eSAndroid Build Coastguard Worker                                               (int)(((D)<<2) | (C)), \
5866*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)_mm_setzero_ps(), \
5867*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)-1, \
5868*344a7f5eSAndroid Build Coastguard Worker                                               _MM_FROUND_CUR_DIRECTION); })
5869*344a7f5eSAndroid Build Coastguard Worker 
5870*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_getmant_ss(W, U, A, B, C, D) __extension__ ({\
5871*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \
5872*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
5873*344a7f5eSAndroid Build Coastguard Worker                                               (int)(((D)<<2) | (C)), \
5874*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(W), \
5875*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), \
5876*344a7f5eSAndroid Build Coastguard Worker                                               _MM_FROUND_CUR_DIRECTION); })
5877*344a7f5eSAndroid Build Coastguard Worker 
5878*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_getmant_round_ss(W, U, A, B, C, D, R)({\
5879*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \
5880*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
5881*344a7f5eSAndroid Build Coastguard Worker                                               (int)(((D)<<2) | (C)), \
5882*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(W), \
5883*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
5884*344a7f5eSAndroid Build Coastguard Worker 
5885*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_getmant_ss(U, A, B, C, D) __extension__ ({\
5886*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \
5887*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
5888*344a7f5eSAndroid Build Coastguard Worker                                               (int)(((D)<<2) | (C)), \
5889*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)_mm_setzero_pd(), \
5890*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), \
5891*344a7f5eSAndroid Build Coastguard Worker                                               _MM_FROUND_CUR_DIRECTION); })
5892*344a7f5eSAndroid Build Coastguard Worker 
5893*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_getmant_round_ss(U, A, B, C, D, R) __extension__ ({\
5894*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \
5895*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
5896*344a7f5eSAndroid Build Coastguard Worker                                               (int)(((D)<<2) | (C)), \
5897*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)_mm_setzero_ps(), \
5898*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
5899*344a7f5eSAndroid Build Coastguard Worker 
5900*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kmov(__mmask16 __A)5901*344a7f5eSAndroid Build Coastguard Worker _mm512_kmov (__mmask16 __A)
5902*344a7f5eSAndroid Build Coastguard Worker {
5903*344a7f5eSAndroid Build Coastguard Worker   return  __A;
5904*344a7f5eSAndroid Build Coastguard Worker }
5905*344a7f5eSAndroid Build Coastguard Worker 
5906*344a7f5eSAndroid Build Coastguard Worker #define _mm_comi_round_sd(A, B, P, R) __extension__ ({\
5907*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcomisd((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), \
5908*344a7f5eSAndroid Build Coastguard Worker                               (int)(P), (int)(R)); })
5909*344a7f5eSAndroid Build Coastguard Worker 
5910*344a7f5eSAndroid Build Coastguard Worker #define _mm_comi_round_ss(A, B, P, R) __extension__ ({\
5911*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcomiss((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
5912*344a7f5eSAndroid Build Coastguard Worker                               (int)(P), (int)(R)); })
5913*344a7f5eSAndroid Build Coastguard Worker 
5914*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_si64(A, R) __extension__ ({ \
5915*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvtsd2si64((__v2df)(__m128d)(A), (int)(R)); })
5916*344a7f5eSAndroid Build Coastguard Worker 
5917*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask2_permutex2var_epi32(__m512i __A,__m512i __I,__mmask16 __U,__m512i __B)5918*344a7f5eSAndroid Build Coastguard Worker _mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,
5919*344a7f5eSAndroid Build Coastguard Worker          __mmask16 __U, __m512i __B)
5920*344a7f5eSAndroid Build Coastguard Worker {
5921*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,
5922*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __I
5923*344a7f5eSAndroid Build Coastguard Worker                    /* idx */ ,
5924*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __B,
5925*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
5926*344a7f5eSAndroid Build Coastguard Worker }
5927*344a7f5eSAndroid Build Coastguard Worker 
5928*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sll_epi32(__m512i __A,__m128i __B)5929*344a7f5eSAndroid Build Coastguard Worker _mm512_sll_epi32 (__m512i __A, __m128i __B)
5930*344a7f5eSAndroid Build Coastguard Worker {
5931*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
5932*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
5933*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
5934*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
5935*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) -1);
5936*344a7f5eSAndroid Build Coastguard Worker }
5937*344a7f5eSAndroid Build Coastguard Worker 
5938*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sll_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)5939*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
5940*344a7f5eSAndroid Build Coastguard Worker {
5941*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
5942*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
5943*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __W,
5944*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
5945*344a7f5eSAndroid Build Coastguard Worker }
5946*344a7f5eSAndroid Build Coastguard Worker 
5947*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sll_epi32(__mmask16 __U,__m512i __A,__m128i __B)5948*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
5949*344a7f5eSAndroid Build Coastguard Worker {
5950*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
5951*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
5952*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
5953*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
5954*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
5955*344a7f5eSAndroid Build Coastguard Worker }
5956*344a7f5eSAndroid Build Coastguard Worker 
5957*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sll_epi64(__m512i __A,__m128i __B)5958*344a7f5eSAndroid Build Coastguard Worker _mm512_sll_epi64 (__m512i __A, __m128i __B)
5959*344a7f5eSAndroid Build Coastguard Worker {
5960*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
5961*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
5962*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
5963*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
5964*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
5965*344a7f5eSAndroid Build Coastguard Worker }
5966*344a7f5eSAndroid Build Coastguard Worker 
5967*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sll_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)5968*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
5969*344a7f5eSAndroid Build Coastguard Worker {
5970*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
5971*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
5972*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
5973*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
5974*344a7f5eSAndroid Build Coastguard Worker }
5975*344a7f5eSAndroid Build Coastguard Worker 
5976*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sll_epi64(__mmask8 __U,__m512i __A,__m128i __B)5977*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
5978*344a7f5eSAndroid Build Coastguard Worker {
5979*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
5980*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
5981*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
5982*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
5983*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
5984*344a7f5eSAndroid Build Coastguard Worker }
5985*344a7f5eSAndroid Build Coastguard Worker 
5986*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sllv_epi32(__m512i __X,__m512i __Y)5987*344a7f5eSAndroid Build Coastguard Worker _mm512_sllv_epi32 (__m512i __X, __m512i __Y)
5988*344a7f5eSAndroid Build Coastguard Worker {
5989*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
5990*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
5991*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
5992*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
5993*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
5994*344a7f5eSAndroid Build Coastguard Worker }
5995*344a7f5eSAndroid Build Coastguard Worker 
5996*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sllv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)5997*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
5998*344a7f5eSAndroid Build Coastguard Worker {
5999*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
6000*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6001*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
6002*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
6003*344a7f5eSAndroid Build Coastguard Worker }
6004*344a7f5eSAndroid Build Coastguard Worker 
6005*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sllv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)6006*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
6007*344a7f5eSAndroid Build Coastguard Worker {
6008*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
6009*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6010*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
6011*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
6012*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
6013*344a7f5eSAndroid Build Coastguard Worker }
6014*344a7f5eSAndroid Build Coastguard Worker 
6015*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sllv_epi64(__m512i __X,__m512i __Y)6016*344a7f5eSAndroid Build Coastguard Worker _mm512_sllv_epi64 (__m512i __X, __m512i __Y)
6017*344a7f5eSAndroid Build Coastguard Worker {
6018*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
6019*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6020*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6021*344a7f5eSAndroid Build Coastguard Worker              _mm512_undefined_pd (),
6022*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
6023*344a7f5eSAndroid Build Coastguard Worker }
6024*344a7f5eSAndroid Build Coastguard Worker 
6025*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sllv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)6026*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
6027*344a7f5eSAndroid Build Coastguard Worker {
6028*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
6029*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6030*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
6031*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6032*344a7f5eSAndroid Build Coastguard Worker }
6033*344a7f5eSAndroid Build Coastguard Worker 
6034*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sllv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)6035*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
6036*344a7f5eSAndroid Build Coastguard Worker {
6037*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
6038*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6039*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6040*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6041*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6042*344a7f5eSAndroid Build Coastguard Worker }
6043*344a7f5eSAndroid Build Coastguard Worker 
6044*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sra_epi32(__m512i __A,__m128i __B)6045*344a7f5eSAndroid Build Coastguard Worker _mm512_sra_epi32 (__m512i __A, __m128i __B)
6046*344a7f5eSAndroid Build Coastguard Worker {
6047*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
6048*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
6049*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
6050*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6051*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) -1);
6052*344a7f5eSAndroid Build Coastguard Worker }
6053*344a7f5eSAndroid Build Coastguard Worker 
6054*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sra_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)6055*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
6056*344a7f5eSAndroid Build Coastguard Worker {
6057*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
6058*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
6059*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __W,
6060*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
6061*344a7f5eSAndroid Build Coastguard Worker }
6062*344a7f5eSAndroid Build Coastguard Worker 
6063*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sra_epi32(__mmask16 __U,__m512i __A,__m128i __B)6064*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
6065*344a7f5eSAndroid Build Coastguard Worker {
6066*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
6067*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
6068*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
6069*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6070*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
6071*344a7f5eSAndroid Build Coastguard Worker }
6072*344a7f5eSAndroid Build Coastguard Worker 
6073*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_sra_epi64(__m512i __A,__m128i __B)6074*344a7f5eSAndroid Build Coastguard Worker _mm512_sra_epi64 (__m512i __A, __m128i __B)
6075*344a7f5eSAndroid Build Coastguard Worker {
6076*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
6077*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
6078*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6079*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6080*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
6081*344a7f5eSAndroid Build Coastguard Worker }
6082*344a7f5eSAndroid Build Coastguard Worker 
6083*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_sra_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)6084*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
6085*344a7f5eSAndroid Build Coastguard Worker {
6086*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
6087*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
6088*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
6089*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6090*344a7f5eSAndroid Build Coastguard Worker }
6091*344a7f5eSAndroid Build Coastguard Worker 
6092*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_sra_epi64(__mmask8 __U,__m512i __A,__m128i __B)6093*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
6094*344a7f5eSAndroid Build Coastguard Worker {
6095*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
6096*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
6097*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6098*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6099*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6100*344a7f5eSAndroid Build Coastguard Worker }
6101*344a7f5eSAndroid Build Coastguard Worker 
6102*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srav_epi32(__m512i __X,__m512i __Y)6103*344a7f5eSAndroid Build Coastguard Worker _mm512_srav_epi32 (__m512i __X, __m512i __Y)
6104*344a7f5eSAndroid Build Coastguard Worker {
6105*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
6106*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6107*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
6108*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
6109*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
6110*344a7f5eSAndroid Build Coastguard Worker }
6111*344a7f5eSAndroid Build Coastguard Worker 
6112*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srav_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)6113*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
6114*344a7f5eSAndroid Build Coastguard Worker {
6115*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
6116*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6117*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
6118*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
6119*344a7f5eSAndroid Build Coastguard Worker }
6120*344a7f5eSAndroid Build Coastguard Worker 
6121*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srav_epi32(__mmask16 __U,__m512i __X,__m512i __Y)6122*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
6123*344a7f5eSAndroid Build Coastguard Worker {
6124*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
6125*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6126*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
6127*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
6128*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
6129*344a7f5eSAndroid Build Coastguard Worker }
6130*344a7f5eSAndroid Build Coastguard Worker 
6131*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srav_epi64(__m512i __X,__m512i __Y)6132*344a7f5eSAndroid Build Coastguard Worker _mm512_srav_epi64 (__m512i __X, __m512i __Y)
6133*344a7f5eSAndroid Build Coastguard Worker {
6134*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
6135*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6136*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6137*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6138*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
6139*344a7f5eSAndroid Build Coastguard Worker }
6140*344a7f5eSAndroid Build Coastguard Worker 
6141*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srav_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)6142*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
6143*344a7f5eSAndroid Build Coastguard Worker {
6144*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
6145*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6146*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
6147*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6148*344a7f5eSAndroid Build Coastguard Worker }
6149*344a7f5eSAndroid Build Coastguard Worker 
6150*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srav_epi64(__mmask8 __U,__m512i __X,__m512i __Y)6151*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
6152*344a7f5eSAndroid Build Coastguard Worker {
6153*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
6154*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6155*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6156*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6157*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6158*344a7f5eSAndroid Build Coastguard Worker }
6159*344a7f5eSAndroid Build Coastguard Worker 
6160*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srl_epi32(__m512i __A,__m128i __B)6161*344a7f5eSAndroid Build Coastguard Worker _mm512_srl_epi32 (__m512i __A, __m128i __B)
6162*344a7f5eSAndroid Build Coastguard Worker {
6163*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
6164*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
6165*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
6166*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6167*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) -1);
6168*344a7f5eSAndroid Build Coastguard Worker }
6169*344a7f5eSAndroid Build Coastguard Worker 
6170*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srl_epi32(__m512i __W,__mmask16 __U,__m512i __A,__m128i __B)6171*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
6172*344a7f5eSAndroid Build Coastguard Worker {
6173*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
6174*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
6175*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __W,
6176*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
6177*344a7f5eSAndroid Build Coastguard Worker }
6178*344a7f5eSAndroid Build Coastguard Worker 
6179*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srl_epi32(__mmask16 __U,__m512i __A,__m128i __B)6180*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
6181*344a7f5eSAndroid Build Coastguard Worker {
6182*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
6183*344a7f5eSAndroid Build Coastguard Worker              (__v4si) __B,
6184*344a7f5eSAndroid Build Coastguard Worker              (__v16si)
6185*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6186*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) __U);
6187*344a7f5eSAndroid Build Coastguard Worker }
6188*344a7f5eSAndroid Build Coastguard Worker 
6189*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srl_epi64(__m512i __A,__m128i __B)6190*344a7f5eSAndroid Build Coastguard Worker _mm512_srl_epi64 (__m512i __A, __m128i __B)
6191*344a7f5eSAndroid Build Coastguard Worker {
6192*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
6193*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
6194*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6195*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6196*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
6197*344a7f5eSAndroid Build Coastguard Worker }
6198*344a7f5eSAndroid Build Coastguard Worker 
6199*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srl_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)6200*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
6201*344a7f5eSAndroid Build Coastguard Worker {
6202*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
6203*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
6204*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
6205*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6206*344a7f5eSAndroid Build Coastguard Worker }
6207*344a7f5eSAndroid Build Coastguard Worker 
6208*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srl_epi64(__mmask8 __U,__m512i __A,__m128i __B)6209*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
6210*344a7f5eSAndroid Build Coastguard Worker {
6211*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
6212*344a7f5eSAndroid Build Coastguard Worker              (__v2di) __B,
6213*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6214*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6215*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6216*344a7f5eSAndroid Build Coastguard Worker }
6217*344a7f5eSAndroid Build Coastguard Worker 
6218*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srlv_epi32(__m512i __X,__m512i __Y)6219*344a7f5eSAndroid Build Coastguard Worker _mm512_srlv_epi32 (__m512i __X, __m512i __Y)
6220*344a7f5eSAndroid Build Coastguard Worker {
6221*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
6222*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6223*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
6224*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
6225*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
6226*344a7f5eSAndroid Build Coastguard Worker }
6227*344a7f5eSAndroid Build Coastguard Worker 
6228*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srlv_epi32(__m512i __W,__mmask16 __U,__m512i __X,__m512i __Y)6229*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
6230*344a7f5eSAndroid Build Coastguard Worker {
6231*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
6232*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6233*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
6234*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
6235*344a7f5eSAndroid Build Coastguard Worker }
6236*344a7f5eSAndroid Build Coastguard Worker 
6237*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srlv_epi32(__mmask16 __U,__m512i __X,__m512i __Y)6238*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
6239*344a7f5eSAndroid Build Coastguard Worker {
6240*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
6241*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __Y,
6242*344a7f5eSAndroid Build Coastguard Worker               (__v16si)
6243*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_si512 (),
6244*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
6245*344a7f5eSAndroid Build Coastguard Worker }
6246*344a7f5eSAndroid Build Coastguard Worker 
6247*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_srlv_epi64(__m512i __X,__m512i __Y)6248*344a7f5eSAndroid Build Coastguard Worker _mm512_srlv_epi64 (__m512i __X, __m512i __Y)
6249*344a7f5eSAndroid Build Coastguard Worker {
6250*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
6251*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6252*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6253*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6254*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1);
6255*344a7f5eSAndroid Build Coastguard Worker }
6256*344a7f5eSAndroid Build Coastguard Worker 
6257*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_srlv_epi64(__m512i __W,__mmask8 __U,__m512i __X,__m512i __Y)6258*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
6259*344a7f5eSAndroid Build Coastguard Worker {
6260*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
6261*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6262*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __W,
6263*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6264*344a7f5eSAndroid Build Coastguard Worker }
6265*344a7f5eSAndroid Build Coastguard Worker 
6266*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_srlv_epi64(__mmask8 __U,__m512i __X,__m512i __Y)6267*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
6268*344a7f5eSAndroid Build Coastguard Worker {
6269*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
6270*344a7f5eSAndroid Build Coastguard Worker              (__v8di) __Y,
6271*344a7f5eSAndroid Build Coastguard Worker              (__v8di)
6272*344a7f5eSAndroid Build Coastguard Worker              _mm512_setzero_si512 (),
6273*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) __U);
6274*344a7f5eSAndroid Build Coastguard Worker }
6275*344a7f5eSAndroid Build Coastguard Worker 
6276*344a7f5eSAndroid Build Coastguard Worker #define _mm512_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \
6277*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \
6278*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(B), \
6279*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(C), (int)(imm), \
6280*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)-1); })
6281*344a7f5eSAndroid Build Coastguard Worker 
6282*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \
6283*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \
6284*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(B), \
6285*344a7f5eSAndroid Build Coastguard Worker                                             (__v16si)(__m512i)(C), (int)(imm), \
6286*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask16)(U)); })
6287*344a7f5eSAndroid Build Coastguard Worker 
6288*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \
6289*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pternlogd512_maskz((__v16si)(__m512i)(A), \
6290*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)(__m512i)(B), \
6291*344a7f5eSAndroid Build Coastguard Worker                                              (__v16si)(__m512i)(C), \
6292*344a7f5eSAndroid Build Coastguard Worker                                              (int)(imm), (__mmask16)(U)); })
6293*344a7f5eSAndroid Build Coastguard Worker 
6294*344a7f5eSAndroid Build Coastguard Worker #define _mm512_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \
6295*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \
6296*344a7f5eSAndroid Build Coastguard Worker                                             (__v8di)(__m512i)(B), \
6297*344a7f5eSAndroid Build Coastguard Worker                                             (__v8di)(__m512i)(C), (int)(imm), \
6298*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1); })
6299*344a7f5eSAndroid Build Coastguard Worker 
6300*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \
6301*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \
6302*344a7f5eSAndroid Build Coastguard Worker                                             (__v8di)(__m512i)(B), \
6303*344a7f5eSAndroid Build Coastguard Worker                                             (__v8di)(__m512i)(C), (int)(imm), \
6304*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
6305*344a7f5eSAndroid Build Coastguard Worker 
6306*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \
6307*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_pternlogq512_maskz((__v8di)(__m512i)(A), \
6308*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)(__m512i)(B), \
6309*344a7f5eSAndroid Build Coastguard Worker                                              (__v8di)(__m512i)(C), (int)(imm), \
6310*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U)); })
6311*344a7f5eSAndroid Build Coastguard Worker 
6312*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_i64(A, R) __extension__ ({ \
6313*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvtsd2si64((__v2df)(__m128d)(A), (int)(R)); })
6314*344a7f5eSAndroid Build Coastguard Worker 
6315*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_si32(A, R) __extension__ ({ \
6316*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvtsd2si32((__v2df)(__m128d)(A), (int)(R)); })
6317*344a7f5eSAndroid Build Coastguard Worker 
6318*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_i32(A, R) __extension__ ({ \
6319*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvtsd2si32((__v2df)(__m128d)(A), (int)(R)); })
6320*344a7f5eSAndroid Build Coastguard Worker 
6321*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_u32(A, R) __extension__ ({ \
6322*344a7f5eSAndroid Build Coastguard Worker   (unsigned int)__builtin_ia32_vcvtsd2usi32((__v2df)(__m128d)(A), (int)(R)); })
6323*344a7f5eSAndroid Build Coastguard Worker 
6324*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned __DEFAULT_FN_ATTRS
_mm_cvtsd_u32(__m128d __A)6325*344a7f5eSAndroid Build Coastguard Worker _mm_cvtsd_u32 (__m128d __A)
6326*344a7f5eSAndroid Build Coastguard Worker {
6327*344a7f5eSAndroid Build Coastguard Worker   return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,
6328*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
6329*344a7f5eSAndroid Build Coastguard Worker }
6330*344a7f5eSAndroid Build Coastguard Worker 
6331*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_u64(A, R) __extension__ ({ \
6332*344a7f5eSAndroid Build Coastguard Worker   (unsigned long long)__builtin_ia32_vcvtsd2usi64((__v2df)(__m128d)(A), \
6333*344a7f5eSAndroid Build Coastguard Worker                                                   (int)(R)); })
6334*344a7f5eSAndroid Build Coastguard Worker 
6335*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned long long __DEFAULT_FN_ATTRS
_mm_cvtsd_u64(__m128d __A)6336*344a7f5eSAndroid Build Coastguard Worker _mm_cvtsd_u64 (__m128d __A)
6337*344a7f5eSAndroid Build Coastguard Worker {
6338*344a7f5eSAndroid Build Coastguard Worker   return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)
6339*344a7f5eSAndroid Build Coastguard Worker                  __A,
6340*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
6341*344a7f5eSAndroid Build Coastguard Worker }
6342*344a7f5eSAndroid Build Coastguard Worker 
6343*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_si32(A, R) __extension__ ({ \
6344*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvtss2si32((__v4sf)(__m128)(A), (int)(R)); })
6345*344a7f5eSAndroid Build Coastguard Worker 
6346*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_i32(A, R) __extension__ ({ \
6347*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvtss2si32((__v4sf)(__m128)(A), (int)(R)); })
6348*344a7f5eSAndroid Build Coastguard Worker 
6349*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_si64(A, R) __extension__ ({ \
6350*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvtss2si64((__v4sf)(__m128)(A), (int)(R)); })
6351*344a7f5eSAndroid Build Coastguard Worker 
6352*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_i64(A, R) __extension__ ({ \
6353*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvtss2si64((__v4sf)(__m128)(A), (int)(R)); })
6354*344a7f5eSAndroid Build Coastguard Worker 
6355*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_u32(A, R) __extension__ ({ \
6356*344a7f5eSAndroid Build Coastguard Worker   (unsigned int)__builtin_ia32_vcvtss2usi32((__v4sf)(__m128)(A), (int)(R)); })
6357*344a7f5eSAndroid Build Coastguard Worker 
6358*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned __DEFAULT_FN_ATTRS
_mm_cvtss_u32(__m128 __A)6359*344a7f5eSAndroid Build Coastguard Worker _mm_cvtss_u32 (__m128 __A)
6360*344a7f5eSAndroid Build Coastguard Worker {
6361*344a7f5eSAndroid Build Coastguard Worker   return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,
6362*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
6363*344a7f5eSAndroid Build Coastguard Worker }
6364*344a7f5eSAndroid Build Coastguard Worker 
6365*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_u64(A, R) __extension__ ({ \
6366*344a7f5eSAndroid Build Coastguard Worker   (unsigned long long)__builtin_ia32_vcvtss2usi64((__v4sf)(__m128)(A), \
6367*344a7f5eSAndroid Build Coastguard Worker                                                   (int)(R)); })
6368*344a7f5eSAndroid Build Coastguard Worker 
6369*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned long long __DEFAULT_FN_ATTRS
_mm_cvtss_u64(__m128 __A)6370*344a7f5eSAndroid Build Coastguard Worker _mm_cvtss_u64 (__m128 __A)
6371*344a7f5eSAndroid Build Coastguard Worker {
6372*344a7f5eSAndroid Build Coastguard Worker   return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)
6373*344a7f5eSAndroid Build Coastguard Worker                  __A,
6374*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
6375*344a7f5eSAndroid Build Coastguard Worker }
6376*344a7f5eSAndroid Build Coastguard Worker 
6377*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundsd_i32(A, R) __extension__ ({ \
6378*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvttsd2si32((__v2df)(__m128d)(A), (int)(R)); })
6379*344a7f5eSAndroid Build Coastguard Worker 
6380*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundsd_si32(A, R) __extension__ ({ \
6381*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvttsd2si32((__v2df)(__m128d)(A), (int)(R)); })
6382*344a7f5eSAndroid Build Coastguard Worker 
6383*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __DEFAULT_FN_ATTRS
_mm_cvttsd_i32(__m128d __A)6384*344a7f5eSAndroid Build Coastguard Worker _mm_cvttsd_i32 (__m128d __A)
6385*344a7f5eSAndroid Build Coastguard Worker {
6386*344a7f5eSAndroid Build Coastguard Worker   return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,
6387*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6388*344a7f5eSAndroid Build Coastguard Worker }
6389*344a7f5eSAndroid Build Coastguard Worker 
6390*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundsd_si64(A, R) __extension__ ({ \
6391*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvttsd2si64((__v2df)(__m128d)(A), (int)(R)); })
6392*344a7f5eSAndroid Build Coastguard Worker 
6393*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundsd_i64(A, R) __extension__ ({ \
6394*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvttsd2si64((__v2df)(__m128d)(A), (int)(R)); })
6395*344a7f5eSAndroid Build Coastguard Worker 
6396*344a7f5eSAndroid Build Coastguard Worker static __inline__ long long __DEFAULT_FN_ATTRS
_mm_cvttsd_i64(__m128d __A)6397*344a7f5eSAndroid Build Coastguard Worker _mm_cvttsd_i64 (__m128d __A)
6398*344a7f5eSAndroid Build Coastguard Worker {
6399*344a7f5eSAndroid Build Coastguard Worker   return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,
6400*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6401*344a7f5eSAndroid Build Coastguard Worker }
6402*344a7f5eSAndroid Build Coastguard Worker 
6403*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundsd_u32(A, R) __extension__ ({ \
6404*344a7f5eSAndroid Build Coastguard Worker   (unsigned int)__builtin_ia32_vcvttsd2usi32((__v2df)(__m128d)(A), (int)(R)); })
6405*344a7f5eSAndroid Build Coastguard Worker 
6406*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned __DEFAULT_FN_ATTRS
_mm_cvttsd_u32(__m128d __A)6407*344a7f5eSAndroid Build Coastguard Worker _mm_cvttsd_u32 (__m128d __A)
6408*344a7f5eSAndroid Build Coastguard Worker {
6409*344a7f5eSAndroid Build Coastguard Worker   return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,
6410*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6411*344a7f5eSAndroid Build Coastguard Worker }
6412*344a7f5eSAndroid Build Coastguard Worker 
6413*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundsd_u64(A, R) __extension__ ({ \
6414*344a7f5eSAndroid Build Coastguard Worker   (unsigned long long)__builtin_ia32_vcvttsd2usi64((__v2df)(__m128d)(A), \
6415*344a7f5eSAndroid Build Coastguard Worker                                                    (int)(R)); })
6416*344a7f5eSAndroid Build Coastguard Worker 
6417*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned long long __DEFAULT_FN_ATTRS
_mm_cvttsd_u64(__m128d __A)6418*344a7f5eSAndroid Build Coastguard Worker _mm_cvttsd_u64 (__m128d __A)
6419*344a7f5eSAndroid Build Coastguard Worker {
6420*344a7f5eSAndroid Build Coastguard Worker   return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)
6421*344a7f5eSAndroid Build Coastguard Worker                   __A,
6422*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
6423*344a7f5eSAndroid Build Coastguard Worker }
6424*344a7f5eSAndroid Build Coastguard Worker 
6425*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundss_i32(A, R) __extension__ ({ \
6426*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvttss2si32((__v4sf)(__m128)(A), (int)(R)); })
6427*344a7f5eSAndroid Build Coastguard Worker 
6428*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundss_si32(A, R) __extension__ ({ \
6429*344a7f5eSAndroid Build Coastguard Worker   (int)__builtin_ia32_vcvttss2si32((__v4sf)(__m128)(A), (int)(R)); })
6430*344a7f5eSAndroid Build Coastguard Worker 
6431*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __DEFAULT_FN_ATTRS
_mm_cvttss_i32(__m128 __A)6432*344a7f5eSAndroid Build Coastguard Worker _mm_cvttss_i32 (__m128 __A)
6433*344a7f5eSAndroid Build Coastguard Worker {
6434*344a7f5eSAndroid Build Coastguard Worker   return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,
6435*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6436*344a7f5eSAndroid Build Coastguard Worker }
6437*344a7f5eSAndroid Build Coastguard Worker 
6438*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundss_i64(A, R) __extension__ ({ \
6439*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvttss2si64((__v4sf)(__m128)(A), (int)(R)); })
6440*344a7f5eSAndroid Build Coastguard Worker 
6441*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundss_si64(A, R) __extension__ ({ \
6442*344a7f5eSAndroid Build Coastguard Worker   (long long)__builtin_ia32_vcvttss2si64((__v4sf)(__m128)(A), (int)(R)); })
6443*344a7f5eSAndroid Build Coastguard Worker 
6444*344a7f5eSAndroid Build Coastguard Worker static __inline__ long long __DEFAULT_FN_ATTRS
_mm_cvttss_i64(__m128 __A)6445*344a7f5eSAndroid Build Coastguard Worker _mm_cvttss_i64 (__m128 __A)
6446*344a7f5eSAndroid Build Coastguard Worker {
6447*344a7f5eSAndroid Build Coastguard Worker   return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,
6448*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6449*344a7f5eSAndroid Build Coastguard Worker }
6450*344a7f5eSAndroid Build Coastguard Worker 
6451*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundss_u32(A, R) __extension__ ({ \
6452*344a7f5eSAndroid Build Coastguard Worker   (unsigned int)__builtin_ia32_vcvttss2usi32((__v4sf)(__m128)(A), (int)(R)); })
6453*344a7f5eSAndroid Build Coastguard Worker 
6454*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned __DEFAULT_FN_ATTRS
_mm_cvttss_u32(__m128 __A)6455*344a7f5eSAndroid Build Coastguard Worker _mm_cvttss_u32 (__m128 __A)
6456*344a7f5eSAndroid Build Coastguard Worker {
6457*344a7f5eSAndroid Build Coastguard Worker   return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,
6458*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6459*344a7f5eSAndroid Build Coastguard Worker }
6460*344a7f5eSAndroid Build Coastguard Worker 
6461*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtt_roundss_u64(A, R) __extension__ ({ \
6462*344a7f5eSAndroid Build Coastguard Worker   (unsigned long long)__builtin_ia32_vcvttss2usi64((__v4sf)(__m128)(A), \
6463*344a7f5eSAndroid Build Coastguard Worker                                                    (int)(R)); })
6464*344a7f5eSAndroid Build Coastguard Worker 
6465*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned long long __DEFAULT_FN_ATTRS
_mm_cvttss_u64(__m128 __A)6466*344a7f5eSAndroid Build Coastguard Worker _mm_cvttss_u64 (__m128 __A)
6467*344a7f5eSAndroid Build Coastguard Worker {
6468*344a7f5eSAndroid Build Coastguard Worker   return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)
6469*344a7f5eSAndroid Build Coastguard Worker                   __A,
6470*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
6471*344a7f5eSAndroid Build Coastguard Worker }
6472*344a7f5eSAndroid Build Coastguard Worker 
6473*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask2_permutex2var_pd(__m512d __A,__m512i __I,__mmask8 __U,__m512d __B)6474*344a7f5eSAndroid Build Coastguard Worker _mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,
6475*344a7f5eSAndroid Build Coastguard Worker             __m512d __B)
6476*344a7f5eSAndroid Build Coastguard Worker {
6477*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,
6478*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __I
6479*344a7f5eSAndroid Build Coastguard Worker               /* idx */ ,
6480*344a7f5eSAndroid Build Coastguard Worker               (__v8df) __B,
6481*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
6482*344a7f5eSAndroid Build Coastguard Worker }
6483*344a7f5eSAndroid Build Coastguard Worker 
6484*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask2_permutex2var_ps(__m512 __A,__m512i __I,__mmask16 __U,__m512 __B)6485*344a7f5eSAndroid Build Coastguard Worker _mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,
6486*344a7f5eSAndroid Build Coastguard Worker             __m512 __B)
6487*344a7f5eSAndroid Build Coastguard Worker {
6488*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,
6489*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __I
6490*344a7f5eSAndroid Build Coastguard Worker                    /* idx */ ,
6491*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __B,
6492*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
6493*344a7f5eSAndroid Build Coastguard Worker }
6494*344a7f5eSAndroid Build Coastguard Worker 
6495*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask2_permutex2var_epi64(__m512i __A,__m512i __I,__mmask8 __U,__m512i __B)6496*344a7f5eSAndroid Build Coastguard Worker _mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,
6497*344a7f5eSAndroid Build Coastguard Worker          __mmask8 __U, __m512i __B)
6498*344a7f5eSAndroid Build Coastguard Worker {
6499*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,
6500*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __I
6501*344a7f5eSAndroid Build Coastguard Worker                    /* idx */ ,
6502*344a7f5eSAndroid Build Coastguard Worker                    (__v8di) __B,
6503*344a7f5eSAndroid Build Coastguard Worker                    (__mmask8) __U);
6504*344a7f5eSAndroid Build Coastguard Worker }
6505*344a7f5eSAndroid Build Coastguard Worker 
6506*344a7f5eSAndroid Build Coastguard Worker #define _mm512_permute_pd(X, C) __extension__ ({ \
6507*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_shufflevector((__v8df)(__m512d)(X), \
6508*344a7f5eSAndroid Build Coastguard Worker                                    (__v8df)_mm512_undefined_pd(), \
6509*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 0) & 0x1), \
6510*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 1) & 0x1), \
6511*344a7f5eSAndroid Build Coastguard Worker                                    2 + (((C) >> 2) & 0x1), \
6512*344a7f5eSAndroid Build Coastguard Worker                                    2 + (((C) >> 3) & 0x1), \
6513*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 4) & 0x1), \
6514*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 5) & 0x1), \
6515*344a7f5eSAndroid Build Coastguard Worker                                    6 + (((C) >> 6) & 0x1), \
6516*344a7f5eSAndroid Build Coastguard Worker                                    6 + (((C) >> 7) & 0x1)); })
6517*344a7f5eSAndroid Build Coastguard Worker 
6518*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_permute_pd(W, U, X, C) __extension__ ({ \
6519*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
6520*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_permute_pd((X), (C)), \
6521*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)(__m512d)(W)); })
6522*344a7f5eSAndroid Build Coastguard Worker 
6523*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_permute_pd(U, X, C) __extension__ ({ \
6524*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
6525*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_permute_pd((X), (C)), \
6526*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_setzero_pd()); })
6527*344a7f5eSAndroid Build Coastguard Worker 
6528*344a7f5eSAndroid Build Coastguard Worker #define _mm512_permute_ps(X, C) __extension__ ({ \
6529*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_shufflevector((__v16sf)(__m512)(X), \
6530*344a7f5eSAndroid Build Coastguard Worker                                   (__v16sf)_mm512_undefined_ps(), \
6531*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((C) >> 0) & 0x3), \
6532*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((C) >> 2) & 0x3), \
6533*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((C) >> 4) & 0x3), \
6534*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((C) >> 6) & 0x3), \
6535*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((C) >> 0) & 0x3), \
6536*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((C) >> 2) & 0x3), \
6537*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((C) >> 4) & 0x3), \
6538*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((C) >> 6) & 0x3), \
6539*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((C) >> 0) & 0x3), \
6540*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((C) >> 2) & 0x3), \
6541*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((C) >> 4) & 0x3), \
6542*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((C) >> 6) & 0x3), \
6543*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((C) >> 0) & 0x3), \
6544*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((C) >> 2) & 0x3), \
6545*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((C) >> 4) & 0x3), \
6546*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((C) >> 6) & 0x3)); })
6547*344a7f5eSAndroid Build Coastguard Worker 
6548*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_permute_ps(W, U, X, C) __extension__ ({ \
6549*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \
6550*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)_mm512_permute_ps((X), (C)), \
6551*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)(__m512)(W)); })
6552*344a7f5eSAndroid Build Coastguard Worker 
6553*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_permute_ps(U, X, C) __extension__ ({ \
6554*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \
6555*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)_mm512_permute_ps((X), (C)), \
6556*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)_mm512_setzero_ps()); })
6557*344a7f5eSAndroid Build Coastguard Worker 
6558*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_permutevar_pd(__m512d __A,__m512i __C)6559*344a7f5eSAndroid Build Coastguard Worker _mm512_permutevar_pd (__m512d __A, __m512i __C)
6560*344a7f5eSAndroid Build Coastguard Worker {
6561*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6562*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __C,
6563*344a7f5eSAndroid Build Coastguard Worker               (__v8df)
6564*344a7f5eSAndroid Build Coastguard Worker               _mm512_undefined_pd (),
6565*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
6566*344a7f5eSAndroid Build Coastguard Worker }
6567*344a7f5eSAndroid Build Coastguard Worker 
6568*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_permutevar_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512i __C)6569*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)
6570*344a7f5eSAndroid Build Coastguard Worker {
6571*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6572*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __C,
6573*344a7f5eSAndroid Build Coastguard Worker               (__v8df) __W,
6574*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
6575*344a7f5eSAndroid Build Coastguard Worker }
6576*344a7f5eSAndroid Build Coastguard Worker 
6577*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_permutevar_pd(__mmask8 __U,__m512d __A,__m512i __C)6578*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)
6579*344a7f5eSAndroid Build Coastguard Worker {
6580*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6581*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __C,
6582*344a7f5eSAndroid Build Coastguard Worker               (__v8df)
6583*344a7f5eSAndroid Build Coastguard Worker               _mm512_setzero_pd (),
6584*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
6585*344a7f5eSAndroid Build Coastguard Worker }
6586*344a7f5eSAndroid Build Coastguard Worker 
6587*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_permutevar_ps(__m512 __A,__m512i __C)6588*344a7f5eSAndroid Build Coastguard Worker _mm512_permutevar_ps (__m512 __A, __m512i __C)
6589*344a7f5eSAndroid Build Coastguard Worker {
6590*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6591*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __C,
6592*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf)
6593*344a7f5eSAndroid Build Coastguard Worker                    _mm512_undefined_ps (),
6594*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) -1);
6595*344a7f5eSAndroid Build Coastguard Worker }
6596*344a7f5eSAndroid Build Coastguard Worker 
6597*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_permutevar_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512i __C)6598*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)
6599*344a7f5eSAndroid Build Coastguard Worker {
6600*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6601*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __C,
6602*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W,
6603*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
6604*344a7f5eSAndroid Build Coastguard Worker }
6605*344a7f5eSAndroid Build Coastguard Worker 
6606*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_permutevar_ps(__mmask16 __U,__m512 __A,__m512i __C)6607*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)
6608*344a7f5eSAndroid Build Coastguard Worker {
6609*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6610*344a7f5eSAndroid Build Coastguard Worker                    (__v16si) __C,
6611*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf)
6612*344a7f5eSAndroid Build Coastguard Worker                    _mm512_setzero_ps (),
6613*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
6614*344a7f5eSAndroid Build Coastguard Worker }
6615*344a7f5eSAndroid Build Coastguard Worker 
6616*344a7f5eSAndroid Build Coastguard Worker static __inline __m512d __DEFAULT_FN_ATTRS
_mm512_permutex2var_pd(__m512d __A,__m512i __I,__m512d __B)6617*344a7f5eSAndroid Build Coastguard Worker _mm512_permutex2var_pd(__m512d __A, __m512i __I, __m512d __B)
6618*344a7f5eSAndroid Build Coastguard Worker {
6619*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6620*344a7f5eSAndroid Build Coastguard Worker                     /* idx */ ,
6621*344a7f5eSAndroid Build Coastguard Worker                     (__v8df) __A,
6622*344a7f5eSAndroid Build Coastguard Worker                     (__v8df) __B,
6623*344a7f5eSAndroid Build Coastguard Worker                     (__mmask8) -1);
6624*344a7f5eSAndroid Build Coastguard Worker }
6625*344a7f5eSAndroid Build Coastguard Worker 
6626*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_permutex2var_pd(__m512d __A,__mmask8 __U,__m512i __I,__m512d __B)6627*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I, __m512d __B)
6628*344a7f5eSAndroid Build Coastguard Worker {
6629*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6630*344a7f5eSAndroid Build Coastguard Worker                     /* idx */ ,
6631*344a7f5eSAndroid Build Coastguard Worker                     (__v8df) __A,
6632*344a7f5eSAndroid Build Coastguard Worker                     (__v8df) __B,
6633*344a7f5eSAndroid Build Coastguard Worker                     (__mmask8) __U);
6634*344a7f5eSAndroid Build Coastguard Worker }
6635*344a7f5eSAndroid Build Coastguard Worker 
6636*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_permutex2var_pd(__mmask8 __U,__m512d __A,__m512i __I,__m512d __B)6637*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,
6638*344a7f5eSAndroid Build Coastguard Worker             __m512d __B)
6639*344a7f5eSAndroid Build Coastguard Worker {
6640*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I
6641*344a7f5eSAndroid Build Coastguard Worker                                                          /* idx */ ,
6642*344a7f5eSAndroid Build Coastguard Worker                                                          (__v8df) __A,
6643*344a7f5eSAndroid Build Coastguard Worker                                                          (__v8df) __B,
6644*344a7f5eSAndroid Build Coastguard Worker                                                          (__mmask8) __U);
6645*344a7f5eSAndroid Build Coastguard Worker }
6646*344a7f5eSAndroid Build Coastguard Worker 
6647*344a7f5eSAndroid Build Coastguard Worker static __inline __m512 __DEFAULT_FN_ATTRS
_mm512_permutex2var_ps(__m512 __A,__m512i __I,__m512 __B)6648*344a7f5eSAndroid Build Coastguard Worker _mm512_permutex2var_ps(__m512 __A, __m512i __I, __m512 __B)
6649*344a7f5eSAndroid Build Coastguard Worker {
6650*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6651*344a7f5eSAndroid Build Coastguard Worker                                                          /* idx */ ,
6652*344a7f5eSAndroid Build Coastguard Worker                                                          (__v16sf) __A,
6653*344a7f5eSAndroid Build Coastguard Worker                                                          (__v16sf) __B,
6654*344a7f5eSAndroid Build Coastguard Worker                                                          (__mmask16) -1);
6655*344a7f5eSAndroid Build Coastguard Worker }
6656*344a7f5eSAndroid Build Coastguard Worker 
6657*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_permutex2var_ps(__m512 __A,__mmask16 __U,__m512i __I,__m512 __B)6658*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
6659*344a7f5eSAndroid Build Coastguard Worker {
6660*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6661*344a7f5eSAndroid Build Coastguard Worker                                                          /* idx */ ,
6662*344a7f5eSAndroid Build Coastguard Worker                                                          (__v16sf) __A,
6663*344a7f5eSAndroid Build Coastguard Worker                                                          (__v16sf) __B,
6664*344a7f5eSAndroid Build Coastguard Worker                                                          (__mmask16) __U);
6665*344a7f5eSAndroid Build Coastguard Worker }
6666*344a7f5eSAndroid Build Coastguard Worker 
6667*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_permutex2var_ps(__mmask16 __U,__m512 __A,__m512i __I,__m512 __B)6668*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,
6669*344a7f5eSAndroid Build Coastguard Worker             __m512 __B)
6670*344a7f5eSAndroid Build Coastguard Worker {
6671*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I
6672*344a7f5eSAndroid Build Coastguard Worker                                                         /* idx */ ,
6673*344a7f5eSAndroid Build Coastguard Worker                                                         (__v16sf) __A,
6674*344a7f5eSAndroid Build Coastguard Worker                                                         (__v16sf) __B,
6675*344a7f5eSAndroid Build Coastguard Worker                                                         (__mmask16) __U);
6676*344a7f5eSAndroid Build Coastguard Worker }
6677*344a7f5eSAndroid Build Coastguard Worker 
6678*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_testn_epi32_mask(__m512i __A,__m512i __B)6679*344a7f5eSAndroid Build Coastguard Worker _mm512_testn_epi32_mask (__m512i __A, __m512i __B)
6680*344a7f5eSAndroid Build Coastguard Worker {
6681*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
6682*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __B,
6683*344a7f5eSAndroid Build Coastguard Worker              (__mmask16) -1);
6684*344a7f5eSAndroid Build Coastguard Worker }
6685*344a7f5eSAndroid Build Coastguard Worker 
6686*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_mask_testn_epi32_mask(__mmask16 __U,__m512i __A,__m512i __B)6687*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
6688*344a7f5eSAndroid Build Coastguard Worker {
6689*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
6690*344a7f5eSAndroid Build Coastguard Worker              (__v16si) __B, __U);
6691*344a7f5eSAndroid Build Coastguard Worker }
6692*344a7f5eSAndroid Build Coastguard Worker 
6693*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_testn_epi64_mask(__m512i __A,__m512i __B)6694*344a7f5eSAndroid Build Coastguard Worker _mm512_testn_epi64_mask (__m512i __A, __m512i __B)
6695*344a7f5eSAndroid Build Coastguard Worker {
6696*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
6697*344a7f5eSAndroid Build Coastguard Worker             (__v8di) __B,
6698*344a7f5eSAndroid Build Coastguard Worker             (__mmask8) -1);
6699*344a7f5eSAndroid Build Coastguard Worker }
6700*344a7f5eSAndroid Build Coastguard Worker 
6701*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask8 __DEFAULT_FN_ATTRS
_mm512_mask_testn_epi64_mask(__mmask8 __U,__m512i __A,__m512i __B)6702*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
6703*344a7f5eSAndroid Build Coastguard Worker {
6704*344a7f5eSAndroid Build Coastguard Worker   return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
6705*344a7f5eSAndroid Build Coastguard Worker             (__v8di) __B, __U);
6706*344a7f5eSAndroid Build Coastguard Worker }
6707*344a7f5eSAndroid Build Coastguard Worker 
6708*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvtt_roundpd_epu32(A, R) __extension__ ({ \
6709*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \
6710*344a7f5eSAndroid Build Coastguard Worker                                              (__v8si)_mm256_undefined_si256(), \
6711*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)-1, (int)(R)); })
6712*344a7f5eSAndroid Build Coastguard Worker 
6713*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvtt_roundpd_epu32(W, U, A, R) __extension__ ({ \
6714*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \
6715*344a7f5eSAndroid Build Coastguard Worker                                              (__v8si)(__m256i)(W), \
6716*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
6717*344a7f5eSAndroid Build Coastguard Worker 
6718*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvtt_roundpd_epu32(U, A, R) __extension__ ({ \
6719*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \
6720*344a7f5eSAndroid Build Coastguard Worker                                              (__v8si)_mm256_setzero_si256(), \
6721*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
6722*344a7f5eSAndroid Build Coastguard Worker 
6723*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvttpd_epu32(__m512d __A)6724*344a7f5eSAndroid Build Coastguard Worker _mm512_cvttpd_epu32 (__m512d __A)
6725*344a7f5eSAndroid Build Coastguard Worker {
6726*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
6727*344a7f5eSAndroid Build Coastguard Worker                   (__v8si)
6728*344a7f5eSAndroid Build Coastguard Worker                   _mm256_undefined_si256 (),
6729*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) -1,
6730*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
6731*344a7f5eSAndroid Build Coastguard Worker }
6732*344a7f5eSAndroid Build Coastguard Worker 
6733*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvttpd_epu32(__m256i __W,__mmask8 __U,__m512d __A)6734*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
6735*344a7f5eSAndroid Build Coastguard Worker {
6736*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
6737*344a7f5eSAndroid Build Coastguard Worker                   (__v8si) __W,
6738*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
6739*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
6740*344a7f5eSAndroid Build Coastguard Worker }
6741*344a7f5eSAndroid Build Coastguard Worker 
6742*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvttpd_epu32(__mmask8 __U,__m512d __A)6743*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)
6744*344a7f5eSAndroid Build Coastguard Worker {
6745*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
6746*344a7f5eSAndroid Build Coastguard Worker                   (__v8si)
6747*344a7f5eSAndroid Build Coastguard Worker                   _mm256_setzero_si256 (),
6748*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U,
6749*344a7f5eSAndroid Build Coastguard Worker                   _MM_FROUND_CUR_DIRECTION);
6750*344a7f5eSAndroid Build Coastguard Worker }
6751*344a7f5eSAndroid Build Coastguard Worker 
6752*344a7f5eSAndroid Build Coastguard Worker #define _mm_roundscale_round_sd(A, B, imm, R) __extension__ ({ \
6753*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \
6754*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(B), \
6755*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)_mm_setzero_pd(), \
6756*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1, (int)(imm), \
6757*344a7f5eSAndroid Build Coastguard Worker                                                 (int)(R)); })
6758*344a7f5eSAndroid Build Coastguard Worker 
6759*344a7f5eSAndroid Build Coastguard Worker #define _mm_roundscale_sd(A, B, imm) __extension__ ({ \
6760*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \
6761*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(B), \
6762*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)_mm_setzero_pd(), \
6763*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)-1, (int)(imm), \
6764*344a7f5eSAndroid Build Coastguard Worker                                                 _MM_FROUND_CUR_DIRECTION); })
6765*344a7f5eSAndroid Build Coastguard Worker 
6766*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_roundscale_sd(W, U, A, B, imm) __extension__ ({ \
6767*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \
6768*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(B), \
6769*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(W), \
6770*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)(U), (int)(imm), \
6771*344a7f5eSAndroid Build Coastguard Worker                                                 _MM_FROUND_CUR_DIRECTION); })
6772*344a7f5eSAndroid Build Coastguard Worker 
6773*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_roundscale_round_sd(W, U, A, B, I, R) __extension__ ({ \
6774*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \
6775*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(B), \
6776*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(W), \
6777*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)(U), (int)(I), \
6778*344a7f5eSAndroid Build Coastguard Worker                                                 (int)(R)); })
6779*344a7f5eSAndroid Build Coastguard Worker 
6780*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_roundscale_sd(U, A, B, I) __extension__ ({ \
6781*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \
6782*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(B), \
6783*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)_mm_setzero_pd(), \
6784*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)(U), (int)(I), \
6785*344a7f5eSAndroid Build Coastguard Worker                                                 _MM_FROUND_CUR_DIRECTION); })
6786*344a7f5eSAndroid Build Coastguard Worker 
6787*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_roundscale_round_sd(U, A, B, I, R) __extension__ ({ \
6788*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \
6789*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)(__m128d)(B), \
6790*344a7f5eSAndroid Build Coastguard Worker                                                 (__v2df)_mm_setzero_pd(), \
6791*344a7f5eSAndroid Build Coastguard Worker                                                 (__mmask8)(U), (int)(I), \
6792*344a7f5eSAndroid Build Coastguard Worker                                                 (int)(R)); })
6793*344a7f5eSAndroid Build Coastguard Worker 
6794*344a7f5eSAndroid Build Coastguard Worker #define _mm_roundscale_round_ss(A, B, imm, R) __extension__ ({ \
6795*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \
6796*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(B), \
6797*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)_mm_setzero_ps(), \
6798*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1, (int)(imm), \
6799*344a7f5eSAndroid Build Coastguard Worker                                                (int)(R)); })
6800*344a7f5eSAndroid Build Coastguard Worker 
6801*344a7f5eSAndroid Build Coastguard Worker #define _mm_roundscale_ss(A, B, imm) __extension__ ({ \
6802*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \
6803*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(B), \
6804*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)_mm_setzero_ps(), \
6805*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)-1, (int)(imm), \
6806*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION); })
6807*344a7f5eSAndroid Build Coastguard Worker 
6808*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_roundscale_ss(W, U, A, B, I) __extension__ ({ \
6809*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \
6810*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(B), \
6811*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(W), \
6812*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(I), \
6813*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION); })
6814*344a7f5eSAndroid Build Coastguard Worker 
6815*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_roundscale_round_ss(W, U, A, B, I, R) __extension__ ({ \
6816*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \
6817*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(B), \
6818*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(W), \
6819*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(I), \
6820*344a7f5eSAndroid Build Coastguard Worker                                                (int)(R)); })
6821*344a7f5eSAndroid Build Coastguard Worker 
6822*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_roundscale_ss(U, A, B, I) __extension__ ({ \
6823*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \
6824*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(B), \
6825*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)_mm_setzero_ps(), \
6826*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(I), \
6827*344a7f5eSAndroid Build Coastguard Worker                                                _MM_FROUND_CUR_DIRECTION); })
6828*344a7f5eSAndroid Build Coastguard Worker 
6829*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_roundscale_round_ss(U, A, B, I, R) __extension__ ({ \
6830*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \
6831*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)(__m128)(B), \
6832*344a7f5eSAndroid Build Coastguard Worker                                                (__v4sf)_mm_setzero_ps(), \
6833*344a7f5eSAndroid Build Coastguard Worker                                                (__mmask8)(U), (int)(I), \
6834*344a7f5eSAndroid Build Coastguard Worker                                                (int)(R)); })
6835*344a7f5eSAndroid Build Coastguard Worker 
6836*344a7f5eSAndroid Build Coastguard Worker #define _mm512_scalef_round_pd(A, B, R) __extension__ ({ \
6837*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \
6838*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
6839*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_undefined_pd(), \
6840*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
6841*344a7f5eSAndroid Build Coastguard Worker 
6842*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_scalef_round_pd(W, U, A, B, R) __extension__ ({ \
6843*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \
6844*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
6845*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(W), \
6846*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
6847*344a7f5eSAndroid Build Coastguard Worker 
6848*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_scalef_round_pd(U, A, B, R) __extension__ ({ \
6849*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \
6850*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(B), \
6851*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_setzero_pd(), \
6852*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
6853*344a7f5eSAndroid Build Coastguard Worker 
6854*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_scalef_pd(__m512d __A,__m512d __B)6855*344a7f5eSAndroid Build Coastguard Worker _mm512_scalef_pd (__m512d __A, __m512d __B)
6856*344a7f5eSAndroid Build Coastguard Worker {
6857*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
6858*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __B,
6859*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
6860*344a7f5eSAndroid Build Coastguard Worker                 _mm512_undefined_pd (),
6861*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1,
6862*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
6863*344a7f5eSAndroid Build Coastguard Worker }
6864*344a7f5eSAndroid Build Coastguard Worker 
6865*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_scalef_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)6866*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
6867*344a7f5eSAndroid Build Coastguard Worker {
6868*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
6869*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __B,
6870*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
6871*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
6872*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
6873*344a7f5eSAndroid Build Coastguard Worker }
6874*344a7f5eSAndroid Build Coastguard Worker 
6875*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_scalef_pd(__mmask8 __U,__m512d __A,__m512d __B)6876*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)
6877*344a7f5eSAndroid Build Coastguard Worker {
6878*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
6879*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __B,
6880*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
6881*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_pd (),
6882*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
6883*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
6884*344a7f5eSAndroid Build Coastguard Worker }
6885*344a7f5eSAndroid Build Coastguard Worker 
6886*344a7f5eSAndroid Build Coastguard Worker #define _mm512_scalef_round_ps(A, B, R) __extension__ ({ \
6887*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \
6888*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
6889*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_undefined_ps(), \
6890*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1, (int)(R)); })
6891*344a7f5eSAndroid Build Coastguard Worker 
6892*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_scalef_round_ps(W, U, A, B, R) __extension__ ({ \
6893*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \
6894*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
6895*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(W), \
6896*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
6897*344a7f5eSAndroid Build Coastguard Worker 
6898*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_scalef_round_ps(U, A, B, R) __extension__ ({ \
6899*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \
6900*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(B), \
6901*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps(), \
6902*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
6903*344a7f5eSAndroid Build Coastguard Worker 
6904*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_scalef_ps(__m512 __A,__m512 __B)6905*344a7f5eSAndroid Build Coastguard Worker _mm512_scalef_ps (__m512 __A, __m512 __B)
6906*344a7f5eSAndroid Build Coastguard Worker {
6907*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
6908*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) __B,
6909*344a7f5eSAndroid Build Coastguard Worker                (__v16sf)
6910*344a7f5eSAndroid Build Coastguard Worker                _mm512_undefined_ps (),
6911*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) -1,
6912*344a7f5eSAndroid Build Coastguard Worker                _MM_FROUND_CUR_DIRECTION);
6913*344a7f5eSAndroid Build Coastguard Worker }
6914*344a7f5eSAndroid Build Coastguard Worker 
6915*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_scalef_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)6916*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
6917*344a7f5eSAndroid Build Coastguard Worker {
6918*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
6919*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) __B,
6920*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) __W,
6921*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) __U,
6922*344a7f5eSAndroid Build Coastguard Worker                _MM_FROUND_CUR_DIRECTION);
6923*344a7f5eSAndroid Build Coastguard Worker }
6924*344a7f5eSAndroid Build Coastguard Worker 
6925*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_scalef_ps(__mmask16 __U,__m512 __A,__m512 __B)6926*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)
6927*344a7f5eSAndroid Build Coastguard Worker {
6928*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
6929*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) __B,
6930*344a7f5eSAndroid Build Coastguard Worker                (__v16sf)
6931*344a7f5eSAndroid Build Coastguard Worker                _mm512_setzero_ps (),
6932*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) __U,
6933*344a7f5eSAndroid Build Coastguard Worker                _MM_FROUND_CUR_DIRECTION);
6934*344a7f5eSAndroid Build Coastguard Worker }
6935*344a7f5eSAndroid Build Coastguard Worker 
6936*344a7f5eSAndroid Build Coastguard Worker #define _mm_scalef_round_sd(A, B, R) __extension__ ({ \
6937*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \
6938*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)(__m128d)(B), \
6939*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)_mm_setzero_pd(), \
6940*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)-1, (int)(R)); })
6941*344a7f5eSAndroid Build Coastguard Worker 
6942*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_scalef_sd(__m128d __A,__m128d __B)6943*344a7f5eSAndroid Build Coastguard Worker _mm_scalef_sd (__m128d __A, __m128d __B)
6944*344a7f5eSAndroid Build Coastguard Worker {
6945*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_scalefsd_round_mask ((__v2df) __A,
6946*344a7f5eSAndroid Build Coastguard Worker               (__v2df)( __B), (__v2df) _mm_setzero_pd(),
6947*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1,
6948*344a7f5eSAndroid Build Coastguard Worker               _MM_FROUND_CUR_DIRECTION);
6949*344a7f5eSAndroid Build Coastguard Worker }
6950*344a7f5eSAndroid Build Coastguard Worker 
6951*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_scalef_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)6952*344a7f5eSAndroid Build Coastguard Worker _mm_mask_scalef_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
6953*344a7f5eSAndroid Build Coastguard Worker {
6954*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A,
6955*344a7f5eSAndroid Build Coastguard Worker                  (__v2df) __B,
6956*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
6957*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
6958*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
6959*344a7f5eSAndroid Build Coastguard Worker }
6960*344a7f5eSAndroid Build Coastguard Worker 
6961*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_scalef_round_sd(W, U, A, B, R) __extension__ ({ \
6962*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \
6963*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)(__m128d)(B), \
6964*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)(__m128d)(W), \
6965*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
6966*344a7f5eSAndroid Build Coastguard Worker 
6967*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_scalef_sd(__mmask8 __U,__m128d __A,__m128d __B)6968*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_scalef_sd (__mmask8 __U, __m128d __A, __m128d __B)
6969*344a7f5eSAndroid Build Coastguard Worker {
6970*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A,
6971*344a7f5eSAndroid Build Coastguard Worker                  (__v2df) __B,
6972*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) _mm_setzero_pd (),
6973*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
6974*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
6975*344a7f5eSAndroid Build Coastguard Worker }
6976*344a7f5eSAndroid Build Coastguard Worker 
6977*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_scalef_round_sd(U, A, B, R) __extension__ ({ \
6978*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \
6979*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)(__m128d)(B), \
6980*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)_mm_setzero_pd(), \
6981*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
6982*344a7f5eSAndroid Build Coastguard Worker 
6983*344a7f5eSAndroid Build Coastguard Worker #define _mm_scalef_round_ss(A, B, R) __extension__ ({ \
6984*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \
6985*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)(__m128)(B), \
6986*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)_mm_setzero_ps(), \
6987*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)-1, (int)(R)); })
6988*344a7f5eSAndroid Build Coastguard Worker 
6989*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_scalef_ss(__m128 __A,__m128 __B)6990*344a7f5eSAndroid Build Coastguard Worker _mm_scalef_ss (__m128 __A, __m128 __B)
6991*344a7f5eSAndroid Build Coastguard Worker {
6992*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_scalefss_round_mask ((__v4sf) __A,
6993*344a7f5eSAndroid Build Coastguard Worker              (__v4sf)( __B), (__v4sf) _mm_setzero_ps(),
6994*344a7f5eSAndroid Build Coastguard Worker              (__mmask8) -1,
6995*344a7f5eSAndroid Build Coastguard Worker              _MM_FROUND_CUR_DIRECTION);
6996*344a7f5eSAndroid Build Coastguard Worker }
6997*344a7f5eSAndroid Build Coastguard Worker 
6998*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_scalef_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)6999*344a7f5eSAndroid Build Coastguard Worker _mm_mask_scalef_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
7000*344a7f5eSAndroid Build Coastguard Worker {
7001*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A,
7002*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __B,
7003*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
7004*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
7005*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
7006*344a7f5eSAndroid Build Coastguard Worker }
7007*344a7f5eSAndroid Build Coastguard Worker 
7008*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_scalef_round_ss(W, U, A, B, R) __extension__ ({ \
7009*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \
7010*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)(__m128)(B), \
7011*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)(__m128)(W), \
7012*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
7013*344a7f5eSAndroid Build Coastguard Worker 
7014*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_scalef_ss(__mmask8 __U,__m128 __A,__m128 __B)7015*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_scalef_ss (__mmask8 __U, __m128 __A, __m128 __B)
7016*344a7f5eSAndroid Build Coastguard Worker {
7017*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A,
7018*344a7f5eSAndroid Build Coastguard Worker                  (__v4sf) __B,
7019*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) _mm_setzero_ps (),
7020*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
7021*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
7022*344a7f5eSAndroid Build Coastguard Worker }
7023*344a7f5eSAndroid Build Coastguard Worker 
7024*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_scalef_round_ss(U, A, B, R) __extension__ ({ \
7025*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \
7026*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)(__m128)(B), \
7027*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)_mm_setzero_ps(), \
7028*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), \
7029*344a7f5eSAndroid Build Coastguard Worker                                              _MM_FROUND_CUR_DIRECTION); })
7030*344a7f5eSAndroid Build Coastguard Worker 
7031*344a7f5eSAndroid Build Coastguard Worker #define _mm512_srai_epi32(A, B) __extension__ ({ \
7032*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psradi512_mask((__v16si)(__m512i)(A), (int)(B), \
7033*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
7034*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1); })
7035*344a7f5eSAndroid Build Coastguard Worker 
7036*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_srai_epi32(W, U, A, B) __extension__ ({ \
7037*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psradi512_mask((__v16si)(__m512i)(A), (int)(B), \
7038*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)(__m512i)(W), \
7039*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
7040*344a7f5eSAndroid Build Coastguard Worker 
7041*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_srai_epi32(U, A, B) __extension__ ({ \
7042*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psradi512_mask((__v16si)(__m512i)(A), (int)(B), \
7043*344a7f5eSAndroid Build Coastguard Worker                                          (__v16si)_mm512_setzero_si512(), \
7044*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
7045*344a7f5eSAndroid Build Coastguard Worker 
7046*344a7f5eSAndroid Build Coastguard Worker #define _mm512_srai_epi64(A, B) __extension__ ({ \
7047*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psraqi512_mask((__v8di)(__m512i)(A), (int)(B), \
7048*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
7049*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)-1); })
7050*344a7f5eSAndroid Build Coastguard Worker 
7051*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_srai_epi64(W, U, A, B) __extension__ ({ \
7052*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psraqi512_mask((__v8di)(__m512i)(A), (int)(B), \
7053*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)(__m512i)(W), \
7054*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
7055*344a7f5eSAndroid Build Coastguard Worker 
7056*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_srai_epi64(U, A, B) __extension__ ({ \
7057*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_psraqi512_mask((__v8di)(__m512i)(A), (int)(B), \
7058*344a7f5eSAndroid Build Coastguard Worker                                          (__v8di)_mm512_setzero_si512(), \
7059*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask8)(U)); })
7060*344a7f5eSAndroid Build Coastguard Worker 
7061*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_f32x4(A, B, imm) __extension__ ({ \
7062*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_shuf_f32x4_mask((__v16sf)(__m512)(A), \
7063*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(B), (int)(imm), \
7064*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)_mm512_undefined_ps(), \
7065*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)-1); })
7066*344a7f5eSAndroid Build Coastguard Worker 
7067*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \
7068*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_shuf_f32x4_mask((__v16sf)(__m512)(A), \
7069*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(B), (int)(imm), \
7070*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(W), \
7071*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
7072*344a7f5eSAndroid Build Coastguard Worker 
7073*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \
7074*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_shuf_f32x4_mask((__v16sf)(__m512)(A), \
7075*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)(__m512)(B), (int)(imm), \
7076*344a7f5eSAndroid Build Coastguard Worker                                          (__v16sf)_mm512_setzero_ps(), \
7077*344a7f5eSAndroid Build Coastguard Worker                                          (__mmask16)(U)); })
7078*344a7f5eSAndroid Build Coastguard Worker 
7079*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_f64x2(A, B, imm) __extension__ ({ \
7080*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_shuf_f64x2_mask((__v8df)(__m512d)(A), \
7081*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(B), (int)(imm), \
7082*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)_mm512_undefined_pd(), \
7083*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1); })
7084*344a7f5eSAndroid Build Coastguard Worker 
7085*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \
7086*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_shuf_f64x2_mask((__v8df)(__m512d)(A), \
7087*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(B), (int)(imm), \
7088*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(W), \
7089*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U)); })
7090*344a7f5eSAndroid Build Coastguard Worker 
7091*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \
7092*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_shuf_f64x2_mask((__v8df)(__m512d)(A), \
7093*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)(__m512d)(B), (int)(imm), \
7094*344a7f5eSAndroid Build Coastguard Worker                                           (__v8df)_mm512_setzero_pd(), \
7095*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U)); })
7096*344a7f5eSAndroid Build Coastguard Worker 
7097*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_i32x4(A, B, imm) __extension__ ({ \
7098*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_shuf_i32x4_mask((__v16si)(__m512i)(A), \
7099*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)(__m512i)(B), (int)(imm), \
7100*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)_mm512_setzero_si512(), \
7101*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1); })
7102*344a7f5eSAndroid Build Coastguard Worker 
7103*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \
7104*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_shuf_i32x4_mask((__v16si)(__m512i)(A), \
7105*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)(__m512i)(B), (int)(imm), \
7106*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)(__m512i)(W), \
7107*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U)); })
7108*344a7f5eSAndroid Build Coastguard Worker 
7109*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \
7110*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_shuf_i32x4_mask((__v16si)(__m512i)(A), \
7111*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)(__m512i)(B), (int)(imm), \
7112*344a7f5eSAndroid Build Coastguard Worker                                           (__v16si)_mm512_setzero_si512(), \
7113*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U)); })
7114*344a7f5eSAndroid Build Coastguard Worker 
7115*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_i64x2(A, B, imm) __extension__ ({ \
7116*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_shuf_i64x2_mask((__v8di)(__m512i)(A), \
7117*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)(__m512i)(B), (int)(imm), \
7118*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)_mm512_setzero_si512(), \
7119*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)-1); })
7120*344a7f5eSAndroid Build Coastguard Worker 
7121*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \
7122*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_shuf_i64x2_mask((__v8di)(__m512i)(A), \
7123*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)(__m512i)(B), (int)(imm), \
7124*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)(__m512i)(W), \
7125*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U)); })
7126*344a7f5eSAndroid Build Coastguard Worker 
7127*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \
7128*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_shuf_i64x2_mask((__v8di)(__m512i)(A), \
7129*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)(__m512i)(B), (int)(imm), \
7130*344a7f5eSAndroid Build Coastguard Worker                                           (__v8di)_mm512_setzero_si512(), \
7131*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U)); })
7132*344a7f5eSAndroid Build Coastguard Worker 
7133*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_pd(A, B, M) __extension__ ({ \
7134*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_shufflevector((__v8df)(__m512d)(A), \
7135*344a7f5eSAndroid Build Coastguard Worker                                    (__v8df)(__m512d)(B), \
7136*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((M) >> 0) & 0x1), \
7137*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((M) >> 1) & 0x1), \
7138*344a7f5eSAndroid Build Coastguard Worker                                    2  + (((M) >> 2) & 0x1), \
7139*344a7f5eSAndroid Build Coastguard Worker                                    10 + (((M) >> 3) & 0x1), \
7140*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((M) >> 4) & 0x1), \
7141*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((M) >> 5) & 0x1), \
7142*344a7f5eSAndroid Build Coastguard Worker                                    6  + (((M) >> 6) & 0x1), \
7143*344a7f5eSAndroid Build Coastguard Worker                                    14 + (((M) >> 7) & 0x1)); })
7144*344a7f5eSAndroid Build Coastguard Worker 
7145*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \
7146*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
7147*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_shuffle_pd((A), (B), (M)), \
7148*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)(__m512d)(W)); })
7149*344a7f5eSAndroid Build Coastguard Worker 
7150*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \
7151*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
7152*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_shuffle_pd((A), (B), (M)), \
7153*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_setzero_pd()); })
7154*344a7f5eSAndroid Build Coastguard Worker 
7155*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_ps(A, B, M) __extension__ ({ \
7156*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_shufflevector((__v16sf)(__m512)(A), \
7157*344a7f5eSAndroid Build Coastguard Worker                                    (__v16sf)(__m512)(B), \
7158*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((M) >> 0) & 0x3), \
7159*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((M) >> 2) & 0x3), \
7160*344a7f5eSAndroid Build Coastguard Worker                                    16 + (((M) >> 4) & 0x3), \
7161*344a7f5eSAndroid Build Coastguard Worker                                    16 + (((M) >> 6) & 0x3), \
7162*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((M) >> 0) & 0x3), \
7163*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((M) >> 2) & 0x3), \
7164*344a7f5eSAndroid Build Coastguard Worker                                    20 + (((M) >> 4) & 0x3), \
7165*344a7f5eSAndroid Build Coastguard Worker                                    20 + (((M) >> 6) & 0x3), \
7166*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((M) >> 0) & 0x3), \
7167*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((M) >> 2) & 0x3), \
7168*344a7f5eSAndroid Build Coastguard Worker                                    24 + (((M) >> 4) & 0x3), \
7169*344a7f5eSAndroid Build Coastguard Worker                                    24 + (((M) >> 6) & 0x3), \
7170*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((M) >> 0) & 0x3), \
7171*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((M) >> 2) & 0x3), \
7172*344a7f5eSAndroid Build Coastguard Worker                                    28 + (((M) >> 4) & 0x3), \
7173*344a7f5eSAndroid Build Coastguard Worker                                    28 + (((M) >> 6) & 0x3)); })
7174*344a7f5eSAndroid Build Coastguard Worker 
7175*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \
7176*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \
7177*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)_mm512_shuffle_ps((A), (B), (M)), \
7178*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)(__m512)(W)); })
7179*344a7f5eSAndroid Build Coastguard Worker 
7180*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \
7181*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \
7182*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)_mm512_shuffle_ps((A), (B), (M)), \
7183*344a7f5eSAndroid Build Coastguard Worker                                       (__v16sf)_mm512_setzero_ps()); })
7184*344a7f5eSAndroid Build Coastguard Worker 
7185*344a7f5eSAndroid Build Coastguard Worker #define _mm_sqrt_round_sd(A, B, R) __extension__ ({ \
7186*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \
7187*344a7f5eSAndroid Build Coastguard Worker                                             (__v2df)(__m128d)(B), \
7188*344a7f5eSAndroid Build Coastguard Worker                                             (__v2df)_mm_setzero_pd(), \
7189*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1, (int)(R)); })
7190*344a7f5eSAndroid Build Coastguard Worker 
7191*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_sqrt_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)7192*344a7f5eSAndroid Build Coastguard Worker _mm_mask_sqrt_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
7193*344a7f5eSAndroid Build Coastguard Worker {
7194*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A,
7195*344a7f5eSAndroid Build Coastguard Worker                  (__v2df) __B,
7196*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) __W,
7197*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
7198*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
7199*344a7f5eSAndroid Build Coastguard Worker }
7200*344a7f5eSAndroid Build Coastguard Worker 
7201*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_sqrt_round_sd(W, U, A, B, R) __extension__ ({ \
7202*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \
7203*344a7f5eSAndroid Build Coastguard Worker                                             (__v2df)(__m128d)(B), \
7204*344a7f5eSAndroid Build Coastguard Worker                                             (__v2df)(__m128d)(W), \
7205*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
7206*344a7f5eSAndroid Build Coastguard Worker 
7207*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_sqrt_sd(__mmask8 __U,__m128d __A,__m128d __B)7208*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_sqrt_sd (__mmask8 __U, __m128d __A, __m128d __B)
7209*344a7f5eSAndroid Build Coastguard Worker {
7210*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A,
7211*344a7f5eSAndroid Build Coastguard Worker                  (__v2df) __B,
7212*344a7f5eSAndroid Build Coastguard Worker                 (__v2df) _mm_setzero_pd (),
7213*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
7214*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
7215*344a7f5eSAndroid Build Coastguard Worker }
7216*344a7f5eSAndroid Build Coastguard Worker 
7217*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_sqrt_round_sd(U, A, B, R) __extension__ ({ \
7218*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \
7219*344a7f5eSAndroid Build Coastguard Worker                                             (__v2df)(__m128d)(B), \
7220*344a7f5eSAndroid Build Coastguard Worker                                             (__v2df)_mm_setzero_pd(), \
7221*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
7222*344a7f5eSAndroid Build Coastguard Worker 
7223*344a7f5eSAndroid Build Coastguard Worker #define _mm_sqrt_round_ss(A, B, R) __extension__ ({ \
7224*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \
7225*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)(__m128)(B), \
7226*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)_mm_setzero_ps(), \
7227*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
7228*344a7f5eSAndroid Build Coastguard Worker 
7229*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_sqrt_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)7230*344a7f5eSAndroid Build Coastguard Worker _mm_mask_sqrt_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
7231*344a7f5eSAndroid Build Coastguard Worker {
7232*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A,
7233*344a7f5eSAndroid Build Coastguard Worker                  (__v4sf) __B,
7234*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) __W,
7235*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
7236*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
7237*344a7f5eSAndroid Build Coastguard Worker }
7238*344a7f5eSAndroid Build Coastguard Worker 
7239*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_sqrt_round_ss(W, U, A, B, R) __extension__ ({ \
7240*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \
7241*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)(__m128)(B), \
7242*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)(__m128)(W), (__mmask8)(U), \
7243*344a7f5eSAndroid Build Coastguard Worker                                            (int)(R)); })
7244*344a7f5eSAndroid Build Coastguard Worker 
7245*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_sqrt_ss(__mmask8 __U,__m128 __A,__m128 __B)7246*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_sqrt_ss (__mmask8 __U, __m128 __A, __m128 __B)
7247*344a7f5eSAndroid Build Coastguard Worker {
7248*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A,
7249*344a7f5eSAndroid Build Coastguard Worker                  (__v4sf) __B,
7250*344a7f5eSAndroid Build Coastguard Worker                 (__v4sf) _mm_setzero_ps (),
7251*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
7252*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
7253*344a7f5eSAndroid Build Coastguard Worker }
7254*344a7f5eSAndroid Build Coastguard Worker 
7255*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_sqrt_round_ss(U, A, B, R) __extension__ ({ \
7256*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \
7257*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)(__m128)(B), \
7258*344a7f5eSAndroid Build Coastguard Worker                                            (__v4sf)_mm_setzero_ps(), \
7259*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
7260*344a7f5eSAndroid Build Coastguard Worker 
7261*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_broadcast_f32x4(__m128 __A)7262*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcast_f32x4 (__m128 __A)
7263*344a7f5eSAndroid Build Coastguard Worker {
7264*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
7265*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf)
7266*344a7f5eSAndroid Build Coastguard Worker                  _mm512_undefined_ps (),
7267*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) -1);
7268*344a7f5eSAndroid Build Coastguard Worker }
7269*344a7f5eSAndroid Build Coastguard Worker 
7270*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_broadcast_f32x4(__m512 __O,__mmask16 __M,__m128 __A)7271*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A)
7272*344a7f5eSAndroid Build Coastguard Worker {
7273*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
7274*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __O,
7275*344a7f5eSAndroid Build Coastguard Worker                  __M);
7276*344a7f5eSAndroid Build Coastguard Worker }
7277*344a7f5eSAndroid Build Coastguard Worker 
7278*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_broadcast_f32x4(__mmask16 __M,__m128 __A)7279*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A)
7280*344a7f5eSAndroid Build Coastguard Worker {
7281*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
7282*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf)
7283*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_ps (),
7284*344a7f5eSAndroid Build Coastguard Worker                  __M);
7285*344a7f5eSAndroid Build Coastguard Worker }
7286*344a7f5eSAndroid Build Coastguard Worker 
7287*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_broadcast_f64x4(__m256d __A)7288*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcast_f64x4 (__m256d __A)
7289*344a7f5eSAndroid Build Coastguard Worker {
7290*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
7291*344a7f5eSAndroid Build Coastguard Worker                   (__v8df)
7292*344a7f5eSAndroid Build Coastguard Worker                   _mm512_undefined_pd (),
7293*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) -1);
7294*344a7f5eSAndroid Build Coastguard Worker }
7295*344a7f5eSAndroid Build Coastguard Worker 
7296*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_broadcast_f64x4(__m512d __O,__mmask8 __M,__m256d __A)7297*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A)
7298*344a7f5eSAndroid Build Coastguard Worker {
7299*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
7300*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __O,
7301*344a7f5eSAndroid Build Coastguard Worker                   __M);
7302*344a7f5eSAndroid Build Coastguard Worker }
7303*344a7f5eSAndroid Build Coastguard Worker 
7304*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_broadcast_f64x4(__mmask8 __M,__m256d __A)7305*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A)
7306*344a7f5eSAndroid Build Coastguard Worker {
7307*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
7308*344a7f5eSAndroid Build Coastguard Worker                   (__v8df)
7309*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_pd (),
7310*344a7f5eSAndroid Build Coastguard Worker                   __M);
7311*344a7f5eSAndroid Build Coastguard Worker }
7312*344a7f5eSAndroid Build Coastguard Worker 
7313*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcast_i32x4(__m128i __A)7314*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcast_i32x4 (__m128i __A)
7315*344a7f5eSAndroid Build Coastguard Worker {
7316*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
7317*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
7318*344a7f5eSAndroid Build Coastguard Worker                   _mm512_undefined_epi32 (),
7319*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) -1);
7320*344a7f5eSAndroid Build Coastguard Worker }
7321*344a7f5eSAndroid Build Coastguard Worker 
7322*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_broadcast_i32x4(__m512i __O,__mmask16 __M,__m128i __A)7323*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A)
7324*344a7f5eSAndroid Build Coastguard Worker {
7325*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
7326*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) __O,
7327*344a7f5eSAndroid Build Coastguard Worker                   __M);
7328*344a7f5eSAndroid Build Coastguard Worker }
7329*344a7f5eSAndroid Build Coastguard Worker 
7330*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_broadcast_i32x4(__mmask16 __M,__m128i __A)7331*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A)
7332*344a7f5eSAndroid Build Coastguard Worker {
7333*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
7334*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
7335*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
7336*344a7f5eSAndroid Build Coastguard Worker                   __M);
7337*344a7f5eSAndroid Build Coastguard Worker }
7338*344a7f5eSAndroid Build Coastguard Worker 
7339*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_broadcast_i64x4(__m256i __A)7340*344a7f5eSAndroid Build Coastguard Worker _mm512_broadcast_i64x4 (__m256i __A)
7341*344a7f5eSAndroid Build Coastguard Worker {
7342*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
7343*344a7f5eSAndroid Build Coastguard Worker                   (__v8di)
7344*344a7f5eSAndroid Build Coastguard Worker                   _mm512_undefined_epi32 (),
7345*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) -1);
7346*344a7f5eSAndroid Build Coastguard Worker }
7347*344a7f5eSAndroid Build Coastguard Worker 
7348*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_broadcast_i64x4(__m512i __O,__mmask8 __M,__m256i __A)7349*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A)
7350*344a7f5eSAndroid Build Coastguard Worker {
7351*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
7352*344a7f5eSAndroid Build Coastguard Worker                   (__v8di) __O,
7353*344a7f5eSAndroid Build Coastguard Worker                   __M);
7354*344a7f5eSAndroid Build Coastguard Worker }
7355*344a7f5eSAndroid Build Coastguard Worker 
7356*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_broadcast_i64x4(__mmask8 __M,__m256i __A)7357*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A)
7358*344a7f5eSAndroid Build Coastguard Worker {
7359*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
7360*344a7f5eSAndroid Build Coastguard Worker                   (__v8di)
7361*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
7362*344a7f5eSAndroid Build Coastguard Worker                   __M);
7363*344a7f5eSAndroid Build Coastguard Worker }
7364*344a7f5eSAndroid Build Coastguard Worker 
7365*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_broadcastsd_pd(__m512d __O,__mmask8 __M,__m128d __A)7366*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A)
7367*344a7f5eSAndroid Build Coastguard Worker {
7368*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512(__M,
7369*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df) _mm512_broadcastsd_pd(__A),
7370*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df) __O);
7371*344a7f5eSAndroid Build Coastguard Worker }
7372*344a7f5eSAndroid Build Coastguard Worker 
7373*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_broadcastsd_pd(__mmask8 __M,__m128d __A)7374*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
7375*344a7f5eSAndroid Build Coastguard Worker {
7376*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)__builtin_ia32_selectpd_512(__M,
7377*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df) _mm512_broadcastsd_pd(__A),
7378*344a7f5eSAndroid Build Coastguard Worker                                               (__v8df) _mm512_setzero_pd());
7379*344a7f5eSAndroid Build Coastguard Worker }
7380*344a7f5eSAndroid Build Coastguard Worker 
7381*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_broadcastss_ps(__m512 __O,__mmask16 __M,__m128 __A)7382*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A)
7383*344a7f5eSAndroid Build Coastguard Worker {
7384*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512(__M,
7385*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf) _mm512_broadcastss_ps(__A),
7386*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf) __O);
7387*344a7f5eSAndroid Build Coastguard Worker }
7388*344a7f5eSAndroid Build Coastguard Worker 
7389*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_broadcastss_ps(__mmask16 __M,__m128 __A)7390*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A)
7391*344a7f5eSAndroid Build Coastguard Worker {
7392*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512(__M,
7393*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf) _mm512_broadcastss_ps(__A),
7394*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf) _mm512_setzero_ps());
7395*344a7f5eSAndroid Build Coastguard Worker }
7396*344a7f5eSAndroid Build Coastguard Worker 
7397*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtsepi32_epi8(__m512i __A)7398*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtsepi32_epi8 (__m512i __A)
7399*344a7f5eSAndroid Build Coastguard Worker {
7400*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
7401*344a7f5eSAndroid Build Coastguard Worker                (__v16qi) _mm_undefined_si128 (),
7402*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) -1);
7403*344a7f5eSAndroid Build Coastguard Worker }
7404*344a7f5eSAndroid Build Coastguard Worker 
7405*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)7406*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
7407*344a7f5eSAndroid Build Coastguard Worker {
7408*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
7409*344a7f5eSAndroid Build Coastguard Worker                (__v16qi) __O, __M);
7410*344a7f5eSAndroid Build Coastguard Worker }
7411*344a7f5eSAndroid Build Coastguard Worker 
7412*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtsepi32_epi8(__mmask16 __M,__m512i __A)7413*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A)
7414*344a7f5eSAndroid Build Coastguard Worker {
7415*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
7416*344a7f5eSAndroid Build Coastguard Worker                (__v16qi) _mm_setzero_si128 (),
7417*344a7f5eSAndroid Build Coastguard Worker                __M);
7418*344a7f5eSAndroid Build Coastguard Worker }
7419*344a7f5eSAndroid Build Coastguard Worker 
7420*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)7421*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
7422*344a7f5eSAndroid Build Coastguard Worker {
7423*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
7424*344a7f5eSAndroid Build Coastguard Worker }
7425*344a7f5eSAndroid Build Coastguard Worker 
7426*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtsepi32_epi16(__m512i __A)7427*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtsepi32_epi16 (__m512i __A)
7428*344a7f5eSAndroid Build Coastguard Worker {
7429*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
7430*344a7f5eSAndroid Build Coastguard Worker                (__v16hi) _mm256_undefined_si256 (),
7431*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) -1);
7432*344a7f5eSAndroid Build Coastguard Worker }
7433*344a7f5eSAndroid Build Coastguard Worker 
7434*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)7435*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
7436*344a7f5eSAndroid Build Coastguard Worker {
7437*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
7438*344a7f5eSAndroid Build Coastguard Worker                (__v16hi) __O, __M);
7439*344a7f5eSAndroid Build Coastguard Worker }
7440*344a7f5eSAndroid Build Coastguard Worker 
7441*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtsepi32_epi16(__mmask16 __M,__m512i __A)7442*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A)
7443*344a7f5eSAndroid Build Coastguard Worker {
7444*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
7445*344a7f5eSAndroid Build Coastguard Worker                (__v16hi) _mm256_setzero_si256 (),
7446*344a7f5eSAndroid Build Coastguard Worker                __M);
7447*344a7f5eSAndroid Build Coastguard Worker }
7448*344a7f5eSAndroid Build Coastguard Worker 
7449*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)7450*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
7451*344a7f5eSAndroid Build Coastguard Worker {
7452*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
7453*344a7f5eSAndroid Build Coastguard Worker }
7454*344a7f5eSAndroid Build Coastguard Worker 
7455*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtsepi64_epi8(__m512i __A)7456*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtsepi64_epi8 (__m512i __A)
7457*344a7f5eSAndroid Build Coastguard Worker {
7458*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
7459*344a7f5eSAndroid Build Coastguard Worker                (__v16qi) _mm_undefined_si128 (),
7460*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
7461*344a7f5eSAndroid Build Coastguard Worker }
7462*344a7f5eSAndroid Build Coastguard Worker 
7463*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)7464*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
7465*344a7f5eSAndroid Build Coastguard Worker {
7466*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
7467*344a7f5eSAndroid Build Coastguard Worker                (__v16qi) __O, __M);
7468*344a7f5eSAndroid Build Coastguard Worker }
7469*344a7f5eSAndroid Build Coastguard Worker 
7470*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtsepi64_epi8(__mmask8 __M,__m512i __A)7471*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A)
7472*344a7f5eSAndroid Build Coastguard Worker {
7473*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
7474*344a7f5eSAndroid Build Coastguard Worker                (__v16qi) _mm_setzero_si128 (),
7475*344a7f5eSAndroid Build Coastguard Worker                __M);
7476*344a7f5eSAndroid Build Coastguard Worker }
7477*344a7f5eSAndroid Build Coastguard Worker 
7478*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)7479*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
7480*344a7f5eSAndroid Build Coastguard Worker {
7481*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
7482*344a7f5eSAndroid Build Coastguard Worker }
7483*344a7f5eSAndroid Build Coastguard Worker 
7484*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtsepi64_epi32(__m512i __A)7485*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtsepi64_epi32 (__m512i __A)
7486*344a7f5eSAndroid Build Coastguard Worker {
7487*344a7f5eSAndroid Build Coastguard Worker   __v8si __O;
7488*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
7489*344a7f5eSAndroid Build Coastguard Worker                (__v8si) _mm256_undefined_si256 (),
7490*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
7491*344a7f5eSAndroid Build Coastguard Worker }
7492*344a7f5eSAndroid Build Coastguard Worker 
7493*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)7494*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
7495*344a7f5eSAndroid Build Coastguard Worker {
7496*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
7497*344a7f5eSAndroid Build Coastguard Worker                (__v8si) __O, __M);
7498*344a7f5eSAndroid Build Coastguard Worker }
7499*344a7f5eSAndroid Build Coastguard Worker 
7500*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtsepi64_epi32(__mmask8 __M,__m512i __A)7501*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A)
7502*344a7f5eSAndroid Build Coastguard Worker {
7503*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
7504*344a7f5eSAndroid Build Coastguard Worker                (__v8si) _mm256_setzero_si256 (),
7505*344a7f5eSAndroid Build Coastguard Worker                __M);
7506*344a7f5eSAndroid Build Coastguard Worker }
7507*344a7f5eSAndroid Build Coastguard Worker 
7508*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)7509*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A)
7510*344a7f5eSAndroid Build Coastguard Worker {
7511*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
7512*344a7f5eSAndroid Build Coastguard Worker }
7513*344a7f5eSAndroid Build Coastguard Worker 
7514*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtsepi64_epi16(__m512i __A)7515*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtsepi64_epi16 (__m512i __A)
7516*344a7f5eSAndroid Build Coastguard Worker {
7517*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
7518*344a7f5eSAndroid Build Coastguard Worker                (__v8hi) _mm_undefined_si128 (),
7519*344a7f5eSAndroid Build Coastguard Worker                (__mmask8) -1);
7520*344a7f5eSAndroid Build Coastguard Worker }
7521*344a7f5eSAndroid Build Coastguard Worker 
7522*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)7523*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
7524*344a7f5eSAndroid Build Coastguard Worker {
7525*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
7526*344a7f5eSAndroid Build Coastguard Worker                (__v8hi) __O, __M);
7527*344a7f5eSAndroid Build Coastguard Worker }
7528*344a7f5eSAndroid Build Coastguard Worker 
7529*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtsepi64_epi16(__mmask8 __M,__m512i __A)7530*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A)
7531*344a7f5eSAndroid Build Coastguard Worker {
7532*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
7533*344a7f5eSAndroid Build Coastguard Worker                (__v8hi) _mm_setzero_si128 (),
7534*344a7f5eSAndroid Build Coastguard Worker                __M);
7535*344a7f5eSAndroid Build Coastguard Worker }
7536*344a7f5eSAndroid Build Coastguard Worker 
7537*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtsepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)7538*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A)
7539*344a7f5eSAndroid Build Coastguard Worker {
7540*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
7541*344a7f5eSAndroid Build Coastguard Worker }
7542*344a7f5eSAndroid Build Coastguard Worker 
7543*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtusepi32_epi8(__m512i __A)7544*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtusepi32_epi8 (__m512i __A)
7545*344a7f5eSAndroid Build Coastguard Worker {
7546*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
7547*344a7f5eSAndroid Build Coastguard Worker                 (__v16qi) _mm_undefined_si128 (),
7548*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
7549*344a7f5eSAndroid Build Coastguard Worker }
7550*344a7f5eSAndroid Build Coastguard Worker 
7551*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)7552*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
7553*344a7f5eSAndroid Build Coastguard Worker {
7554*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
7555*344a7f5eSAndroid Build Coastguard Worker                 (__v16qi) __O,
7556*344a7f5eSAndroid Build Coastguard Worker                 __M);
7557*344a7f5eSAndroid Build Coastguard Worker }
7558*344a7f5eSAndroid Build Coastguard Worker 
7559*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtusepi32_epi8(__mmask16 __M,__m512i __A)7560*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A)
7561*344a7f5eSAndroid Build Coastguard Worker {
7562*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
7563*344a7f5eSAndroid Build Coastguard Worker                 (__v16qi) _mm_setzero_si128 (),
7564*344a7f5eSAndroid Build Coastguard Worker                 __M);
7565*344a7f5eSAndroid Build Coastguard Worker }
7566*344a7f5eSAndroid Build Coastguard Worker 
7567*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)7568*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
7569*344a7f5eSAndroid Build Coastguard Worker {
7570*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
7571*344a7f5eSAndroid Build Coastguard Worker }
7572*344a7f5eSAndroid Build Coastguard Worker 
7573*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtusepi32_epi16(__m512i __A)7574*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtusepi32_epi16 (__m512i __A)
7575*344a7f5eSAndroid Build Coastguard Worker {
7576*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
7577*344a7f5eSAndroid Build Coastguard Worker                 (__v16hi) _mm256_undefined_si256 (),
7578*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
7579*344a7f5eSAndroid Build Coastguard Worker }
7580*344a7f5eSAndroid Build Coastguard Worker 
7581*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)7582*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
7583*344a7f5eSAndroid Build Coastguard Worker {
7584*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
7585*344a7f5eSAndroid Build Coastguard Worker                 (__v16hi) __O,
7586*344a7f5eSAndroid Build Coastguard Worker                 __M);
7587*344a7f5eSAndroid Build Coastguard Worker }
7588*344a7f5eSAndroid Build Coastguard Worker 
7589*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtusepi32_epi16(__mmask16 __M,__m512i __A)7590*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A)
7591*344a7f5eSAndroid Build Coastguard Worker {
7592*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
7593*344a7f5eSAndroid Build Coastguard Worker                 (__v16hi) _mm256_setzero_si256 (),
7594*344a7f5eSAndroid Build Coastguard Worker                 __M);
7595*344a7f5eSAndroid Build Coastguard Worker }
7596*344a7f5eSAndroid Build Coastguard Worker 
7597*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)7598*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
7599*344a7f5eSAndroid Build Coastguard Worker {
7600*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
7601*344a7f5eSAndroid Build Coastguard Worker }
7602*344a7f5eSAndroid Build Coastguard Worker 
7603*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtusepi64_epi8(__m512i __A)7604*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtusepi64_epi8 (__m512i __A)
7605*344a7f5eSAndroid Build Coastguard Worker {
7606*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
7607*344a7f5eSAndroid Build Coastguard Worker                 (__v16qi) _mm_undefined_si128 (),
7608*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
7609*344a7f5eSAndroid Build Coastguard Worker }
7610*344a7f5eSAndroid Build Coastguard Worker 
7611*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)7612*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
7613*344a7f5eSAndroid Build Coastguard Worker {
7614*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
7615*344a7f5eSAndroid Build Coastguard Worker                 (__v16qi) __O,
7616*344a7f5eSAndroid Build Coastguard Worker                 __M);
7617*344a7f5eSAndroid Build Coastguard Worker }
7618*344a7f5eSAndroid Build Coastguard Worker 
7619*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtusepi64_epi8(__mmask8 __M,__m512i __A)7620*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A)
7621*344a7f5eSAndroid Build Coastguard Worker {
7622*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
7623*344a7f5eSAndroid Build Coastguard Worker                 (__v16qi) _mm_setzero_si128 (),
7624*344a7f5eSAndroid Build Coastguard Worker                 __M);
7625*344a7f5eSAndroid Build Coastguard Worker }
7626*344a7f5eSAndroid Build Coastguard Worker 
7627*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)7628*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
7629*344a7f5eSAndroid Build Coastguard Worker {
7630*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
7631*344a7f5eSAndroid Build Coastguard Worker }
7632*344a7f5eSAndroid Build Coastguard Worker 
7633*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtusepi64_epi32(__m512i __A)7634*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtusepi64_epi32 (__m512i __A)
7635*344a7f5eSAndroid Build Coastguard Worker {
7636*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
7637*344a7f5eSAndroid Build Coastguard Worker                 (__v8si) _mm256_undefined_si256 (),
7638*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
7639*344a7f5eSAndroid Build Coastguard Worker }
7640*344a7f5eSAndroid Build Coastguard Worker 
7641*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)7642*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
7643*344a7f5eSAndroid Build Coastguard Worker {
7644*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
7645*344a7f5eSAndroid Build Coastguard Worker                 (__v8si) __O, __M);
7646*344a7f5eSAndroid Build Coastguard Worker }
7647*344a7f5eSAndroid Build Coastguard Worker 
7648*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtusepi64_epi32(__mmask8 __M,__m512i __A)7649*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A)
7650*344a7f5eSAndroid Build Coastguard Worker {
7651*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
7652*344a7f5eSAndroid Build Coastguard Worker                 (__v8si) _mm256_setzero_si256 (),
7653*344a7f5eSAndroid Build Coastguard Worker                 __M);
7654*344a7f5eSAndroid Build Coastguard Worker }
7655*344a7f5eSAndroid Build Coastguard Worker 
7656*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)7657*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
7658*344a7f5eSAndroid Build Coastguard Worker {
7659*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M);
7660*344a7f5eSAndroid Build Coastguard Worker }
7661*344a7f5eSAndroid Build Coastguard Worker 
7662*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtusepi64_epi16(__m512i __A)7663*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtusepi64_epi16 (__m512i __A)
7664*344a7f5eSAndroid Build Coastguard Worker {
7665*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
7666*344a7f5eSAndroid Build Coastguard Worker                 (__v8hi) _mm_undefined_si128 (),
7667*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1);
7668*344a7f5eSAndroid Build Coastguard Worker }
7669*344a7f5eSAndroid Build Coastguard Worker 
7670*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)7671*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
7672*344a7f5eSAndroid Build Coastguard Worker {
7673*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
7674*344a7f5eSAndroid Build Coastguard Worker                 (__v8hi) __O, __M);
7675*344a7f5eSAndroid Build Coastguard Worker }
7676*344a7f5eSAndroid Build Coastguard Worker 
7677*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtusepi64_epi16(__mmask8 __M,__m512i __A)7678*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A)
7679*344a7f5eSAndroid Build Coastguard Worker {
7680*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
7681*344a7f5eSAndroid Build Coastguard Worker                 (__v8hi) _mm_setzero_si128 (),
7682*344a7f5eSAndroid Build Coastguard Worker                 __M);
7683*344a7f5eSAndroid Build Coastguard Worker }
7684*344a7f5eSAndroid Build Coastguard Worker 
7685*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtusepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)7686*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
7687*344a7f5eSAndroid Build Coastguard Worker {
7688*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M);
7689*344a7f5eSAndroid Build Coastguard Worker }
7690*344a7f5eSAndroid Build Coastguard Worker 
7691*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtepi32_epi8(__m512i __A)7692*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi32_epi8 (__m512i __A)
7693*344a7f5eSAndroid Build Coastguard Worker {
7694*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
7695*344a7f5eSAndroid Build Coastguard Worker               (__v16qi) _mm_undefined_si128 (),
7696*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
7697*344a7f5eSAndroid Build Coastguard Worker }
7698*344a7f5eSAndroid Build Coastguard Worker 
7699*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_epi8(__m128i __O,__mmask16 __M,__m512i __A)7700*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
7701*344a7f5eSAndroid Build Coastguard Worker {
7702*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
7703*344a7f5eSAndroid Build Coastguard Worker               (__v16qi) __O, __M);
7704*344a7f5eSAndroid Build Coastguard Worker }
7705*344a7f5eSAndroid Build Coastguard Worker 
7706*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi32_epi8(__mmask16 __M,__m512i __A)7707*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A)
7708*344a7f5eSAndroid Build Coastguard Worker {
7709*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
7710*344a7f5eSAndroid Build Coastguard Worker               (__v16qi) _mm_setzero_si128 (),
7711*344a7f5eSAndroid Build Coastguard Worker               __M);
7712*344a7f5eSAndroid Build Coastguard Worker }
7713*344a7f5eSAndroid Build Coastguard Worker 
7714*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_storeu_epi8(void * __P,__mmask16 __M,__m512i __A)7715*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
7716*344a7f5eSAndroid Build Coastguard Worker {
7717*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
7718*344a7f5eSAndroid Build Coastguard Worker }
7719*344a7f5eSAndroid Build Coastguard Worker 
7720*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtepi32_epi16(__m512i __A)7721*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi32_epi16 (__m512i __A)
7722*344a7f5eSAndroid Build Coastguard Worker {
7723*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
7724*344a7f5eSAndroid Build Coastguard Worker               (__v16hi) _mm256_undefined_si256 (),
7725*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) -1);
7726*344a7f5eSAndroid Build Coastguard Worker }
7727*344a7f5eSAndroid Build Coastguard Worker 
7728*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_epi16(__m256i __O,__mmask16 __M,__m512i __A)7729*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
7730*344a7f5eSAndroid Build Coastguard Worker {
7731*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
7732*344a7f5eSAndroid Build Coastguard Worker               (__v16hi) __O, __M);
7733*344a7f5eSAndroid Build Coastguard Worker }
7734*344a7f5eSAndroid Build Coastguard Worker 
7735*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi32_epi16(__mmask16 __M,__m512i __A)7736*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A)
7737*344a7f5eSAndroid Build Coastguard Worker {
7738*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
7739*344a7f5eSAndroid Build Coastguard Worker               (__v16hi) _mm256_setzero_si256 (),
7740*344a7f5eSAndroid Build Coastguard Worker               __M);
7741*344a7f5eSAndroid Build Coastguard Worker }
7742*344a7f5eSAndroid Build Coastguard Worker 
7743*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi32_storeu_epi16(void * __P,__mmask16 __M,__m512i __A)7744*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A)
7745*344a7f5eSAndroid Build Coastguard Worker {
7746*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M);
7747*344a7f5eSAndroid Build Coastguard Worker }
7748*344a7f5eSAndroid Build Coastguard Worker 
7749*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtepi64_epi8(__m512i __A)7750*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi64_epi8 (__m512i __A)
7751*344a7f5eSAndroid Build Coastguard Worker {
7752*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
7753*344a7f5eSAndroid Build Coastguard Worker               (__v16qi) _mm_undefined_si128 (),
7754*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
7755*344a7f5eSAndroid Build Coastguard Worker }
7756*344a7f5eSAndroid Build Coastguard Worker 
7757*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi64_epi8(__m128i __O,__mmask8 __M,__m512i __A)7758*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
7759*344a7f5eSAndroid Build Coastguard Worker {
7760*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
7761*344a7f5eSAndroid Build Coastguard Worker               (__v16qi) __O, __M);
7762*344a7f5eSAndroid Build Coastguard Worker }
7763*344a7f5eSAndroid Build Coastguard Worker 
7764*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi64_epi8(__mmask8 __M,__m512i __A)7765*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A)
7766*344a7f5eSAndroid Build Coastguard Worker {
7767*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
7768*344a7f5eSAndroid Build Coastguard Worker               (__v16qi) _mm_setzero_si128 (),
7769*344a7f5eSAndroid Build Coastguard Worker               __M);
7770*344a7f5eSAndroid Build Coastguard Worker }
7771*344a7f5eSAndroid Build Coastguard Worker 
7772*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi64_storeu_epi8(void * __P,__mmask8 __M,__m512i __A)7773*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
7774*344a7f5eSAndroid Build Coastguard Worker {
7775*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
7776*344a7f5eSAndroid Build Coastguard Worker }
7777*344a7f5eSAndroid Build Coastguard Worker 
7778*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_cvtepi64_epi32(__m512i __A)7779*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi64_epi32 (__m512i __A)
7780*344a7f5eSAndroid Build Coastguard Worker {
7781*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
7782*344a7f5eSAndroid Build Coastguard Worker               (__v8si) _mm256_undefined_si256 (),
7783*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
7784*344a7f5eSAndroid Build Coastguard Worker }
7785*344a7f5eSAndroid Build Coastguard Worker 
7786*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi64_epi32(__m256i __O,__mmask8 __M,__m512i __A)7787*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
7788*344a7f5eSAndroid Build Coastguard Worker {
7789*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
7790*344a7f5eSAndroid Build Coastguard Worker               (__v8si) __O, __M);
7791*344a7f5eSAndroid Build Coastguard Worker }
7792*344a7f5eSAndroid Build Coastguard Worker 
7793*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m256i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi64_epi32(__mmask8 __M,__m512i __A)7794*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A)
7795*344a7f5eSAndroid Build Coastguard Worker {
7796*344a7f5eSAndroid Build Coastguard Worker   return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
7797*344a7f5eSAndroid Build Coastguard Worker               (__v8si) _mm256_setzero_si256 (),
7798*344a7f5eSAndroid Build Coastguard Worker               __M);
7799*344a7f5eSAndroid Build Coastguard Worker }
7800*344a7f5eSAndroid Build Coastguard Worker 
7801*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi64_storeu_epi32(void * __P,__mmask8 __M,__m512i __A)7802*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
7803*344a7f5eSAndroid Build Coastguard Worker {
7804*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
7805*344a7f5eSAndroid Build Coastguard Worker }
7806*344a7f5eSAndroid Build Coastguard Worker 
7807*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_cvtepi64_epi16(__m512i __A)7808*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtepi64_epi16 (__m512i __A)
7809*344a7f5eSAndroid Build Coastguard Worker {
7810*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
7811*344a7f5eSAndroid Build Coastguard Worker               (__v8hi) _mm_undefined_si128 (),
7812*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) -1);
7813*344a7f5eSAndroid Build Coastguard Worker }
7814*344a7f5eSAndroid Build Coastguard Worker 
7815*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi64_epi16(__m128i __O,__mmask8 __M,__m512i __A)7816*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
7817*344a7f5eSAndroid Build Coastguard Worker {
7818*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
7819*344a7f5eSAndroid Build Coastguard Worker               (__v8hi) __O, __M);
7820*344a7f5eSAndroid Build Coastguard Worker }
7821*344a7f5eSAndroid Build Coastguard Worker 
7822*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128i __DEFAULT_FN_ATTRS
_mm512_maskz_cvtepi64_epi16(__mmask8 __M,__m512i __A)7823*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A)
7824*344a7f5eSAndroid Build Coastguard Worker {
7825*344a7f5eSAndroid Build Coastguard Worker   return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
7826*344a7f5eSAndroid Build Coastguard Worker               (__v8hi) _mm_setzero_si128 (),
7827*344a7f5eSAndroid Build Coastguard Worker               __M);
7828*344a7f5eSAndroid Build Coastguard Worker }
7829*344a7f5eSAndroid Build Coastguard Worker 
7830*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_cvtepi64_storeu_epi16(void * __P,__mmask8 __M,__m512i __A)7831*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
7832*344a7f5eSAndroid Build Coastguard Worker {
7833*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
7834*344a7f5eSAndroid Build Coastguard Worker }
7835*344a7f5eSAndroid Build Coastguard Worker 
7836*344a7f5eSAndroid Build Coastguard Worker #define _mm512_extracti32x4_epi32(A, imm) __extension__ ({ \
7837*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \
7838*344a7f5eSAndroid Build Coastguard Worker                                             (__v4si)_mm_undefined_si128(), \
7839*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1); })
7840*344a7f5eSAndroid Build Coastguard Worker 
7841*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \
7842*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \
7843*344a7f5eSAndroid Build Coastguard Worker                                             (__v4si)(__m128i)(W), \
7844*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
7845*344a7f5eSAndroid Build Coastguard Worker 
7846*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \
7847*344a7f5eSAndroid Build Coastguard Worker   (__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \
7848*344a7f5eSAndroid Build Coastguard Worker                                             (__v4si)_mm_setzero_si128(), \
7849*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
7850*344a7f5eSAndroid Build Coastguard Worker 
7851*344a7f5eSAndroid Build Coastguard Worker #define _mm512_extracti64x4_epi64(A, imm) __extension__ ({ \
7852*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \
7853*344a7f5eSAndroid Build Coastguard Worker                                             (__v4di)_mm256_undefined_si256(), \
7854*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1); })
7855*344a7f5eSAndroid Build Coastguard Worker 
7856*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_extracti64x4_epi64(W, U, A, imm) __extension__ ({ \
7857*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \
7858*344a7f5eSAndroid Build Coastguard Worker                                             (__v4di)(__m256i)(W), \
7859*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
7860*344a7f5eSAndroid Build Coastguard Worker 
7861*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_extracti64x4_epi64(U, A, imm) __extension__ ({ \
7862*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \
7863*344a7f5eSAndroid Build Coastguard Worker                                             (__v4di)_mm256_setzero_si256(), \
7864*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U)); })
7865*344a7f5eSAndroid Build Coastguard Worker 
7866*344a7f5eSAndroid Build Coastguard Worker #define _mm512_insertf64x4(A, B, imm) __extension__ ({ \
7867*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_insertf64x4_mask((__v8df)(__m512d)(A), \
7868*344a7f5eSAndroid Build Coastguard Worker                                            (__v4df)(__m256d)(B), (int)(imm), \
7869*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_undefined_pd(), \
7870*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1); })
7871*344a7f5eSAndroid Build Coastguard Worker 
7872*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_insertf64x4(W, U, A, B, imm) __extension__ ({ \
7873*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_insertf64x4_mask((__v8df)(__m512d)(A), \
7874*344a7f5eSAndroid Build Coastguard Worker                                            (__v4df)(__m256d)(B), (int)(imm), \
7875*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(W), \
7876*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U)); })
7877*344a7f5eSAndroid Build Coastguard Worker 
7878*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_insertf64x4(U, A, B, imm) __extension__ ({ \
7879*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_insertf64x4_mask((__v8df)(__m512d)(A), \
7880*344a7f5eSAndroid Build Coastguard Worker                                            (__v4df)(__m256d)(B), (int)(imm), \
7881*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_setzero_pd(), \
7882*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U)); })
7883*344a7f5eSAndroid Build Coastguard Worker 
7884*344a7f5eSAndroid Build Coastguard Worker #define _mm512_inserti64x4(A, B, imm) __extension__ ({ \
7885*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_inserti64x4_mask((__v8di)(__m512i)(A), \
7886*344a7f5eSAndroid Build Coastguard Worker                                            (__v4di)(__m256i)(B), (int)(imm), \
7887*344a7f5eSAndroid Build Coastguard Worker                                            (__v8di)_mm512_setzero_si512(), \
7888*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1); })
7889*344a7f5eSAndroid Build Coastguard Worker 
7890*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_inserti64x4(W, U, A, B, imm) __extension__ ({ \
7891*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_inserti64x4_mask((__v8di)(__m512i)(A), \
7892*344a7f5eSAndroid Build Coastguard Worker                                            (__v4di)(__m256i)(B), (int)(imm), \
7893*344a7f5eSAndroid Build Coastguard Worker                                            (__v8di)(__m512i)(W), \
7894*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U)); })
7895*344a7f5eSAndroid Build Coastguard Worker 
7896*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_inserti64x4(U, A, B, imm) __extension__ ({ \
7897*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_inserti64x4_mask((__v8di)(__m512i)(A), \
7898*344a7f5eSAndroid Build Coastguard Worker                                            (__v4di)(__m256i)(B), (int)(imm), \
7899*344a7f5eSAndroid Build Coastguard Worker                                            (__v8di)_mm512_setzero_si512(), \
7900*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U)); })
7901*344a7f5eSAndroid Build Coastguard Worker 
7902*344a7f5eSAndroid Build Coastguard Worker #define _mm512_insertf32x4(A, B, imm) __extension__ ({ \
7903*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_insertf32x4_mask((__v16sf)(__m512)(A), \
7904*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), (int)(imm), \
7905*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_undefined_ps(), \
7906*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1); })
7907*344a7f5eSAndroid Build Coastguard Worker 
7908*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \
7909*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_insertf32x4_mask((__v16sf)(__m512)(A), \
7910*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), (int)(imm), \
7911*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(W), \
7912*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U)); })
7913*344a7f5eSAndroid Build Coastguard Worker 
7914*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \
7915*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_insertf32x4_mask((__v16sf)(__m512)(A), \
7916*344a7f5eSAndroid Build Coastguard Worker                                           (__v4sf)(__m128)(B), (int)(imm), \
7917*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps(), \
7918*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U)); })
7919*344a7f5eSAndroid Build Coastguard Worker 
7920*344a7f5eSAndroid Build Coastguard Worker #define _mm512_inserti32x4(A, B, imm) __extension__ ({ \
7921*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_inserti32x4_mask((__v16si)(__m512i)(A), \
7922*344a7f5eSAndroid Build Coastguard Worker                                            (__v4si)(__m128i)(B), (int)(imm), \
7923*344a7f5eSAndroid Build Coastguard Worker                                            (__v16si)_mm512_setzero_si512(), \
7924*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)-1); })
7925*344a7f5eSAndroid Build Coastguard Worker 
7926*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \
7927*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_inserti32x4_mask((__v16si)(__m512i)(A), \
7928*344a7f5eSAndroid Build Coastguard Worker                                            (__v4si)(__m128i)(B), (int)(imm), \
7929*344a7f5eSAndroid Build Coastguard Worker                                            (__v16si)(__m512i)(W), \
7930*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U)); })
7931*344a7f5eSAndroid Build Coastguard Worker 
7932*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \
7933*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_inserti32x4_mask((__v16si)(__m512i)(A), \
7934*344a7f5eSAndroid Build Coastguard Worker                                            (__v4si)(__m128i)(B), (int)(imm), \
7935*344a7f5eSAndroid Build Coastguard Worker                                            (__v16si)_mm512_setzero_si512(), \
7936*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U)); })
7937*344a7f5eSAndroid Build Coastguard Worker 
7938*344a7f5eSAndroid Build Coastguard Worker #define _mm512_getmant_round_pd(A, B, C, R) __extension__ ({ \
7939*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \
7940*344a7f5eSAndroid Build Coastguard Worker                                             (int)(((C)<<2) | (B)), \
7941*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)_mm512_undefined_pd(), \
7942*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1, (int)(R)); })
7943*344a7f5eSAndroid Build Coastguard Worker 
7944*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_getmant_round_pd(W, U, A, B, C, R) __extension__ ({ \
7945*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \
7946*344a7f5eSAndroid Build Coastguard Worker                                             (int)(((C)<<2) | (B)), \
7947*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(W), \
7948*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
7949*344a7f5eSAndroid Build Coastguard Worker 
7950*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_getmant_round_pd(U, A, B, C, R) __extension__ ({ \
7951*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \
7952*344a7f5eSAndroid Build Coastguard Worker                                             (int)(((C)<<2) | (B)), \
7953*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)_mm512_setzero_pd(), \
7954*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), (int)(R)); })
7955*344a7f5eSAndroid Build Coastguard Worker 
7956*344a7f5eSAndroid Build Coastguard Worker #define _mm512_getmant_pd(A, B, C) __extension__ ({ \
7957*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \
7958*344a7f5eSAndroid Build Coastguard Worker                                             (int)(((C)<<2) | (B)), \
7959*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)_mm512_setzero_pd(), \
7960*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)-1, \
7961*344a7f5eSAndroid Build Coastguard Worker                                             _MM_FROUND_CUR_DIRECTION); })
7962*344a7f5eSAndroid Build Coastguard Worker 
7963*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \
7964*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \
7965*344a7f5eSAndroid Build Coastguard Worker                                             (int)(((C)<<2) | (B)), \
7966*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)(__m512d)(W), \
7967*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), \
7968*344a7f5eSAndroid Build Coastguard Worker                                             _MM_FROUND_CUR_DIRECTION); })
7969*344a7f5eSAndroid Build Coastguard Worker 
7970*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_getmant_pd(U, A, B, C) __extension__ ({ \
7971*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \
7972*344a7f5eSAndroid Build Coastguard Worker                                             (int)(((C)<<2) | (B)), \
7973*344a7f5eSAndroid Build Coastguard Worker                                             (__v8df)_mm512_setzero_pd(), \
7974*344a7f5eSAndroid Build Coastguard Worker                                             (__mmask8)(U), \
7975*344a7f5eSAndroid Build Coastguard Worker                                             _MM_FROUND_CUR_DIRECTION); })
7976*344a7f5eSAndroid Build Coastguard Worker 
7977*344a7f5eSAndroid Build Coastguard Worker #define _mm512_getmant_round_ps(A, B, C, R) __extension__ ({ \
7978*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \
7979*344a7f5eSAndroid Build Coastguard Worker                                            (int)(((C)<<2) | (B)), \
7980*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_undefined_ps(), \
7981*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)-1, (int)(R)); })
7982*344a7f5eSAndroid Build Coastguard Worker 
7983*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_getmant_round_ps(W, U, A, B, C, R) __extension__ ({ \
7984*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \
7985*344a7f5eSAndroid Build Coastguard Worker                                            (int)(((C)<<2) | (B)), \
7986*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(W), \
7987*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
7988*344a7f5eSAndroid Build Coastguard Worker 
7989*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_getmant_round_ps(U, A, B, C, R) __extension__ ({ \
7990*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \
7991*344a7f5eSAndroid Build Coastguard Worker                                            (int)(((C)<<2) | (B)), \
7992*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_setzero_ps(), \
7993*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), (int)(R)); })
7994*344a7f5eSAndroid Build Coastguard Worker 
7995*344a7f5eSAndroid Build Coastguard Worker #define _mm512_getmant_ps(A, B, C) __extension__ ({ \
7996*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \
7997*344a7f5eSAndroid Build Coastguard Worker                                            (int)(((C)<<2)|(B)), \
7998*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_undefined_ps(), \
7999*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)-1, \
8000*344a7f5eSAndroid Build Coastguard Worker                                            _MM_FROUND_CUR_DIRECTION); })
8001*344a7f5eSAndroid Build Coastguard Worker 
8002*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \
8003*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \
8004*344a7f5eSAndroid Build Coastguard Worker                                            (int)(((C)<<2)|(B)), \
8005*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)(__m512)(W), \
8006*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), \
8007*344a7f5eSAndroid Build Coastguard Worker                                            _MM_FROUND_CUR_DIRECTION); })
8008*344a7f5eSAndroid Build Coastguard Worker 
8009*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_getmant_ps(U, A, B, C) __extension__ ({ \
8010*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \
8011*344a7f5eSAndroid Build Coastguard Worker                                            (int)(((C)<<2)|(B)), \
8012*344a7f5eSAndroid Build Coastguard Worker                                            (__v16sf)_mm512_setzero_ps(), \
8013*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask16)(U), \
8014*344a7f5eSAndroid Build Coastguard Worker                                            _MM_FROUND_CUR_DIRECTION); })
8015*344a7f5eSAndroid Build Coastguard Worker 
8016*344a7f5eSAndroid Build Coastguard Worker #define _mm512_getexp_round_pd(A, R) __extension__ ({ \
8017*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8018*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_undefined_pd(), \
8019*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
8020*344a7f5eSAndroid Build Coastguard Worker 
8021*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_getexp_round_pd(W, U, A, R) __extension__ ({ \
8022*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8023*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(W), \
8024*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
8025*344a7f5eSAndroid Build Coastguard Worker 
8026*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_getexp_round_pd(U, A, R) __extension__ ({ \
8027*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
8028*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_setzero_pd(), \
8029*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
8030*344a7f5eSAndroid Build Coastguard Worker 
8031*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_getexp_pd(__m512d __A)8032*344a7f5eSAndroid Build Coastguard Worker _mm512_getexp_pd (__m512d __A)
8033*344a7f5eSAndroid Build Coastguard Worker {
8034*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8035*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) _mm512_undefined_pd (),
8036*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1,
8037*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
8038*344a7f5eSAndroid Build Coastguard Worker }
8039*344a7f5eSAndroid Build Coastguard Worker 
8040*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_getexp_pd(__m512d __W,__mmask8 __U,__m512d __A)8041*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)
8042*344a7f5eSAndroid Build Coastguard Worker {
8043*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8044*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
8045*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
8046*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
8047*344a7f5eSAndroid Build Coastguard Worker }
8048*344a7f5eSAndroid Build Coastguard Worker 
8049*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_getexp_pd(__mmask8 __U,__m512d __A)8050*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A)
8051*344a7f5eSAndroid Build Coastguard Worker {
8052*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8053*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) _mm512_setzero_pd (),
8054*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
8055*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
8056*344a7f5eSAndroid Build Coastguard Worker }
8057*344a7f5eSAndroid Build Coastguard Worker 
8058*344a7f5eSAndroid Build Coastguard Worker #define _mm512_getexp_round_ps(A, R) __extension__ ({ \
8059*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8060*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_undefined_ps(), \
8061*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)-1, (int)(R)); })
8062*344a7f5eSAndroid Build Coastguard Worker 
8063*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_getexp_round_ps(W, U, A, R) __extension__ ({ \
8064*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8065*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)(__m512)(W), \
8066*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
8067*344a7f5eSAndroid Build Coastguard Worker 
8068*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_getexp_round_ps(U, A, R) __extension__ ({ \
8069*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
8070*344a7f5eSAndroid Build Coastguard Worker                                           (__v16sf)_mm512_setzero_ps(), \
8071*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask16)(U), (int)(R)); })
8072*344a7f5eSAndroid Build Coastguard Worker 
8073*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_getexp_ps(__m512 __A)8074*344a7f5eSAndroid Build Coastguard Worker _mm512_getexp_ps (__m512 __A)
8075*344a7f5eSAndroid Build Coastguard Worker {
8076*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8077*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) _mm512_undefined_ps (),
8078*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) -1,
8079*344a7f5eSAndroid Build Coastguard Worker                _MM_FROUND_CUR_DIRECTION);
8080*344a7f5eSAndroid Build Coastguard Worker }
8081*344a7f5eSAndroid Build Coastguard Worker 
8082*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_getexp_ps(__m512 __W,__mmask16 __U,__m512 __A)8083*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)
8084*344a7f5eSAndroid Build Coastguard Worker {
8085*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8086*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) __W,
8087*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) __U,
8088*344a7f5eSAndroid Build Coastguard Worker                _MM_FROUND_CUR_DIRECTION);
8089*344a7f5eSAndroid Build Coastguard Worker }
8090*344a7f5eSAndroid Build Coastguard Worker 
8091*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_getexp_ps(__mmask16 __U,__m512 __A)8092*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)
8093*344a7f5eSAndroid Build Coastguard Worker {
8094*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8095*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) _mm512_setzero_ps (),
8096*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) __U,
8097*344a7f5eSAndroid Build Coastguard Worker                _MM_FROUND_CUR_DIRECTION);
8098*344a7f5eSAndroid Build Coastguard Worker }
8099*344a7f5eSAndroid Build Coastguard Worker 
8100*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64gather_ps(index, addr, scale) __extension__ ({ \
8101*344a7f5eSAndroid Build Coastguard Worker   (__m256)__builtin_ia32_gatherdiv16sf((__v8sf)_mm256_undefined_ps(), \
8102*344a7f5eSAndroid Build Coastguard Worker                                        (float const *)(addr), \
8103*344a7f5eSAndroid Build Coastguard Worker                                        (__v8di)(__m512i)(index), (__mmask8)-1, \
8104*344a7f5eSAndroid Build Coastguard Worker                                        (int)(scale)); })
8105*344a7f5eSAndroid Build Coastguard Worker 
8106*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64gather_ps( __v1_old, __mask, __index,\
8107*344a7f5eSAndroid Build Coastguard Worker                                   __addr, __scale) __extension__({\
8108*344a7f5eSAndroid Build Coastguard Worker __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,\
8109*344a7f5eSAndroid Build Coastguard Worker                               __addr,(__v8di) __index, __mask, __scale);\
8110*344a7f5eSAndroid Build Coastguard Worker })
8111*344a7f5eSAndroid Build Coastguard Worker 
8112*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64gather_epi32(index, addr, scale) __extension__ ({\
8113*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_gatherdiv16si((__v8si)_mm256_undefined_ps(), \
8114*344a7f5eSAndroid Build Coastguard Worker                                         (int const *)(addr), \
8115*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)(__m512i)(index), \
8116*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)-1, (int)(scale)); })
8117*344a7f5eSAndroid Build Coastguard Worker 
8118*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8119*344a7f5eSAndroid Build Coastguard Worker   (__m256i)__builtin_ia32_gatherdiv16si((__v8si)(__m256i)(v1_old), \
8120*344a7f5eSAndroid Build Coastguard Worker                                         (int const *)(addr), \
8121*344a7f5eSAndroid Build Coastguard Worker                                         (__v8di)(__m512i)(index), \
8122*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask8)(mask), (int)(scale)); })
8123*344a7f5eSAndroid Build Coastguard Worker 
8124*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64gather_pd(index, addr, scale) __extension__ ({\
8125*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_gatherdiv8df((__v8df)_mm512_undefined_pd(), \
8126*344a7f5eSAndroid Build Coastguard Worker                                        (double const *)(addr), \
8127*344a7f5eSAndroid Build Coastguard Worker                                        (__v8di)(__m512i)(index), (__mmask8)-1, \
8128*344a7f5eSAndroid Build Coastguard Worker                                        (int)(scale)); })
8129*344a7f5eSAndroid Build Coastguard Worker 
8130*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8131*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_gatherdiv8df((__v8df)(__m512d)(v1_old), \
8132*344a7f5eSAndroid Build Coastguard Worker                                        (double const *)(addr), \
8133*344a7f5eSAndroid Build Coastguard Worker                                        (__v8di)(__m512i)(index), \
8134*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask8)(mask), (int)(scale)); })
8135*344a7f5eSAndroid Build Coastguard Worker 
8136*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64gather_epi64(index, addr, scale) __extension__ ({\
8137*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_gatherdiv8di((__v8di)_mm512_undefined_pd(), \
8138*344a7f5eSAndroid Build Coastguard Worker                                        (long long const *)(addr), \
8139*344a7f5eSAndroid Build Coastguard Worker                                        (__v8di)(__m512i)(index), (__mmask8)-1, \
8140*344a7f5eSAndroid Build Coastguard Worker                                        (int)(scale)); })
8141*344a7f5eSAndroid Build Coastguard Worker 
8142*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8143*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_gatherdiv8di((__v8di)(__m512i)(v1_old), \
8144*344a7f5eSAndroid Build Coastguard Worker                                        (long long const *)(addr), \
8145*344a7f5eSAndroid Build Coastguard Worker                                        (__v8di)(__m512i)(index), \
8146*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask8)(mask), (int)(scale)); })
8147*344a7f5eSAndroid Build Coastguard Worker 
8148*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32gather_ps(index, addr, scale) __extension__ ({\
8149*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_gathersiv16sf((__v16sf)_mm512_undefined_ps(), \
8150*344a7f5eSAndroid Build Coastguard Worker                                        (float const *)(addr), \
8151*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(index), \
8152*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)-1, (int)(scale)); })
8153*344a7f5eSAndroid Build Coastguard Worker 
8154*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\
8155*344a7f5eSAndroid Build Coastguard Worker   (__m512)__builtin_ia32_gathersiv16sf((__v16sf)(__m512)(v1_old), \
8156*344a7f5eSAndroid Build Coastguard Worker                                        (float const *)(addr), \
8157*344a7f5eSAndroid Build Coastguard Worker                                        (__v16sf)(__m512)(index), \
8158*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask16)(mask), (int)(scale)); })
8159*344a7f5eSAndroid Build Coastguard Worker 
8160*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32gather_epi32(index, addr, scale) __extension__ ({\
8161*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_gathersiv16si((__v16si)_mm512_undefined_epi32(), \
8162*344a7f5eSAndroid Build Coastguard Worker                                         (int const *)(addr), \
8163*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)(__m512i)(index), \
8164*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)-1, (int)(scale)); })
8165*344a7f5eSAndroid Build Coastguard Worker 
8166*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\
8167*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_gathersiv16si((__v16si)(__m512i)(v1_old), \
8168*344a7f5eSAndroid Build Coastguard Worker                                         (int const *)(addr), \
8169*344a7f5eSAndroid Build Coastguard Worker                                         (__v16si)(__m512i)(index), \
8170*344a7f5eSAndroid Build Coastguard Worker                                         (__mmask16)(mask), (int)(scale)); })
8171*344a7f5eSAndroid Build Coastguard Worker 
8172*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32gather_pd(index, addr, scale) __extension__ ({\
8173*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_gathersiv8df((__v8df)_mm512_undefined_pd(), \
8174*344a7f5eSAndroid Build Coastguard Worker                                        (double const *)(addr), \
8175*344a7f5eSAndroid Build Coastguard Worker                                        (__v8si)(__m256i)(index), (__mmask8)-1, \
8176*344a7f5eSAndroid Build Coastguard Worker                                        (int)(scale)); })
8177*344a7f5eSAndroid Build Coastguard Worker 
8178*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\
8179*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_gathersiv8df((__v8df)(__m512d)(v1_old), \
8180*344a7f5eSAndroid Build Coastguard Worker                                        (double const *)(addr), \
8181*344a7f5eSAndroid Build Coastguard Worker                                        (__v8si)(__m256i)(index), \
8182*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask8)(mask), (int)(scale)); })
8183*344a7f5eSAndroid Build Coastguard Worker 
8184*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32gather_epi64(index, addr, scale) __extension__ ({\
8185*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_gathersiv8di((__v8di)_mm512_undefined_epi32(), \
8186*344a7f5eSAndroid Build Coastguard Worker                                        (long long const *)(addr), \
8187*344a7f5eSAndroid Build Coastguard Worker                                        (__v8si)(__m256i)(index), (__mmask8)-1, \
8188*344a7f5eSAndroid Build Coastguard Worker                                        (int)(scale)); })
8189*344a7f5eSAndroid Build Coastguard Worker 
8190*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\
8191*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_gathersiv8di((__v8di)(__m512i)(v1_old), \
8192*344a7f5eSAndroid Build Coastguard Worker                                        (long long const *)(addr), \
8193*344a7f5eSAndroid Build Coastguard Worker                                        (__v8si)(__m256i)(index), \
8194*344a7f5eSAndroid Build Coastguard Worker                                        (__mmask8)(mask), (int)(scale)); })
8195*344a7f5eSAndroid Build Coastguard Worker 
8196*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64scatter_ps(addr, index, v1, scale) __extension__ ({\
8197*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv16sf((float *)(addr), (__mmask8)-1, \
8198*344a7f5eSAndroid Build Coastguard Worker                                 (__v8di)(__m512i)(index), \
8199*344a7f5eSAndroid Build Coastguard Worker                                 (__v8sf)(__m256)(v1), (int)(scale)); })
8200*344a7f5eSAndroid Build Coastguard Worker 
8201*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({\
8202*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv16sf((float *)(addr), (__mmask8)(mask), \
8203*344a7f5eSAndroid Build Coastguard Worker                                 (__v8di)(__m512i)(index), \
8204*344a7f5eSAndroid Build Coastguard Worker                                 (__v8sf)(__m256)(v1), (int)(scale)); })
8205*344a7f5eSAndroid Build Coastguard Worker 
8206*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64scatter_epi32(addr, index, v1, scale) __extension__ ({\
8207*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv16si((int *)(addr), (__mmask8)-1, \
8208*344a7f5eSAndroid Build Coastguard Worker                                 (__v8di)(__m512i)(index), \
8209*344a7f5eSAndroid Build Coastguard Worker                                 (__v8si)(__m256i)(v1), (int)(scale)); })
8210*344a7f5eSAndroid Build Coastguard Worker 
8211*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({\
8212*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv16si((int *)(addr), (__mmask8)(mask), \
8213*344a7f5eSAndroid Build Coastguard Worker                                 (__v8di)(__m512i)(index), \
8214*344a7f5eSAndroid Build Coastguard Worker                                 (__v8si)(__m256i)(v1), (int)(scale)); })
8215*344a7f5eSAndroid Build Coastguard Worker 
8216*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64scatter_pd(addr, index, v1, scale) __extension__ ({\
8217*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv8df((double *)(addr), (__mmask8)-1, \
8218*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(index), \
8219*344a7f5eSAndroid Build Coastguard Worker                                (__v8df)(__m512d)(v1), (int)(scale)); })
8220*344a7f5eSAndroid Build Coastguard Worker 
8221*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({\
8222*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv8df((double *)(addr), (__mmask8)(mask), \
8223*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(index), \
8224*344a7f5eSAndroid Build Coastguard Worker                                (__v8df)(__m512d)(v1), (int)(scale)); })
8225*344a7f5eSAndroid Build Coastguard Worker 
8226*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i64scatter_epi64(addr, index, v1, scale) __extension__ ({\
8227*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv8di((long long *)(addr), (__mmask8)-1, \
8228*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(index), \
8229*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(v1), (int)(scale)); })
8230*344a7f5eSAndroid Build Coastguard Worker 
8231*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({\
8232*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scatterdiv8di((long long *)(addr), (__mmask8)(mask), \
8233*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(index), \
8234*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(v1), (int)(scale)); })
8235*344a7f5eSAndroid Build Coastguard Worker 
8236*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32scatter_ps(addr, index, v1, scale) __extension__ ({\
8237*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv16sf((float *)(addr), (__mmask16)-1, \
8238*344a7f5eSAndroid Build Coastguard Worker                                 (__v16si)(__m512i)(index), \
8239*344a7f5eSAndroid Build Coastguard Worker                                 (__v16sf)(__m512)(v1), (int)(scale)); })
8240*344a7f5eSAndroid Build Coastguard Worker 
8241*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({\
8242*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv16sf((float *)(addr), (__mmask16)(mask), \
8243*344a7f5eSAndroid Build Coastguard Worker                                 (__v16si)(__m512i)(index), \
8244*344a7f5eSAndroid Build Coastguard Worker                                 (__v16sf)(__m512)(v1), (int)(scale)); })
8245*344a7f5eSAndroid Build Coastguard Worker 
8246*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32scatter_epi32(addr, index, v1, scale) __extension__ ({\
8247*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv16si((int *)(addr), (__mmask16)-1, \
8248*344a7f5eSAndroid Build Coastguard Worker                                 (__v16si)(__m512i)(index), \
8249*344a7f5eSAndroid Build Coastguard Worker                                 (__v16si)(__m512i)(v1), (int)(scale)); })
8250*344a7f5eSAndroid Build Coastguard Worker 
8251*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({\
8252*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv16si((int *)(addr), (__mmask16)(mask), \
8253*344a7f5eSAndroid Build Coastguard Worker                                 (__v16si)(__m512i)(index), \
8254*344a7f5eSAndroid Build Coastguard Worker                                 (__v16si)(__m512i)(v1), (int)(scale)); })
8255*344a7f5eSAndroid Build Coastguard Worker 
8256*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32scatter_pd(addr, index, v1, scale) __extension__ ({\
8257*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv8df((double *)(addr), (__mmask8)-1, \
8258*344a7f5eSAndroid Build Coastguard Worker                                (__v8si)(__m256i)(index), \
8259*344a7f5eSAndroid Build Coastguard Worker                                (__v8df)(__m512d)(v1), (int)(scale)); })
8260*344a7f5eSAndroid Build Coastguard Worker 
8261*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({\
8262*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv8df((double *)(addr), (__mmask8)(mask), \
8263*344a7f5eSAndroid Build Coastguard Worker                                (__v8si)(__m256i)(index), \
8264*344a7f5eSAndroid Build Coastguard Worker                                (__v8df)(__m512d)(v1), (int)(scale)); })
8265*344a7f5eSAndroid Build Coastguard Worker 
8266*344a7f5eSAndroid Build Coastguard Worker #define _mm512_i32scatter_epi64(addr, index, v1, scale) __extension__ ({\
8267*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv8di((long long *)(addr), (__mmask8)-1, \
8268*344a7f5eSAndroid Build Coastguard Worker                                (__v8si)(__m256i)(index), \
8269*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(v1), (int)(scale)); })
8270*344a7f5eSAndroid Build Coastguard Worker 
8271*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({\
8272*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_scattersiv8di((long long *)(addr), (__mmask8)(mask), \
8273*344a7f5eSAndroid Build Coastguard Worker                                (__v8si)(__m256i)(index), \
8274*344a7f5eSAndroid Build Coastguard Worker                                (__v8di)(__m512i)(v1), (int)(scale)); })
8275*344a7f5eSAndroid Build Coastguard Worker 
8276*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8277*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
8278*344a7f5eSAndroid Build Coastguard Worker {
8279*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __A,
8280*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
8281*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
8282*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8283*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8284*344a7f5eSAndroid Build Coastguard Worker }
8285*344a7f5eSAndroid Build Coastguard Worker 
8286*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fmadd_round_ss(W, U, A, B, R) __extension__({\
8287*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \
8288*344a7f5eSAndroid Build Coastguard Worker                                         (__v4sf)(__m128)(B), \
8289*344a7f5eSAndroid Build Coastguard Worker                                         (__v4sf)(__m128)(W), (__mmask8)(U), \
8290*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
8291*344a7f5eSAndroid Build Coastguard Worker 
8292*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fmadd_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)8293*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
8294*344a7f5eSAndroid Build Coastguard Worker {
8295*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,
8296*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
8297*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __C,
8298*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8299*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8300*344a7f5eSAndroid Build Coastguard Worker }
8301*344a7f5eSAndroid Build Coastguard Worker 
8302*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fmadd_round_ss(U, A, B, C, R) __extension__ ({\
8303*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \
8304*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
8305*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(C), (__mmask8)(U), \
8306*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
8307*344a7f5eSAndroid Build Coastguard Worker 
8308*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fmadd_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)8309*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)
8310*344a7f5eSAndroid Build Coastguard Worker {
8311*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
8312*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __X,
8313*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __Y,
8314*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8315*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8316*344a7f5eSAndroid Build Coastguard Worker }
8317*344a7f5eSAndroid Build Coastguard Worker 
8318*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fmadd_round_ss(W, X, Y, U, R) __extension__ ({\
8319*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask3((__v4sf)(__m128)(W), \
8320*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(X), \
8321*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(Y), (__mmask8)(U), \
8322*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8323*344a7f5eSAndroid Build Coastguard Worker 
8324*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8325*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
8326*344a7f5eSAndroid Build Coastguard Worker {
8327*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __A,
8328*344a7f5eSAndroid Build Coastguard Worker           -(__v4sf) __B,
8329*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
8330*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8331*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8332*344a7f5eSAndroid Build Coastguard Worker }
8333*344a7f5eSAndroid Build Coastguard Worker 
8334*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fmsub_round_ss(W, U, A, B, R) __extension__ ({\
8335*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \
8336*344a7f5eSAndroid Build Coastguard Worker                                         -(__v4sf)(__m128)(B), \
8337*344a7f5eSAndroid Build Coastguard Worker                                         (__v4sf)(__m128)(W), (__mmask8)(U), \
8338*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
8339*344a7f5eSAndroid Build Coastguard Worker 
8340*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fmsub_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)8341*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
8342*344a7f5eSAndroid Build Coastguard Worker {
8343*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,
8344*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
8345*344a7f5eSAndroid Build Coastguard Worker           -(__v4sf) __C,
8346*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8347*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8348*344a7f5eSAndroid Build Coastguard Worker }
8349*344a7f5eSAndroid Build Coastguard Worker 
8350*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fmsub_round_ss(U, A, B, C, R) __extension__ ({\
8351*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \
8352*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
8353*344a7f5eSAndroid Build Coastguard Worker                                          -(__v4sf)(__m128)(C), (__mmask8)(U), \
8354*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8355*344a7f5eSAndroid Build Coastguard Worker 
8356*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fmsub_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)8357*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)
8358*344a7f5eSAndroid Build Coastguard Worker {
8359*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
8360*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __X,
8361*344a7f5eSAndroid Build Coastguard Worker           -(__v4sf) __Y,
8362*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8363*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8364*344a7f5eSAndroid Build Coastguard Worker }
8365*344a7f5eSAndroid Build Coastguard Worker 
8366*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fmsub_round_ss(W, X, Y, U, R) __extension__ ({\
8367*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask3((__v4sf)(__m128)(W), \
8368*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(X), \
8369*344a7f5eSAndroid Build Coastguard Worker                                          -(__v4sf)(__m128)(Y), (__mmask8)(U), \
8370*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8371*344a7f5eSAndroid Build Coastguard Worker 
8372*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fnmadd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8373*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
8374*344a7f5eSAndroid Build Coastguard Worker {
8375*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask (-(__v4sf) __A,
8376*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
8377*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
8378*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8379*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8380*344a7f5eSAndroid Build Coastguard Worker }
8381*344a7f5eSAndroid Build Coastguard Worker 
8382*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fnmadd_round_ss(W, U, A, B, R) __extension__ ({\
8383*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask(-(__v4sf)(__m128)(A), \
8384*344a7f5eSAndroid Build Coastguard Worker                                         (__v4sf)(__m128)(B), \
8385*344a7f5eSAndroid Build Coastguard Worker                                         (__v4sf)(__m128)(W), (__mmask8)(U), \
8386*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
8387*344a7f5eSAndroid Build Coastguard Worker 
8388*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fnmadd_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)8389*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
8390*344a7f5eSAndroid Build Coastguard Worker {
8391*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_maskz (-(__v4sf) __A,
8392*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
8393*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __C,
8394*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8395*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8396*344a7f5eSAndroid Build Coastguard Worker }
8397*344a7f5eSAndroid Build Coastguard Worker 
8398*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fnmadd_round_ss(U, A, B, C, R) __extension__ ({\
8399*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_maskz(-(__v4sf)(__m128)(A), \
8400*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
8401*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(C), (__mmask8)(U), \
8402*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8403*344a7f5eSAndroid Build Coastguard Worker 
8404*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fnmadd_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)8405*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fnmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)
8406*344a7f5eSAndroid Build Coastguard Worker {
8407*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask3 (-(__v4sf) __W,
8408*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __X,
8409*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __Y,
8410*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8411*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8412*344a7f5eSAndroid Build Coastguard Worker }
8413*344a7f5eSAndroid Build Coastguard Worker 
8414*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fnmadd_round_ss(W, X, Y, U, R) __extension__({\
8415*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask3(-(__v4sf)(__m128)(W), \
8416*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(X), \
8417*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(Y), (__mmask8)(U), \
8418*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8419*344a7f5eSAndroid Build Coastguard Worker 
8420*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_fnmsub_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)8421*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
8422*344a7f5eSAndroid Build Coastguard Worker {
8423*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask (-(__v4sf) __A,
8424*344a7f5eSAndroid Build Coastguard Worker           -(__v4sf) __B,
8425*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __W,
8426*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8427*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8428*344a7f5eSAndroid Build Coastguard Worker }
8429*344a7f5eSAndroid Build Coastguard Worker 
8430*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fnmsub_round_ss(W, U, A, B, R) __extension__ ({\
8431*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask(-(__v4sf)(__m128)(A), \
8432*344a7f5eSAndroid Build Coastguard Worker                                         -(__v4sf)(__m128)(B), \
8433*344a7f5eSAndroid Build Coastguard Worker                                         (__v4sf)(__m128)(W), (__mmask8)(U), \
8434*344a7f5eSAndroid Build Coastguard Worker                                         (int)(R)); })
8435*344a7f5eSAndroid Build Coastguard Worker 
8436*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_fnmsub_ss(__mmask8 __U,__m128 __A,__m128 __B,__m128 __C)8437*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
8438*344a7f5eSAndroid Build Coastguard Worker {
8439*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_maskz (-(__v4sf) __A,
8440*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __B,
8441*344a7f5eSAndroid Build Coastguard Worker           -(__v4sf) __C,
8442*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8443*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8444*344a7f5eSAndroid Build Coastguard Worker }
8445*344a7f5eSAndroid Build Coastguard Worker 
8446*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fnmsub_round_ss(U, A, B, C, R) __extension__ ({\
8447*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_maskz(-(__v4sf)(__m128)(A), \
8448*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(B), \
8449*344a7f5eSAndroid Build Coastguard Worker                                          -(__v4sf)(__m128)(C), (__mmask8)(U), \
8450*344a7f5eSAndroid Build Coastguard Worker                                          _MM_FROUND_CUR_DIRECTION); })
8451*344a7f5eSAndroid Build Coastguard Worker 
8452*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask3_fnmsub_ss(__m128 __W,__m128 __X,__m128 __Y,__mmask8 __U)8453*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fnmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U)
8454*344a7f5eSAndroid Build Coastguard Worker {
8455*344a7f5eSAndroid Build Coastguard Worker  return (__m128) __builtin_ia32_vfmaddss3_mask3 (-(__v4sf) __W,
8456*344a7f5eSAndroid Build Coastguard Worker           (__v4sf) __X,
8457*344a7f5eSAndroid Build Coastguard Worker           -(__v4sf) __Y,
8458*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8459*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8460*344a7f5eSAndroid Build Coastguard Worker }
8461*344a7f5eSAndroid Build Coastguard Worker 
8462*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fnmsub_round_ss(W, X, Y, U, R) __extension__({\
8463*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_vfmaddss3_mask3(-(__v4sf)(__m128)(W), \
8464*344a7f5eSAndroid Build Coastguard Worker                                          (__v4sf)(__m128)(X), \
8465*344a7f5eSAndroid Build Coastguard Worker                                          -(__v4sf)(__m128)(Y), (__mmask8)(U), \
8466*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8467*344a7f5eSAndroid Build Coastguard Worker 
8468*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8469*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
8470*344a7f5eSAndroid Build Coastguard Worker {
8471*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,
8472*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
8473*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
8474*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8475*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8476*344a7f5eSAndroid Build Coastguard Worker }
8477*344a7f5eSAndroid Build Coastguard Worker 
8478*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fmadd_round_sd(W, U, A, B, R) __extension__({\
8479*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \
8480*344a7f5eSAndroid Build Coastguard Worker                                          (__v2df)(__m128d)(B), \
8481*344a7f5eSAndroid Build Coastguard Worker                                          (__v2df)(__m128d)(W), (__mmask8)(U), \
8482*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8483*344a7f5eSAndroid Build Coastguard Worker 
8484*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fmadd_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)8485*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
8486*344a7f5eSAndroid Build Coastguard Worker {
8487*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,
8488*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
8489*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __C,
8490*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8491*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8492*344a7f5eSAndroid Build Coastguard Worker }
8493*344a7f5eSAndroid Build Coastguard Worker 
8494*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fmadd_round_sd(U, A, B, C, R) __extension__ ({\
8495*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \
8496*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
8497*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(C), (__mmask8)(U), \
8498*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
8499*344a7f5eSAndroid Build Coastguard Worker 
8500*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fmadd_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)8501*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)
8502*344a7f5eSAndroid Build Coastguard Worker {
8503*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
8504*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __X,
8505*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __Y,
8506*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8507*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8508*344a7f5eSAndroid Build Coastguard Worker }
8509*344a7f5eSAndroid Build Coastguard Worker 
8510*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fmadd_round_sd(W, X, Y, U, R) __extension__ ({\
8511*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask3((__v2df)(__m128d)(W), \
8512*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(X), \
8513*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(Y), (__mmask8)(U), \
8514*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
8515*344a7f5eSAndroid Build Coastguard Worker 
8516*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8517*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
8518*344a7f5eSAndroid Build Coastguard Worker {
8519*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,
8520*344a7f5eSAndroid Build Coastguard Worker           -(__v2df) __B,
8521*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
8522*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8523*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8524*344a7f5eSAndroid Build Coastguard Worker }
8525*344a7f5eSAndroid Build Coastguard Worker 
8526*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fmsub_round_sd(W, U, A, B, R) __extension__ ({\
8527*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \
8528*344a7f5eSAndroid Build Coastguard Worker                                          -(__v2df)(__m128d)(B), \
8529*344a7f5eSAndroid Build Coastguard Worker                                          (__v2df)(__m128d)(W), (__mmask8)(U), \
8530*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8531*344a7f5eSAndroid Build Coastguard Worker 
8532*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fmsub_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)8533*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
8534*344a7f5eSAndroid Build Coastguard Worker {
8535*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,
8536*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
8537*344a7f5eSAndroid Build Coastguard Worker           -(__v2df) __C,
8538*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8539*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8540*344a7f5eSAndroid Build Coastguard Worker }
8541*344a7f5eSAndroid Build Coastguard Worker 
8542*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fmsub_round_sd(U, A, B, C, R) __extension__ ({\
8543*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \
8544*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
8545*344a7f5eSAndroid Build Coastguard Worker                                           -(__v2df)(__m128d)(C), \
8546*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
8547*344a7f5eSAndroid Build Coastguard Worker 
8548*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fmsub_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)8549*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)
8550*344a7f5eSAndroid Build Coastguard Worker {
8551*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
8552*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __X,
8553*344a7f5eSAndroid Build Coastguard Worker           -(__v2df) __Y,
8554*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8555*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8556*344a7f5eSAndroid Build Coastguard Worker }
8557*344a7f5eSAndroid Build Coastguard Worker 
8558*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fmsub_round_sd(W, X, Y, U, R) __extension__ ({\
8559*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask3((__v2df)(__m128d)(W), \
8560*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(X), \
8561*344a7f5eSAndroid Build Coastguard Worker                                           -(__v2df)(__m128d)(Y), \
8562*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
8563*344a7f5eSAndroid Build Coastguard Worker 
8564*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fnmadd_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8565*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
8566*344a7f5eSAndroid Build Coastguard Worker {
8567*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask ( -(__v2df) __A,
8568*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
8569*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
8570*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8571*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8572*344a7f5eSAndroid Build Coastguard Worker }
8573*344a7f5eSAndroid Build Coastguard Worker 
8574*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fnmadd_round_sd(W, U, A, B, R) __extension__ ({\
8575*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask(-(__v2df)(__m128d)(A), \
8576*344a7f5eSAndroid Build Coastguard Worker                                          (__v2df)(__m128d)(B), \
8577*344a7f5eSAndroid Build Coastguard Worker                                          (__v2df)(__m128d)(W), (__mmask8)(U), \
8578*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8579*344a7f5eSAndroid Build Coastguard Worker 
8580*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fnmadd_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)8581*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
8582*344a7f5eSAndroid Build Coastguard Worker {
8583*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( -(__v2df) __A,
8584*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
8585*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __C,
8586*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8587*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8588*344a7f5eSAndroid Build Coastguard Worker }
8589*344a7f5eSAndroid Build Coastguard Worker 
8590*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fnmadd_round_sd(U, A, B, C, R) __extension__ ({\
8591*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_maskz(-(__v2df)(__m128d)(A), \
8592*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
8593*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(C), (__mmask8)(U), \
8594*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
8595*344a7f5eSAndroid Build Coastguard Worker 
8596*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fnmadd_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)8597*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fnmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)
8598*344a7f5eSAndroid Build Coastguard Worker {
8599*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 (-(__v2df) __W,
8600*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __X,
8601*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __Y,
8602*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8603*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8604*344a7f5eSAndroid Build Coastguard Worker }
8605*344a7f5eSAndroid Build Coastguard Worker 
8606*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fnmadd_round_sd(W, X, Y, U, R) __extension__({\
8607*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask3(-(__v2df)(__m128d)(W), \
8608*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(X), \
8609*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(Y), (__mmask8)(U), \
8610*344a7f5eSAndroid Build Coastguard Worker                                           (int)(R)); })
8611*344a7f5eSAndroid Build Coastguard Worker 
8612*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_fnmsub_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)8613*344a7f5eSAndroid Build Coastguard Worker _mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
8614*344a7f5eSAndroid Build Coastguard Worker {
8615*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask ( -(__v2df) __A,
8616*344a7f5eSAndroid Build Coastguard Worker           -(__v2df) __B,
8617*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __W,
8618*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8619*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8620*344a7f5eSAndroid Build Coastguard Worker }
8621*344a7f5eSAndroid Build Coastguard Worker 
8622*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_fnmsub_round_sd(W, U, A, B, R) __extension__ ({\
8623*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask(-(__v2df)(__m128d)(A), \
8624*344a7f5eSAndroid Build Coastguard Worker                                          -(__v2df)(__m128d)(B), \
8625*344a7f5eSAndroid Build Coastguard Worker                                          (__v2df)(__m128d)(W), (__mmask8)(U), \
8626*344a7f5eSAndroid Build Coastguard Worker                                          (int)(R)); })
8627*344a7f5eSAndroid Build Coastguard Worker 
8628*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_fnmsub_sd(__mmask8 __U,__m128d __A,__m128d __B,__m128d __C)8629*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
8630*344a7f5eSAndroid Build Coastguard Worker {
8631*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_maskz ( -(__v2df) __A,
8632*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __B,
8633*344a7f5eSAndroid Build Coastguard Worker           -(__v2df) __C,
8634*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8635*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8636*344a7f5eSAndroid Build Coastguard Worker }
8637*344a7f5eSAndroid Build Coastguard Worker 
8638*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_fnmsub_round_sd(U, A, B, C, R) __extension__ ({\
8639*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_maskz(-(__v2df)(__m128d)(A), \
8640*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(B), \
8641*344a7f5eSAndroid Build Coastguard Worker                                           -(__v2df)(__m128d)(C), \
8642*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), \
8643*344a7f5eSAndroid Build Coastguard Worker                                           _MM_FROUND_CUR_DIRECTION); })
8644*344a7f5eSAndroid Build Coastguard Worker 
8645*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask3_fnmsub_sd(__m128d __W,__m128d __X,__m128d __Y,__mmask8 __U)8646*344a7f5eSAndroid Build Coastguard Worker _mm_mask3_fnmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U)
8647*344a7f5eSAndroid Build Coastguard Worker {
8648*344a7f5eSAndroid Build Coastguard Worker  return (__m128d) __builtin_ia32_vfmaddsd3_mask3 (-(__v2df) (__W),
8649*344a7f5eSAndroid Build Coastguard Worker           (__v2df) __X,
8650*344a7f5eSAndroid Build Coastguard Worker           -(__v2df) (__Y),
8651*344a7f5eSAndroid Build Coastguard Worker           (__mmask8) __U,
8652*344a7f5eSAndroid Build Coastguard Worker           _MM_FROUND_CUR_DIRECTION);
8653*344a7f5eSAndroid Build Coastguard Worker }
8654*344a7f5eSAndroid Build Coastguard Worker 
8655*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask3_fnmsub_round_sd(W, X, Y, U, R) __extension__({\
8656*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_vfmaddsd3_mask3(-(__v2df)(__m128d)(W), \
8657*344a7f5eSAndroid Build Coastguard Worker                                           (__v2df)(__m128d)(X), \
8658*344a7f5eSAndroid Build Coastguard Worker                                           -(__v2df)(__m128d)(Y), \
8659*344a7f5eSAndroid Build Coastguard Worker                                           (__mmask8)(U), (int)(R)); })
8660*344a7f5eSAndroid Build Coastguard Worker 
8661*344a7f5eSAndroid Build Coastguard Worker #define _mm512_permutex_pd(X, C) __extension__ ({ \
8662*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_shufflevector((__v8df)(__m512d)(X), \
8663*344a7f5eSAndroid Build Coastguard Worker                                    (__v8df)_mm512_undefined_pd(), \
8664*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 0) & 0x3), \
8665*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 2) & 0x3), \
8666*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 4) & 0x3), \
8667*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 6) & 0x3), \
8668*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 0) & 0x3), \
8669*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 2) & 0x3), \
8670*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 4) & 0x3), \
8671*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 6) & 0x3)); })
8672*344a7f5eSAndroid Build Coastguard Worker 
8673*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_permutex_pd(W, U, X, C) __extension__ ({ \
8674*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
8675*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_permutex_pd((X), (C)), \
8676*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)(__m512d)(W)); })
8677*344a7f5eSAndroid Build Coastguard Worker 
8678*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_permutex_pd(U, X, C) __extension__ ({ \
8679*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \
8680*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_permutex_pd((X), (C)), \
8681*344a7f5eSAndroid Build Coastguard Worker                                        (__v8df)_mm512_setzero_pd()); })
8682*344a7f5eSAndroid Build Coastguard Worker 
8683*344a7f5eSAndroid Build Coastguard Worker #define _mm512_permutex_epi64(X, C) __extension__ ({ \
8684*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_shufflevector((__v8di)(__m512i)(X), \
8685*344a7f5eSAndroid Build Coastguard Worker                                    (__v8di)_mm512_undefined_epi32(), \
8686*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 0) & 0x3), \
8687*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 2) & 0x3), \
8688*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 4) & 0x3), \
8689*344a7f5eSAndroid Build Coastguard Worker                                    0 + (((C) >> 6) & 0x3), \
8690*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 0) & 0x3), \
8691*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 2) & 0x3), \
8692*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 4) & 0x3), \
8693*344a7f5eSAndroid Build Coastguard Worker                                    4 + (((C) >> 6) & 0x3)); })
8694*344a7f5eSAndroid Build Coastguard Worker 
8695*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_permutex_epi64(W, U, X, C) __extension__ ({ \
8696*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
8697*344a7f5eSAndroid Build Coastguard Worker                                       (__v8di)_mm512_permutex_epi64((X), (C)), \
8698*344a7f5eSAndroid Build Coastguard Worker                                       (__v8di)(__m512i)(W)); })
8699*344a7f5eSAndroid Build Coastguard Worker 
8700*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_permutex_epi64(U, X, C) __extension__ ({ \
8701*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
8702*344a7f5eSAndroid Build Coastguard Worker                                       (__v8di)_mm512_permutex_epi64((X), (C)), \
8703*344a7f5eSAndroid Build Coastguard Worker                                       (__v8di)_mm512_setzero_si512()); })
8704*344a7f5eSAndroid Build Coastguard Worker 
8705*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_permutexvar_pd(__m512i __X,__m512d __Y)8706*344a7f5eSAndroid Build Coastguard Worker _mm512_permutexvar_pd (__m512i __X, __m512d __Y)
8707*344a7f5eSAndroid Build Coastguard Worker {
8708*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
8709*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __X,
8710*344a7f5eSAndroid Build Coastguard Worker                  (__v8df) _mm512_undefined_pd (),
8711*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
8712*344a7f5eSAndroid Build Coastguard Worker }
8713*344a7f5eSAndroid Build Coastguard Worker 
8714*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_permutexvar_pd(__m512d __W,__mmask8 __U,__m512i __X,__m512d __Y)8715*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
8716*344a7f5eSAndroid Build Coastguard Worker {
8717*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
8718*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __X,
8719*344a7f5eSAndroid Build Coastguard Worker                  (__v8df) __W,
8720*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
8721*344a7f5eSAndroid Build Coastguard Worker }
8722*344a7f5eSAndroid Build Coastguard Worker 
8723*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_permutexvar_pd(__mmask8 __U,__m512i __X,__m512d __Y)8724*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
8725*344a7f5eSAndroid Build Coastguard Worker {
8726*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
8727*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __X,
8728*344a7f5eSAndroid Build Coastguard Worker                  (__v8df) _mm512_setzero_pd (),
8729*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) __U);
8730*344a7f5eSAndroid Build Coastguard Worker }
8731*344a7f5eSAndroid Build Coastguard Worker 
8732*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_permutexvar_epi64(__mmask8 __M,__m512i __X,__m512i __Y)8733*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
8734*344a7f5eSAndroid Build Coastguard Worker {
8735*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
8736*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __X,
8737*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) _mm512_setzero_si512 (),
8738*344a7f5eSAndroid Build Coastguard Worker                  __M);
8739*344a7f5eSAndroid Build Coastguard Worker }
8740*344a7f5eSAndroid Build Coastguard Worker 
8741*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_permutexvar_epi64(__m512i __X,__m512i __Y)8742*344a7f5eSAndroid Build Coastguard Worker _mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
8743*344a7f5eSAndroid Build Coastguard Worker {
8744*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
8745*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __X,
8746*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) _mm512_undefined_epi32 (),
8747*344a7f5eSAndroid Build Coastguard Worker                  (__mmask8) -1);
8748*344a7f5eSAndroid Build Coastguard Worker }
8749*344a7f5eSAndroid Build Coastguard Worker 
8750*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_permutexvar_epi64(__m512i __W,__mmask8 __M,__m512i __X,__m512i __Y)8751*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
8752*344a7f5eSAndroid Build Coastguard Worker              __m512i __Y)
8753*344a7f5eSAndroid Build Coastguard Worker {
8754*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
8755*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __X,
8756*344a7f5eSAndroid Build Coastguard Worker                  (__v8di) __W,
8757*344a7f5eSAndroid Build Coastguard Worker                  __M);
8758*344a7f5eSAndroid Build Coastguard Worker }
8759*344a7f5eSAndroid Build Coastguard Worker 
8760*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_permutexvar_ps(__m512i __X,__m512 __Y)8761*344a7f5eSAndroid Build Coastguard Worker _mm512_permutexvar_ps (__m512i __X, __m512 __Y)
8762*344a7f5eSAndroid Build Coastguard Worker {
8763*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
8764*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __X,
8765*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) _mm512_undefined_ps (),
8766*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) -1);
8767*344a7f5eSAndroid Build Coastguard Worker }
8768*344a7f5eSAndroid Build Coastguard Worker 
8769*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_permutexvar_ps(__m512 __W,__mmask16 __U,__m512i __X,__m512 __Y)8770*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
8771*344a7f5eSAndroid Build Coastguard Worker {
8772*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
8773*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __X,
8774*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) __W,
8775*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
8776*344a7f5eSAndroid Build Coastguard Worker }
8777*344a7f5eSAndroid Build Coastguard Worker 
8778*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_permutexvar_ps(__mmask16 __U,__m512i __X,__m512 __Y)8779*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
8780*344a7f5eSAndroid Build Coastguard Worker {
8781*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
8782*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __X,
8783*344a7f5eSAndroid Build Coastguard Worker                 (__v16sf) _mm512_setzero_ps (),
8784*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
8785*344a7f5eSAndroid Build Coastguard Worker }
8786*344a7f5eSAndroid Build Coastguard Worker 
8787*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_permutexvar_epi32(__mmask16 __M,__m512i __X,__m512i __Y)8788*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
8789*344a7f5eSAndroid Build Coastguard Worker {
8790*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
8791*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __X,
8792*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) _mm512_setzero_si512 (),
8793*344a7f5eSAndroid Build Coastguard Worker                  __M);
8794*344a7f5eSAndroid Build Coastguard Worker }
8795*344a7f5eSAndroid Build Coastguard Worker 
8796*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_permutexvar_epi32(__m512i __X,__m512i __Y)8797*344a7f5eSAndroid Build Coastguard Worker _mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
8798*344a7f5eSAndroid Build Coastguard Worker {
8799*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
8800*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __X,
8801*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) _mm512_undefined_epi32 (),
8802*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) -1);
8803*344a7f5eSAndroid Build Coastguard Worker }
8804*344a7f5eSAndroid Build Coastguard Worker 
8805*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_permutexvar_epi32(__m512i __W,__mmask16 __M,__m512i __X,__m512i __Y)8806*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
8807*344a7f5eSAndroid Build Coastguard Worker              __m512i __Y)
8808*344a7f5eSAndroid Build Coastguard Worker {
8809*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
8810*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __X,
8811*344a7f5eSAndroid Build Coastguard Worker                  (__v16si) __W,
8812*344a7f5eSAndroid Build Coastguard Worker                  __M);
8813*344a7f5eSAndroid Build Coastguard Worker }
8814*344a7f5eSAndroid Build Coastguard Worker 
8815*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kand(__mmask16 __A,__mmask16 __B)8816*344a7f5eSAndroid Build Coastguard Worker _mm512_kand (__mmask16 __A, __mmask16 __B)
8817*344a7f5eSAndroid Build Coastguard Worker {
8818*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
8819*344a7f5eSAndroid Build Coastguard Worker }
8820*344a7f5eSAndroid Build Coastguard Worker 
8821*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kandn(__mmask16 __A,__mmask16 __B)8822*344a7f5eSAndroid Build Coastguard Worker _mm512_kandn (__mmask16 __A, __mmask16 __B)
8823*344a7f5eSAndroid Build Coastguard Worker {
8824*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B);
8825*344a7f5eSAndroid Build Coastguard Worker }
8826*344a7f5eSAndroid Build Coastguard Worker 
8827*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kor(__mmask16 __A,__mmask16 __B)8828*344a7f5eSAndroid Build Coastguard Worker _mm512_kor (__mmask16 __A, __mmask16 __B)
8829*344a7f5eSAndroid Build Coastguard Worker {
8830*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
8831*344a7f5eSAndroid Build Coastguard Worker }
8832*344a7f5eSAndroid Build Coastguard Worker 
8833*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __DEFAULT_FN_ATTRS
_mm512_kortestc(__mmask16 __A,__mmask16 __B)8834*344a7f5eSAndroid Build Coastguard Worker _mm512_kortestc (__mmask16 __A, __mmask16 __B)
8835*344a7f5eSAndroid Build Coastguard Worker {
8836*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_kortestchi ((__mmask16) __A, (__mmask16) __B);
8837*344a7f5eSAndroid Build Coastguard Worker }
8838*344a7f5eSAndroid Build Coastguard Worker 
8839*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __DEFAULT_FN_ATTRS
_mm512_kortestz(__mmask16 __A,__mmask16 __B)8840*344a7f5eSAndroid Build Coastguard Worker _mm512_kortestz (__mmask16 __A, __mmask16 __B)
8841*344a7f5eSAndroid Build Coastguard Worker {
8842*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_kortestzhi ((__mmask16) __A, (__mmask16) __B);
8843*344a7f5eSAndroid Build Coastguard Worker }
8844*344a7f5eSAndroid Build Coastguard Worker 
8845*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kunpackb(__mmask16 __A,__mmask16 __B)8846*344a7f5eSAndroid Build Coastguard Worker _mm512_kunpackb (__mmask16 __A, __mmask16 __B)
8847*344a7f5eSAndroid Build Coastguard Worker {
8848*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
8849*344a7f5eSAndroid Build Coastguard Worker }
8850*344a7f5eSAndroid Build Coastguard Worker 
8851*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kxnor(__mmask16 __A,__mmask16 __B)8852*344a7f5eSAndroid Build Coastguard Worker _mm512_kxnor (__mmask16 __A, __mmask16 __B)
8853*344a7f5eSAndroid Build Coastguard Worker {
8854*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
8855*344a7f5eSAndroid Build Coastguard Worker }
8856*344a7f5eSAndroid Build Coastguard Worker 
8857*344a7f5eSAndroid Build Coastguard Worker static __inline__ __mmask16 __DEFAULT_FN_ATTRS
_mm512_kxor(__mmask16 __A,__mmask16 __B)8858*344a7f5eSAndroid Build Coastguard Worker _mm512_kxor (__mmask16 __A, __mmask16 __B)
8859*344a7f5eSAndroid Build Coastguard Worker {
8860*344a7f5eSAndroid Build Coastguard Worker   return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
8861*344a7f5eSAndroid Build Coastguard Worker }
8862*344a7f5eSAndroid Build Coastguard Worker 
8863*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_stream_si512(__m512i * __P,__m512i __A)8864*344a7f5eSAndroid Build Coastguard Worker _mm512_stream_si512 (__m512i * __P, __m512i __A)
8865*344a7f5eSAndroid Build Coastguard Worker {
8866*344a7f5eSAndroid Build Coastguard Worker   __builtin_nontemporal_store((__v8di)__A, (__v8di*)__P);
8867*344a7f5eSAndroid Build Coastguard Worker }
8868*344a7f5eSAndroid Build Coastguard Worker 
8869*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_stream_load_si512(void * __P)8870*344a7f5eSAndroid Build Coastguard Worker _mm512_stream_load_si512 (void *__P)
8871*344a7f5eSAndroid Build Coastguard Worker {
8872*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_movntdqa512 ((__v8di *)__P);
8873*344a7f5eSAndroid Build Coastguard Worker }
8874*344a7f5eSAndroid Build Coastguard Worker 
8875*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_stream_pd(double * __P,__m512d __A)8876*344a7f5eSAndroid Build Coastguard Worker _mm512_stream_pd (double *__P, __m512d __A)
8877*344a7f5eSAndroid Build Coastguard Worker {
8878*344a7f5eSAndroid Build Coastguard Worker   __builtin_nontemporal_store((__v8df)__A, (__v8df*)__P);
8879*344a7f5eSAndroid Build Coastguard Worker }
8880*344a7f5eSAndroid Build Coastguard Worker 
8881*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_stream_ps(float * __P,__m512 __A)8882*344a7f5eSAndroid Build Coastguard Worker _mm512_stream_ps (float *__P, __m512 __A)
8883*344a7f5eSAndroid Build Coastguard Worker {
8884*344a7f5eSAndroid Build Coastguard Worker   __builtin_nontemporal_store((__v16sf)__A, (__v16sf*)__P);
8885*344a7f5eSAndroid Build Coastguard Worker }
8886*344a7f5eSAndroid Build Coastguard Worker 
8887*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_compress_pd(__m512d __W,__mmask8 __U,__m512d __A)8888*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)
8889*344a7f5eSAndroid Build Coastguard Worker {
8890*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
8891*344a7f5eSAndroid Build Coastguard Worker                   (__v8df) __W,
8892*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
8893*344a7f5eSAndroid Build Coastguard Worker }
8894*344a7f5eSAndroid Build Coastguard Worker 
8895*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_compress_pd(__mmask8 __U,__m512d __A)8896*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)
8897*344a7f5eSAndroid Build Coastguard Worker {
8898*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
8899*344a7f5eSAndroid Build Coastguard Worker                   (__v8df)
8900*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_pd (),
8901*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
8902*344a7f5eSAndroid Build Coastguard Worker }
8903*344a7f5eSAndroid Build Coastguard Worker 
8904*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_compress_epi64(__m512i __W,__mmask8 __U,__m512i __A)8905*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
8906*344a7f5eSAndroid Build Coastguard Worker {
8907*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
8908*344a7f5eSAndroid Build Coastguard Worker                   (__v8di) __W,
8909*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
8910*344a7f5eSAndroid Build Coastguard Worker }
8911*344a7f5eSAndroid Build Coastguard Worker 
8912*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_compress_epi64(__mmask8 __U,__m512i __A)8913*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)
8914*344a7f5eSAndroid Build Coastguard Worker {
8915*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
8916*344a7f5eSAndroid Build Coastguard Worker                   (__v8di)
8917*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
8918*344a7f5eSAndroid Build Coastguard Worker                   (__mmask8) __U);
8919*344a7f5eSAndroid Build Coastguard Worker }
8920*344a7f5eSAndroid Build Coastguard Worker 
8921*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_compress_ps(__m512 __W,__mmask16 __U,__m512 __A)8922*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)
8923*344a7f5eSAndroid Build Coastguard Worker {
8924*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
8925*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf) __W,
8926*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U);
8927*344a7f5eSAndroid Build Coastguard Worker }
8928*344a7f5eSAndroid Build Coastguard Worker 
8929*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_compress_ps(__mmask16 __U,__m512 __A)8930*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)
8931*344a7f5eSAndroid Build Coastguard Worker {
8932*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
8933*344a7f5eSAndroid Build Coastguard Worker                  (__v16sf)
8934*344a7f5eSAndroid Build Coastguard Worker                  _mm512_setzero_ps (),
8935*344a7f5eSAndroid Build Coastguard Worker                  (__mmask16) __U);
8936*344a7f5eSAndroid Build Coastguard Worker }
8937*344a7f5eSAndroid Build Coastguard Worker 
8938*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_compress_epi32(__m512i __W,__mmask16 __U,__m512i __A)8939*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
8940*344a7f5eSAndroid Build Coastguard Worker {
8941*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
8942*344a7f5eSAndroid Build Coastguard Worker                   (__v16si) __W,
8943*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U);
8944*344a7f5eSAndroid Build Coastguard Worker }
8945*344a7f5eSAndroid Build Coastguard Worker 
8946*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_compress_epi32(__mmask16 __U,__m512i __A)8947*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)
8948*344a7f5eSAndroid Build Coastguard Worker {
8949*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
8950*344a7f5eSAndroid Build Coastguard Worker                   (__v16si)
8951*344a7f5eSAndroid Build Coastguard Worker                   _mm512_setzero_si512 (),
8952*344a7f5eSAndroid Build Coastguard Worker                   (__mmask16) __U);
8953*344a7f5eSAndroid Build Coastguard Worker }
8954*344a7f5eSAndroid Build Coastguard Worker 
8955*344a7f5eSAndroid Build Coastguard Worker #define _mm_cmp_round_ss_mask(X, Y, P, R) __extension__ ({ \
8956*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \
8957*344a7f5eSAndroid Build Coastguard Worker                                       (__v4sf)(__m128)(Y), (int)(P), \
8958*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)-1, (int)(R)); })
8959*344a7f5eSAndroid Build Coastguard Worker 
8960*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) __extension__ ({ \
8961*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \
8962*344a7f5eSAndroid Build Coastguard Worker                                       (__v4sf)(__m128)(Y), (int)(P), \
8963*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)(M), (int)(R)); })
8964*344a7f5eSAndroid Build Coastguard Worker 
8965*344a7f5eSAndroid Build Coastguard Worker #define _mm_cmp_ss_mask(X, Y, P) __extension__ ({ \
8966*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \
8967*344a7f5eSAndroid Build Coastguard Worker                                       (__v4sf)(__m128)(Y), (int)(P), \
8968*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)-1, \
8969*344a7f5eSAndroid Build Coastguard Worker                                       _MM_FROUND_CUR_DIRECTION); })
8970*344a7f5eSAndroid Build Coastguard Worker 
8971*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_cmp_ss_mask(M, X, Y, P) __extension__ ({ \
8972*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \
8973*344a7f5eSAndroid Build Coastguard Worker                                       (__v4sf)(__m128)(Y), (int)(P), \
8974*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)(M), \
8975*344a7f5eSAndroid Build Coastguard Worker                                       _MM_FROUND_CUR_DIRECTION); })
8976*344a7f5eSAndroid Build Coastguard Worker 
8977*344a7f5eSAndroid Build Coastguard Worker #define _mm_cmp_round_sd_mask(X, Y, P, R) __extension__ ({ \
8978*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \
8979*344a7f5eSAndroid Build Coastguard Worker                                       (__v2df)(__m128d)(Y), (int)(P), \
8980*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)-1, (int)(R)); })
8981*344a7f5eSAndroid Build Coastguard Worker 
8982*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) __extension__ ({ \
8983*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \
8984*344a7f5eSAndroid Build Coastguard Worker                                       (__v2df)(__m128d)(Y), (int)(P), \
8985*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)(M), (int)(R)); })
8986*344a7f5eSAndroid Build Coastguard Worker 
8987*344a7f5eSAndroid Build Coastguard Worker #define _mm_cmp_sd_mask(X, Y, P) __extension__ ({ \
8988*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \
8989*344a7f5eSAndroid Build Coastguard Worker                                       (__v2df)(__m128d)(Y), (int)(P), \
8990*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)-1, \
8991*344a7f5eSAndroid Build Coastguard Worker                                       _MM_FROUND_CUR_DIRECTION); })
8992*344a7f5eSAndroid Build Coastguard Worker 
8993*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_cmp_sd_mask(M, X, Y, P) __extension__ ({ \
8994*344a7f5eSAndroid Build Coastguard Worker   (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \
8995*344a7f5eSAndroid Build Coastguard Worker                                       (__v2df)(__m128d)(Y), (int)(P), \
8996*344a7f5eSAndroid Build Coastguard Worker                                       (__mmask8)(M), \
8997*344a7f5eSAndroid Build Coastguard Worker                                       _MM_FROUND_CUR_DIRECTION); })
8998*344a7f5eSAndroid Build Coastguard Worker 
8999*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_movehdup_ps(__m512 __A)9000*344a7f5eSAndroid Build Coastguard Worker _mm512_movehdup_ps (__m512 __A)
9001*344a7f5eSAndroid Build Coastguard Worker {
9002*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A,
9003*344a7f5eSAndroid Build Coastguard Worker                          1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 13, 13, 15, 15);
9004*344a7f5eSAndroid Build Coastguard Worker }
9005*344a7f5eSAndroid Build Coastguard Worker 
9006*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_movehdup_ps(__m512 __W,__mmask16 __U,__m512 __A)9007*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)
9008*344a7f5eSAndroid Build Coastguard Worker {
9009*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
9010*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)_mm512_movehdup_ps(__A),
9011*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)__W);
9012*344a7f5eSAndroid Build Coastguard Worker }
9013*344a7f5eSAndroid Build Coastguard Worker 
9014*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_movehdup_ps(__mmask16 __U,__m512 __A)9015*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)
9016*344a7f5eSAndroid Build Coastguard Worker {
9017*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
9018*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)_mm512_movehdup_ps(__A),
9019*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)_mm512_setzero_ps());
9020*344a7f5eSAndroid Build Coastguard Worker }
9021*344a7f5eSAndroid Build Coastguard Worker 
9022*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_moveldup_ps(__m512 __A)9023*344a7f5eSAndroid Build Coastguard Worker _mm512_moveldup_ps (__m512 __A)
9024*344a7f5eSAndroid Build Coastguard Worker {
9025*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A,
9026*344a7f5eSAndroid Build Coastguard Worker                          0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14);
9027*344a7f5eSAndroid Build Coastguard Worker }
9028*344a7f5eSAndroid Build Coastguard Worker 
9029*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_moveldup_ps(__m512 __W,__mmask16 __U,__m512 __A)9030*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)
9031*344a7f5eSAndroid Build Coastguard Worker {
9032*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
9033*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)_mm512_moveldup_ps(__A),
9034*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)__W);
9035*344a7f5eSAndroid Build Coastguard Worker }
9036*344a7f5eSAndroid Build Coastguard Worker 
9037*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_moveldup_ps(__mmask16 __U,__m512 __A)9038*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)
9039*344a7f5eSAndroid Build Coastguard Worker {
9040*344a7f5eSAndroid Build Coastguard Worker   return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
9041*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)_mm512_moveldup_ps(__A),
9042*344a7f5eSAndroid Build Coastguard Worker                                              (__v16sf)_mm512_setzero_ps());
9043*344a7f5eSAndroid Build Coastguard Worker }
9044*344a7f5eSAndroid Build Coastguard Worker 
9045*344a7f5eSAndroid Build Coastguard Worker #define _mm512_shuffle_epi32(A, I) __extension__ ({ \
9046*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_shufflevector((__v16si)(__m512i)(A), \
9047*344a7f5eSAndroid Build Coastguard Worker                                    (__v16si)_mm512_undefined_epi32(), \
9048*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((I) >> 0) & 0x3), \
9049*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((I) >> 2) & 0x3), \
9050*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((I) >> 4) & 0x3), \
9051*344a7f5eSAndroid Build Coastguard Worker                                    0  + (((I) >> 6) & 0x3), \
9052*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((I) >> 0) & 0x3), \
9053*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((I) >> 2) & 0x3), \
9054*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((I) >> 4) & 0x3), \
9055*344a7f5eSAndroid Build Coastguard Worker                                    4  + (((I) >> 6) & 0x3), \
9056*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((I) >> 0) & 0x3), \
9057*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((I) >> 2) & 0x3), \
9058*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((I) >> 4) & 0x3), \
9059*344a7f5eSAndroid Build Coastguard Worker                                    8  + (((I) >> 6) & 0x3), \
9060*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((I) >> 0) & 0x3), \
9061*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((I) >> 2) & 0x3), \
9062*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((I) >> 4) & 0x3), \
9063*344a7f5eSAndroid Build Coastguard Worker                                    12 + (((I) >> 6) & 0x3)); })
9064*344a7f5eSAndroid Build Coastguard Worker 
9065*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_shuffle_epi32(W, U, A, I) __extension__ ({ \
9066*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
9067*344a7f5eSAndroid Build Coastguard Worker                                       (__v16si)_mm512_shuffle_epi32((A), (I)), \
9068*344a7f5eSAndroid Build Coastguard Worker                                       (__v16si)(__m512i)(W)); })
9069*344a7f5eSAndroid Build Coastguard Worker 
9070*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_shuffle_epi32(U, A, I) __extension__ ({ \
9071*344a7f5eSAndroid Build Coastguard Worker   (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
9072*344a7f5eSAndroid Build Coastguard Worker                                       (__v16si)_mm512_shuffle_epi32((A), (I)), \
9073*344a7f5eSAndroid Build Coastguard Worker                                       (__v16si)_mm512_setzero_si512()); })
9074*344a7f5eSAndroid Build Coastguard Worker 
9075*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_expand_pd(__m512d __W,__mmask8 __U,__m512d __A)9076*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)
9077*344a7f5eSAndroid Build Coastguard Worker {
9078*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
9079*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
9080*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
9081*344a7f5eSAndroid Build Coastguard Worker }
9082*344a7f5eSAndroid Build Coastguard Worker 
9083*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_expand_pd(__mmask8 __U,__m512d __A)9084*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)
9085*344a7f5eSAndroid Build Coastguard Worker {
9086*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
9087*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) _mm512_setzero_pd (),
9088*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
9089*344a7f5eSAndroid Build Coastguard Worker }
9090*344a7f5eSAndroid Build Coastguard Worker 
9091*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_expand_epi64(__m512i __W,__mmask8 __U,__m512i __A)9092*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
9093*344a7f5eSAndroid Build Coastguard Worker {
9094*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
9095*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) __W,
9096*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
9097*344a7f5eSAndroid Build Coastguard Worker }
9098*344a7f5eSAndroid Build Coastguard Worker 
9099*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_expand_epi64(__mmask8 __U,__m512i __A)9100*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expand_epi64 ( __mmask8 __U, __m512i __A)
9101*344a7f5eSAndroid Build Coastguard Worker {
9102*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
9103*344a7f5eSAndroid Build Coastguard Worker                 (__v8di) _mm512_setzero_pd (),
9104*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U);
9105*344a7f5eSAndroid Build Coastguard Worker }
9106*344a7f5eSAndroid Build Coastguard Worker 
9107*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_expandloadu_pd(__m512d __W,__mmask8 __U,void const * __P)9108*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P)
9109*344a7f5eSAndroid Build Coastguard Worker {
9110*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P,
9111*344a7f5eSAndroid Build Coastguard Worker               (__v8df) __W,
9112*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
9113*344a7f5eSAndroid Build Coastguard Worker }
9114*344a7f5eSAndroid Build Coastguard Worker 
9115*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_expandloadu_pd(__mmask8 __U,void const * __P)9116*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P)
9117*344a7f5eSAndroid Build Coastguard Worker {
9118*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P,
9119*344a7f5eSAndroid Build Coastguard Worker               (__v8df) _mm512_setzero_pd(),
9120*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
9121*344a7f5eSAndroid Build Coastguard Worker }
9122*344a7f5eSAndroid Build Coastguard Worker 
9123*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_expandloadu_epi64(__m512i __W,__mmask8 __U,void const * __P)9124*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P)
9125*344a7f5eSAndroid Build Coastguard Worker {
9126*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P,
9127*344a7f5eSAndroid Build Coastguard Worker               (__v8di) __W,
9128*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
9129*344a7f5eSAndroid Build Coastguard Worker }
9130*344a7f5eSAndroid Build Coastguard Worker 
9131*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_expandloadu_epi64(__mmask8 __U,void const * __P)9132*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P)
9133*344a7f5eSAndroid Build Coastguard Worker {
9134*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P,
9135*344a7f5eSAndroid Build Coastguard Worker               (__v8di) _mm512_setzero_pd(),
9136*344a7f5eSAndroid Build Coastguard Worker               (__mmask8) __U);
9137*344a7f5eSAndroid Build Coastguard Worker }
9138*344a7f5eSAndroid Build Coastguard Worker 
9139*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_expandloadu_ps(__m512 __W,__mmask16 __U,void const * __P)9140*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expandloadu_ps(__m512 __W, __mmask16 __U, void const *__P)
9141*344a7f5eSAndroid Build Coastguard Worker {
9142*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P,
9143*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) __W,
9144*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
9145*344a7f5eSAndroid Build Coastguard Worker }
9146*344a7f5eSAndroid Build Coastguard Worker 
9147*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_expandloadu_ps(__mmask16 __U,void const * __P)9148*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expandloadu_ps(__mmask16 __U, void const *__P)
9149*344a7f5eSAndroid Build Coastguard Worker {
9150*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P,
9151*344a7f5eSAndroid Build Coastguard Worker                    (__v16sf) _mm512_setzero_ps(),
9152*344a7f5eSAndroid Build Coastguard Worker                    (__mmask16) __U);
9153*344a7f5eSAndroid Build Coastguard Worker }
9154*344a7f5eSAndroid Build Coastguard Worker 
9155*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_expandloadu_epi32(__m512i __W,__mmask16 __U,void const * __P)9156*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P)
9157*344a7f5eSAndroid Build Coastguard Worker {
9158*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P,
9159*344a7f5eSAndroid Build Coastguard Worker               (__v16si) __W,
9160*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
9161*344a7f5eSAndroid Build Coastguard Worker }
9162*344a7f5eSAndroid Build Coastguard Worker 
9163*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_expandloadu_epi32(__mmask16 __U,void const * __P)9164*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P)
9165*344a7f5eSAndroid Build Coastguard Worker {
9166*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P,
9167*344a7f5eSAndroid Build Coastguard Worker               (__v16si) _mm512_setzero_ps(),
9168*344a7f5eSAndroid Build Coastguard Worker               (__mmask16) __U);
9169*344a7f5eSAndroid Build Coastguard Worker }
9170*344a7f5eSAndroid Build Coastguard Worker 
9171*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_expand_ps(__m512 __W,__mmask16 __U,__m512 __A)9172*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)
9173*344a7f5eSAndroid Build Coastguard Worker {
9174*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
9175*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) __W,
9176*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) __U);
9177*344a7f5eSAndroid Build Coastguard Worker }
9178*344a7f5eSAndroid Build Coastguard Worker 
9179*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_expand_ps(__mmask16 __U,__m512 __A)9180*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)
9181*344a7f5eSAndroid Build Coastguard Worker {
9182*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
9183*344a7f5eSAndroid Build Coastguard Worker                (__v16sf) _mm512_setzero_ps(),
9184*344a7f5eSAndroid Build Coastguard Worker                (__mmask16) __U);
9185*344a7f5eSAndroid Build Coastguard Worker }
9186*344a7f5eSAndroid Build Coastguard Worker 
9187*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_expand_epi32(__m512i __W,__mmask16 __U,__m512i __A)9188*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
9189*344a7f5eSAndroid Build Coastguard Worker {
9190*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
9191*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) __W,
9192*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
9193*344a7f5eSAndroid Build Coastguard Worker }
9194*344a7f5eSAndroid Build Coastguard Worker 
9195*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_maskz_expand_epi32(__mmask16 __U,__m512i __A)9196*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)
9197*344a7f5eSAndroid Build Coastguard Worker {
9198*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
9199*344a7f5eSAndroid Build Coastguard Worker                 (__v16si) _mm512_setzero_ps(),
9200*344a7f5eSAndroid Build Coastguard Worker                 (__mmask16) __U);
9201*344a7f5eSAndroid Build Coastguard Worker }
9202*344a7f5eSAndroid Build Coastguard Worker 
9203*344a7f5eSAndroid Build Coastguard Worker #define _mm512_cvt_roundps_pd(A, R) __extension__ ({ \
9204*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \
9205*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_undefined_pd(), \
9206*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)-1, (int)(R)); })
9207*344a7f5eSAndroid Build Coastguard Worker 
9208*344a7f5eSAndroid Build Coastguard Worker #define _mm512_mask_cvt_roundps_pd(W, U, A, R) __extension__ ({ \
9209*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \
9210*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)(__m512d)(W), \
9211*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
9212*344a7f5eSAndroid Build Coastguard Worker 
9213*344a7f5eSAndroid Build Coastguard Worker #define _mm512_maskz_cvt_roundps_pd(U, A, R) __extension__ ({ \
9214*344a7f5eSAndroid Build Coastguard Worker   (__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \
9215*344a7f5eSAndroid Build Coastguard Worker                                            (__v8df)_mm512_setzero_pd(), \
9216*344a7f5eSAndroid Build Coastguard Worker                                            (__mmask8)(U), (int)(R)); })
9217*344a7f5eSAndroid Build Coastguard Worker 
9218*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_cvtps_pd(__m256 __A)9219*344a7f5eSAndroid Build Coastguard Worker _mm512_cvtps_pd (__m256 __A)
9220*344a7f5eSAndroid Build Coastguard Worker {
9221*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
9222*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
9223*344a7f5eSAndroid Build Coastguard Worker                 _mm512_undefined_pd (),
9224*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) -1,
9225*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
9226*344a7f5eSAndroid Build Coastguard Worker }
9227*344a7f5eSAndroid Build Coastguard Worker 
9228*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_cvtps_pd(__m512d __W,__mmask8 __U,__m256 __A)9229*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)
9230*344a7f5eSAndroid Build Coastguard Worker {
9231*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
9232*344a7f5eSAndroid Build Coastguard Worker                 (__v8df) __W,
9233*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
9234*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
9235*344a7f5eSAndroid Build Coastguard Worker }
9236*344a7f5eSAndroid Build Coastguard Worker 
9237*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_cvtps_pd(__mmask8 __U,__m256 __A)9238*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)
9239*344a7f5eSAndroid Build Coastguard Worker {
9240*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
9241*344a7f5eSAndroid Build Coastguard Worker                 (__v8df)
9242*344a7f5eSAndroid Build Coastguard Worker                 _mm512_setzero_pd (),
9243*344a7f5eSAndroid Build Coastguard Worker                 (__mmask8) __U,
9244*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
9245*344a7f5eSAndroid Build Coastguard Worker }
9246*344a7f5eSAndroid Build Coastguard Worker 
9247*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_mov_pd(__m512d __W,__mmask8 __U,__m512d __A)9248*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A)
9249*344a7f5eSAndroid Build Coastguard Worker {
9250*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U,
9251*344a7f5eSAndroid Build Coastguard Worker               (__v8df) __A,
9252*344a7f5eSAndroid Build Coastguard Worker               (__v8df) __W);
9253*344a7f5eSAndroid Build Coastguard Worker }
9254*344a7f5eSAndroid Build Coastguard Worker 
9255*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_maskz_mov_pd(__mmask8 __U,__m512d __A)9256*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mov_pd (__mmask8 __U, __m512d __A)
9257*344a7f5eSAndroid Build Coastguard Worker {
9258*344a7f5eSAndroid Build Coastguard Worker   return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U,
9259*344a7f5eSAndroid Build Coastguard Worker               (__v8df) __A,
9260*344a7f5eSAndroid Build Coastguard Worker               (__v8df) _mm512_setzero_pd ());
9261*344a7f5eSAndroid Build Coastguard Worker }
9262*344a7f5eSAndroid Build Coastguard Worker 
9263*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_mov_ps(__m512 __W,__mmask16 __U,__m512 __A)9264*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A)
9265*344a7f5eSAndroid Build Coastguard Worker {
9266*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U,
9267*344a7f5eSAndroid Build Coastguard Worker              (__v16sf) __A,
9268*344a7f5eSAndroid Build Coastguard Worker              (__v16sf) __W);
9269*344a7f5eSAndroid Build Coastguard Worker }
9270*344a7f5eSAndroid Build Coastguard Worker 
9271*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_maskz_mov_ps(__mmask16 __U,__m512 __A)9272*344a7f5eSAndroid Build Coastguard Worker _mm512_maskz_mov_ps (__mmask16 __U, __m512 __A)
9273*344a7f5eSAndroid Build Coastguard Worker {
9274*344a7f5eSAndroid Build Coastguard Worker   return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U,
9275*344a7f5eSAndroid Build Coastguard Worker              (__v16sf) __A,
9276*344a7f5eSAndroid Build Coastguard Worker              (__v16sf) _mm512_setzero_ps ());
9277*344a7f5eSAndroid Build Coastguard Worker }
9278*344a7f5eSAndroid Build Coastguard Worker 
9279*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_compressstoreu_pd(void * __P,__mmask8 __U,__m512d __A)9280*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)
9281*344a7f5eSAndroid Build Coastguard Worker {
9282*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,
9283*344a7f5eSAndroid Build Coastguard Worker             (__mmask8) __U);
9284*344a7f5eSAndroid Build Coastguard Worker }
9285*344a7f5eSAndroid Build Coastguard Worker 
9286*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_compressstoreu_epi64(void * __P,__mmask8 __U,__m512i __A)9287*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)
9288*344a7f5eSAndroid Build Coastguard Worker {
9289*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,
9290*344a7f5eSAndroid Build Coastguard Worker             (__mmask8) __U);
9291*344a7f5eSAndroid Build Coastguard Worker }
9292*344a7f5eSAndroid Build Coastguard Worker 
9293*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_compressstoreu_ps(void * __P,__mmask16 __U,__m512 __A)9294*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)
9295*344a7f5eSAndroid Build Coastguard Worker {
9296*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,
9297*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U);
9298*344a7f5eSAndroid Build Coastguard Worker }
9299*344a7f5eSAndroid Build Coastguard Worker 
9300*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __DEFAULT_FN_ATTRS
_mm512_mask_compressstoreu_epi32(void * __P,__mmask16 __U,__m512i __A)9301*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)
9302*344a7f5eSAndroid Build Coastguard Worker {
9303*344a7f5eSAndroid Build Coastguard Worker   __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,
9304*344a7f5eSAndroid Build Coastguard Worker             (__mmask16) __U);
9305*344a7f5eSAndroid Build Coastguard Worker }
9306*344a7f5eSAndroid Build Coastguard Worker 
9307*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsd_ss(A, B, R) __extension__ ({ \
9308*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \
9309*344a7f5eSAndroid Build Coastguard Worker                                              (__v2df)(__m128d)(B), \
9310*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)_mm_undefined_ps(), \
9311*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)-1, (int)(R)); })
9312*344a7f5eSAndroid Build Coastguard Worker 
9313*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_cvt_roundsd_ss(W, U, A, B, R) __extension__ ({ \
9314*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \
9315*344a7f5eSAndroid Build Coastguard Worker                                              (__v2df)(__m128d)(B), \
9316*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)(__m128)(W), \
9317*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
9318*344a7f5eSAndroid Build Coastguard Worker 
9319*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_cvt_roundsd_ss(U, A, B, R) __extension__ ({ \
9320*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \
9321*344a7f5eSAndroid Build Coastguard Worker                                              (__v2df)(__m128d)(B), \
9322*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)_mm_setzero_ps(), \
9323*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(U), (int)(R)); })
9324*344a7f5eSAndroid Build Coastguard Worker 
9325*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_mask_cvtsd_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128d __B)9326*344a7f5eSAndroid Build Coastguard Worker _mm_mask_cvtsd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128d __B)
9327*344a7f5eSAndroid Build Coastguard Worker {
9328*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)(__A),
9329*344a7f5eSAndroid Build Coastguard Worker                                              (__v2df)(__B),
9330*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)(__W),
9331*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);
9332*344a7f5eSAndroid Build Coastguard Worker }
9333*344a7f5eSAndroid Build Coastguard Worker 
9334*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_maskz_cvtsd_ss(__mmask8 __U,__m128 __A,__m128d __B)9335*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_cvtsd_ss (__mmask8 __U, __m128 __A, __m128d __B)
9336*344a7f5eSAndroid Build Coastguard Worker {
9337*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)(__A),
9338*344a7f5eSAndroid Build Coastguard Worker                                              (__v2df)(__B),
9339*344a7f5eSAndroid Build Coastguard Worker                                              (__v4sf)_mm_setzero_ps(),
9340*344a7f5eSAndroid Build Coastguard Worker                                              (__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);
9341*344a7f5eSAndroid Build Coastguard Worker }
9342*344a7f5eSAndroid Build Coastguard Worker 
9343*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtss_i32 _mm_cvtss_si32
9344*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtss_i64 _mm_cvtss_si64
9345*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtsd_i32 _mm_cvtsd_si32
9346*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvtsd_i64 _mm_cvtsd_si64
9347*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvti32_sd _mm_cvtsi32_sd
9348*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvti64_sd _mm_cvtsi64_sd
9349*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvti32_ss _mm_cvtsi32_ss
9350*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvti64_ss _mm_cvtsi64_ss
9351*344a7f5eSAndroid Build Coastguard Worker 
9352*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundi64_sd(A, B, R) __extension__ ({ \
9353*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_cvtsi2sd64((__v2df)(__m128d)(A), (long long)(B), \
9354*344a7f5eSAndroid Build Coastguard Worker                                      (int)(R)); })
9355*344a7f5eSAndroid Build Coastguard Worker 
9356*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsi64_sd(A, B, R) __extension__ ({ \
9357*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_cvtsi2sd64((__v2df)(__m128d)(A), (long long)(B), \
9358*344a7f5eSAndroid Build Coastguard Worker                                      (int)(R)); })
9359*344a7f5eSAndroid Build Coastguard Worker 
9360*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsi32_ss(A, B, R) __extension__ ({ \
9361*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsi2ss32((__v4sf)(__m128)(A), (int)(B), (int)(R)); })
9362*344a7f5eSAndroid Build Coastguard Worker 
9363*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundi32_ss(A, B, R) __extension__ ({ \
9364*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsi2ss32((__v4sf)(__m128)(A), (int)(B), (int)(R)); })
9365*344a7f5eSAndroid Build Coastguard Worker 
9366*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundsi64_ss(A, B, R) __extension__ ({ \
9367*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsi2ss64((__v4sf)(__m128)(A), (long long)(B), \
9368*344a7f5eSAndroid Build Coastguard Worker                                     (int)(R)); })
9369*344a7f5eSAndroid Build Coastguard Worker 
9370*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundi64_ss(A, B, R) __extension__ ({ \
9371*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtsi2ss64((__v4sf)(__m128)(A), (long long)(B), \
9372*344a7f5eSAndroid Build Coastguard Worker                                     (int)(R)); })
9373*344a7f5eSAndroid Build Coastguard Worker 
9374*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundss_sd(A, B, R) __extension__ ({ \
9375*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \
9376*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
9377*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)_mm_undefined_pd(), \
9378*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)-1, (int)(R)); })
9379*344a7f5eSAndroid Build Coastguard Worker 
9380*344a7f5eSAndroid Build Coastguard Worker #define _mm_mask_cvt_roundss_sd(W, U, A, B, R) __extension__ ({ \
9381*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \
9382*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
9383*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)(__m128d)(W), \
9384*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
9385*344a7f5eSAndroid Build Coastguard Worker 
9386*344a7f5eSAndroid Build Coastguard Worker #define _mm_maskz_cvt_roundss_sd(U, A, B, R) __extension__ ({ \
9387*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \
9388*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__m128)(B), \
9389*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)_mm_setzero_pd(), \
9390*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(U), (int)(R)); })
9391*344a7f5eSAndroid Build Coastguard Worker 
9392*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_mask_cvtss_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128 __B)9393*344a7f5eSAndroid Build Coastguard Worker _mm_mask_cvtss_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128 __B)
9394*344a7f5eSAndroid Build Coastguard Worker {
9395*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_cvtss2sd_round_mask((__v2df)(__A),
9396*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__B),
9397*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)(__W),
9398*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);
9399*344a7f5eSAndroid Build Coastguard Worker }
9400*344a7f5eSAndroid Build Coastguard Worker 
9401*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_maskz_cvtss_sd(__mmask8 __U,__m128d __A,__m128 __B)9402*344a7f5eSAndroid Build Coastguard Worker _mm_maskz_cvtss_sd (__mmask8 __U, __m128d __A, __m128 __B)
9403*344a7f5eSAndroid Build Coastguard Worker {
9404*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_cvtss2sd_round_mask((__v2df)(__A),
9405*344a7f5eSAndroid Build Coastguard Worker                                               (__v4sf)(__B),
9406*344a7f5eSAndroid Build Coastguard Worker                                               (__v2df)_mm_setzero_pd(),
9407*344a7f5eSAndroid Build Coastguard Worker                                               (__mmask8)(__U), _MM_FROUND_CUR_DIRECTION);
9408*344a7f5eSAndroid Build Coastguard Worker }
9409*344a7f5eSAndroid Build Coastguard Worker 
9410*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_cvtu32_sd(__m128d __A,unsigned __B)9411*344a7f5eSAndroid Build Coastguard Worker _mm_cvtu32_sd (__m128d __A, unsigned __B)
9412*344a7f5eSAndroid Build Coastguard Worker {
9413*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B);
9414*344a7f5eSAndroid Build Coastguard Worker }
9415*344a7f5eSAndroid Build Coastguard Worker 
9416*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundu64_sd(A, B, R) __extension__ ({ \
9417*344a7f5eSAndroid Build Coastguard Worker   (__m128d)__builtin_ia32_cvtusi2sd64((__v2df)(__m128d)(A), \
9418*344a7f5eSAndroid Build Coastguard Worker                                       (unsigned long long)(B), (int)(R)); })
9419*344a7f5eSAndroid Build Coastguard Worker 
9420*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128d __DEFAULT_FN_ATTRS
_mm_cvtu64_sd(__m128d __A,unsigned long long __B)9421*344a7f5eSAndroid Build Coastguard Worker _mm_cvtu64_sd (__m128d __A, unsigned long long __B)
9422*344a7f5eSAndroid Build Coastguard Worker {
9423*344a7f5eSAndroid Build Coastguard Worker   return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,
9424*344a7f5eSAndroid Build Coastguard Worker                  _MM_FROUND_CUR_DIRECTION);
9425*344a7f5eSAndroid Build Coastguard Worker }
9426*344a7f5eSAndroid Build Coastguard Worker 
9427*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundu32_ss(A, B, R) __extension__ ({ \
9428*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtusi2ss32((__v4sf)(__m128)(A), (unsigned int)(B), \
9429*344a7f5eSAndroid Build Coastguard Worker                                      (int)(R)); })
9430*344a7f5eSAndroid Build Coastguard Worker 
9431*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_cvtu32_ss(__m128 __A,unsigned __B)9432*344a7f5eSAndroid Build Coastguard Worker _mm_cvtu32_ss (__m128 __A, unsigned __B)
9433*344a7f5eSAndroid Build Coastguard Worker {
9434*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,
9435*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
9436*344a7f5eSAndroid Build Coastguard Worker }
9437*344a7f5eSAndroid Build Coastguard Worker 
9438*344a7f5eSAndroid Build Coastguard Worker #define _mm_cvt_roundu64_ss(A, B, R) __extension__ ({ \
9439*344a7f5eSAndroid Build Coastguard Worker   (__m128)__builtin_ia32_cvtusi2ss64((__v4sf)(__m128)(A), \
9440*344a7f5eSAndroid Build Coastguard Worker                                      (unsigned long long)(B), (int)(R)); })
9441*344a7f5eSAndroid Build Coastguard Worker 
9442*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m128 __DEFAULT_FN_ATTRS
_mm_cvtu64_ss(__m128 __A,unsigned long long __B)9443*344a7f5eSAndroid Build Coastguard Worker _mm_cvtu64_ss (__m128 __A, unsigned long long __B)
9444*344a7f5eSAndroid Build Coastguard Worker {
9445*344a7f5eSAndroid Build Coastguard Worker   return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,
9446*344a7f5eSAndroid Build Coastguard Worker                 _MM_FROUND_CUR_DIRECTION);
9447*344a7f5eSAndroid Build Coastguard Worker }
9448*344a7f5eSAndroid Build Coastguard Worker 
9449*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_set1_epi32(__m512i __O,__mmask16 __M,int __A)9450*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
9451*344a7f5eSAndroid Build Coastguard Worker {
9452*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O,
9453*344a7f5eSAndroid Build Coastguard Worker                  __M);
9454*344a7f5eSAndroid Build Coastguard Worker }
9455*344a7f5eSAndroid Build Coastguard Worker 
9456*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_set1_epi64(__m512i __O,__mmask8 __M,long long __A)9457*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
9458*344a7f5eSAndroid Build Coastguard Worker {
9459*344a7f5eSAndroid Build Coastguard Worker   return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O,
9460*344a7f5eSAndroid Build Coastguard Worker                  __M);
9461*344a7f5eSAndroid Build Coastguard Worker }
9462*344a7f5eSAndroid Build Coastguard Worker 
9463*344a7f5eSAndroid Build Coastguard Worker static __inline __m512i __DEFAULT_FN_ATTRS
_mm512_set_epi32(int __A,int __B,int __C,int __D,int __E,int __F,int __G,int __H,int __I,int __J,int __K,int __L,int __M,int __N,int __O,int __P)9464*344a7f5eSAndroid Build Coastguard Worker _mm512_set_epi32 (int __A, int __B, int __C, int __D,
9465*344a7f5eSAndroid Build Coastguard Worker      int __E, int __F, int __G, int __H,
9466*344a7f5eSAndroid Build Coastguard Worker      int __I, int __J, int __K, int __L,
9467*344a7f5eSAndroid Build Coastguard Worker      int __M, int __N, int __O, int __P)
9468*344a7f5eSAndroid Build Coastguard Worker {
9469*344a7f5eSAndroid Build Coastguard Worker   return __extension__ (__m512i)(__v16si)
9470*344a7f5eSAndroid Build Coastguard Worker   { __P, __O, __N, __M, __L, __K, __J, __I,
9471*344a7f5eSAndroid Build Coastguard Worker     __H, __G, __F, __E, __D, __C, __B, __A };
9472*344a7f5eSAndroid Build Coastguard Worker }
9473*344a7f5eSAndroid Build Coastguard Worker 
9474*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7,           \
9475*344a7f5eSAndroid Build Coastguard Worker        e8,e9,e10,e11,e12,e13,e14,e15)          \
9476*344a7f5eSAndroid Build Coastguard Worker   _mm512_set_epi32((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6), \
9477*344a7f5eSAndroid Build Coastguard Worker                    (e5),(e4),(e3),(e2),(e1),(e0))
9478*344a7f5eSAndroid Build Coastguard Worker 
9479*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_set_epi64(long long __A,long long __B,long long __C,long long __D,long long __E,long long __F,long long __G,long long __H)9480*344a7f5eSAndroid Build Coastguard Worker _mm512_set_epi64 (long long __A, long long __B, long long __C,
9481*344a7f5eSAndroid Build Coastguard Worker      long long __D, long long __E, long long __F,
9482*344a7f5eSAndroid Build Coastguard Worker      long long __G, long long __H)
9483*344a7f5eSAndroid Build Coastguard Worker {
9484*344a7f5eSAndroid Build Coastguard Worker   return __extension__ (__m512i) (__v8di)
9485*344a7f5eSAndroid Build Coastguard Worker   { __H, __G, __F, __E, __D, __C, __B, __A };
9486*344a7f5eSAndroid Build Coastguard Worker }
9487*344a7f5eSAndroid Build Coastguard Worker 
9488*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7)           \
9489*344a7f5eSAndroid Build Coastguard Worker   _mm512_set_epi64((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0))
9490*344a7f5eSAndroid Build Coastguard Worker 
9491*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_set_pd(double __A,double __B,double __C,double __D,double __E,double __F,double __G,double __H)9492*344a7f5eSAndroid Build Coastguard Worker _mm512_set_pd (double __A, double __B, double __C, double __D,
9493*344a7f5eSAndroid Build Coastguard Worker         double __E, double __F, double __G, double __H)
9494*344a7f5eSAndroid Build Coastguard Worker {
9495*344a7f5eSAndroid Build Coastguard Worker   return __extension__ (__m512d)
9496*344a7f5eSAndroid Build Coastguard Worker   { __H, __G, __F, __E, __D, __C, __B, __A };
9497*344a7f5eSAndroid Build Coastguard Worker }
9498*344a7f5eSAndroid Build Coastguard Worker 
9499*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7)              \
9500*344a7f5eSAndroid Build Coastguard Worker   _mm512_set_pd((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0))
9501*344a7f5eSAndroid Build Coastguard Worker 
9502*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_set_ps(float __A,float __B,float __C,float __D,float __E,float __F,float __G,float __H,float __I,float __J,float __K,float __L,float __M,float __N,float __O,float __P)9503*344a7f5eSAndroid Build Coastguard Worker _mm512_set_ps (float __A, float __B, float __C, float __D,
9504*344a7f5eSAndroid Build Coastguard Worker         float __E, float __F, float __G, float __H,
9505*344a7f5eSAndroid Build Coastguard Worker         float __I, float __J, float __K, float __L,
9506*344a7f5eSAndroid Build Coastguard Worker         float __M, float __N, float __O, float __P)
9507*344a7f5eSAndroid Build Coastguard Worker {
9508*344a7f5eSAndroid Build Coastguard Worker   return __extension__ (__m512)
9509*344a7f5eSAndroid Build Coastguard Worker   { __P, __O, __N, __M, __L, __K, __J, __I,
9510*344a7f5eSAndroid Build Coastguard Worker     __H, __G, __F, __E, __D, __C, __B, __A };
9511*344a7f5eSAndroid Build Coastguard Worker }
9512*344a7f5eSAndroid Build Coastguard Worker 
9513*344a7f5eSAndroid Build Coastguard Worker #define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
9514*344a7f5eSAndroid Build Coastguard Worker   _mm512_set_ps((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6),(e5), \
9515*344a7f5eSAndroid Build Coastguard Worker                 (e4),(e3),(e2),(e1),(e0))
9516*344a7f5eSAndroid Build Coastguard Worker 
9517*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_abs_ps(__m512 A)9518*344a7f5eSAndroid Build Coastguard Worker _mm512_abs_ps(__m512 A)
9519*344a7f5eSAndroid Build Coastguard Worker {
9520*344a7f5eSAndroid Build Coastguard Worker   return (__m512)_mm512_and_epi32(_mm512_set1_epi32(0x7FFFFFFF),(__m512i)A) ;
9521*344a7f5eSAndroid Build Coastguard Worker }
9522*344a7f5eSAndroid Build Coastguard Worker 
9523*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512 __DEFAULT_FN_ATTRS
_mm512_mask_abs_ps(__m512 W,__mmask16 K,__m512 A)9524*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_abs_ps(__m512 W, __mmask16 K, __m512 A)
9525*344a7f5eSAndroid Build Coastguard Worker {
9526*344a7f5eSAndroid Build Coastguard Worker   return (__m512)_mm512_mask_and_epi32((__m512i)W, K, _mm512_set1_epi32(0x7FFFFFFF),(__m512i)A) ;
9527*344a7f5eSAndroid Build Coastguard Worker }
9528*344a7f5eSAndroid Build Coastguard Worker 
9529*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_abs_pd(__m512d A)9530*344a7f5eSAndroid Build Coastguard Worker _mm512_abs_pd(__m512d A)
9531*344a7f5eSAndroid Build Coastguard Worker {
9532*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)_mm512_and_epi64(_mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)A) ;
9533*344a7f5eSAndroid Build Coastguard Worker }
9534*344a7f5eSAndroid Build Coastguard Worker 
9535*344a7f5eSAndroid Build Coastguard Worker static __inline__ __m512d __DEFAULT_FN_ATTRS
_mm512_mask_abs_pd(__m512d W,__mmask8 K,__m512d A)9536*344a7f5eSAndroid Build Coastguard Worker _mm512_mask_abs_pd(__m512d W, __mmask8 K, __m512d A)
9537*344a7f5eSAndroid Build Coastguard Worker {
9538*344a7f5eSAndroid Build Coastguard Worker   return (__m512d)_mm512_mask_and_epi64((__v8di)W, K, _mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)A);
9539*344a7f5eSAndroid Build Coastguard Worker }
9540*344a7f5eSAndroid Build Coastguard Worker 
9541*344a7f5eSAndroid Build Coastguard Worker #undef __DEFAULT_FN_ATTRS
9542*344a7f5eSAndroid Build Coastguard Worker 
9543*344a7f5eSAndroid Build Coastguard Worker #endif // __AVX512FINTRIN_H
9544