annotate gcc/config/i386/avx512dqintrin.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1 /* Copyright (C) 2014-2018 Free Software Foundation, Inc.
111
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 This file is part of GCC.
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 GCC is free software; you can redistribute it and/or modify
kono
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
kono
parents:
diff changeset
7 the Free Software Foundation; either version 3, or (at your option)
kono
parents:
diff changeset
8 any later version.
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 GCC is distributed in the hope that it will be useful,
kono
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
kono
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
kono
parents:
diff changeset
13 GNU General Public License for more details.
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 Under Section 7 of GPL version 3, you are granted additional
kono
parents:
diff changeset
16 permissions described in the GCC Runtime Library Exception, version
kono
parents:
diff changeset
17 3.1, as published by the Free Software Foundation.
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 You should have received a copy of the GNU General Public License and
kono
parents:
diff changeset
20 a copy of the GCC Runtime Library Exception along with this program;
kono
parents:
diff changeset
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
kono
parents:
diff changeset
22 <http://www.gnu.org/licenses/>. */
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 #ifndef _IMMINTRIN_H_INCLUDED
kono
parents:
diff changeset
25 #error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."
kono
parents:
diff changeset
26 #endif
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 #ifndef _AVX512DQINTRIN_H_INCLUDED
kono
parents:
diff changeset
29 #define _AVX512DQINTRIN_H_INCLUDED
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 #ifndef __AVX512DQ__
kono
parents:
diff changeset
32 #pragma GCC push_options
kono
parents:
diff changeset
33 #pragma GCC target("avx512dq")
kono
parents:
diff changeset
34 #define __DISABLE_AVX512DQ__
kono
parents:
diff changeset
35 #endif /* __AVX512DQ__ */
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 extern __inline unsigned char
kono
parents:
diff changeset
38 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
39 _ktest_mask8_u8 (__mmask8 __A, __mmask8 __B, unsigned char *__CF)
kono
parents:
diff changeset
40 {
kono
parents:
diff changeset
41 *__CF = (unsigned char) __builtin_ia32_ktestcqi (__A, __B);
kono
parents:
diff changeset
42 return (unsigned char) __builtin_ia32_ktestzqi (__A, __B);
kono
parents:
diff changeset
43 }
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 extern __inline unsigned char
kono
parents:
diff changeset
46 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
47 _ktestz_mask8_u8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
48 {
kono
parents:
diff changeset
49 return (unsigned char) __builtin_ia32_ktestzqi (__A, __B);
kono
parents:
diff changeset
50 }
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 extern __inline unsigned char
kono
parents:
diff changeset
53 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
54 _ktestc_mask8_u8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
55 {
kono
parents:
diff changeset
56 return (unsigned char) __builtin_ia32_ktestcqi (__A, __B);
kono
parents:
diff changeset
57 }
kono
parents:
diff changeset
58
kono
parents:
diff changeset
59 extern __inline unsigned char
kono
parents:
diff changeset
60 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
61 _ktest_mask16_u8 (__mmask16 __A, __mmask16 __B, unsigned char *__CF)
kono
parents:
diff changeset
62 {
kono
parents:
diff changeset
63 *__CF = (unsigned char) __builtin_ia32_ktestchi (__A, __B);
kono
parents:
diff changeset
64 return (unsigned char) __builtin_ia32_ktestzhi (__A, __B);
kono
parents:
diff changeset
65 }
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 extern __inline unsigned char
kono
parents:
diff changeset
68 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
69 _ktestz_mask16_u8 (__mmask16 __A, __mmask16 __B)
kono
parents:
diff changeset
70 {
kono
parents:
diff changeset
71 return (unsigned char) __builtin_ia32_ktestzhi (__A, __B);
kono
parents:
diff changeset
72 }
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 extern __inline unsigned char
kono
parents:
diff changeset
75 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
76 _ktestc_mask16_u8 (__mmask16 __A, __mmask16 __B)
kono
parents:
diff changeset
77 {
kono
parents:
diff changeset
78 return (unsigned char) __builtin_ia32_ktestchi (__A, __B);
kono
parents:
diff changeset
79 }
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 extern __inline unsigned char
kono
parents:
diff changeset
82 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
83 _kortest_mask8_u8 (__mmask8 __A, __mmask8 __B, unsigned char *__CF)
kono
parents:
diff changeset
84 {
kono
parents:
diff changeset
85 *__CF = (unsigned char) __builtin_ia32_kortestcqi (__A, __B);
kono
parents:
diff changeset
86 return (unsigned char) __builtin_ia32_kortestzqi (__A, __B);
kono
parents:
diff changeset
87 }
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 extern __inline unsigned char
kono
parents:
diff changeset
90 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
91 _kortestz_mask8_u8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
92 {
kono
parents:
diff changeset
93 return (unsigned char) __builtin_ia32_kortestzqi (__A, __B);
kono
parents:
diff changeset
94 }
kono
parents:
diff changeset
95
kono
parents:
diff changeset
96 extern __inline unsigned char
kono
parents:
diff changeset
97 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
98 _kortestc_mask8_u8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
99 {
kono
parents:
diff changeset
100 return (unsigned char) __builtin_ia32_kortestcqi (__A, __B);
kono
parents:
diff changeset
101 }
kono
parents:
diff changeset
102
kono
parents:
diff changeset
103 extern __inline __mmask8
kono
parents:
diff changeset
104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
105 _kadd_mask8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
106 {
kono
parents:
diff changeset
107 return (__mmask8) __builtin_ia32_kaddqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
108 }
kono
parents:
diff changeset
109
kono
parents:
diff changeset
110 extern __inline __mmask16
kono
parents:
diff changeset
111 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
112 _kadd_mask16 (__mmask16 __A, __mmask16 __B)
kono
parents:
diff changeset
113 {
kono
parents:
diff changeset
114 return (__mmask16) __builtin_ia32_kaddhi ((__mmask16) __A, (__mmask16) __B);
kono
parents:
diff changeset
115 }
kono
parents:
diff changeset
116
kono
parents:
diff changeset
117 extern __inline unsigned int
kono
parents:
diff changeset
118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
119 _cvtmask8_u32 (__mmask8 __A)
kono
parents:
diff changeset
120 {
kono
parents:
diff changeset
121 return (unsigned int) __builtin_ia32_kmovb ((__mmask8 ) __A);
kono
parents:
diff changeset
122 }
kono
parents:
diff changeset
123
kono
parents:
diff changeset
124 extern __inline __mmask8
kono
parents:
diff changeset
125 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
126 _cvtu32_mask8 (unsigned int __A)
kono
parents:
diff changeset
127 {
kono
parents:
diff changeset
128 return (__mmask8) __builtin_ia32_kmovb ((__mmask8) __A);
kono
parents:
diff changeset
129 }
kono
parents:
diff changeset
130
kono
parents:
diff changeset
131 extern __inline __mmask8
kono
parents:
diff changeset
132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
133 _load_mask8 (__mmask8 *__A)
kono
parents:
diff changeset
134 {
kono
parents:
diff changeset
135 return (__mmask8) __builtin_ia32_kmovb (*(__mmask8 *) __A);
kono
parents:
diff changeset
136 }
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 extern __inline void
kono
parents:
diff changeset
139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
140 _store_mask8 (__mmask8 *__A, __mmask8 __B)
kono
parents:
diff changeset
141 {
kono
parents:
diff changeset
142 *(__mmask8 *) __A = __builtin_ia32_kmovb (__B);
kono
parents:
diff changeset
143 }
kono
parents:
diff changeset
144
kono
parents:
diff changeset
145 extern __inline __mmask8
kono
parents:
diff changeset
146 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
147 _knot_mask8 (__mmask8 __A)
kono
parents:
diff changeset
148 {
kono
parents:
diff changeset
149 return (__mmask8) __builtin_ia32_knotqi ((__mmask8) __A);
kono
parents:
diff changeset
150 }
kono
parents:
diff changeset
151
kono
parents:
diff changeset
152 extern __inline __mmask8
kono
parents:
diff changeset
153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
154 _kor_mask8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
155 {
kono
parents:
diff changeset
156 return (__mmask8) __builtin_ia32_korqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
157 }
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 extern __inline __mmask8
kono
parents:
diff changeset
160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
161 _kxnor_mask8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
162 {
kono
parents:
diff changeset
163 return (__mmask8) __builtin_ia32_kxnorqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
164 }
kono
parents:
diff changeset
165
kono
parents:
diff changeset
166 extern __inline __mmask8
kono
parents:
diff changeset
167 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
168 _kxor_mask8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
169 {
kono
parents:
diff changeset
170 return (__mmask8) __builtin_ia32_kxorqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
171 }
kono
parents:
diff changeset
172
kono
parents:
diff changeset
173 extern __inline __mmask8
kono
parents:
diff changeset
174 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
175 _kand_mask8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
176 {
kono
parents:
diff changeset
177 return (__mmask8) __builtin_ia32_kandqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
178 }
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 extern __inline __mmask8
kono
parents:
diff changeset
181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
182 _kandn_mask8 (__mmask8 __A, __mmask8 __B)
kono
parents:
diff changeset
183 {
kono
parents:
diff changeset
184 return (__mmask8) __builtin_ia32_kandnqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
185 }
kono
parents:
diff changeset
186
kono
parents:
diff changeset
187 extern __inline __m512d
kono
parents:
diff changeset
188 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
189 _mm512_broadcast_f64x2 (__m128d __A)
kono
parents:
diff changeset
190 {
kono
parents:
diff changeset
191 return (__m512d)
kono
parents:
diff changeset
192 __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,
kono
parents:
diff changeset
193 _mm512_undefined_pd (),
kono
parents:
diff changeset
194 (__mmask8) -1);
kono
parents:
diff changeset
195 }
kono
parents:
diff changeset
196
kono
parents:
diff changeset
197 extern __inline __m512d
kono
parents:
diff changeset
198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
199 _mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)
kono
parents:
diff changeset
200 {
kono
parents:
diff changeset
201 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
kono
parents:
diff changeset
202 __A,
kono
parents:
diff changeset
203 (__v8df)
kono
parents:
diff changeset
204 __O, __M);
kono
parents:
diff changeset
205 }
kono
parents:
diff changeset
206
kono
parents:
diff changeset
207 extern __inline __m512d
kono
parents:
diff changeset
208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
209 _mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
kono
parents:
diff changeset
210 {
kono
parents:
diff changeset
211 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
kono
parents:
diff changeset
212 __A,
kono
parents:
diff changeset
213 (__v8df)
kono
parents:
diff changeset
214 _mm512_setzero_ps (),
kono
parents:
diff changeset
215 __M);
kono
parents:
diff changeset
216 }
kono
parents:
diff changeset
217
kono
parents:
diff changeset
218 extern __inline __m512i
kono
parents:
diff changeset
219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
220 _mm512_broadcast_i64x2 (__m128i __A)
kono
parents:
diff changeset
221 {
kono
parents:
diff changeset
222 return (__m512i)
kono
parents:
diff changeset
223 __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,
kono
parents:
diff changeset
224 _mm512_undefined_epi32 (),
kono
parents:
diff changeset
225 (__mmask8) -1);
kono
parents:
diff changeset
226 }
kono
parents:
diff changeset
227
kono
parents:
diff changeset
228 extern __inline __m512i
kono
parents:
diff changeset
229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
230 _mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)
kono
parents:
diff changeset
231 {
kono
parents:
diff changeset
232 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
kono
parents:
diff changeset
233 __A,
kono
parents:
diff changeset
234 (__v8di)
kono
parents:
diff changeset
235 __O, __M);
kono
parents:
diff changeset
236 }
kono
parents:
diff changeset
237
kono
parents:
diff changeset
238 extern __inline __m512i
kono
parents:
diff changeset
239 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
240 _mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
kono
parents:
diff changeset
241 {
kono
parents:
diff changeset
242 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
kono
parents:
diff changeset
243 __A,
kono
parents:
diff changeset
244 (__v8di)
kono
parents:
diff changeset
245 _mm512_setzero_si512 (),
kono
parents:
diff changeset
246 __M);
kono
parents:
diff changeset
247 }
kono
parents:
diff changeset
248
kono
parents:
diff changeset
249 extern __inline __m512
kono
parents:
diff changeset
250 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
251 _mm512_broadcast_f32x2 (__m128 __A)
kono
parents:
diff changeset
252 {
kono
parents:
diff changeset
253 return (__m512)
kono
parents:
diff changeset
254 __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
kono
parents:
diff changeset
255 (__v16sf)_mm512_undefined_ps (),
kono
parents:
diff changeset
256 (__mmask16) -1);
kono
parents:
diff changeset
257 }
kono
parents:
diff changeset
258
kono
parents:
diff changeset
259 extern __inline __m512
kono
parents:
diff changeset
260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
261 _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
kono
parents:
diff changeset
262 {
kono
parents:
diff changeset
263 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
kono
parents:
diff changeset
264 (__v16sf)
kono
parents:
diff changeset
265 __O, __M);
kono
parents:
diff changeset
266 }
kono
parents:
diff changeset
267
kono
parents:
diff changeset
268 extern __inline __m512
kono
parents:
diff changeset
269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
270 _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
kono
parents:
diff changeset
271 {
kono
parents:
diff changeset
272 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
kono
parents:
diff changeset
273 (__v16sf)
kono
parents:
diff changeset
274 _mm512_setzero_ps (),
kono
parents:
diff changeset
275 __M);
kono
parents:
diff changeset
276 }
kono
parents:
diff changeset
277
kono
parents:
diff changeset
278 extern __inline __m512i
kono
parents:
diff changeset
279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
280 _mm512_broadcast_i32x2 (__m128i __A)
kono
parents:
diff changeset
281 {
kono
parents:
diff changeset
282 return (__m512i)
kono
parents:
diff changeset
283 __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,
kono
parents:
diff changeset
284 (__v16si)
kono
parents:
diff changeset
285 _mm512_undefined_epi32 (),
kono
parents:
diff changeset
286 (__mmask16) -1);
kono
parents:
diff changeset
287 }
kono
parents:
diff changeset
288
kono
parents:
diff changeset
289 extern __inline __m512i
kono
parents:
diff changeset
290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
291 _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
kono
parents:
diff changeset
292 {
kono
parents:
diff changeset
293 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
kono
parents:
diff changeset
294 __A,
kono
parents:
diff changeset
295 (__v16si)
kono
parents:
diff changeset
296 __O, __M);
kono
parents:
diff changeset
297 }
kono
parents:
diff changeset
298
kono
parents:
diff changeset
299 extern __inline __m512i
kono
parents:
diff changeset
300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
301 _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
kono
parents:
diff changeset
302 {
kono
parents:
diff changeset
303 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
kono
parents:
diff changeset
304 __A,
kono
parents:
diff changeset
305 (__v16si)
kono
parents:
diff changeset
306 _mm512_setzero_si512 (),
kono
parents:
diff changeset
307 __M);
kono
parents:
diff changeset
308 }
kono
parents:
diff changeset
309
kono
parents:
diff changeset
310 extern __inline __m512
kono
parents:
diff changeset
311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
312 _mm512_broadcast_f32x8 (__m256 __A)
kono
parents:
diff changeset
313 {
kono
parents:
diff changeset
314 return (__m512)
kono
parents:
diff changeset
315 __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
kono
parents:
diff changeset
316 _mm512_undefined_ps (),
kono
parents:
diff changeset
317 (__mmask16) -1);
kono
parents:
diff changeset
318 }
kono
parents:
diff changeset
319
kono
parents:
diff changeset
320 extern __inline __m512
kono
parents:
diff changeset
321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
322 _mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)
kono
parents:
diff changeset
323 {
kono
parents:
diff changeset
324 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
kono
parents:
diff changeset
325 (__v16sf)__O,
kono
parents:
diff changeset
326 __M);
kono
parents:
diff changeset
327 }
kono
parents:
diff changeset
328
kono
parents:
diff changeset
329 extern __inline __m512
kono
parents:
diff changeset
330 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
331 _mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)
kono
parents:
diff changeset
332 {
kono
parents:
diff changeset
333 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
kono
parents:
diff changeset
334 (__v16sf)
kono
parents:
diff changeset
335 _mm512_setzero_ps (),
kono
parents:
diff changeset
336 __M);
kono
parents:
diff changeset
337 }
kono
parents:
diff changeset
338
kono
parents:
diff changeset
339 extern __inline __m512i
kono
parents:
diff changeset
340 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
341 _mm512_broadcast_i32x8 (__m256i __A)
kono
parents:
diff changeset
342 {
kono
parents:
diff changeset
343 return (__m512i)
kono
parents:
diff changeset
344 __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,
kono
parents:
diff changeset
345 (__v16si)
kono
parents:
diff changeset
346 _mm512_undefined_epi32 (),
kono
parents:
diff changeset
347 (__mmask16) -1);
kono
parents:
diff changeset
348 }
kono
parents:
diff changeset
349
kono
parents:
diff changeset
350 extern __inline __m512i
kono
parents:
diff changeset
351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
352 _mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)
kono
parents:
diff changeset
353 {
kono
parents:
diff changeset
354 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
kono
parents:
diff changeset
355 __A,
kono
parents:
diff changeset
356 (__v16si)__O,
kono
parents:
diff changeset
357 __M);
kono
parents:
diff changeset
358 }
kono
parents:
diff changeset
359
kono
parents:
diff changeset
360 extern __inline __m512i
kono
parents:
diff changeset
361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
362 _mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)
kono
parents:
diff changeset
363 {
kono
parents:
diff changeset
364 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
kono
parents:
diff changeset
365 __A,
kono
parents:
diff changeset
366 (__v16si)
kono
parents:
diff changeset
367 _mm512_setzero_si512 (),
kono
parents:
diff changeset
368 __M);
kono
parents:
diff changeset
369 }
kono
parents:
diff changeset
370
kono
parents:
diff changeset
371 extern __inline __m512i
kono
parents:
diff changeset
372 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
373 _mm512_mullo_epi64 (__m512i __A, __m512i __B)
kono
parents:
diff changeset
374 {
kono
parents:
diff changeset
375 return (__m512i) ((__v8du) __A * (__v8du) __B);
kono
parents:
diff changeset
376 }
kono
parents:
diff changeset
377
kono
parents:
diff changeset
378 extern __inline __m512i
kono
parents:
diff changeset
379 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
380 _mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
381 __m512i __B)
kono
parents:
diff changeset
382 {
kono
parents:
diff changeset
383 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
kono
parents:
diff changeset
384 (__v8di) __B,
kono
parents:
diff changeset
385 (__v8di) __W,
kono
parents:
diff changeset
386 (__mmask8) __U);
kono
parents:
diff changeset
387 }
kono
parents:
diff changeset
388
kono
parents:
diff changeset
389 extern __inline __m512i
kono
parents:
diff changeset
390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
391 _mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
kono
parents:
diff changeset
392 {
kono
parents:
diff changeset
393 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,
kono
parents:
diff changeset
394 (__v8di) __B,
kono
parents:
diff changeset
395 (__v8di)
kono
parents:
diff changeset
396 _mm512_setzero_si512 (),
kono
parents:
diff changeset
397 (__mmask8) __U);
kono
parents:
diff changeset
398 }
kono
parents:
diff changeset
399
kono
parents:
diff changeset
400 extern __inline __m512d
kono
parents:
diff changeset
401 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
402 _mm512_xor_pd (__m512d __A, __m512d __B)
kono
parents:
diff changeset
403 {
kono
parents:
diff changeset
404 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
405 (__v8df) __B,
kono
parents:
diff changeset
406 (__v8df)
kono
parents:
diff changeset
407 _mm512_setzero_pd (),
kono
parents:
diff changeset
408 (__mmask8) -1);
kono
parents:
diff changeset
409 }
kono
parents:
diff changeset
410
kono
parents:
diff changeset
411 extern __inline __m512d
kono
parents:
diff changeset
412 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
413 _mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
414 __m512d __B)
kono
parents:
diff changeset
415 {
kono
parents:
diff changeset
416 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
417 (__v8df) __B,
kono
parents:
diff changeset
418 (__v8df) __W,
kono
parents:
diff changeset
419 (__mmask8) __U);
kono
parents:
diff changeset
420 }
kono
parents:
diff changeset
421
kono
parents:
diff changeset
422 extern __inline __m512d
kono
parents:
diff changeset
423 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
424 _mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B)
kono
parents:
diff changeset
425 {
kono
parents:
diff changeset
426 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
427 (__v8df) __B,
kono
parents:
diff changeset
428 (__v8df)
kono
parents:
diff changeset
429 _mm512_setzero_pd (),
kono
parents:
diff changeset
430 (__mmask8) __U);
kono
parents:
diff changeset
431 }
kono
parents:
diff changeset
432
kono
parents:
diff changeset
433 extern __inline __m512
kono
parents:
diff changeset
434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
435 _mm512_xor_ps (__m512 __A, __m512 __B)
kono
parents:
diff changeset
436 {
kono
parents:
diff changeset
437 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
438 (__v16sf) __B,
kono
parents:
diff changeset
439 (__v16sf)
kono
parents:
diff changeset
440 _mm512_setzero_ps (),
kono
parents:
diff changeset
441 (__mmask16) -1);
kono
parents:
diff changeset
442 }
kono
parents:
diff changeset
443
kono
parents:
diff changeset
444 extern __inline __m512
kono
parents:
diff changeset
445 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
446 _mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
447 {
kono
parents:
diff changeset
448 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
449 (__v16sf) __B,
kono
parents:
diff changeset
450 (__v16sf) __W,
kono
parents:
diff changeset
451 (__mmask16) __U);
kono
parents:
diff changeset
452 }
kono
parents:
diff changeset
453
kono
parents:
diff changeset
454 extern __inline __m512
kono
parents:
diff changeset
455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
456 _mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
457 {
kono
parents:
diff changeset
458 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
459 (__v16sf) __B,
kono
parents:
diff changeset
460 (__v16sf)
kono
parents:
diff changeset
461 _mm512_setzero_ps (),
kono
parents:
diff changeset
462 (__mmask16) __U);
kono
parents:
diff changeset
463 }
kono
parents:
diff changeset
464
kono
parents:
diff changeset
465 extern __inline __m512d
kono
parents:
diff changeset
466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
467 _mm512_or_pd (__m512d __A, __m512d __B)
kono
parents:
diff changeset
468 {
kono
parents:
diff changeset
469 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
470 (__v8df) __B,
kono
parents:
diff changeset
471 (__v8df)
kono
parents:
diff changeset
472 _mm512_setzero_pd (),
kono
parents:
diff changeset
473 (__mmask8) -1);
kono
parents:
diff changeset
474 }
kono
parents:
diff changeset
475
kono
parents:
diff changeset
476 extern __inline __m512d
kono
parents:
diff changeset
477 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
478 _mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
kono
parents:
diff changeset
479 {
kono
parents:
diff changeset
480 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
481 (__v8df) __B,
kono
parents:
diff changeset
482 (__v8df) __W,
kono
parents:
diff changeset
483 (__mmask8) __U);
kono
parents:
diff changeset
484 }
kono
parents:
diff changeset
485
kono
parents:
diff changeset
486 extern __inline __m512d
kono
parents:
diff changeset
487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
488 _mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B)
kono
parents:
diff changeset
489 {
kono
parents:
diff changeset
490 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
491 (__v8df) __B,
kono
parents:
diff changeset
492 (__v8df)
kono
parents:
diff changeset
493 _mm512_setzero_pd (),
kono
parents:
diff changeset
494 (__mmask8) __U);
kono
parents:
diff changeset
495 }
kono
parents:
diff changeset
496
kono
parents:
diff changeset
497 extern __inline __m512
kono
parents:
diff changeset
498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
499 _mm512_or_ps (__m512 __A, __m512 __B)
kono
parents:
diff changeset
500 {
kono
parents:
diff changeset
501 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
502 (__v16sf) __B,
kono
parents:
diff changeset
503 (__v16sf)
kono
parents:
diff changeset
504 _mm512_setzero_ps (),
kono
parents:
diff changeset
505 (__mmask16) -1);
kono
parents:
diff changeset
506 }
kono
parents:
diff changeset
507
kono
parents:
diff changeset
508 extern __inline __m512
kono
parents:
diff changeset
509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
510 _mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
511 {
kono
parents:
diff changeset
512 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
513 (__v16sf) __B,
kono
parents:
diff changeset
514 (__v16sf) __W,
kono
parents:
diff changeset
515 (__mmask16) __U);
kono
parents:
diff changeset
516 }
kono
parents:
diff changeset
517
kono
parents:
diff changeset
518 extern __inline __m512
kono
parents:
diff changeset
519 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
520 _mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
521 {
kono
parents:
diff changeset
522 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
523 (__v16sf) __B,
kono
parents:
diff changeset
524 (__v16sf)
kono
parents:
diff changeset
525 _mm512_setzero_ps (),
kono
parents:
diff changeset
526 (__mmask16) __U);
kono
parents:
diff changeset
527 }
kono
parents:
diff changeset
528
kono
parents:
diff changeset
529 extern __inline __m512d
kono
parents:
diff changeset
530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
531 _mm512_and_pd (__m512d __A, __m512d __B)
kono
parents:
diff changeset
532 {
kono
parents:
diff changeset
533 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
534 (__v8df) __B,
kono
parents:
diff changeset
535 (__v8df)
kono
parents:
diff changeset
536 _mm512_setzero_pd (),
kono
parents:
diff changeset
537 (__mmask8) -1);
kono
parents:
diff changeset
538 }
kono
parents:
diff changeset
539
kono
parents:
diff changeset
540 extern __inline __m512d
kono
parents:
diff changeset
541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
542 _mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
543 __m512d __B)
kono
parents:
diff changeset
544 {
kono
parents:
diff changeset
545 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
546 (__v8df) __B,
kono
parents:
diff changeset
547 (__v8df) __W,
kono
parents:
diff changeset
548 (__mmask8) __U);
kono
parents:
diff changeset
549 }
kono
parents:
diff changeset
550
kono
parents:
diff changeset
551 extern __inline __m512d
kono
parents:
diff changeset
552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
553 _mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B)
kono
parents:
diff changeset
554 {
kono
parents:
diff changeset
555 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
556 (__v8df) __B,
kono
parents:
diff changeset
557 (__v8df)
kono
parents:
diff changeset
558 _mm512_setzero_pd (),
kono
parents:
diff changeset
559 (__mmask8) __U);
kono
parents:
diff changeset
560 }
kono
parents:
diff changeset
561
kono
parents:
diff changeset
562 extern __inline __m512
kono
parents:
diff changeset
563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
564 _mm512_and_ps (__m512 __A, __m512 __B)
kono
parents:
diff changeset
565 {
kono
parents:
diff changeset
566 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
567 (__v16sf) __B,
kono
parents:
diff changeset
568 (__v16sf)
kono
parents:
diff changeset
569 _mm512_setzero_ps (),
kono
parents:
diff changeset
570 (__mmask16) -1);
kono
parents:
diff changeset
571 }
kono
parents:
diff changeset
572
kono
parents:
diff changeset
573 extern __inline __m512
kono
parents:
diff changeset
574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
575 _mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
576 {
kono
parents:
diff changeset
577 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
578 (__v16sf) __B,
kono
parents:
diff changeset
579 (__v16sf) __W,
kono
parents:
diff changeset
580 (__mmask16) __U);
kono
parents:
diff changeset
581 }
kono
parents:
diff changeset
582
kono
parents:
diff changeset
583 extern __inline __m512
kono
parents:
diff changeset
584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
585 _mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
586 {
kono
parents:
diff changeset
587 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
588 (__v16sf) __B,
kono
parents:
diff changeset
589 (__v16sf)
kono
parents:
diff changeset
590 _mm512_setzero_ps (),
kono
parents:
diff changeset
591 (__mmask16) __U);
kono
parents:
diff changeset
592 }
kono
parents:
diff changeset
593
kono
parents:
diff changeset
594 extern __inline __m512d
kono
parents:
diff changeset
595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
596 _mm512_andnot_pd (__m512d __A, __m512d __B)
kono
parents:
diff changeset
597 {
kono
parents:
diff changeset
598 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
599 (__v8df) __B,
kono
parents:
diff changeset
600 (__v8df)
kono
parents:
diff changeset
601 _mm512_setzero_pd (),
kono
parents:
diff changeset
602 (__mmask8) -1);
kono
parents:
diff changeset
603 }
kono
parents:
diff changeset
604
kono
parents:
diff changeset
605 extern __inline __m512d
kono
parents:
diff changeset
606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
607 _mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
608 __m512d __B)
kono
parents:
diff changeset
609 {
kono
parents:
diff changeset
610 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
611 (__v8df) __B,
kono
parents:
diff changeset
612 (__v8df) __W,
kono
parents:
diff changeset
613 (__mmask8) __U);
kono
parents:
diff changeset
614 }
kono
parents:
diff changeset
615
kono
parents:
diff changeset
616 extern __inline __m512d
kono
parents:
diff changeset
617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
618 _mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B)
kono
parents:
diff changeset
619 {
kono
parents:
diff changeset
620 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,
kono
parents:
diff changeset
621 (__v8df) __B,
kono
parents:
diff changeset
622 (__v8df)
kono
parents:
diff changeset
623 _mm512_setzero_pd (),
kono
parents:
diff changeset
624 (__mmask8) __U);
kono
parents:
diff changeset
625 }
kono
parents:
diff changeset
626
kono
parents:
diff changeset
627 extern __inline __m512
kono
parents:
diff changeset
628 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
629 _mm512_andnot_ps (__m512 __A, __m512 __B)
kono
parents:
diff changeset
630 {
kono
parents:
diff changeset
631 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
632 (__v16sf) __B,
kono
parents:
diff changeset
633 (__v16sf)
kono
parents:
diff changeset
634 _mm512_setzero_ps (),
kono
parents:
diff changeset
635 (__mmask16) -1);
kono
parents:
diff changeset
636 }
kono
parents:
diff changeset
637
kono
parents:
diff changeset
638 extern __inline __m512
kono
parents:
diff changeset
639 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
640 _mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A,
kono
parents:
diff changeset
641 __m512 __B)
kono
parents:
diff changeset
642 {
kono
parents:
diff changeset
643 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
644 (__v16sf) __B,
kono
parents:
diff changeset
645 (__v16sf) __W,
kono
parents:
diff changeset
646 (__mmask16) __U);
kono
parents:
diff changeset
647 }
kono
parents:
diff changeset
648
kono
parents:
diff changeset
649 extern __inline __m512
kono
parents:
diff changeset
650 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
651 _mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B)
kono
parents:
diff changeset
652 {
kono
parents:
diff changeset
653 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
654 (__v16sf) __B,
kono
parents:
diff changeset
655 (__v16sf)
kono
parents:
diff changeset
656 _mm512_setzero_ps (),
kono
parents:
diff changeset
657 (__mmask16) __U);
kono
parents:
diff changeset
658 }
kono
parents:
diff changeset
659
kono
parents:
diff changeset
660 extern __inline __mmask16
kono
parents:
diff changeset
661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
662 _mm512_movepi32_mask (__m512i __A)
kono
parents:
diff changeset
663 {
kono
parents:
diff changeset
664 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
kono
parents:
diff changeset
665 }
kono
parents:
diff changeset
666
kono
parents:
diff changeset
667 extern __inline __mmask8
kono
parents:
diff changeset
668 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
669 _mm512_movepi64_mask (__m512i __A)
kono
parents:
diff changeset
670 {
kono
parents:
diff changeset
671 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
kono
parents:
diff changeset
672 }
kono
parents:
diff changeset
673
kono
parents:
diff changeset
674 extern __inline __m512i
kono
parents:
diff changeset
675 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
676 _mm512_movm_epi32 (__mmask16 __A)
kono
parents:
diff changeset
677 {
kono
parents:
diff changeset
678 return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
kono
parents:
diff changeset
679 }
kono
parents:
diff changeset
680
kono
parents:
diff changeset
681 extern __inline __m512i
kono
parents:
diff changeset
682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
683 _mm512_movm_epi64 (__mmask8 __A)
kono
parents:
diff changeset
684 {
kono
parents:
diff changeset
685 return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
kono
parents:
diff changeset
686 }
kono
parents:
diff changeset
687
kono
parents:
diff changeset
688 extern __inline __m512i
kono
parents:
diff changeset
689 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
690 _mm512_cvttpd_epi64 (__m512d __A)
kono
parents:
diff changeset
691 {
kono
parents:
diff changeset
692 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
693 (__v8di)
kono
parents:
diff changeset
694 _mm512_setzero_si512 (),
kono
parents:
diff changeset
695 (__mmask8) -1,
kono
parents:
diff changeset
696 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
697 }
kono
parents:
diff changeset
698
kono
parents:
diff changeset
699 extern __inline __m512i
kono
parents:
diff changeset
700 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
701 _mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
kono
parents:
diff changeset
702 {
kono
parents:
diff changeset
703 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
704 (__v8di) __W,
kono
parents:
diff changeset
705 (__mmask8) __U,
kono
parents:
diff changeset
706 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
707 }
kono
parents:
diff changeset
708
kono
parents:
diff changeset
709 extern __inline __m512i
kono
parents:
diff changeset
710 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
711 _mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A)
kono
parents:
diff changeset
712 {
kono
parents:
diff changeset
713 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
714 (__v8di)
kono
parents:
diff changeset
715 _mm512_setzero_si512 (),
kono
parents:
diff changeset
716 (__mmask8) __U,
kono
parents:
diff changeset
717 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
718 }
kono
parents:
diff changeset
719
kono
parents:
diff changeset
720 extern __inline __m512i
kono
parents:
diff changeset
721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
722 _mm512_cvttpd_epu64 (__m512d __A)
kono
parents:
diff changeset
723 {
kono
parents:
diff changeset
724 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
725 (__v8di)
kono
parents:
diff changeset
726 _mm512_setzero_si512 (),
kono
parents:
diff changeset
727 (__mmask8) -1,
kono
parents:
diff changeset
728 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
729 }
kono
parents:
diff changeset
730
kono
parents:
diff changeset
731 extern __inline __m512i
kono
parents:
diff changeset
732 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
733 _mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
kono
parents:
diff changeset
734 {
kono
parents:
diff changeset
735 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
736 (__v8di) __W,
kono
parents:
diff changeset
737 (__mmask8) __U,
kono
parents:
diff changeset
738 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
739 }
kono
parents:
diff changeset
740
kono
parents:
diff changeset
741 extern __inline __m512i
kono
parents:
diff changeset
742 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
743 _mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A)
kono
parents:
diff changeset
744 {
kono
parents:
diff changeset
745 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
746 (__v8di)
kono
parents:
diff changeset
747 _mm512_setzero_si512 (),
kono
parents:
diff changeset
748 (__mmask8) __U,
kono
parents:
diff changeset
749 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
750 }
kono
parents:
diff changeset
751
kono
parents:
diff changeset
752 extern __inline __m512i
kono
parents:
diff changeset
753 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
754 _mm512_cvttps_epi64 (__m256 __A)
kono
parents:
diff changeset
755 {
kono
parents:
diff changeset
756 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
757 (__v8di)
kono
parents:
diff changeset
758 _mm512_setzero_si512 (),
kono
parents:
diff changeset
759 (__mmask8) -1,
kono
parents:
diff changeset
760 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
761 }
kono
parents:
diff changeset
762
kono
parents:
diff changeset
763 extern __inline __m512i
kono
parents:
diff changeset
764 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
765 _mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
kono
parents:
diff changeset
766 {
kono
parents:
diff changeset
767 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
768 (__v8di) __W,
kono
parents:
diff changeset
769 (__mmask8) __U,
kono
parents:
diff changeset
770 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
771 }
kono
parents:
diff changeset
772
kono
parents:
diff changeset
773 extern __inline __m512i
kono
parents:
diff changeset
774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
775 _mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A)
kono
parents:
diff changeset
776 {
kono
parents:
diff changeset
777 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
778 (__v8di)
kono
parents:
diff changeset
779 _mm512_setzero_si512 (),
kono
parents:
diff changeset
780 (__mmask8) __U,
kono
parents:
diff changeset
781 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
782 }
kono
parents:
diff changeset
783
kono
parents:
diff changeset
784 extern __inline __m512i
kono
parents:
diff changeset
785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
786 _mm512_cvttps_epu64 (__m256 __A)
kono
parents:
diff changeset
787 {
kono
parents:
diff changeset
788 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
789 (__v8di)
kono
parents:
diff changeset
790 _mm512_setzero_si512 (),
kono
parents:
diff changeset
791 (__mmask8) -1,
kono
parents:
diff changeset
792 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
793 }
kono
parents:
diff changeset
794
kono
parents:
diff changeset
795 extern __inline __m512i
kono
parents:
diff changeset
796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
797 _mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
kono
parents:
diff changeset
798 {
kono
parents:
diff changeset
799 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
800 (__v8di) __W,
kono
parents:
diff changeset
801 (__mmask8) __U,
kono
parents:
diff changeset
802 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
803 }
kono
parents:
diff changeset
804
kono
parents:
diff changeset
805 extern __inline __m512i
kono
parents:
diff changeset
806 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
807 _mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A)
kono
parents:
diff changeset
808 {
kono
parents:
diff changeset
809 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
810 (__v8di)
kono
parents:
diff changeset
811 _mm512_setzero_si512 (),
kono
parents:
diff changeset
812 (__mmask8) __U,
kono
parents:
diff changeset
813 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
814 }
kono
parents:
diff changeset
815
kono
parents:
diff changeset
816 extern __inline __m512i
kono
parents:
diff changeset
817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
818 _mm512_cvtpd_epi64 (__m512d __A)
kono
parents:
diff changeset
819 {
kono
parents:
diff changeset
820 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
821 (__v8di)
kono
parents:
diff changeset
822 _mm512_setzero_si512 (),
kono
parents:
diff changeset
823 (__mmask8) -1,
kono
parents:
diff changeset
824 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
825 }
kono
parents:
diff changeset
826
kono
parents:
diff changeset
827 extern __inline __m512i
kono
parents:
diff changeset
828 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
829 _mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A)
kono
parents:
diff changeset
830 {
kono
parents:
diff changeset
831 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
832 (__v8di) __W,
kono
parents:
diff changeset
833 (__mmask8) __U,
kono
parents:
diff changeset
834 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
835 }
kono
parents:
diff changeset
836
kono
parents:
diff changeset
837 extern __inline __m512i
kono
parents:
diff changeset
838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
839 _mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A)
kono
parents:
diff changeset
840 {
kono
parents:
diff changeset
841 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
842 (__v8di)
kono
parents:
diff changeset
843 _mm512_setzero_si512 (),
kono
parents:
diff changeset
844 (__mmask8) __U,
kono
parents:
diff changeset
845 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
846 }
kono
parents:
diff changeset
847
kono
parents:
diff changeset
848 extern __inline __m512i
kono
parents:
diff changeset
849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
850 _mm512_cvtpd_epu64 (__m512d __A)
kono
parents:
diff changeset
851 {
kono
parents:
diff changeset
852 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
853 (__v8di)
kono
parents:
diff changeset
854 _mm512_setzero_si512 (),
kono
parents:
diff changeset
855 (__mmask8) -1,
kono
parents:
diff changeset
856 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
857 }
kono
parents:
diff changeset
858
kono
parents:
diff changeset
859 extern __inline __m512i
kono
parents:
diff changeset
860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
861 _mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A)
kono
parents:
diff changeset
862 {
kono
parents:
diff changeset
863 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
864 (__v8di) __W,
kono
parents:
diff changeset
865 (__mmask8) __U,
kono
parents:
diff changeset
866 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
867 }
kono
parents:
diff changeset
868
kono
parents:
diff changeset
869 extern __inline __m512i
kono
parents:
diff changeset
870 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
871 _mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A)
kono
parents:
diff changeset
872 {
kono
parents:
diff changeset
873 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
874 (__v8di)
kono
parents:
diff changeset
875 _mm512_setzero_si512 (),
kono
parents:
diff changeset
876 (__mmask8) __U,
kono
parents:
diff changeset
877 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
878 }
kono
parents:
diff changeset
879
kono
parents:
diff changeset
880 extern __inline __m512i
kono
parents:
diff changeset
881 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
882 _mm512_cvtps_epi64 (__m256 __A)
kono
parents:
diff changeset
883 {
kono
parents:
diff changeset
884 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
885 (__v8di)
kono
parents:
diff changeset
886 _mm512_setzero_si512 (),
kono
parents:
diff changeset
887 (__mmask8) -1,
kono
parents:
diff changeset
888 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
889 }
kono
parents:
diff changeset
890
kono
parents:
diff changeset
891 extern __inline __m512i
kono
parents:
diff changeset
892 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
893 _mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A)
kono
parents:
diff changeset
894 {
kono
parents:
diff changeset
895 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
896 (__v8di) __W,
kono
parents:
diff changeset
897 (__mmask8) __U,
kono
parents:
diff changeset
898 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
899 }
kono
parents:
diff changeset
900
kono
parents:
diff changeset
901 extern __inline __m512i
kono
parents:
diff changeset
902 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
903 _mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A)
kono
parents:
diff changeset
904 {
kono
parents:
diff changeset
905 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
906 (__v8di)
kono
parents:
diff changeset
907 _mm512_setzero_si512 (),
kono
parents:
diff changeset
908 (__mmask8) __U,
kono
parents:
diff changeset
909 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
910 }
kono
parents:
diff changeset
911
kono
parents:
diff changeset
912 extern __inline __m512i
kono
parents:
diff changeset
913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
914 _mm512_cvtps_epu64 (__m256 __A)
kono
parents:
diff changeset
915 {
kono
parents:
diff changeset
916 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
917 (__v8di)
kono
parents:
diff changeset
918 _mm512_setzero_si512 (),
kono
parents:
diff changeset
919 (__mmask8) -1,
kono
parents:
diff changeset
920 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
921 }
kono
parents:
diff changeset
922
kono
parents:
diff changeset
923 extern __inline __m512i
kono
parents:
diff changeset
924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
925 _mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A)
kono
parents:
diff changeset
926 {
kono
parents:
diff changeset
927 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
928 (__v8di) __W,
kono
parents:
diff changeset
929 (__mmask8) __U,
kono
parents:
diff changeset
930 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
931 }
kono
parents:
diff changeset
932
kono
parents:
diff changeset
933 extern __inline __m512i
kono
parents:
diff changeset
934 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
935 _mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A)
kono
parents:
diff changeset
936 {
kono
parents:
diff changeset
937 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
938 (__v8di)
kono
parents:
diff changeset
939 _mm512_setzero_si512 (),
kono
parents:
diff changeset
940 (__mmask8) __U,
kono
parents:
diff changeset
941 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
942 }
kono
parents:
diff changeset
943
kono
parents:
diff changeset
944 extern __inline __m256
kono
parents:
diff changeset
945 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
946 _mm512_cvtepi64_ps (__m512i __A)
kono
parents:
diff changeset
947 {
kono
parents:
diff changeset
948 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
949 (__v8sf)
kono
parents:
diff changeset
950 _mm256_setzero_ps (),
kono
parents:
diff changeset
951 (__mmask8) -1,
kono
parents:
diff changeset
952 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
953 }
kono
parents:
diff changeset
954
kono
parents:
diff changeset
955 extern __inline __m256
kono
parents:
diff changeset
956 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
957 _mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A)
kono
parents:
diff changeset
958 {
kono
parents:
diff changeset
959 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
960 (__v8sf) __W,
kono
parents:
diff changeset
961 (__mmask8) __U,
kono
parents:
diff changeset
962 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
963 }
kono
parents:
diff changeset
964
kono
parents:
diff changeset
965 extern __inline __m256
kono
parents:
diff changeset
966 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
967 _mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A)
kono
parents:
diff changeset
968 {
kono
parents:
diff changeset
969 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
970 (__v8sf)
kono
parents:
diff changeset
971 _mm256_setzero_ps (),
kono
parents:
diff changeset
972 (__mmask8) __U,
kono
parents:
diff changeset
973 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
974 }
kono
parents:
diff changeset
975
kono
parents:
diff changeset
976 extern __inline __m256
kono
parents:
diff changeset
977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
978 _mm512_cvtepu64_ps (__m512i __A)
kono
parents:
diff changeset
979 {
kono
parents:
diff changeset
980 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
981 (__v8sf)
kono
parents:
diff changeset
982 _mm256_setzero_ps (),
kono
parents:
diff changeset
983 (__mmask8) -1,
kono
parents:
diff changeset
984 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
985 }
kono
parents:
diff changeset
986
kono
parents:
diff changeset
987 extern __inline __m256
kono
parents:
diff changeset
988 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
989 _mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A)
kono
parents:
diff changeset
990 {
kono
parents:
diff changeset
991 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
992 (__v8sf) __W,
kono
parents:
diff changeset
993 (__mmask8) __U,
kono
parents:
diff changeset
994 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
995 }
kono
parents:
diff changeset
996
kono
parents:
diff changeset
997 extern __inline __m256
kono
parents:
diff changeset
998 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
999 _mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A)
kono
parents:
diff changeset
1000 {
kono
parents:
diff changeset
1001 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1002 (__v8sf)
kono
parents:
diff changeset
1003 _mm256_setzero_ps (),
kono
parents:
diff changeset
1004 (__mmask8) __U,
kono
parents:
diff changeset
1005 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1006 }
kono
parents:
diff changeset
1007
kono
parents:
diff changeset
1008 extern __inline __m512d
kono
parents:
diff changeset
1009 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1010 _mm512_cvtepi64_pd (__m512i __A)
kono
parents:
diff changeset
1011 {
kono
parents:
diff changeset
1012 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1013 (__v8df)
kono
parents:
diff changeset
1014 _mm512_setzero_pd (),
kono
parents:
diff changeset
1015 (__mmask8) -1,
kono
parents:
diff changeset
1016 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1017 }
kono
parents:
diff changeset
1018
kono
parents:
diff changeset
1019 extern __inline __m512d
kono
parents:
diff changeset
1020 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1021 _mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A)
kono
parents:
diff changeset
1022 {
kono
parents:
diff changeset
1023 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1024 (__v8df) __W,
kono
parents:
diff changeset
1025 (__mmask8) __U,
kono
parents:
diff changeset
1026 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1027 }
kono
parents:
diff changeset
1028
kono
parents:
diff changeset
1029 extern __inline __m512d
kono
parents:
diff changeset
1030 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1031 _mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A)
kono
parents:
diff changeset
1032 {
kono
parents:
diff changeset
1033 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1034 (__v8df)
kono
parents:
diff changeset
1035 _mm512_setzero_pd (),
kono
parents:
diff changeset
1036 (__mmask8) __U,
kono
parents:
diff changeset
1037 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1038 }
kono
parents:
diff changeset
1039
kono
parents:
diff changeset
1040 extern __inline __m512d
kono
parents:
diff changeset
1041 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1042 _mm512_cvtepu64_pd (__m512i __A)
kono
parents:
diff changeset
1043 {
kono
parents:
diff changeset
1044 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1045 (__v8df)
kono
parents:
diff changeset
1046 _mm512_setzero_pd (),
kono
parents:
diff changeset
1047 (__mmask8) -1,
kono
parents:
diff changeset
1048 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1049 }
kono
parents:
diff changeset
1050
kono
parents:
diff changeset
1051 extern __inline __m512d
kono
parents:
diff changeset
1052 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1053 _mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A)
kono
parents:
diff changeset
1054 {
kono
parents:
diff changeset
1055 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1056 (__v8df) __W,
kono
parents:
diff changeset
1057 (__mmask8) __U,
kono
parents:
diff changeset
1058 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1059 }
kono
parents:
diff changeset
1060
kono
parents:
diff changeset
1061 extern __inline __m512d
kono
parents:
diff changeset
1062 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1063 _mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A)
kono
parents:
diff changeset
1064 {
kono
parents:
diff changeset
1065 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1066 (__v8df)
kono
parents:
diff changeset
1067 _mm512_setzero_pd (),
kono
parents:
diff changeset
1068 (__mmask8) __U,
kono
parents:
diff changeset
1069 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1070 }
kono
parents:
diff changeset
1071
kono
parents:
diff changeset
1072 #ifdef __OPTIMIZE__
kono
parents:
diff changeset
1073 extern __inline __mmask8
kono
parents:
diff changeset
1074 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1075 _kshiftli_mask8 (__mmask8 __A, unsigned int __B)
kono
parents:
diff changeset
1076 {
kono
parents:
diff changeset
1077 return (__mmask8) __builtin_ia32_kshiftliqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
1078 }
kono
parents:
diff changeset
1079
kono
parents:
diff changeset
1080 extern __inline __mmask8
kono
parents:
diff changeset
1081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1082 _kshiftri_mask8 (__mmask8 __A, unsigned int __B)
kono
parents:
diff changeset
1083 {
kono
parents:
diff changeset
1084 return (__mmask8) __builtin_ia32_kshiftriqi ((__mmask8) __A, (__mmask8) __B);
kono
parents:
diff changeset
1085 }
kono
parents:
diff changeset
1086
kono
parents:
diff changeset
1087 extern __inline __m512d
kono
parents:
diff changeset
1088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1089 _mm512_range_pd (__m512d __A, __m512d __B, int __C)
kono
parents:
diff changeset
1090 {
kono
parents:
diff changeset
1091 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
kono
parents:
diff changeset
1092 (__v8df) __B, __C,
kono
parents:
diff changeset
1093 (__v8df)
kono
parents:
diff changeset
1094 _mm512_setzero_pd (),
kono
parents:
diff changeset
1095 (__mmask8) -1,
kono
parents:
diff changeset
1096 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1097 }
kono
parents:
diff changeset
1098
kono
parents:
diff changeset
1099 extern __inline __m512d
kono
parents:
diff changeset
1100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1101 _mm512_mask_range_pd (__m512d __W, __mmask8 __U,
kono
parents:
diff changeset
1102 __m512d __A, __m512d __B, int __C)
kono
parents:
diff changeset
1103 {
kono
parents:
diff changeset
1104 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
kono
parents:
diff changeset
1105 (__v8df) __B, __C,
kono
parents:
diff changeset
1106 (__v8df) __W,
kono
parents:
diff changeset
1107 (__mmask8) __U,
kono
parents:
diff changeset
1108 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1109 }
kono
parents:
diff changeset
1110
kono
parents:
diff changeset
1111 extern __inline __m512d
kono
parents:
diff changeset
1112 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1113 _mm512_maskz_range_pd (__mmask8 __U, __m512d __A, __m512d __B, int __C)
kono
parents:
diff changeset
1114 {
kono
parents:
diff changeset
1115 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
kono
parents:
diff changeset
1116 (__v8df) __B, __C,
kono
parents:
diff changeset
1117 (__v8df)
kono
parents:
diff changeset
1118 _mm512_setzero_pd (),
kono
parents:
diff changeset
1119 (__mmask8) __U,
kono
parents:
diff changeset
1120 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1121 }
kono
parents:
diff changeset
1122
kono
parents:
diff changeset
1123 extern __inline __m512
kono
parents:
diff changeset
1124 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1125 _mm512_range_ps (__m512 __A, __m512 __B, int __C)
kono
parents:
diff changeset
1126 {
kono
parents:
diff changeset
1127 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
1128 (__v16sf) __B, __C,
kono
parents:
diff changeset
1129 (__v16sf)
kono
parents:
diff changeset
1130 _mm512_setzero_ps (),
kono
parents:
diff changeset
1131 (__mmask16) -1,
kono
parents:
diff changeset
1132 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1133 }
kono
parents:
diff changeset
1134
kono
parents:
diff changeset
1135 extern __inline __m512
kono
parents:
diff changeset
1136 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1137 _mm512_mask_range_ps (__m512 __W, __mmask16 __U,
kono
parents:
diff changeset
1138 __m512 __A, __m512 __B, int __C)
kono
parents:
diff changeset
1139 {
kono
parents:
diff changeset
1140 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
1141 (__v16sf) __B, __C,
kono
parents:
diff changeset
1142 (__v16sf) __W,
kono
parents:
diff changeset
1143 (__mmask16) __U,
kono
parents:
diff changeset
1144 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1145 }
kono
parents:
diff changeset
1146
kono
parents:
diff changeset
1147 extern __inline __m512
kono
parents:
diff changeset
1148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1149 _mm512_maskz_range_ps (__mmask16 __U, __m512 __A, __m512 __B, int __C)
kono
parents:
diff changeset
1150 {
kono
parents:
diff changeset
1151 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
1152 (__v16sf) __B, __C,
kono
parents:
diff changeset
1153 (__v16sf)
kono
parents:
diff changeset
1154 _mm512_setzero_ps (),
kono
parents:
diff changeset
1155 (__mmask16) __U,
kono
parents:
diff changeset
1156 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1157 }
kono
parents:
diff changeset
1158
kono
parents:
diff changeset
1159 extern __inline __m128d
kono
parents:
diff changeset
1160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1161 _mm_reduce_sd (__m128d __A, __m128d __B, int __C)
kono
parents:
diff changeset
1162 {
kono
parents:
diff changeset
1163 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
kono
parents:
diff changeset
1164 (__v2df) __B, __C,
kono
parents:
diff changeset
1165 (__v2df) _mm_setzero_pd (),
kono
parents:
diff changeset
1166 (__mmask8) -1);
kono
parents:
diff changeset
1167 }
kono
parents:
diff changeset
1168
kono
parents:
diff changeset
1169 extern __inline __m128d
kono
parents:
diff changeset
1170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1171 _mm_mask_reduce_sd (__m128d __W, __mmask8 __U, __m128d __A,
kono
parents:
diff changeset
1172 __m128d __B, int __C)
kono
parents:
diff changeset
1173 {
kono
parents:
diff changeset
1174 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
kono
parents:
diff changeset
1175 (__v2df) __B, __C,
kono
parents:
diff changeset
1176 (__v2df) __W,
kono
parents:
diff changeset
1177 (__mmask8) __U);
kono
parents:
diff changeset
1178 }
kono
parents:
diff changeset
1179
kono
parents:
diff changeset
1180 extern __inline __m128d
kono
parents:
diff changeset
1181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1182 _mm_maskz_reduce_sd (__mmask8 __U, __m128d __A, __m128d __B, int __C)
kono
parents:
diff changeset
1183 {
kono
parents:
diff changeset
1184 return (__m128d) __builtin_ia32_reducesd_mask ((__v2df) __A,
kono
parents:
diff changeset
1185 (__v2df) __B, __C,
kono
parents:
diff changeset
1186 (__v2df) _mm_setzero_pd (),
kono
parents:
diff changeset
1187 (__mmask8) __U);
kono
parents:
diff changeset
1188 }
kono
parents:
diff changeset
1189
kono
parents:
diff changeset
1190 extern __inline __m128
kono
parents:
diff changeset
1191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1192 _mm_reduce_ss (__m128 __A, __m128 __B, int __C)
kono
parents:
diff changeset
1193 {
kono
parents:
diff changeset
1194 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
kono
parents:
diff changeset
1195 (__v4sf) __B, __C,
kono
parents:
diff changeset
1196 (__v4sf) _mm_setzero_ps (),
kono
parents:
diff changeset
1197 (__mmask8) -1);
kono
parents:
diff changeset
1198 }
kono
parents:
diff changeset
1199
kono
parents:
diff changeset
1200
kono
parents:
diff changeset
1201 extern __inline __m128
kono
parents:
diff changeset
1202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1203 _mm_mask_reduce_ss (__m128 __W, __mmask8 __U, __m128 __A,
kono
parents:
diff changeset
1204 __m128 __B, int __C)
kono
parents:
diff changeset
1205 {
kono
parents:
diff changeset
1206 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
kono
parents:
diff changeset
1207 (__v4sf) __B, __C,
kono
parents:
diff changeset
1208 (__v4sf) __W,
kono
parents:
diff changeset
1209 (__mmask8) __U);
kono
parents:
diff changeset
1210 }
kono
parents:
diff changeset
1211
kono
parents:
diff changeset
1212 extern __inline __m128
kono
parents:
diff changeset
1213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1214 _mm_maskz_reduce_ss (__mmask8 __U, __m128 __A, __m128 __B, int __C)
kono
parents:
diff changeset
1215 {
kono
parents:
diff changeset
1216 return (__m128) __builtin_ia32_reducess_mask ((__v4sf) __A,
kono
parents:
diff changeset
1217 (__v4sf) __B, __C,
kono
parents:
diff changeset
1218 (__v4sf) _mm_setzero_ps (),
kono
parents:
diff changeset
1219 (__mmask8) __U);
kono
parents:
diff changeset
1220 }
kono
parents:
diff changeset
1221
kono
parents:
diff changeset
1222 extern __inline __m128d
kono
parents:
diff changeset
1223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1224 _mm_range_sd (__m128d __A, __m128d __B, int __C)
kono
parents:
diff changeset
1225 {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1226 return (__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1227 (__v2df) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1228 (__v2df)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1229 _mm_setzero_pd (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1230 (__mmask8) -1,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1231 _MM_FROUND_CUR_DIRECTION);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1232 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1233
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1234 extern __inline __m128d
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1235 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1236 _mm_mask_range_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B, int __C)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1237 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1238 return (__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1239 (__v2df) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1240 (__v2df) __W,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1241 (__mmask8) __U,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1242 _MM_FROUND_CUR_DIRECTION);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1243 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1244
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1245 extern __inline __m128d
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1246 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1247 _mm_maskz_range_sd (__mmask8 __U, __m128d __A, __m128d __B, int __C)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1248 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1249 return (__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df) __A,
111
kono
parents:
diff changeset
1250 (__v2df) __B, __C,
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1251 (__v2df)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1252 _mm_setzero_pd (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1253 (__mmask8) __U,
111
kono
parents:
diff changeset
1254 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1255 }
kono
parents:
diff changeset
1256
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1257 extern __inline __m128
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1259 _mm_range_ss (__m128 __A, __m128 __B, int __C)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1260 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1261 return (__m128) __builtin_ia32_rangess128_mask_round ((__v4sf) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1262 (__v4sf) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1263 (__v4sf)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1264 _mm_setzero_ps (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1265 (__mmask8) -1,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1266 _MM_FROUND_CUR_DIRECTION);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1267 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1268
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1269 extern __inline __m128
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1270 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1271 _mm_mask_range_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B, int __C)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1272 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1273 return (__m128) __builtin_ia32_rangess128_mask_round ((__v4sf) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1274 (__v4sf) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1275 (__v4sf) __W,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1276 (__mmask8) __U,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1277 _MM_FROUND_CUR_DIRECTION);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1278 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1279
111
kono
parents:
diff changeset
1280
kono
parents:
diff changeset
1281 extern __inline __m128
kono
parents:
diff changeset
1282 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1283 _mm_maskz_range_ss (__mmask8 __U, __m128 __A, __m128 __B, int __C)
111
kono
parents:
diff changeset
1284 {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1285 return (__m128) __builtin_ia32_rangess128_mask_round ((__v4sf) __A,
111
kono
parents:
diff changeset
1286 (__v4sf) __B, __C,
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1287 (__v4sf)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1288 _mm_setzero_ps (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1289 (__mmask8) __U,
111
kono
parents:
diff changeset
1290 _MM_FROUND_CUR_DIRECTION);
kono
parents:
diff changeset
1291 }
kono
parents:
diff changeset
1292
kono
parents:
diff changeset
1293 extern __inline __m128d
kono
parents:
diff changeset
1294 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1295 _mm_range_round_sd (__m128d __A, __m128d __B, int __C, const int __R)
kono
parents:
diff changeset
1296 {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1297 return (__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1298 (__v2df) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1299 (__v2df)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1300 _mm_setzero_pd (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1301 (__mmask8) -1, __R);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1302 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1303
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1304 extern __inline __m128d
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1305 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1306 _mm_mask_range_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1307 int __C, const int __R)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1308 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1309 return (__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df) __A,
111
kono
parents:
diff changeset
1310 (__v2df) __B, __C,
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1311 (__v2df) __W,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1312 (__mmask8) __U, __R);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1313 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1314
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1315 extern __inline __m128d
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1316 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1317 _mm_maskz_range_round_sd (__mmask8 __U, __m128d __A, __m128d __B, int __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1318 const int __R)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1319 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1320 return (__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1321 (__v2df) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1322 (__v2df)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1323 _mm_setzero_pd (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1324 (__mmask8) __U, __R);
111
kono
parents:
diff changeset
1325 }
kono
parents:
diff changeset
1326
kono
parents:
diff changeset
1327 extern __inline __m128
kono
parents:
diff changeset
1328 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1329 _mm_range_round_ss (__m128 __A, __m128 __B, int __C, const int __R)
kono
parents:
diff changeset
1330 {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1331 return (__m128) __builtin_ia32_rangess128_mask_round ((__v4sf) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1332 (__v4sf) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1333 (__v4sf)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1334 _mm_setzero_ps (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1335 (__mmask8) -1, __R);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1336 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1337
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1338 extern __inline __m128
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1339 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1340 _mm_mask_range_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1341 int __C, const int __R)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1342 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1343 return (__m128) __builtin_ia32_rangess128_mask_round ((__v4sf) __A,
111
kono
parents:
diff changeset
1344 (__v4sf) __B, __C,
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1345 (__v4sf) __W,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1346 (__mmask8) __U, __R);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1347 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1348
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1349 extern __inline __m128
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1351 _mm_maskz_range_round_ss (__mmask8 __U, __m128 __A, __m128 __B, int __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1352 const int __R)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1353 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1354 return (__m128) __builtin_ia32_rangess128_mask_round ((__v4sf) __A,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1355 (__v4sf) __B, __C,
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1356 (__v4sf)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1357 _mm_setzero_ps (),
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1358 (__mmask8) __U, __R);
111
kono
parents:
diff changeset
1359 }
kono
parents:
diff changeset
1360
kono
parents:
diff changeset
1361 extern __inline __mmask8
kono
parents:
diff changeset
1362 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1363 _mm_fpclass_ss_mask (__m128 __A, const int __imm)
kono
parents:
diff changeset
1364 {
kono
parents:
diff changeset
1365 return (__mmask8) __builtin_ia32_fpclassss ((__v4sf) __A, __imm);
kono
parents:
diff changeset
1366 }
kono
parents:
diff changeset
1367
kono
parents:
diff changeset
1368 extern __inline __mmask8
kono
parents:
diff changeset
1369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1370 _mm_fpclass_sd_mask (__m128d __A, const int __imm)
kono
parents:
diff changeset
1371 {
kono
parents:
diff changeset
1372 return (__mmask8) __builtin_ia32_fpclasssd ((__v2df) __A, __imm);
kono
parents:
diff changeset
1373 }
kono
parents:
diff changeset
1374
kono
parents:
diff changeset
1375 extern __inline __m512i
kono
parents:
diff changeset
1376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1377 _mm512_cvtt_roundpd_epi64 (__m512d __A, const int __R)
kono
parents:
diff changeset
1378 {
kono
parents:
diff changeset
1379 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1380 (__v8di)
kono
parents:
diff changeset
1381 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1382 (__mmask8) -1,
kono
parents:
diff changeset
1383 __R);
kono
parents:
diff changeset
1384 }
kono
parents:
diff changeset
1385
kono
parents:
diff changeset
1386 extern __inline __m512i
kono
parents:
diff changeset
1387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1388 _mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1389 const int __R)
kono
parents:
diff changeset
1390 {
kono
parents:
diff changeset
1391 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1392 (__v8di) __W,
kono
parents:
diff changeset
1393 (__mmask8) __U,
kono
parents:
diff changeset
1394 __R);
kono
parents:
diff changeset
1395 }
kono
parents:
diff changeset
1396
kono
parents:
diff changeset
1397 extern __inline __m512i
kono
parents:
diff changeset
1398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1399 _mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1400 const int __R)
kono
parents:
diff changeset
1401 {
kono
parents:
diff changeset
1402 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1403 (__v8di)
kono
parents:
diff changeset
1404 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1405 (__mmask8) __U,
kono
parents:
diff changeset
1406 __R);
kono
parents:
diff changeset
1407 }
kono
parents:
diff changeset
1408
kono
parents:
diff changeset
1409 extern __inline __m512i
kono
parents:
diff changeset
1410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1411 _mm512_cvtt_roundpd_epu64 (__m512d __A, const int __R)
kono
parents:
diff changeset
1412 {
kono
parents:
diff changeset
1413 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1414 (__v8di)
kono
parents:
diff changeset
1415 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1416 (__mmask8) -1,
kono
parents:
diff changeset
1417 __R);
kono
parents:
diff changeset
1418 }
kono
parents:
diff changeset
1419
kono
parents:
diff changeset
1420 extern __inline __m512i
kono
parents:
diff changeset
1421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1422 _mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1423 const int __R)
kono
parents:
diff changeset
1424 {
kono
parents:
diff changeset
1425 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1426 (__v8di) __W,
kono
parents:
diff changeset
1427 (__mmask8) __U,
kono
parents:
diff changeset
1428 __R);
kono
parents:
diff changeset
1429 }
kono
parents:
diff changeset
1430
kono
parents:
diff changeset
1431 extern __inline __m512i
kono
parents:
diff changeset
1432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1433 _mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1434 const int __R)
kono
parents:
diff changeset
1435 {
kono
parents:
diff changeset
1436 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1437 (__v8di)
kono
parents:
diff changeset
1438 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1439 (__mmask8) __U,
kono
parents:
diff changeset
1440 __R);
kono
parents:
diff changeset
1441 }
kono
parents:
diff changeset
1442
kono
parents:
diff changeset
1443 extern __inline __m512i
kono
parents:
diff changeset
1444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1445 _mm512_cvtt_roundps_epi64 (__m256 __A, const int __R)
kono
parents:
diff changeset
1446 {
kono
parents:
diff changeset
1447 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1448 (__v8di)
kono
parents:
diff changeset
1449 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1450 (__mmask8) -1,
kono
parents:
diff changeset
1451 __R);
kono
parents:
diff changeset
1452 }
kono
parents:
diff changeset
1453
kono
parents:
diff changeset
1454 extern __inline __m512i
kono
parents:
diff changeset
1455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1456 _mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1457 const int __R)
kono
parents:
diff changeset
1458 {
kono
parents:
diff changeset
1459 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1460 (__v8di) __W,
kono
parents:
diff changeset
1461 (__mmask8) __U,
kono
parents:
diff changeset
1462 __R);
kono
parents:
diff changeset
1463 }
kono
parents:
diff changeset
1464
kono
parents:
diff changeset
1465 extern __inline __m512i
kono
parents:
diff changeset
1466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1467 _mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1468 const int __R)
kono
parents:
diff changeset
1469 {
kono
parents:
diff changeset
1470 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1471 (__v8di)
kono
parents:
diff changeset
1472 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1473 (__mmask8) __U,
kono
parents:
diff changeset
1474 __R);
kono
parents:
diff changeset
1475 }
kono
parents:
diff changeset
1476
kono
parents:
diff changeset
1477 extern __inline __m512i
kono
parents:
diff changeset
1478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1479 _mm512_cvtt_roundps_epu64 (__m256 __A, const int __R)
kono
parents:
diff changeset
1480 {
kono
parents:
diff changeset
1481 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1482 (__v8di)
kono
parents:
diff changeset
1483 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1484 (__mmask8) -1,
kono
parents:
diff changeset
1485 __R);
kono
parents:
diff changeset
1486 }
kono
parents:
diff changeset
1487
kono
parents:
diff changeset
1488 extern __inline __m512i
kono
parents:
diff changeset
1489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1490 _mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1491 const int __R)
kono
parents:
diff changeset
1492 {
kono
parents:
diff changeset
1493 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1494 (__v8di) __W,
kono
parents:
diff changeset
1495 (__mmask8) __U,
kono
parents:
diff changeset
1496 __R);
kono
parents:
diff changeset
1497 }
kono
parents:
diff changeset
1498
kono
parents:
diff changeset
1499 extern __inline __m512i
kono
parents:
diff changeset
1500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1501 _mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1502 const int __R)
kono
parents:
diff changeset
1503 {
kono
parents:
diff changeset
1504 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1505 (__v8di)
kono
parents:
diff changeset
1506 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1507 (__mmask8) __U,
kono
parents:
diff changeset
1508 __R);
kono
parents:
diff changeset
1509 }
kono
parents:
diff changeset
1510
kono
parents:
diff changeset
1511 extern __inline __m512i
kono
parents:
diff changeset
1512 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1513 _mm512_cvt_roundpd_epi64 (__m512d __A, const int __R)
kono
parents:
diff changeset
1514 {
kono
parents:
diff changeset
1515 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1516 (__v8di)
kono
parents:
diff changeset
1517 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1518 (__mmask8) -1,
kono
parents:
diff changeset
1519 __R);
kono
parents:
diff changeset
1520 }
kono
parents:
diff changeset
1521
kono
parents:
diff changeset
1522 extern __inline __m512i
kono
parents:
diff changeset
1523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1524 _mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1525 const int __R)
kono
parents:
diff changeset
1526 {
kono
parents:
diff changeset
1527 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1528 (__v8di) __W,
kono
parents:
diff changeset
1529 (__mmask8) __U,
kono
parents:
diff changeset
1530 __R);
kono
parents:
diff changeset
1531 }
kono
parents:
diff changeset
1532
kono
parents:
diff changeset
1533 extern __inline __m512i
kono
parents:
diff changeset
1534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1535 _mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1536 const int __R)
kono
parents:
diff changeset
1537 {
kono
parents:
diff changeset
1538 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1539 (__v8di)
kono
parents:
diff changeset
1540 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1541 (__mmask8) __U,
kono
parents:
diff changeset
1542 __R);
kono
parents:
diff changeset
1543 }
kono
parents:
diff changeset
1544
kono
parents:
diff changeset
1545 extern __inline __m512i
kono
parents:
diff changeset
1546 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1547 _mm512_cvt_roundpd_epu64 (__m512d __A, const int __R)
kono
parents:
diff changeset
1548 {
kono
parents:
diff changeset
1549 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1550 (__v8di)
kono
parents:
diff changeset
1551 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1552 (__mmask8) -1,
kono
parents:
diff changeset
1553 __R);
kono
parents:
diff changeset
1554 }
kono
parents:
diff changeset
1555
kono
parents:
diff changeset
1556 extern __inline __m512i
kono
parents:
diff changeset
1557 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1558 _mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1559 const int __R)
kono
parents:
diff changeset
1560 {
kono
parents:
diff changeset
1561 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1562 (__v8di) __W,
kono
parents:
diff changeset
1563 (__mmask8) __U,
kono
parents:
diff changeset
1564 __R);
kono
parents:
diff changeset
1565 }
kono
parents:
diff changeset
1566
kono
parents:
diff changeset
1567 extern __inline __m512i
kono
parents:
diff changeset
1568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1569 _mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1570 const int __R)
kono
parents:
diff changeset
1571 {
kono
parents:
diff changeset
1572 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
kono
parents:
diff changeset
1573 (__v8di)
kono
parents:
diff changeset
1574 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1575 (__mmask8) __U,
kono
parents:
diff changeset
1576 __R);
kono
parents:
diff changeset
1577 }
kono
parents:
diff changeset
1578
kono
parents:
diff changeset
1579 extern __inline __m512i
kono
parents:
diff changeset
1580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1581 _mm512_cvt_roundps_epi64 (__m256 __A, const int __R)
kono
parents:
diff changeset
1582 {
kono
parents:
diff changeset
1583 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1584 (__v8di)
kono
parents:
diff changeset
1585 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1586 (__mmask8) -1,
kono
parents:
diff changeset
1587 __R);
kono
parents:
diff changeset
1588 }
kono
parents:
diff changeset
1589
kono
parents:
diff changeset
1590 extern __inline __m512i
kono
parents:
diff changeset
1591 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1592 _mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1593 const int __R)
kono
parents:
diff changeset
1594 {
kono
parents:
diff changeset
1595 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1596 (__v8di) __W,
kono
parents:
diff changeset
1597 (__mmask8) __U,
kono
parents:
diff changeset
1598 __R);
kono
parents:
diff changeset
1599 }
kono
parents:
diff changeset
1600
kono
parents:
diff changeset
1601 extern __inline __m512i
kono
parents:
diff changeset
1602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1603 _mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1604 const int __R)
kono
parents:
diff changeset
1605 {
kono
parents:
diff changeset
1606 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1607 (__v8di)
kono
parents:
diff changeset
1608 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1609 (__mmask8) __U,
kono
parents:
diff changeset
1610 __R);
kono
parents:
diff changeset
1611 }
kono
parents:
diff changeset
1612
kono
parents:
diff changeset
1613 extern __inline __m512i
kono
parents:
diff changeset
1614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1615 _mm512_cvt_roundps_epu64 (__m256 __A, const int __R)
kono
parents:
diff changeset
1616 {
kono
parents:
diff changeset
1617 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1618 (__v8di)
kono
parents:
diff changeset
1619 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1620 (__mmask8) -1,
kono
parents:
diff changeset
1621 __R);
kono
parents:
diff changeset
1622 }
kono
parents:
diff changeset
1623
kono
parents:
diff changeset
1624 extern __inline __m512i
kono
parents:
diff changeset
1625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1626 _mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1627 const int __R)
kono
parents:
diff changeset
1628 {
kono
parents:
diff changeset
1629 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1630 (__v8di) __W,
kono
parents:
diff changeset
1631 (__mmask8) __U,
kono
parents:
diff changeset
1632 __R);
kono
parents:
diff changeset
1633 }
kono
parents:
diff changeset
1634
kono
parents:
diff changeset
1635 extern __inline __m512i
kono
parents:
diff changeset
1636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1637 _mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A,
kono
parents:
diff changeset
1638 const int __R)
kono
parents:
diff changeset
1639 {
kono
parents:
diff changeset
1640 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
kono
parents:
diff changeset
1641 (__v8di)
kono
parents:
diff changeset
1642 _mm512_setzero_si512 (),
kono
parents:
diff changeset
1643 (__mmask8) __U,
kono
parents:
diff changeset
1644 __R);
kono
parents:
diff changeset
1645 }
kono
parents:
diff changeset
1646
kono
parents:
diff changeset
1647 extern __inline __m256
kono
parents:
diff changeset
1648 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1649 _mm512_cvt_roundepi64_ps (__m512i __A, const int __R)
kono
parents:
diff changeset
1650 {
kono
parents:
diff changeset
1651 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1652 (__v8sf)
kono
parents:
diff changeset
1653 _mm256_setzero_ps (),
kono
parents:
diff changeset
1654 (__mmask8) -1,
kono
parents:
diff changeset
1655 __R);
kono
parents:
diff changeset
1656 }
kono
parents:
diff changeset
1657
kono
parents:
diff changeset
1658 extern __inline __m256
kono
parents:
diff changeset
1659 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1660 _mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1661 const int __R)
kono
parents:
diff changeset
1662 {
kono
parents:
diff changeset
1663 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1664 (__v8sf) __W,
kono
parents:
diff changeset
1665 (__mmask8) __U,
kono
parents:
diff changeset
1666 __R);
kono
parents:
diff changeset
1667 }
kono
parents:
diff changeset
1668
kono
parents:
diff changeset
1669 extern __inline __m256
kono
parents:
diff changeset
1670 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1671 _mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1672 const int __R)
kono
parents:
diff changeset
1673 {
kono
parents:
diff changeset
1674 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1675 (__v8sf)
kono
parents:
diff changeset
1676 _mm256_setzero_ps (),
kono
parents:
diff changeset
1677 (__mmask8) __U,
kono
parents:
diff changeset
1678 __R);
kono
parents:
diff changeset
1679 }
kono
parents:
diff changeset
1680
kono
parents:
diff changeset
1681 extern __inline __m256
kono
parents:
diff changeset
1682 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1683 _mm512_cvt_roundepu64_ps (__m512i __A, const int __R)
kono
parents:
diff changeset
1684 {
kono
parents:
diff changeset
1685 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1686 (__v8sf)
kono
parents:
diff changeset
1687 _mm256_setzero_ps (),
kono
parents:
diff changeset
1688 (__mmask8) -1,
kono
parents:
diff changeset
1689 __R);
kono
parents:
diff changeset
1690 }
kono
parents:
diff changeset
1691
kono
parents:
diff changeset
1692 extern __inline __m256
kono
parents:
diff changeset
1693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1694 _mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1695 const int __R)
kono
parents:
diff changeset
1696 {
kono
parents:
diff changeset
1697 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1698 (__v8sf) __W,
kono
parents:
diff changeset
1699 (__mmask8) __U,
kono
parents:
diff changeset
1700 __R);
kono
parents:
diff changeset
1701 }
kono
parents:
diff changeset
1702
kono
parents:
diff changeset
1703 extern __inline __m256
kono
parents:
diff changeset
1704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1705 _mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1706 const int __R)
kono
parents:
diff changeset
1707 {
kono
parents:
diff changeset
1708 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
kono
parents:
diff changeset
1709 (__v8sf)
kono
parents:
diff changeset
1710 _mm256_setzero_ps (),
kono
parents:
diff changeset
1711 (__mmask8) __U,
kono
parents:
diff changeset
1712 __R);
kono
parents:
diff changeset
1713 }
kono
parents:
diff changeset
1714
kono
parents:
diff changeset
1715 extern __inline __m512d
kono
parents:
diff changeset
1716 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1717 _mm512_cvt_roundepi64_pd (__m512i __A, const int __R)
kono
parents:
diff changeset
1718 {
kono
parents:
diff changeset
1719 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1720 (__v8df)
kono
parents:
diff changeset
1721 _mm512_setzero_pd (),
kono
parents:
diff changeset
1722 (__mmask8) -1,
kono
parents:
diff changeset
1723 __R);
kono
parents:
diff changeset
1724 }
kono
parents:
diff changeset
1725
kono
parents:
diff changeset
1726 extern __inline __m512d
kono
parents:
diff changeset
1727 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1728 _mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1729 const int __R)
kono
parents:
diff changeset
1730 {
kono
parents:
diff changeset
1731 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1732 (__v8df) __W,
kono
parents:
diff changeset
1733 (__mmask8) __U,
kono
parents:
diff changeset
1734 __R);
kono
parents:
diff changeset
1735 }
kono
parents:
diff changeset
1736
kono
parents:
diff changeset
1737 extern __inline __m512d
kono
parents:
diff changeset
1738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1739 _mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1740 const int __R)
kono
parents:
diff changeset
1741 {
kono
parents:
diff changeset
1742 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1743 (__v8df)
kono
parents:
diff changeset
1744 _mm512_setzero_pd (),
kono
parents:
diff changeset
1745 (__mmask8) __U,
kono
parents:
diff changeset
1746 __R);
kono
parents:
diff changeset
1747 }
kono
parents:
diff changeset
1748
kono
parents:
diff changeset
1749 extern __inline __m512d
kono
parents:
diff changeset
1750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1751 _mm512_cvt_roundepu64_pd (__m512i __A, const int __R)
kono
parents:
diff changeset
1752 {
kono
parents:
diff changeset
1753 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1754 (__v8df)
kono
parents:
diff changeset
1755 _mm512_setzero_pd (),
kono
parents:
diff changeset
1756 (__mmask8) -1,
kono
parents:
diff changeset
1757 __R);
kono
parents:
diff changeset
1758 }
kono
parents:
diff changeset
1759
kono
parents:
diff changeset
1760 extern __inline __m512d
kono
parents:
diff changeset
1761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1762 _mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1763 const int __R)
kono
parents:
diff changeset
1764 {
kono
parents:
diff changeset
1765 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1766 (__v8df) __W,
kono
parents:
diff changeset
1767 (__mmask8) __U,
kono
parents:
diff changeset
1768 __R);
kono
parents:
diff changeset
1769 }
kono
parents:
diff changeset
1770
kono
parents:
diff changeset
1771 extern __inline __m512d
kono
parents:
diff changeset
1772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1773 _mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1774 const int __R)
kono
parents:
diff changeset
1775 {
kono
parents:
diff changeset
1776 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,
kono
parents:
diff changeset
1777 (__v8df)
kono
parents:
diff changeset
1778 _mm512_setzero_pd (),
kono
parents:
diff changeset
1779 (__mmask8) __U,
kono
parents:
diff changeset
1780 __R);
kono
parents:
diff changeset
1781 }
kono
parents:
diff changeset
1782
kono
parents:
diff changeset
1783 extern __inline __m512d
kono
parents:
diff changeset
1784 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1785 _mm512_reduce_pd (__m512d __A, int __B)
kono
parents:
diff changeset
1786 {
kono
parents:
diff changeset
1787 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
kono
parents:
diff changeset
1788 (__v8df)
kono
parents:
diff changeset
1789 _mm512_setzero_pd (),
kono
parents:
diff changeset
1790 (__mmask8) -1);
kono
parents:
diff changeset
1791 }
kono
parents:
diff changeset
1792
kono
parents:
diff changeset
1793 extern __inline __m512d
kono
parents:
diff changeset
1794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1795 _mm512_mask_reduce_pd (__m512d __W, __mmask8 __U, __m512d __A, int __B)
kono
parents:
diff changeset
1796 {
kono
parents:
diff changeset
1797 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
kono
parents:
diff changeset
1798 (__v8df) __W,
kono
parents:
diff changeset
1799 (__mmask8) __U);
kono
parents:
diff changeset
1800 }
kono
parents:
diff changeset
1801
kono
parents:
diff changeset
1802 extern __inline __m512d
kono
parents:
diff changeset
1803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1804 _mm512_maskz_reduce_pd (__mmask8 __U, __m512d __A, int __B)
kono
parents:
diff changeset
1805 {
kono
parents:
diff changeset
1806 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B,
kono
parents:
diff changeset
1807 (__v8df)
kono
parents:
diff changeset
1808 _mm512_setzero_pd (),
kono
parents:
diff changeset
1809 (__mmask8) __U);
kono
parents:
diff changeset
1810 }
kono
parents:
diff changeset
1811
kono
parents:
diff changeset
1812 extern __inline __m512
kono
parents:
diff changeset
1813 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1814 _mm512_reduce_ps (__m512 __A, int __B)
kono
parents:
diff changeset
1815 {
kono
parents:
diff changeset
1816 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
kono
parents:
diff changeset
1817 (__v16sf)
kono
parents:
diff changeset
1818 _mm512_setzero_ps (),
kono
parents:
diff changeset
1819 (__mmask16) -1);
kono
parents:
diff changeset
1820 }
kono
parents:
diff changeset
1821
kono
parents:
diff changeset
1822 extern __inline __m512
kono
parents:
diff changeset
1823 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1824 _mm512_mask_reduce_ps (__m512 __W, __mmask16 __U, __m512 __A, int __B)
kono
parents:
diff changeset
1825 {
kono
parents:
diff changeset
1826 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
kono
parents:
diff changeset
1827 (__v16sf) __W,
kono
parents:
diff changeset
1828 (__mmask16) __U);
kono
parents:
diff changeset
1829 }
kono
parents:
diff changeset
1830
kono
parents:
diff changeset
1831 extern __inline __m512
kono
parents:
diff changeset
1832 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1833 _mm512_maskz_reduce_ps (__mmask16 __U, __m512 __A, int __B)
kono
parents:
diff changeset
1834 {
kono
parents:
diff changeset
1835 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,
kono
parents:
diff changeset
1836 (__v16sf)
kono
parents:
diff changeset
1837 _mm512_setzero_ps (),
kono
parents:
diff changeset
1838 (__mmask16) __U);
kono
parents:
diff changeset
1839 }
kono
parents:
diff changeset
1840
kono
parents:
diff changeset
1841 extern __inline __m256
kono
parents:
diff changeset
1842 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1843 _mm512_extractf32x8_ps (__m512 __A, const int __imm)
kono
parents:
diff changeset
1844 {
kono
parents:
diff changeset
1845 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
kono
parents:
diff changeset
1846 __imm,
kono
parents:
diff changeset
1847 (__v8sf)
kono
parents:
diff changeset
1848 _mm256_setzero_ps (),
kono
parents:
diff changeset
1849 (__mmask8) -1);
kono
parents:
diff changeset
1850 }
kono
parents:
diff changeset
1851
kono
parents:
diff changeset
1852 extern __inline __m256
kono
parents:
diff changeset
1853 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1854 _mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A,
kono
parents:
diff changeset
1855 const int __imm)
kono
parents:
diff changeset
1856 {
kono
parents:
diff changeset
1857 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
kono
parents:
diff changeset
1858 __imm,
kono
parents:
diff changeset
1859 (__v8sf) __W,
kono
parents:
diff changeset
1860 (__mmask8) __U);
kono
parents:
diff changeset
1861 }
kono
parents:
diff changeset
1862
kono
parents:
diff changeset
1863 extern __inline __m256
kono
parents:
diff changeset
1864 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1865 _mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A,
kono
parents:
diff changeset
1866 const int __imm)
kono
parents:
diff changeset
1867 {
kono
parents:
diff changeset
1868 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A,
kono
parents:
diff changeset
1869 __imm,
kono
parents:
diff changeset
1870 (__v8sf)
kono
parents:
diff changeset
1871 _mm256_setzero_ps (),
kono
parents:
diff changeset
1872 (__mmask8) __U);
kono
parents:
diff changeset
1873 }
kono
parents:
diff changeset
1874
kono
parents:
diff changeset
1875 extern __inline __m128d
kono
parents:
diff changeset
1876 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1877 _mm512_extractf64x2_pd (__m512d __A, const int __imm)
kono
parents:
diff changeset
1878 {
kono
parents:
diff changeset
1879 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
kono
parents:
diff changeset
1880 __imm,
kono
parents:
diff changeset
1881 (__v2df)
kono
parents:
diff changeset
1882 _mm_setzero_pd (),
kono
parents:
diff changeset
1883 (__mmask8) -1);
kono
parents:
diff changeset
1884 }
kono
parents:
diff changeset
1885
kono
parents:
diff changeset
1886 extern __inline __m128d
kono
parents:
diff changeset
1887 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1888 _mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1889 const int __imm)
kono
parents:
diff changeset
1890 {
kono
parents:
diff changeset
1891 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
kono
parents:
diff changeset
1892 __imm,
kono
parents:
diff changeset
1893 (__v2df) __W,
kono
parents:
diff changeset
1894 (__mmask8)
kono
parents:
diff changeset
1895 __U);
kono
parents:
diff changeset
1896 }
kono
parents:
diff changeset
1897
kono
parents:
diff changeset
1898 extern __inline __m128d
kono
parents:
diff changeset
1899 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1900 _mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A,
kono
parents:
diff changeset
1901 const int __imm)
kono
parents:
diff changeset
1902 {
kono
parents:
diff changeset
1903 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A,
kono
parents:
diff changeset
1904 __imm,
kono
parents:
diff changeset
1905 (__v2df)
kono
parents:
diff changeset
1906 _mm_setzero_pd (),
kono
parents:
diff changeset
1907 (__mmask8)
kono
parents:
diff changeset
1908 __U);
kono
parents:
diff changeset
1909 }
kono
parents:
diff changeset
1910
kono
parents:
diff changeset
1911 extern __inline __m256i
kono
parents:
diff changeset
1912 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1913 _mm512_extracti32x8_epi32 (__m512i __A, const int __imm)
kono
parents:
diff changeset
1914 {
kono
parents:
diff changeset
1915 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
kono
parents:
diff changeset
1916 __imm,
kono
parents:
diff changeset
1917 (__v8si)
kono
parents:
diff changeset
1918 _mm256_setzero_si256 (),
kono
parents:
diff changeset
1919 (__mmask8) -1);
kono
parents:
diff changeset
1920 }
kono
parents:
diff changeset
1921
kono
parents:
diff changeset
1922 extern __inline __m256i
kono
parents:
diff changeset
1923 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1924 _mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1925 const int __imm)
kono
parents:
diff changeset
1926 {
kono
parents:
diff changeset
1927 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
kono
parents:
diff changeset
1928 __imm,
kono
parents:
diff changeset
1929 (__v8si) __W,
kono
parents:
diff changeset
1930 (__mmask8) __U);
kono
parents:
diff changeset
1931 }
kono
parents:
diff changeset
1932
kono
parents:
diff changeset
1933 extern __inline __m256i
kono
parents:
diff changeset
1934 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1935 _mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1936 const int __imm)
kono
parents:
diff changeset
1937 {
kono
parents:
diff changeset
1938 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A,
kono
parents:
diff changeset
1939 __imm,
kono
parents:
diff changeset
1940 (__v8si)
kono
parents:
diff changeset
1941 _mm256_setzero_si256 (),
kono
parents:
diff changeset
1942 (__mmask8) __U);
kono
parents:
diff changeset
1943 }
kono
parents:
diff changeset
1944
kono
parents:
diff changeset
1945 extern __inline __m128i
kono
parents:
diff changeset
1946 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1947 _mm512_extracti64x2_epi64 (__m512i __A, const int __imm)
kono
parents:
diff changeset
1948 {
kono
parents:
diff changeset
1949 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
kono
parents:
diff changeset
1950 __imm,
kono
parents:
diff changeset
1951 (__v2di)
kono
parents:
diff changeset
1952 _mm_setzero_si128 (),
kono
parents:
diff changeset
1953 (__mmask8) -1);
kono
parents:
diff changeset
1954 }
kono
parents:
diff changeset
1955
kono
parents:
diff changeset
1956 extern __inline __m128i
kono
parents:
diff changeset
1957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1958 _mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1959 const int __imm)
kono
parents:
diff changeset
1960 {
kono
parents:
diff changeset
1961 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
kono
parents:
diff changeset
1962 __imm,
kono
parents:
diff changeset
1963 (__v2di) __W,
kono
parents:
diff changeset
1964 (__mmask8)
kono
parents:
diff changeset
1965 __U);
kono
parents:
diff changeset
1966 }
kono
parents:
diff changeset
1967
kono
parents:
diff changeset
1968 extern __inline __m128i
kono
parents:
diff changeset
1969 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1970 _mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A,
kono
parents:
diff changeset
1971 const int __imm)
kono
parents:
diff changeset
1972 {
kono
parents:
diff changeset
1973 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A,
kono
parents:
diff changeset
1974 __imm,
kono
parents:
diff changeset
1975 (__v2di)
kono
parents:
diff changeset
1976 _mm_setzero_si128 (),
kono
parents:
diff changeset
1977 (__mmask8)
kono
parents:
diff changeset
1978 __U);
kono
parents:
diff changeset
1979 }
kono
parents:
diff changeset
1980
kono
parents:
diff changeset
1981 extern __inline __m512d
kono
parents:
diff changeset
1982 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1983 _mm512_range_round_pd (__m512d __A, __m512d __B, int __C,
kono
parents:
diff changeset
1984 const int __R)
kono
parents:
diff changeset
1985 {
kono
parents:
diff changeset
1986 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
kono
parents:
diff changeset
1987 (__v8df) __B, __C,
kono
parents:
diff changeset
1988 (__v8df)
kono
parents:
diff changeset
1989 _mm512_setzero_pd (),
kono
parents:
diff changeset
1990 (__mmask8) -1,
kono
parents:
diff changeset
1991 __R);
kono
parents:
diff changeset
1992 }
kono
parents:
diff changeset
1993
kono
parents:
diff changeset
1994 extern __inline __m512d
kono
parents:
diff changeset
1995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
1996 _mm512_mask_range_round_pd (__m512d __W, __mmask8 __U,
kono
parents:
diff changeset
1997 __m512d __A, __m512d __B, int __C,
kono
parents:
diff changeset
1998 const int __R)
kono
parents:
diff changeset
1999 {
kono
parents:
diff changeset
2000 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
kono
parents:
diff changeset
2001 (__v8df) __B, __C,
kono
parents:
diff changeset
2002 (__v8df) __W,
kono
parents:
diff changeset
2003 (__mmask8) __U,
kono
parents:
diff changeset
2004 __R);
kono
parents:
diff changeset
2005 }
kono
parents:
diff changeset
2006
kono
parents:
diff changeset
2007 extern __inline __m512d
kono
parents:
diff changeset
2008 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2009 _mm512_maskz_range_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
kono
parents:
diff changeset
2010 int __C, const int __R)
kono
parents:
diff changeset
2011 {
kono
parents:
diff changeset
2012 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A,
kono
parents:
diff changeset
2013 (__v8df) __B, __C,
kono
parents:
diff changeset
2014 (__v8df)
kono
parents:
diff changeset
2015 _mm512_setzero_pd (),
kono
parents:
diff changeset
2016 (__mmask8) __U,
kono
parents:
diff changeset
2017 __R);
kono
parents:
diff changeset
2018 }
kono
parents:
diff changeset
2019
kono
parents:
diff changeset
2020 extern __inline __m512
kono
parents:
diff changeset
2021 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2022 _mm512_range_round_ps (__m512 __A, __m512 __B, int __C, const int __R)
kono
parents:
diff changeset
2023 {
kono
parents:
diff changeset
2024 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
2025 (__v16sf) __B, __C,
kono
parents:
diff changeset
2026 (__v16sf)
kono
parents:
diff changeset
2027 _mm512_setzero_ps (),
kono
parents:
diff changeset
2028 (__mmask16) -1,
kono
parents:
diff changeset
2029 __R);
kono
parents:
diff changeset
2030 }
kono
parents:
diff changeset
2031
kono
parents:
diff changeset
2032 extern __inline __m512
kono
parents:
diff changeset
2033 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2034 _mm512_mask_range_round_ps (__m512 __W, __mmask16 __U,
kono
parents:
diff changeset
2035 __m512 __A, __m512 __B, int __C,
kono
parents:
diff changeset
2036 const int __R)
kono
parents:
diff changeset
2037 {
kono
parents:
diff changeset
2038 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
2039 (__v16sf) __B, __C,
kono
parents:
diff changeset
2040 (__v16sf) __W,
kono
parents:
diff changeset
2041 (__mmask16) __U,
kono
parents:
diff changeset
2042 __R);
kono
parents:
diff changeset
2043 }
kono
parents:
diff changeset
2044
kono
parents:
diff changeset
2045 extern __inline __m512
kono
parents:
diff changeset
2046 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2047 _mm512_maskz_range_round_ps (__mmask16 __U, __m512 __A, __m512 __B,
kono
parents:
diff changeset
2048 int __C, const int __R)
kono
parents:
diff changeset
2049 {
kono
parents:
diff changeset
2050 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
2051 (__v16sf) __B, __C,
kono
parents:
diff changeset
2052 (__v16sf)
kono
parents:
diff changeset
2053 _mm512_setzero_ps (),
kono
parents:
diff changeset
2054 (__mmask16) __U,
kono
parents:
diff changeset
2055 __R);
kono
parents:
diff changeset
2056 }
kono
parents:
diff changeset
2057
kono
parents:
diff changeset
2058 extern __inline __m512i
kono
parents:
diff changeset
2059 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2060 _mm512_inserti32x8 (__m512i __A, __m256i __B, const int __imm)
kono
parents:
diff changeset
2061 {
kono
parents:
diff changeset
2062 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
kono
parents:
diff changeset
2063 (__v8si) __B,
kono
parents:
diff changeset
2064 __imm,
kono
parents:
diff changeset
2065 (__v16si)
kono
parents:
diff changeset
2066 _mm512_setzero_si512 (),
kono
parents:
diff changeset
2067 (__mmask16) -1);
kono
parents:
diff changeset
2068 }
kono
parents:
diff changeset
2069
kono
parents:
diff changeset
2070 extern __inline __m512i
kono
parents:
diff changeset
2071 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2072 _mm512_mask_inserti32x8 (__m512i __W, __mmask16 __U, __m512i __A,
kono
parents:
diff changeset
2073 __m256i __B, const int __imm)
kono
parents:
diff changeset
2074 {
kono
parents:
diff changeset
2075 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
kono
parents:
diff changeset
2076 (__v8si) __B,
kono
parents:
diff changeset
2077 __imm,
kono
parents:
diff changeset
2078 (__v16si) __W,
kono
parents:
diff changeset
2079 (__mmask16) __U);
kono
parents:
diff changeset
2080 }
kono
parents:
diff changeset
2081
kono
parents:
diff changeset
2082 extern __inline __m512i
kono
parents:
diff changeset
2083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2084 _mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B,
kono
parents:
diff changeset
2085 const int __imm)
kono
parents:
diff changeset
2086 {
kono
parents:
diff changeset
2087 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A,
kono
parents:
diff changeset
2088 (__v8si) __B,
kono
parents:
diff changeset
2089 __imm,
kono
parents:
diff changeset
2090 (__v16si)
kono
parents:
diff changeset
2091 _mm512_setzero_si512 (),
kono
parents:
diff changeset
2092 (__mmask16) __U);
kono
parents:
diff changeset
2093 }
kono
parents:
diff changeset
2094
kono
parents:
diff changeset
2095 extern __inline __m512
kono
parents:
diff changeset
2096 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2097 _mm512_insertf32x8 (__m512 __A, __m256 __B, const int __imm)
kono
parents:
diff changeset
2098 {
kono
parents:
diff changeset
2099 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
kono
parents:
diff changeset
2100 (__v8sf) __B,
kono
parents:
diff changeset
2101 __imm,
kono
parents:
diff changeset
2102 (__v16sf)
kono
parents:
diff changeset
2103 _mm512_setzero_ps (),
kono
parents:
diff changeset
2104 (__mmask16) -1);
kono
parents:
diff changeset
2105 }
kono
parents:
diff changeset
2106
kono
parents:
diff changeset
2107 extern __inline __m512
kono
parents:
diff changeset
2108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2109 _mm512_mask_insertf32x8 (__m512 __W, __mmask16 __U, __m512 __A,
kono
parents:
diff changeset
2110 __m256 __B, const int __imm)
kono
parents:
diff changeset
2111 {
kono
parents:
diff changeset
2112 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
kono
parents:
diff changeset
2113 (__v8sf) __B,
kono
parents:
diff changeset
2114 __imm,
kono
parents:
diff changeset
2115 (__v16sf) __W,
kono
parents:
diff changeset
2116 (__mmask16) __U);
kono
parents:
diff changeset
2117 }
kono
parents:
diff changeset
2118
kono
parents:
diff changeset
2119 extern __inline __m512
kono
parents:
diff changeset
2120 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2121 _mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B,
kono
parents:
diff changeset
2122 const int __imm)
kono
parents:
diff changeset
2123 {
kono
parents:
diff changeset
2124 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A,
kono
parents:
diff changeset
2125 (__v8sf) __B,
kono
parents:
diff changeset
2126 __imm,
kono
parents:
diff changeset
2127 (__v16sf)
kono
parents:
diff changeset
2128 _mm512_setzero_ps (),
kono
parents:
diff changeset
2129 (__mmask16) __U);
kono
parents:
diff changeset
2130 }
kono
parents:
diff changeset
2131
kono
parents:
diff changeset
2132 extern __inline __m512i
kono
parents:
diff changeset
2133 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2134 _mm512_inserti64x2 (__m512i __A, __m128i __B, const int __imm)
kono
parents:
diff changeset
2135 {
kono
parents:
diff changeset
2136 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
kono
parents:
diff changeset
2137 (__v2di) __B,
kono
parents:
diff changeset
2138 __imm,
kono
parents:
diff changeset
2139 (__v8di)
kono
parents:
diff changeset
2140 _mm512_setzero_si512 (),
kono
parents:
diff changeset
2141 (__mmask8) -1);
kono
parents:
diff changeset
2142 }
kono
parents:
diff changeset
2143
kono
parents:
diff changeset
2144 extern __inline __m512i
kono
parents:
diff changeset
2145 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2146 _mm512_mask_inserti64x2 (__m512i __W, __mmask8 __U, __m512i __A,
kono
parents:
diff changeset
2147 __m128i __B, const int __imm)
kono
parents:
diff changeset
2148 {
kono
parents:
diff changeset
2149 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
kono
parents:
diff changeset
2150 (__v2di) __B,
kono
parents:
diff changeset
2151 __imm,
kono
parents:
diff changeset
2152 (__v8di) __W,
kono
parents:
diff changeset
2153 (__mmask8)
kono
parents:
diff changeset
2154 __U);
kono
parents:
diff changeset
2155 }
kono
parents:
diff changeset
2156
kono
parents:
diff changeset
2157 extern __inline __m512i
kono
parents:
diff changeset
2158 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2159 _mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B,
kono
parents:
diff changeset
2160 const int __imm)
kono
parents:
diff changeset
2161 {
kono
parents:
diff changeset
2162 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A,
kono
parents:
diff changeset
2163 (__v2di) __B,
kono
parents:
diff changeset
2164 __imm,
kono
parents:
diff changeset
2165 (__v8di)
kono
parents:
diff changeset
2166 _mm512_setzero_si512 (),
kono
parents:
diff changeset
2167 (__mmask8)
kono
parents:
diff changeset
2168 __U);
kono
parents:
diff changeset
2169 }
kono
parents:
diff changeset
2170
kono
parents:
diff changeset
2171 extern __inline __m512d
kono
parents:
diff changeset
2172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2173 _mm512_insertf64x2 (__m512d __A, __m128d __B, const int __imm)
kono
parents:
diff changeset
2174 {
kono
parents:
diff changeset
2175 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
kono
parents:
diff changeset
2176 (__v2df) __B,
kono
parents:
diff changeset
2177 __imm,
kono
parents:
diff changeset
2178 (__v8df)
kono
parents:
diff changeset
2179 _mm512_setzero_pd (),
kono
parents:
diff changeset
2180 (__mmask8) -1);
kono
parents:
diff changeset
2181 }
kono
parents:
diff changeset
2182
kono
parents:
diff changeset
2183 extern __inline __m512d
kono
parents:
diff changeset
2184 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2185 _mm512_mask_insertf64x2 (__m512d __W, __mmask8 __U, __m512d __A,
kono
parents:
diff changeset
2186 __m128d __B, const int __imm)
kono
parents:
diff changeset
2187 {
kono
parents:
diff changeset
2188 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
kono
parents:
diff changeset
2189 (__v2df) __B,
kono
parents:
diff changeset
2190 __imm,
kono
parents:
diff changeset
2191 (__v8df) __W,
kono
parents:
diff changeset
2192 (__mmask8)
kono
parents:
diff changeset
2193 __U);
kono
parents:
diff changeset
2194 }
kono
parents:
diff changeset
2195
kono
parents:
diff changeset
2196 extern __inline __m512d
kono
parents:
diff changeset
2197 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2198 _mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B,
kono
parents:
diff changeset
2199 const int __imm)
kono
parents:
diff changeset
2200 {
kono
parents:
diff changeset
2201 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A,
kono
parents:
diff changeset
2202 (__v2df) __B,
kono
parents:
diff changeset
2203 __imm,
kono
parents:
diff changeset
2204 (__v8df)
kono
parents:
diff changeset
2205 _mm512_setzero_pd (),
kono
parents:
diff changeset
2206 (__mmask8)
kono
parents:
diff changeset
2207 __U);
kono
parents:
diff changeset
2208 }
kono
parents:
diff changeset
2209
kono
parents:
diff changeset
2210 extern __inline __mmask8
kono
parents:
diff changeset
2211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2212 _mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A,
kono
parents:
diff changeset
2213 const int __imm)
kono
parents:
diff changeset
2214 {
kono
parents:
diff changeset
2215 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
kono
parents:
diff changeset
2216 __imm, __U);
kono
parents:
diff changeset
2217 }
kono
parents:
diff changeset
2218
kono
parents:
diff changeset
2219 extern __inline __mmask8
kono
parents:
diff changeset
2220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2221 _mm512_fpclass_pd_mask (__m512d __A, const int __imm)
kono
parents:
diff changeset
2222 {
kono
parents:
diff changeset
2223 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A,
kono
parents:
diff changeset
2224 __imm,
kono
parents:
diff changeset
2225 (__mmask8) -1);
kono
parents:
diff changeset
2226 }
kono
parents:
diff changeset
2227
kono
parents:
diff changeset
2228 extern __inline __mmask16
kono
parents:
diff changeset
2229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2230 _mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A,
kono
parents:
diff changeset
2231 const int __imm)
kono
parents:
diff changeset
2232 {
kono
parents:
diff changeset
2233 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
2234 __imm, __U);
kono
parents:
diff changeset
2235 }
kono
parents:
diff changeset
2236
kono
parents:
diff changeset
2237 extern __inline __mmask16
kono
parents:
diff changeset
2238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
kono
parents:
diff changeset
2239 _mm512_fpclass_ps_mask (__m512 __A, const int __imm)
kono
parents:
diff changeset
2240 {
kono
parents:
diff changeset
2241 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
kono
parents:
diff changeset
2242 __imm,
kono
parents:
diff changeset
2243 (__mmask16) -1);
kono
parents:
diff changeset
2244 }
kono
parents:
diff changeset
2245
kono
parents:
diff changeset
2246 #else
kono
parents:
diff changeset
2247 #define _kshiftli_mask8(X, Y) \
kono
parents:
diff changeset
2248 ((__mmask8) __builtin_ia32_kshiftliqi ((__mmask8)(X), (__mmask8)(Y)))
kono
parents:
diff changeset
2249
kono
parents:
diff changeset
2250 #define _kshiftri_mask8(X, Y) \
kono
parents:
diff changeset
2251 ((__mmask8) __builtin_ia32_kshiftriqi ((__mmask8)(X), (__mmask8)(Y)))
kono
parents:
diff changeset
2252
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2253 #define _mm_range_sd(A, B, C) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2254 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2255 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2256 (__mmask8) -1, _MM_FROUND_CUR_DIRECTION))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2257
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2258 #define _mm_mask_range_sd(W, U, A, B, C) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2259 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2260 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2261 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2262
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2263 #define _mm_maskz_range_sd(U, A, B, C) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2264 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2265 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2266 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
111
kono
parents:
diff changeset
2267
kono
parents:
diff changeset
2268 #define _mm_range_ss(A, B, C) \
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2269 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2270 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2271 (__mmask8) -1, _MM_FROUND_CUR_DIRECTION))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2272
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2273 #define _mm_mask_range_ss(W, U, A, B, C) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2274 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2275 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2276 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2277
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2278 #define _mm_maskz_range_ss(U, A, B, C) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2279 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2280 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2281 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
111
kono
parents:
diff changeset
2282
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2283 #define _mm_range_round_sd(A, B, C, R) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2284 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2285 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2286 (__mmask8) -1, (R)))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2287
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2288 #define _mm_mask_range_round_sd(W, U, A, B, C, R) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2289 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2290 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2291 (__mmask8)(U), (R)))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2292
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2293 #define _mm_maskz_range_round_sd(U, A, B, C, R) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2294 ((__m128d) __builtin_ia32_rangesd128_mask_round ((__v2df)(__m128d)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2295 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2296 (__mmask8)(U), (R)))
111
kono
parents:
diff changeset
2297
kono
parents:
diff changeset
2298 #define _mm_range_round_ss(A, B, C, R) \
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2299 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2300 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2301 (__mmask8) -1, (R)))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2302
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2303 #define _mm_mask_range_round_ss(W, U, A, B, C, R) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2304 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2305 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2306 (__mmask8)(U), (R)))
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2307
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2308 #define _mm_maskz_range_round_ss(U, A, B, C, R) \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2309 ((__m128) __builtin_ia32_rangess128_mask_round ((__v4sf)(__m128)(A), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2310 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2311 (__mmask8)(U), (R)))
111
kono
parents:
diff changeset
2312
kono
parents:
diff changeset
2313 #define _mm512_cvtt_roundpd_epi64(A, B) \
kono
parents:
diff changeset
2314 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di) \
kono
parents:
diff changeset
2315 _mm512_setzero_si512 (), \
kono
parents:
diff changeset
2316 -1, (B)))
kono
parents:
diff changeset
2317
kono
parents:
diff changeset
2318 #define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \
kono
parents:
diff changeset
2319 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2320
kono
parents:
diff changeset
2321 #define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \
kono
parents:
diff changeset
2322 ((__m512i)__builtin_ia32_cvttpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2323
kono
parents:
diff changeset
2324 #define _mm512_cvtt_roundpd_epu64(A, B) \
kono
parents:
diff changeset
2325 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2326
kono
parents:
diff changeset
2327 #define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \
kono
parents:
diff changeset
2328 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2329
kono
parents:
diff changeset
2330 #define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \
kono
parents:
diff changeset
2331 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2332
kono
parents:
diff changeset
2333 #define _mm512_cvtt_roundps_epi64(A, B) \
kono
parents:
diff changeset
2334 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2335
kono
parents:
diff changeset
2336 #define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \
kono
parents:
diff changeset
2337 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2338
kono
parents:
diff changeset
2339 #define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \
kono
parents:
diff changeset
2340 ((__m512i)__builtin_ia32_cvttps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2341
kono
parents:
diff changeset
2342 #define _mm512_cvtt_roundps_epu64(A, B) \
kono
parents:
diff changeset
2343 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2344
kono
parents:
diff changeset
2345 #define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \
kono
parents:
diff changeset
2346 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2347
kono
parents:
diff changeset
2348 #define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \
kono
parents:
diff changeset
2349 ((__m512i)__builtin_ia32_cvttps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2350
kono
parents:
diff changeset
2351 #define _mm512_cvt_roundpd_epi64(A, B) \
kono
parents:
diff changeset
2352 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2353
kono
parents:
diff changeset
2354 #define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \
kono
parents:
diff changeset
2355 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2356
kono
parents:
diff changeset
2357 #define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \
kono
parents:
diff changeset
2358 ((__m512i)__builtin_ia32_cvtpd2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2359
kono
parents:
diff changeset
2360 #define _mm512_cvt_roundpd_epu64(A, B) \
kono
parents:
diff changeset
2361 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2362
kono
parents:
diff changeset
2363 #define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \
kono
parents:
diff changeset
2364 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2365
kono
parents:
diff changeset
2366 #define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \
kono
parents:
diff changeset
2367 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2368
kono
parents:
diff changeset
2369 #define _mm512_cvt_roundps_epi64(A, B) \
kono
parents:
diff changeset
2370 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2371
kono
parents:
diff changeset
2372 #define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \
kono
parents:
diff changeset
2373 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2374
kono
parents:
diff changeset
2375 #define _mm512_maskz_cvt_roundps_epi64(U, A, B) \
kono
parents:
diff changeset
2376 ((__m512i)__builtin_ia32_cvtps2qq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2377
kono
parents:
diff changeset
2378 #define _mm512_cvt_roundps_epu64(A, B) \
kono
parents:
diff changeset
2379 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), -1, (B)))
kono
parents:
diff changeset
2380
kono
parents:
diff changeset
2381 #define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \
kono
parents:
diff changeset
2382 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)(W), (U), (B)))
kono
parents:
diff changeset
2383
kono
parents:
diff changeset
2384 #define _mm512_maskz_cvt_roundps_epu64(U, A, B) \
kono
parents:
diff changeset
2385 ((__m512i)__builtin_ia32_cvtps2uqq512_mask ((A), (__v8di)_mm512_setzero_si512 (), (U), (B)))
kono
parents:
diff changeset
2386
kono
parents:
diff changeset
2387 #define _mm512_cvt_roundepi64_ps(A, B) \
kono
parents:
diff changeset
2388 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
kono
parents:
diff changeset
2389
kono
parents:
diff changeset
2390 #define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \
kono
parents:
diff changeset
2391 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
kono
parents:
diff changeset
2392
kono
parents:
diff changeset
2393 #define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \
kono
parents:
diff changeset
2394 ((__m256)__builtin_ia32_cvtqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
kono
parents:
diff changeset
2395
kono
parents:
diff changeset
2396 #define _mm512_cvt_roundepu64_ps(A, B) \
kono
parents:
diff changeset
2397 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), -1, (B)))
kono
parents:
diff changeset
2398
kono
parents:
diff changeset
2399 #define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \
kono
parents:
diff changeset
2400 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (W), (U), (B)))
kono
parents:
diff changeset
2401
kono
parents:
diff changeset
2402 #define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \
kono
parents:
diff changeset
2403 ((__m256)__builtin_ia32_cvtuqq2ps512_mask ((__v8di)(A), (__v8sf)_mm256_setzero_ps (), (U), (B)))
kono
parents:
diff changeset
2404
kono
parents:
diff changeset
2405 #define _mm512_cvt_roundepi64_pd(A, B) \
kono
parents:
diff changeset
2406 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
kono
parents:
diff changeset
2407
kono
parents:
diff changeset
2408 #define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \
kono
parents:
diff changeset
2409 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
kono
parents:
diff changeset
2410
kono
parents:
diff changeset
2411 #define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \
kono
parents:
diff changeset
2412 ((__m512d)__builtin_ia32_cvtqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
kono
parents:
diff changeset
2413
kono
parents:
diff changeset
2414 #define _mm512_cvt_roundepu64_pd(A, B) \
kono
parents:
diff changeset
2415 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), -1, (B)))
kono
parents:
diff changeset
2416
kono
parents:
diff changeset
2417 #define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \
kono
parents:
diff changeset
2418 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (W), (U), (B)))
kono
parents:
diff changeset
2419
kono
parents:
diff changeset
2420 #define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \
kono
parents:
diff changeset
2421 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask ((__v8di)(A), (__v8df)_mm512_setzero_pd (), (U), (B)))
kono
parents:
diff changeset
2422
kono
parents:
diff changeset
2423 #define _mm512_reduce_pd(A, B) \
kono
parents:
diff changeset
2424 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2425 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)-1))
kono
parents:
diff changeset
2426
kono
parents:
diff changeset
2427 #define _mm512_mask_reduce_pd(W, U, A, B) \
kono
parents:
diff changeset
2428 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2429 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U)))
kono
parents:
diff changeset
2430
kono
parents:
diff changeset
2431 #define _mm512_maskz_reduce_pd(U, A, B) \
kono
parents:
diff changeset
2432 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2433 (int)(B), (__v8df)_mm512_setzero_pd (), (__mmask8)(U)))
kono
parents:
diff changeset
2434
kono
parents:
diff changeset
2435 #define _mm512_reduce_ps(A, B) \
kono
parents:
diff changeset
2436 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2437 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)-1))
kono
parents:
diff changeset
2438
kono
parents:
diff changeset
2439 #define _mm512_mask_reduce_ps(W, U, A, B) \
kono
parents:
diff changeset
2440 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2441 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U)))
kono
parents:
diff changeset
2442
kono
parents:
diff changeset
2443 #define _mm512_maskz_reduce_ps(U, A, B) \
kono
parents:
diff changeset
2444 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2445 (int)(B), (__v16sf)_mm512_setzero_ps (), (__mmask16)(U)))
kono
parents:
diff changeset
2446
kono
parents:
diff changeset
2447 #define _mm512_extractf32x8_ps(X, C) \
kono
parents:
diff changeset
2448 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
kono
parents:
diff changeset
2449 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8)-1))
kono
parents:
diff changeset
2450
kono
parents:
diff changeset
2451 #define _mm512_mask_extractf32x8_ps(W, U, X, C) \
kono
parents:
diff changeset
2452 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
kono
parents:
diff changeset
2453 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U)))
kono
parents:
diff changeset
2454
kono
parents:
diff changeset
2455 #define _mm512_maskz_extractf32x8_ps(U, X, C) \
kono
parents:
diff changeset
2456 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \
kono
parents:
diff changeset
2457 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps (), (__mmask8) (U)))
kono
parents:
diff changeset
2458
kono
parents:
diff changeset
2459 #define _mm512_extractf64x2_pd(X, C) \
kono
parents:
diff changeset
2460 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
kono
parents:
diff changeset
2461 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8)-1))
kono
parents:
diff changeset
2462
kono
parents:
diff changeset
2463 #define _mm512_mask_extractf64x2_pd(W, U, X, C) \
kono
parents:
diff changeset
2464 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
kono
parents:
diff changeset
2465 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U)))
kono
parents:
diff changeset
2466
kono
parents:
diff changeset
2467 #define _mm512_maskz_extractf64x2_pd(U, X, C) \
kono
parents:
diff changeset
2468 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\
kono
parents:
diff changeset
2469 (int) (C), (__v2df)(__m128d) _mm_setzero_pd (), (__mmask8) (U)))
kono
parents:
diff changeset
2470
kono
parents:
diff changeset
2471 #define _mm512_extracti32x8_epi32(X, C) \
kono
parents:
diff changeset
2472 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
kono
parents:
diff changeset
2473 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8)-1))
kono
parents:
diff changeset
2474
kono
parents:
diff changeset
2475 #define _mm512_mask_extracti32x8_epi32(W, U, X, C) \
kono
parents:
diff changeset
2476 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
kono
parents:
diff changeset
2477 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U)))
kono
parents:
diff changeset
2478
kono
parents:
diff changeset
2479 #define _mm512_maskz_extracti32x8_epi32(U, X, C) \
kono
parents:
diff changeset
2480 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \
kono
parents:
diff changeset
2481 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256 (), (__mmask8) (U)))
kono
parents:
diff changeset
2482
kono
parents:
diff changeset
2483 #define _mm512_extracti64x2_epi64(X, C) \
kono
parents:
diff changeset
2484 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
kono
parents:
diff changeset
2485 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8)-1))
kono
parents:
diff changeset
2486
kono
parents:
diff changeset
2487 #define _mm512_mask_extracti64x2_epi64(W, U, X, C) \
kono
parents:
diff changeset
2488 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
kono
parents:
diff changeset
2489 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U)))
kono
parents:
diff changeset
2490
kono
parents:
diff changeset
2491 #define _mm512_maskz_extracti64x2_epi64(U, X, C) \
kono
parents:
diff changeset
2492 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\
kono
parents:
diff changeset
2493 (int) (C), (__v2di)(__m128i) _mm_setzero_si128 (), (__mmask8) (U)))
kono
parents:
diff changeset
2494
kono
parents:
diff changeset
2495 #define _mm512_range_pd(A, B, C) \
kono
parents:
diff changeset
2496 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2497 (__v8df)(__m512d)(B), (int)(C), \
kono
parents:
diff changeset
2498 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
kono
parents:
diff changeset
2499
kono
parents:
diff changeset
2500 #define _mm512_mask_range_pd(W, U, A, B, C) \
kono
parents:
diff changeset
2501 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2502 (__v8df)(__m512d)(B), (int)(C), \
kono
parents:
diff changeset
2503 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
kono
parents:
diff changeset
2504
kono
parents:
diff changeset
2505 #define _mm512_maskz_range_pd(U, A, B, C) \
kono
parents:
diff changeset
2506 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2507 (__v8df)(__m512d)(B), (int)(C), \
kono
parents:
diff changeset
2508 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
kono
parents:
diff changeset
2509
kono
parents:
diff changeset
2510 #define _mm512_range_ps(A, B, C) \
kono
parents:
diff changeset
2511 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2512 (__v16sf)(__m512)(B), (int)(C), \
kono
parents:
diff changeset
2513 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
kono
parents:
diff changeset
2514
kono
parents:
diff changeset
2515 #define _mm512_mask_range_ps(W, U, A, B, C) \
kono
parents:
diff changeset
2516 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2517 (__v16sf)(__m512)(B), (int)(C), \
kono
parents:
diff changeset
2518 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
kono
parents:
diff changeset
2519
kono
parents:
diff changeset
2520 #define _mm512_maskz_range_ps(U, A, B, C) \
kono
parents:
diff changeset
2521 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2522 (__v16sf)(__m512)(B), (int)(C), \
kono
parents:
diff changeset
2523 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
kono
parents:
diff changeset
2524
kono
parents:
diff changeset
2525 #define _mm512_range_round_pd(A, B, C, R) \
kono
parents:
diff changeset
2526 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2527 (__v8df)(__m512d)(B), (int)(C), \
kono
parents:
diff changeset
2528 (__v8df)_mm512_setzero_pd (), (__mmask8)-1, (R)))
kono
parents:
diff changeset
2529
kono
parents:
diff changeset
2530 #define _mm512_mask_range_round_pd(W, U, A, B, C, R) \
kono
parents:
diff changeset
2531 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2532 (__v8df)(__m512d)(B), (int)(C), \
kono
parents:
diff changeset
2533 (__v8df)(__m512d)(W), (__mmask8)(U), (R)))
kono
parents:
diff changeset
2534
kono
parents:
diff changeset
2535 #define _mm512_maskz_range_round_pd(U, A, B, C, R) \
kono
parents:
diff changeset
2536 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \
kono
parents:
diff changeset
2537 (__v8df)(__m512d)(B), (int)(C), \
kono
parents:
diff changeset
2538 (__v8df)_mm512_setzero_pd (), (__mmask8)(U), (R)))
kono
parents:
diff changeset
2539
kono
parents:
diff changeset
2540 #define _mm512_range_round_ps(A, B, C, R) \
kono
parents:
diff changeset
2541 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2542 (__v16sf)(__m512)(B), (int)(C), \
kono
parents:
diff changeset
2543 (__v16sf)_mm512_setzero_ps (), (__mmask16)-1, (R)))
kono
parents:
diff changeset
2544
kono
parents:
diff changeset
2545 #define _mm512_mask_range_round_ps(W, U, A, B, C, R) \
kono
parents:
diff changeset
2546 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2547 (__v16sf)(__m512)(B), (int)(C), \
kono
parents:
diff changeset
2548 (__v16sf)(__m512)(W), (__mmask16)(U), (R)))
kono
parents:
diff changeset
2549
kono
parents:
diff changeset
2550 #define _mm512_maskz_range_round_ps(U, A, B, C, R) \
kono
parents:
diff changeset
2551 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \
kono
parents:
diff changeset
2552 (__v16sf)(__m512)(B), (int)(C), \
kono
parents:
diff changeset
2553 (__v16sf)_mm512_setzero_ps (), (__mmask16)(U), (R)))
kono
parents:
diff changeset
2554
kono
parents:
diff changeset
2555 #define _mm512_insertf64x2(X, Y, C) \
kono
parents:
diff changeset
2556 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
kono
parents:
diff changeset
2557 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \
kono
parents:
diff changeset
2558 (__mmask8)-1))
kono
parents:
diff changeset
2559
kono
parents:
diff changeset
2560 #define _mm512_mask_insertf64x2(W, U, X, Y, C) \
kono
parents:
diff changeset
2561 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
kono
parents:
diff changeset
2562 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \
kono
parents:
diff changeset
2563 (__mmask8) (U)))
kono
parents:
diff changeset
2564
kono
parents:
diff changeset
2565 #define _mm512_maskz_insertf64x2(U, X, Y, C) \
kono
parents:
diff changeset
2566 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\
kono
parents:
diff changeset
2567 (__v2df)(__m128d) (Y), (int) (C), \
kono
parents:
diff changeset
2568 (__v8df)(__m512d) _mm512_setzero_pd (), (__mmask8) (U)))
kono
parents:
diff changeset
2569
kono
parents:
diff changeset
2570 #define _mm512_inserti64x2(X, Y, C) \
kono
parents:
diff changeset
2571 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
kono
parents:
diff changeset
2572 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1))
kono
parents:
diff changeset
2573
kono
parents:
diff changeset
2574 #define _mm512_mask_inserti64x2(W, U, X, Y, C) \
kono
parents:
diff changeset
2575 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
kono
parents:
diff changeset
2576 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \
kono
parents:
diff changeset
2577 (__mmask8) (U)))
kono
parents:
diff changeset
2578
kono
parents:
diff changeset
2579 #define _mm512_maskz_inserti64x2(U, X, Y, C) \
kono
parents:
diff changeset
2580 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\
kono
parents:
diff changeset
2581 (__v2di)(__m128i) (Y), (int) (C), \
kono
parents:
diff changeset
2582 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U)))
kono
parents:
diff changeset
2583
kono
parents:
diff changeset
2584 #define _mm512_insertf32x8(X, Y, C) \
kono
parents:
diff changeset
2585 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
kono
parents:
diff changeset
2586 (__v8sf)(__m256) (Y), (int) (C),\
kono
parents:
diff changeset
2587 (__v16sf)(__m512)_mm512_setzero_ps (),\
kono
parents:
diff changeset
2588 (__mmask16)-1))
kono
parents:
diff changeset
2589
kono
parents:
diff changeset
2590 #define _mm512_mask_insertf32x8(W, U, X, Y, C) \
kono
parents:
diff changeset
2591 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
kono
parents:
diff changeset
2592 (__v8sf)(__m256) (Y), (int) (C),\
kono
parents:
diff changeset
2593 (__v16sf)(__m512)(W),\
kono
parents:
diff changeset
2594 (__mmask16)(U)))
kono
parents:
diff changeset
2595
kono
parents:
diff changeset
2596 #define _mm512_maskz_insertf32x8(U, X, Y, C) \
kono
parents:
diff changeset
2597 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \
kono
parents:
diff changeset
2598 (__v8sf)(__m256) (Y), (int) (C),\
kono
parents:
diff changeset
2599 (__v16sf)(__m512)_mm512_setzero_ps (),\
kono
parents:
diff changeset
2600 (__mmask16)(U)))
kono
parents:
diff changeset
2601
kono
parents:
diff changeset
2602 #define _mm512_inserti32x8(X, Y, C) \
kono
parents:
diff changeset
2603 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
kono
parents:
diff changeset
2604 (__v8si)(__m256i) (Y), (int) (C),\
kono
parents:
diff changeset
2605 (__v16si)(__m512i)_mm512_setzero_si512 (),\
kono
parents:
diff changeset
2606 (__mmask16)-1))
kono
parents:
diff changeset
2607
kono
parents:
diff changeset
2608 #define _mm512_mask_inserti32x8(W, U, X, Y, C) \
kono
parents:
diff changeset
2609 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
kono
parents:
diff changeset
2610 (__v8si)(__m256i) (Y), (int) (C),\
kono
parents:
diff changeset
2611 (__v16si)(__m512i)(W),\
kono
parents:
diff changeset
2612 (__mmask16)(U)))
kono
parents:
diff changeset
2613
kono
parents:
diff changeset
2614 #define _mm512_maskz_inserti32x8(U, X, Y, C) \
kono
parents:
diff changeset
2615 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \
kono
parents:
diff changeset
2616 (__v8si)(__m256i) (Y), (int) (C),\
kono
parents:
diff changeset
2617 (__v16si)(__m512i)_mm512_setzero_si512 (),\
kono
parents:
diff changeset
2618 (__mmask16)(U)))
kono
parents:
diff changeset
2619
kono
parents:
diff changeset
2620 #define _mm_fpclass_ss_mask(X, C) \
kono
parents:
diff changeset
2621 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \
kono
parents:
diff changeset
2622
kono
parents:
diff changeset
2623 #define _mm_fpclass_sd_mask(X, C) \
kono
parents:
diff changeset
2624 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \
kono
parents:
diff changeset
2625
kono
parents:
diff changeset
2626 #define _mm512_mask_fpclass_pd_mask(u, X, C) \
kono
parents:
diff changeset
2627 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
kono
parents:
diff changeset
2628 (int) (C), (__mmask8)(u)))
kono
parents:
diff changeset
2629
kono
parents:
diff changeset
2630 #define _mm512_mask_fpclass_ps_mask(u, x, c) \
kono
parents:
diff changeset
2631 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
kono
parents:
diff changeset
2632 (int) (c),(__mmask8)(u)))
kono
parents:
diff changeset
2633
kono
parents:
diff changeset
2634 #define _mm512_fpclass_pd_mask(X, C) \
kono
parents:
diff changeset
2635 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
kono
parents:
diff changeset
2636 (int) (C), (__mmask8)-1))
kono
parents:
diff changeset
2637
kono
parents:
diff changeset
2638 #define _mm512_fpclass_ps_mask(x, c) \
kono
parents:
diff changeset
2639 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
kono
parents:
diff changeset
2640 (int) (c),(__mmask8)-1))
kono
parents:
diff changeset
2641
kono
parents:
diff changeset
2642 #define _mm_reduce_sd(A, B, C) \
kono
parents:
diff changeset
2643 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
kono
parents:
diff changeset
2644 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
kono
parents:
diff changeset
2645 (__mmask8)-1))
kono
parents:
diff changeset
2646
kono
parents:
diff changeset
2647 #define _mm_mask_reduce_sd(W, U, A, B, C) \
kono
parents:
diff changeset
2648 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
kono
parents:
diff changeset
2649 (__v2df)(__m128d)(B), (int)(C), (__v2df)(__m128d)(W), (__mmask8)(U)))
kono
parents:
diff changeset
2650
kono
parents:
diff changeset
2651 #define _mm_maskz_reduce_sd(U, A, B, C) \
kono
parents:
diff changeset
2652 ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \
kono
parents:
diff changeset
2653 (__v2df)(__m128d)(B), (int)(C), (__v2df) _mm_setzero_pd (), \
kono
parents:
diff changeset
2654 (__mmask8)(U)))
kono
parents:
diff changeset
2655
kono
parents:
diff changeset
2656 #define _mm_reduce_ss(A, B, C) \
kono
parents:
diff changeset
2657 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
kono
parents:
diff changeset
2658 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
kono
parents:
diff changeset
2659 (__mmask8)-1))
kono
parents:
diff changeset
2660
kono
parents:
diff changeset
2661 #define _mm_mask_reduce_ss(W, U, A, B, C) \
kono
parents:
diff changeset
2662 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
kono
parents:
diff changeset
2663 (__v4sf)(__m128)(B), (int)(C), (__v4sf)(__m128)(W), (__mmask8)(U)))
kono
parents:
diff changeset
2664
kono
parents:
diff changeset
2665 #define _mm_maskz_reduce_ss(U, A, B, C) \
kono
parents:
diff changeset
2666 ((__m128) __builtin_ia32_reducess_mask ((__v4sf)(__m128)(A), \
kono
parents:
diff changeset
2667 (__v4sf)(__m128)(B), (int)(C), (__v4sf) _mm_setzero_ps (), \
kono
parents:
diff changeset
2668 (__mmask8)(U)))
kono
parents:
diff changeset
2669
kono
parents:
diff changeset
2670
kono
parents:
diff changeset
2671
kono
parents:
diff changeset
2672 #endif
kono
parents:
diff changeset
2673
kono
parents:
diff changeset
2674 #ifdef __DISABLE_AVX512DQ__
kono
parents:
diff changeset
2675 #undef __DISABLE_AVX512DQ__
kono
parents:
diff changeset
2676 #pragma GCC pop_options
kono
parents:
diff changeset
2677 #endif /* __DISABLE_AVX512DQ__ */
kono
parents:
diff changeset
2678
kono
parents:
diff changeset
2679 #endif /* _AVX512DQINTRIN_H_INCLUDED */