clang  20.0.0git
avx10_2_512niintrin.h
Go to the documentation of this file.
1 /*===---- avx10_2_512niintrin.h - AVX10.2-512 new instruction intrinsics ---===
2  *
3  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  * See https://llvm.org/LICENSE.txt for license information.
5  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  *
7  *===-----------------------------------------------------------------------===
8  */
9 #ifndef __IMMINTRIN_H
10 #error \
11  "Never use <avx10_2_512niintrin.h> directly; include <immintrin.h> instead."
12 #endif
13 
14 #ifdef __SSE2__
15 
16 #ifndef __AVX10_2_512NIINTRIN_H
17 #define __AVX10_2_512NIINTRIN_H
18 
19 #define __DEFAULT_FN_ATTRS \
20  __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-512"), \
21  __min_vector_width__(512)))
22 
23 /* VNNI FP16 */
24 static __inline__ __m512 __DEFAULT_FN_ATTRS _mm512_dpph_ps(__m512 __W,
25  __m512h __A,
26  __m512h __B) {
27  return (__m512)__builtin_ia32_vdpphps512((__v16sf)__W, (__v32hf)__A,
28  (__v32hf)__B);
29 }
30 
31 static __inline__ __m512 __DEFAULT_FN_ATTRS _mm512_mask_dpph_ps(__m512 __W,
32  __mmask16 __U,
33  __m512h __A,
34  __m512h __B) {
35  return (__m512)__builtin_ia32_selectps_512(
36  (__mmask16)__U, (__v16sf)_mm512_dpph_ps(__W, __A, __B), (__v16sf)__W);
37 }
38 
39 static __inline__ __m512 __DEFAULT_FN_ATTRS _mm512_maskz_dpph_ps(__mmask16 __U,
40  __m512 __W,
41  __m512h __A,
42  __m512h __B) {
43  return (__m512)__builtin_ia32_selectps_512(
44  (__mmask16)__U, (__v16sf)_mm512_dpph_ps(__W, __A, __B),
45  (__v16sf)_mm512_setzero_ps());
46 }
47 
48 /* VMPSADBW */
49 #define _mm512_mpsadbw_epu8(A, B, imm) \
50  ((__m512i)__builtin_ia32_mpsadbw512((__v64qi)(__m512i)(A), \
51  (__v64qi)(__m512i)(B), (int)(imm)))
52 
53 #define _mm512_mask_mpsadbw_epu8(W, U, A, B, imm) \
54  ((__m512i)__builtin_ia32_selectw_512( \
55  (__mmask32)(U), (__v32hi)_mm512_mpsadbw_epu8((A), (B), (imm)), \
56  (__v32hi)(__m512i)(W)))
57 
58 #define _mm512_maskz_mpsadbw_epu8(U, A, B, imm) \
59  ((__m512i)__builtin_ia32_selectw_512( \
60  (__mmask32)(U), (__v32hi)_mm512_mpsadbw_epu8((A), (B), (imm)), \
61  (__v32hi)_mm512_setzero_si512()))
62 
63 /* VNNI INT8 */
64 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbssd_epi32(__m512i __W,
65  __m512i __A,
66  __m512i __B) {
67  return (__m512i)__builtin_ia32_vpdpbssd512((__v16si)__W, (__v16si)__A,
68  (__v16si)__B);
69 }
70 
71 static __inline__ __m512i __DEFAULT_FN_ATTRS
72 _mm512_mask_dpbssd_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
73  return (__m512i)__builtin_ia32_selectd_512(
74  __U, (__v16si)_mm512_dpbssd_epi32(__W, __A, __B), (__v16si)__W);
75 }
76 
77 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbssd_epi32(
78  __mmask16 __U, __m512i __W, __m512i __A, __m512i __B) {
79  return (__m512i)__builtin_ia32_selectd_512(
80  __U, (__v16si)_mm512_dpbssd_epi32(__W, __A, __B),
81  (__v16si)_mm512_setzero_si512());
82 }
83 
84 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbssds_epi32(__m512i __W,
85  __m512i __A,
86  __m512i __B) {
87  return (__m512i)__builtin_ia32_vpdpbssds512((__v16si)__W, (__v16si)__A,
88  (__v16si)__B);
89 }
90 
91 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpbssds_epi32(
92  __m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
93  return (__m512i)__builtin_ia32_selectd_512(
94  __U, (__v16si)_mm512_dpbssds_epi32(__W, __A, __B), (__v16si)__W);
95 }
96 
97 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbssds_epi32(
98  __mmask16 __U, __m512i __W, __m512i __A, __m512i __B) {
99  return (__m512i)__builtin_ia32_selectd_512(
100  __U, (__v16si)_mm512_dpbssds_epi32(__W, __A, __B),
101  (__v16si)_mm512_setzero_si512());
102 }
103 
104 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbsud_epi32(__m512i __W,
105  __m512i __A,
106  __m512i __B) {
107  return (__m512i)__builtin_ia32_vpdpbsud512((__v16si)__W, (__v16si)__A,
108  (__v16si)__B);
109 }
110 
111 static __inline__ __m512i __DEFAULT_FN_ATTRS
112 _mm512_mask_dpbsud_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
113  return (__m512i)__builtin_ia32_selectd_512(
114  __U, (__v16si)_mm512_dpbsud_epi32(__W, __A, __B), (__v16si)__W);
115 }
116 
117 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbsud_epi32(
118  __mmask16 __U, __m512i __W, __m512i __A, __m512i __B) {
119  return (__m512i)__builtin_ia32_selectd_512(
120  __U, (__v16si)_mm512_dpbsud_epi32(__W, __A, __B),
121  (__v16si)_mm512_setzero_si512());
122 }
123 
124 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbsuds_epi32(__m512i __W,
125  __m512i __A,
126  __m512i __B) {
127  return (__m512i)__builtin_ia32_vpdpbsuds512((__v16si)__W, (__v16si)__A,
128  (__v16si)__B);
129 }
130 
131 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpbsuds_epi32(
132  __m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
133  return (__m512i)__builtin_ia32_selectd_512(
134  __U, (__v16si)_mm512_dpbsuds_epi32(__W, __A, __B), (__v16si)__W);
135 }
136 
137 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbsuds_epi32(
138  __mmask16 __U, __m512i __W, __m512i __A, __m512i __B) {
139  return (__m512i)__builtin_ia32_selectd_512(
140  __U, (__v16si)_mm512_dpbsuds_epi32(__W, __A, __B),
141  (__v16si)_mm512_setzero_si512());
142 }
143 
144 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbuud_epi32(__m512i __W,
145  __m512i __A,
146  __m512i __B) {
147  return (__m512i)__builtin_ia32_vpdpbuud512((__v16si)__W, (__v16si)__A,
148  (__v16si)__B);
149 }
150 
151 static __inline__ __m512i __DEFAULT_FN_ATTRS
152 _mm512_mask_dpbuud_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
153  return (__m512i)__builtin_ia32_selectd_512(
154  __U, (__v16si)_mm512_dpbuud_epi32(__W, __A, __B), (__v16si)__W);
155 }
156 
157 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbuud_epi32(
158  __mmask16 __U, __m512i __W, __m512i __A, __m512i __B) {
159  return (__m512i)__builtin_ia32_selectd_512(
160  __U, (__v16si)_mm512_dpbuud_epi32(__W, __A, __B),
161  (__v16si)_mm512_setzero_si512());
162 }
163 
164 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbuuds_epi32(__m512i __W,
165  __m512i __A,
166  __m512i __B) {
167  return (__m512i)__builtin_ia32_vpdpbuuds512((__v16si)__W, (__v16si)__A,
168  (__v16si)__B);
169 }
170 
171 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpbuuds_epi32(
172  __m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
173  return (__m512i)__builtin_ia32_selectd_512(
174  __U, (__v16si)_mm512_dpbuuds_epi32(__W, __A, __B), (__v16si)__W);
175 }
176 
177 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbuuds_epi32(
178  __mmask16 __U, __m512i __W, __m512i __A, __m512i __B) {
179  return (__m512i)__builtin_ia32_selectd_512(
180  __U, (__v16si)_mm512_dpbuuds_epi32(__W, __A, __B),
181  (__v16si)_mm512_setzero_si512());
182 }
183 
184 /* VNNI INT16 */
185 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwsud_epi32(__m512i __A,
186  __m512i __B,
187  __m512i __C) {
188  return (__m512i)__builtin_ia32_vpdpwsud512((__v16si)__A, (__v16si)__B,
189  (__v16si)__C);
190 }
191 
192 static __inline__ __m512i __DEFAULT_FN_ATTRS
193 _mm512_mask_dpwsud_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
194  return (__m512i)__builtin_ia32_selectd_512(
195  (__mmask16)__U, (__v16si)_mm512_dpwsud_epi32(__A, __B, __C),
196  (__v16si)__A);
197 }
198 
199 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwsud_epi32(
200  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
201  return (__m512i)__builtin_ia32_selectd_512(
202  (__mmask16)__U, (__v16si)_mm512_dpwsud_epi32(__A, __B, __C),
203  (__v16si)_mm512_setzero_si512());
204 }
205 
206 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwsuds_epi32(__m512i __A,
207  __m512i __B,
208  __m512i __C) {
209  return (__m512i)__builtin_ia32_vpdpwsuds512((__v16si)__A, (__v16si)__B,
210  (__v16si)__C);
211 }
212 
213 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpwsuds_epi32(
214  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
215  return (__m512i)__builtin_ia32_selectd_512(
216  (__mmask16)__U, (__v16si)_mm512_dpwsuds_epi32(__A, __B, __C),
217  (__v16si)__A);
218 }
219 
220 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwsuds_epi32(
221  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
222  return (__m512i)__builtin_ia32_selectd_512(
223  (__mmask16)__U, (__v16si)_mm512_dpwsuds_epi32(__A, __B, __C),
224  (__v16si)_mm512_setzero_si512());
225 }
226 
227 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwusd_epi32(__m512i __A,
228  __m512i __B,
229  __m512i __C) {
230  return (__m512i)__builtin_ia32_vpdpwusd512((__v16si)__A, (__v16si)__B,
231  (__v16si)__C);
232 }
233 
234 static __inline__ __m512i __DEFAULT_FN_ATTRS
235 _mm512_mask_dpwusd_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
236  return (__m512i)__builtin_ia32_selectd_512(
237  (__mmask16)__U, (__v16si)_mm512_dpwusd_epi32(__A, __B, __C),
238  (__v16si)__A);
239 }
240 
241 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwusd_epi32(
242  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
243  return (__m512i)__builtin_ia32_selectd_512(
244  (__mmask16)__U, (__v16si)_mm512_dpwusd_epi32(__A, __B, __C),
245  (__v16si)_mm512_setzero_si512());
246 }
247 
248 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwusds_epi32(__m512i __A,
249  __m512i __B,
250  __m512i __C) {
251  return (__m512i)__builtin_ia32_vpdpwusds512((__v16si)__A, (__v16si)__B,
252  (__v16si)__C);
253 }
254 
255 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpwusds_epi32(
256  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
257  return (__m512i)__builtin_ia32_selectd_512(
258  (__mmask16)__U, (__v16si)_mm512_dpwusds_epi32(__A, __B, __C),
259  (__v16si)__A);
260 }
261 
262 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwusds_epi32(
263  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
264  return (__m512i)__builtin_ia32_selectd_512(
265  (__mmask16)__U, (__v16si)_mm512_dpwusds_epi32(__A, __B, __C),
266  (__v16si)_mm512_setzero_si512());
267 }
268 
269 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwuud_epi32(__m512i __A,
270  __m512i __B,
271  __m512i __C) {
272  return (__m512i)__builtin_ia32_vpdpwuud512((__v16si)__A, (__v16si)__B,
273  (__v16si)__C);
274 }
275 
276 static __inline__ __m512i __DEFAULT_FN_ATTRS
277 _mm512_mask_dpwuud_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
278  return (__m512i)__builtin_ia32_selectd_512(
279  (__mmask16)__U, (__v16si)_mm512_dpwuud_epi32(__A, __B, __C),
280  (__v16si)__A);
281 }
282 
283 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwuud_epi32(
284  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
285  return (__m512i)__builtin_ia32_selectd_512(
286  (__mmask16)__U, (__v16si)_mm512_dpwuud_epi32(__A, __B, __C),
287  (__v16si)_mm512_setzero_si512());
288 }
289 
290 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwuuds_epi32(__m512i __A,
291  __m512i __B,
292  __m512i __C) {
293  return (__m512i)__builtin_ia32_vpdpwuuds512((__v16si)__A, (__v16si)__B,
294  (__v16si)__C);
295 }
296 
297 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpwuuds_epi32(
298  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
299  return (__m512i)__builtin_ia32_selectd_512(
300  (__mmask16)__U, (__v16si)_mm512_dpwuuds_epi32(__A, __B, __C),
301  (__v16si)__A);
302 }
303 
304 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwuuds_epi32(
305  __m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
306  return (__m512i)__builtin_ia32_selectd_512(
307  (__mmask16)__U, (__v16si)_mm512_dpwuuds_epi32(__A, __B, __C),
308  (__v16si)_mm512_setzero_si512());
309 }
310 
311 #undef __DEFAULT_FN_ATTRS
312 
313 #endif /* __SSE2__ */
314 #endif /* __AVX10_2_512NIINTRIN_H */
#define __DEFAULT_FN_ATTRS
static __inline __m512 __DEFAULT_FN_ATTRS512 _mm512_setzero_ps(void)
unsigned short __mmask16
Definition: avx512fintrin.h:42
static __inline __m512i __DEFAULT_FN_ATTRS512 _mm512_setzero_si512(void)