avx512bwintrin.h revision 296417
190792Sgshapiro/*===------------- avx512bwintrin.h - AVX512BW intrinsics ------------------=== 2261363Sgshapiro * 390792Sgshapiro * 490792Sgshapiro * Permission is hereby granted, free of charge, to any person obtaining a copy 590792Sgshapiro * of this software and associated documentation files (the "Software"), to deal 690792Sgshapiro * in the Software without restriction, including without limitation the rights 790792Sgshapiro * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 890792Sgshapiro * copies of the Software, and to permit persons to whom the Software is 990792Sgshapiro * furnished to do so, subject to the following conditions: 1090792Sgshapiro * 1190792Sgshapiro * The above copyright notice and this permission notice shall be included in 1290792Sgshapiro * all copies or substantial portions of the Software. 1390792Sgshapiro * 1490792Sgshapiro * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1590792Sgshapiro * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16266692Sgshapiro * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1790792Sgshapiro * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1890792Sgshapiro * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19157001Sgshapiro * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 2090792Sgshapiro * THE SOFTWARE. 2190792Sgshapiro * 2290792Sgshapiro *===-----------------------------------------------------------------------=== 2390792Sgshapiro */ 2490792Sgshapiro#ifndef __IMMINTRIN_H 2590792Sgshapiro#error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead." 2690792Sgshapiro#endif 27141858Sgshapiro 2890792Sgshapiro#ifndef __AVX512BWINTRIN_H 2990792Sgshapiro#define __AVX512BWINTRIN_H 3090792Sgshapiro 3190792Sgshapirotypedef unsigned int __mmask32; 3290792Sgshapirotypedef unsigned long long __mmask64; 3390792Sgshapirotypedef char __v64qi __attribute__ ((__vector_size__ (64))); 3490792Sgshapirotypedef short __v32hi __attribute__ ((__vector_size__ (64))); 3590792Sgshapiro 3690792Sgshapiro/* Define the default attributes for the functions in this file. */ 3790792Sgshapiro#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) 3890792Sgshapiro 3990792Sgshapirostatic __inline __v64qi __DEFAULT_FN_ATTRS 4090792Sgshapiro_mm512_setzero_qi(void) { 4190792Sgshapiro return (__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0, 4290792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 4390792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 4490792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 4590792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 4690792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 4790792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 4890792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0 }; 4990792Sgshapiro} 5090792Sgshapiro 5190792Sgshapirostatic __inline __v32hi __DEFAULT_FN_ATTRS 5290792Sgshapiro_mm512_setzero_hi(void) { 5390792Sgshapiro return (__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0, 5490792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 5590792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0, 5690792Sgshapiro 0, 0, 0, 0, 0, 0, 0, 0 }; 5790792Sgshapiro} 5890792Sgshapiro 5990792Sgshapiro/* Integer compare */ 6090792Sgshapiro 6190792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 6290792Sgshapiro_mm512_cmpeq_epi8_mask(__m512i __a, __m512i __b) { 6390792Sgshapiro return (__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b, 6490792Sgshapiro (__mmask64)-1); 6590792Sgshapiro} 6690792Sgshapiro 6790792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 6890792Sgshapiro_mm512_mask_cmpeq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 6990792Sgshapiro return (__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b, 7090792Sgshapiro __u); 7190792Sgshapiro} 7290792Sgshapiro 7390792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 7490792Sgshapiro_mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) { 7590792Sgshapiro return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0, 7690792Sgshapiro (__mmask64)-1); 7790792Sgshapiro} 7890792Sgshapiro 7990792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 8090792Sgshapiro_mm512_mask_cmpeq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 8190792Sgshapiro return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0, 8290792Sgshapiro __u); 8390792Sgshapiro} 8490792Sgshapiro 8590792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 8690792Sgshapiro_mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) { 8790792Sgshapiro return (__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b, 8890792Sgshapiro (__mmask32)-1); 8990792Sgshapiro} 9090792Sgshapiro 9190792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 9290792Sgshapiro_mm512_mask_cmpeq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 9390792Sgshapiro return (__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b, 9490792Sgshapiro __u); 9590792Sgshapiro} 9690792Sgshapiro 9790792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 9890792Sgshapiro_mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) { 9990792Sgshapiro return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0, 10090792Sgshapiro (__mmask32)-1); 10190792Sgshapiro} 10290792Sgshapiro 10390792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 10490792Sgshapiro_mm512_mask_cmpeq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 10590792Sgshapiro return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0, 10690792Sgshapiro __u); 10790792Sgshapiro} 10890792Sgshapiro 10990792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 11090792Sgshapiro_mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) { 11190792Sgshapiro return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5, 11290792Sgshapiro (__mmask64)-1); 11390792Sgshapiro} 11490792Sgshapiro 11590792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 11690792Sgshapiro_mm512_mask_cmpge_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 11790792Sgshapiro return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5, 11890792Sgshapiro __u); 11990792Sgshapiro} 12090792Sgshapiro 12190792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 12290792Sgshapiro_mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) { 12390792Sgshapiro return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5, 12490792Sgshapiro (__mmask64)-1); 12590792Sgshapiro} 12690792Sgshapiro 12790792Sgshapirostatic __inline__ __mmask64 __DEFAULT_FN_ATTRS 12890792Sgshapiro_mm512_mask_cmpge_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 12990792Sgshapiro return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5, 13090792Sgshapiro __u); 13190792Sgshapiro} 13290792Sgshapiro 13390792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 13490792Sgshapiro_mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) { 13590792Sgshapiro return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5, 13690792Sgshapiro (__mmask32)-1); 13790792Sgshapiro} 13890792Sgshapiro 13990792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 14090792Sgshapiro_mm512_mask_cmpge_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 14190792Sgshapiro return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5, 14290792Sgshapiro __u); 14390792Sgshapiro} 14490792Sgshapiro 14590792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 14690792Sgshapiro_mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) { 14790792Sgshapiro return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5, 14890792Sgshapiro (__mmask32)-1); 14990792Sgshapiro} 15090792Sgshapiro 15190792Sgshapirostatic __inline__ __mmask32 __DEFAULT_FN_ATTRS 15290792Sgshapiro_mm512_mask_cmpge_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 15390792Sgshapiro return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5, 154 __u); 155} 156 157static __inline__ __mmask64 __DEFAULT_FN_ATTRS 158_mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) { 159 return (__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b, 160 (__mmask64)-1); 161} 162 163static __inline__ __mmask64 __DEFAULT_FN_ATTRS 164_mm512_mask_cmpgt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 165 return (__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b, 166 __u); 167} 168 169static __inline__ __mmask64 __DEFAULT_FN_ATTRS 170_mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) { 171 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6, 172 (__mmask64)-1); 173} 174 175static __inline__ __mmask64 __DEFAULT_FN_ATTRS 176_mm512_mask_cmpgt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 177 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6, 178 __u); 179} 180 181static __inline__ __mmask32 __DEFAULT_FN_ATTRS 182_mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) { 183 return (__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b, 184 (__mmask32)-1); 185} 186 187static __inline__ __mmask32 __DEFAULT_FN_ATTRS 188_mm512_mask_cmpgt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 189 return (__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b, 190 __u); 191} 192 193static __inline__ __mmask32 __DEFAULT_FN_ATTRS 194_mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) { 195 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6, 196 (__mmask32)-1); 197} 198 199static __inline__ __mmask32 __DEFAULT_FN_ATTRS 200_mm512_mask_cmpgt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 201 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6, 202 __u); 203} 204 205static __inline__ __mmask64 __DEFAULT_FN_ATTRS 206_mm512_cmple_epi8_mask(__m512i __a, __m512i __b) { 207 return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2, 208 (__mmask64)-1); 209} 210 211static __inline__ __mmask64 __DEFAULT_FN_ATTRS 212_mm512_mask_cmple_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 213 return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2, 214 __u); 215} 216 217static __inline__ __mmask64 __DEFAULT_FN_ATTRS 218_mm512_cmple_epu8_mask(__m512i __a, __m512i __b) { 219 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2, 220 (__mmask64)-1); 221} 222 223static __inline__ __mmask64 __DEFAULT_FN_ATTRS 224_mm512_mask_cmple_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 225 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2, 226 __u); 227} 228 229static __inline__ __mmask32 __DEFAULT_FN_ATTRS 230_mm512_cmple_epi16_mask(__m512i __a, __m512i __b) { 231 return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2, 232 (__mmask32)-1); 233} 234 235static __inline__ __mmask32 __DEFAULT_FN_ATTRS 236_mm512_mask_cmple_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 237 return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2, 238 __u); 239} 240 241static __inline__ __mmask32 __DEFAULT_FN_ATTRS 242_mm512_cmple_epu16_mask(__m512i __a, __m512i __b) { 243 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2, 244 (__mmask32)-1); 245} 246 247static __inline__ __mmask32 __DEFAULT_FN_ATTRS 248_mm512_mask_cmple_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 249 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2, 250 __u); 251} 252 253static __inline__ __mmask64 __DEFAULT_FN_ATTRS 254_mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) { 255 return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1, 256 (__mmask64)-1); 257} 258 259static __inline__ __mmask64 __DEFAULT_FN_ATTRS 260_mm512_mask_cmplt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 261 return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1, 262 __u); 263} 264 265static __inline__ __mmask64 __DEFAULT_FN_ATTRS 266_mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) { 267 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1, 268 (__mmask64)-1); 269} 270 271static __inline__ __mmask64 __DEFAULT_FN_ATTRS 272_mm512_mask_cmplt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 273 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1, 274 __u); 275} 276 277static __inline__ __mmask32 __DEFAULT_FN_ATTRS 278_mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) { 279 return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1, 280 (__mmask32)-1); 281} 282 283static __inline__ __mmask32 __DEFAULT_FN_ATTRS 284_mm512_mask_cmplt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 285 return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1, 286 __u); 287} 288 289static __inline__ __mmask32 __DEFAULT_FN_ATTRS 290_mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) { 291 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1, 292 (__mmask32)-1); 293} 294 295static __inline__ __mmask32 __DEFAULT_FN_ATTRS 296_mm512_mask_cmplt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 297 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1, 298 __u); 299} 300 301static __inline__ __mmask64 __DEFAULT_FN_ATTRS 302_mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) { 303 return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4, 304 (__mmask64)-1); 305} 306 307static __inline__ __mmask64 __DEFAULT_FN_ATTRS 308_mm512_mask_cmpneq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 309 return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4, 310 __u); 311} 312 313static __inline__ __mmask64 __DEFAULT_FN_ATTRS 314_mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) { 315 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4, 316 (__mmask64)-1); 317} 318 319static __inline__ __mmask64 __DEFAULT_FN_ATTRS 320_mm512_mask_cmpneq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 321 return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4, 322 __u); 323} 324 325static __inline__ __mmask32 __DEFAULT_FN_ATTRS 326_mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) { 327 return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4, 328 (__mmask32)-1); 329} 330 331static __inline__ __mmask32 __DEFAULT_FN_ATTRS 332_mm512_mask_cmpneq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 333 return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4, 334 __u); 335} 336 337static __inline__ __mmask32 __DEFAULT_FN_ATTRS 338_mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) { 339 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4, 340 (__mmask32)-1); 341} 342 343static __inline__ __mmask32 __DEFAULT_FN_ATTRS 344_mm512_mask_cmpneq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 345 return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4, 346 __u); 347} 348 349static __inline__ __m512i __DEFAULT_FN_ATTRS 350_mm512_add_epi8 (__m512i __A, __m512i __B) { 351 return (__m512i) ((__v64qi) __A + (__v64qi) __B); 352} 353 354static __inline__ __m512i __DEFAULT_FN_ATTRS 355_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 356 return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A, 357 (__v64qi) __B, 358 (__v64qi) __W, 359 (__mmask64) __U); 360} 361 362static __inline__ __m512i __DEFAULT_FN_ATTRS 363_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { 364 return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A, 365 (__v64qi) __B, 366 (__v64qi) _mm512_setzero_qi(), 367 (__mmask64) __U); 368} 369 370static __inline__ __m512i __DEFAULT_FN_ATTRS 371_mm512_sub_epi8 (__m512i __A, __m512i __B) { 372 return (__m512i) ((__v64qi) __A - (__v64qi) __B); 373} 374 375static __inline__ __m512i __DEFAULT_FN_ATTRS 376_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 377 return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A, 378 (__v64qi) __B, 379 (__v64qi) __W, 380 (__mmask64) __U); 381} 382 383static __inline__ __m512i __DEFAULT_FN_ATTRS 384_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { 385 return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A, 386 (__v64qi) __B, 387 (__v64qi) _mm512_setzero_qi(), 388 (__mmask64) __U); 389} 390 391static __inline__ __m512i __DEFAULT_FN_ATTRS 392_mm512_add_epi16 (__m512i __A, __m512i __B) { 393 return (__m512i) ((__v32hi) __A + (__v32hi) __B); 394} 395 396static __inline__ __m512i __DEFAULT_FN_ATTRS 397_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 398 return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A, 399 (__v32hi) __B, 400 (__v32hi) __W, 401 (__mmask32) __U); 402} 403 404static __inline__ __m512i __DEFAULT_FN_ATTRS 405_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 406 return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A, 407 (__v32hi) __B, 408 (__v32hi) _mm512_setzero_hi(), 409 (__mmask32) __U); 410} 411 412static __inline__ __m512i __DEFAULT_FN_ATTRS 413_mm512_sub_epi16 (__m512i __A, __m512i __B) { 414 return (__m512i) ((__v32hi) __A - (__v32hi) __B); 415} 416 417static __inline__ __m512i __DEFAULT_FN_ATTRS 418_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 419 return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A, 420 (__v32hi) __B, 421 (__v32hi) __W, 422 (__mmask32) __U); 423} 424 425static __inline__ __m512i __DEFAULT_FN_ATTRS 426_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 427 return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A, 428 (__v32hi) __B, 429 (__v32hi) _mm512_setzero_hi(), 430 (__mmask32) __U); 431} 432 433static __inline__ __m512i __DEFAULT_FN_ATTRS 434_mm512_mullo_epi16 (__m512i __A, __m512i __B) { 435 return (__m512i) ((__v32hi) __A * (__v32hi) __B); 436} 437 438static __inline__ __m512i __DEFAULT_FN_ATTRS 439_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 440 return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A, 441 (__v32hi) __B, 442 (__v32hi) __W, 443 (__mmask32) __U); 444} 445 446static __inline__ __m512i __DEFAULT_FN_ATTRS 447_mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 448 return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A, 449 (__v32hi) __B, 450 (__v32hi) _mm512_setzero_hi(), 451 (__mmask32) __U); 452} 453 454static __inline__ __m512i __DEFAULT_FN_ATTRS 455_mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W) 456{ 457 return (__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) __A, 458 (__v64qi) __W, 459 (__mmask64) __U); 460} 461 462static __inline__ __m512i __DEFAULT_FN_ATTRS 463_mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W) 464{ 465 return (__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) __A, 466 (__v32hi) __W, 467 (__mmask32) __U); 468} 469 470static __inline__ __m512i __DEFAULT_FN_ATTRS 471_mm512_abs_epi8 (__m512i __A) 472{ 473 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, 474 (__v64qi) _mm512_setzero_qi(), 475 (__mmask64) -1); 476} 477 478static __inline__ __m512i __DEFAULT_FN_ATTRS 479_mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A) 480{ 481 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, 482 (__v64qi) __W, 483 (__mmask64) __U); 484} 485 486static __inline__ __m512i __DEFAULT_FN_ATTRS 487_mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A) 488{ 489 return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, 490 (__v64qi) _mm512_setzero_qi(), 491 (__mmask64) __U); 492} 493 494static __inline__ __m512i __DEFAULT_FN_ATTRS 495_mm512_abs_epi16 (__m512i __A) 496{ 497 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, 498 (__v32hi) _mm512_setzero_hi(), 499 (__mmask32) -1); 500} 501 502static __inline__ __m512i __DEFAULT_FN_ATTRS 503_mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A) 504{ 505 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, 506 (__v32hi) __W, 507 (__mmask32) __U); 508} 509 510static __inline__ __m512i __DEFAULT_FN_ATTRS 511_mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A) 512{ 513 return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, 514 (__v32hi) _mm512_setzero_hi(), 515 (__mmask32) __U); 516} 517 518static __inline__ __m512i __DEFAULT_FN_ATTRS 519_mm512_packs_epi32 (__m512i __A, __m512i __B) 520{ 521 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A, 522 (__v16si) __B, 523 (__v32hi) _mm512_setzero_hi(), 524 (__mmask32) -1); 525} 526 527static __inline__ __m512i __DEFAULT_FN_ATTRS 528_mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B) 529{ 530 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A, 531 (__v16si) __B, 532 (__v32hi) _mm512_setzero_hi(), 533 __M); 534} 535 536static __inline__ __m512i __DEFAULT_FN_ATTRS 537_mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A, 538 __m512i __B) 539{ 540 return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A, 541 (__v16si) __B, 542 (__v32hi) __W, 543 __M); 544} 545 546static __inline__ __m512i __DEFAULT_FN_ATTRS 547_mm512_packs_epi16 (__m512i __A, __m512i __B) 548{ 549 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, 550 (__v32hi) __B, 551 (__v64qi) _mm512_setzero_qi(), 552 (__mmask64) -1); 553} 554 555static __inline__ __m512i __DEFAULT_FN_ATTRS 556_mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A, 557 __m512i __B) 558{ 559 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, 560 (__v32hi) __B, 561 (__v64qi) __W, 562 (__mmask64) __M); 563} 564 565static __inline__ __m512i __DEFAULT_FN_ATTRS 566_mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B) 567{ 568 return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, 569 (__v32hi) __B, 570 (__v64qi) _mm512_setzero_qi(), 571 __M); 572} 573 574static __inline__ __m512i __DEFAULT_FN_ATTRS 575_mm512_packus_epi32 (__m512i __A, __m512i __B) 576{ 577 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A, 578 (__v16si) __B, 579 (__v32hi) _mm512_setzero_hi(), 580 (__mmask32) -1); 581} 582 583static __inline__ __m512i __DEFAULT_FN_ATTRS 584_mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B) 585{ 586 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A, 587 (__v16si) __B, 588 (__v32hi) _mm512_setzero_hi(), 589 __M); 590} 591 592static __inline__ __m512i __DEFAULT_FN_ATTRS 593_mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A, 594 __m512i __B) 595{ 596 return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A, 597 (__v16si) __B, 598 (__v32hi) __W, 599 __M); 600} 601 602static __inline__ __m512i __DEFAULT_FN_ATTRS 603_mm512_packus_epi16 (__m512i __A, __m512i __B) 604{ 605 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, 606 (__v32hi) __B, 607 (__v64qi) _mm512_setzero_qi(), 608 (__mmask64) -1); 609} 610 611static __inline__ __m512i __DEFAULT_FN_ATTRS 612_mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A, 613 __m512i __B) 614{ 615 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, 616 (__v32hi) __B, 617 (__v64qi) __W, 618 (__mmask64) __M); 619} 620 621static __inline__ __m512i __DEFAULT_FN_ATTRS 622_mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B) 623{ 624 return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, 625 (__v32hi) __B, 626 (__v64qi) _mm512_setzero_qi(), 627 (__mmask64) __M); 628} 629 630static __inline__ __m512i __DEFAULT_FN_ATTRS 631_mm512_adds_epi8 (__m512i __A, __m512i __B) 632{ 633 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, 634 (__v64qi) __B, 635 (__v64qi) _mm512_setzero_qi(), 636 (__mmask64) -1); 637} 638 639static __inline__ __m512i __DEFAULT_FN_ATTRS 640_mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, 641 __m512i __B) 642{ 643 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, 644 (__v64qi) __B, 645 (__v64qi) __W, 646 (__mmask64) __U); 647} 648 649static __inline__ __m512i __DEFAULT_FN_ATTRS 650_mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B) 651{ 652 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, 653 (__v64qi) __B, 654 (__v64qi) _mm512_setzero_qi(), 655 (__mmask64) __U); 656} 657 658static __inline__ __m512i __DEFAULT_FN_ATTRS 659_mm512_adds_epi16 (__m512i __A, __m512i __B) 660{ 661 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, 662 (__v32hi) __B, 663 (__v32hi) _mm512_setzero_hi(), 664 (__mmask32) -1); 665} 666 667static __inline__ __m512i __DEFAULT_FN_ATTRS 668_mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, 669 __m512i __B) 670{ 671 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, 672 (__v32hi) __B, 673 (__v32hi) __W, 674 (__mmask32) __U); 675} 676 677static __inline__ __m512i __DEFAULT_FN_ATTRS 678_mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B) 679{ 680 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, 681 (__v32hi) __B, 682 (__v32hi) _mm512_setzero_hi(), 683 (__mmask32) __U); 684} 685 686static __inline__ __m512i __DEFAULT_FN_ATTRS 687_mm512_adds_epu8 (__m512i __A, __m512i __B) 688{ 689 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, 690 (__v64qi) __B, 691 (__v64qi) _mm512_setzero_qi(), 692 (__mmask64) -1); 693} 694 695static __inline__ __m512i __DEFAULT_FN_ATTRS 696_mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, 697 __m512i __B) 698{ 699 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, 700 (__v64qi) __B, 701 (__v64qi) __W, 702 (__mmask64) __U); 703} 704 705static __inline__ __m512i __DEFAULT_FN_ATTRS 706_mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B) 707{ 708 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, 709 (__v64qi) __B, 710 (__v64qi) _mm512_setzero_qi(), 711 (__mmask64) __U); 712} 713 714static __inline__ __m512i __DEFAULT_FN_ATTRS 715_mm512_adds_epu16 (__m512i __A, __m512i __B) 716{ 717 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, 718 (__v32hi) __B, 719 (__v32hi) _mm512_setzero_hi(), 720 (__mmask32) -1); 721} 722 723static __inline__ __m512i __DEFAULT_FN_ATTRS 724_mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, 725 __m512i __B) 726{ 727 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, 728 (__v32hi) __B, 729 (__v32hi) __W, 730 (__mmask32) __U); 731} 732 733static __inline__ __m512i __DEFAULT_FN_ATTRS 734_mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) 735{ 736 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, 737 (__v32hi) __B, 738 (__v32hi) _mm512_setzero_hi(), 739 (__mmask32) __U); 740} 741 742static __inline__ __m512i __DEFAULT_FN_ATTRS 743_mm512_avg_epu8 (__m512i __A, __m512i __B) 744{ 745 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, 746 (__v64qi) __B, 747 (__v64qi) _mm512_setzero_qi(), 748 (__mmask64) -1); 749} 750 751static __inline__ __m512i __DEFAULT_FN_ATTRS 752_mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, 753 __m512i __B) 754{ 755 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, 756 (__v64qi) __B, 757 (__v64qi) __W, 758 (__mmask64) __U); 759} 760 761static __inline__ __m512i __DEFAULT_FN_ATTRS 762_mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) 763{ 764 return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, 765 (__v64qi) __B, 766 (__v64qi) _mm512_setzero_qi(), 767 (__mmask64) __U); 768} 769 770static __inline__ __m512i __DEFAULT_FN_ATTRS 771_mm512_avg_epu16 (__m512i __A, __m512i __B) 772{ 773 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, 774 (__v32hi) __B, 775 (__v32hi) _mm512_setzero_hi(), 776 (__mmask32) -1); 777} 778 779static __inline__ __m512i __DEFAULT_FN_ATTRS 780_mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, 781 __m512i __B) 782{ 783 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, 784 (__v32hi) __B, 785 (__v32hi) __W, 786 (__mmask32) __U); 787} 788 789static __inline__ __m512i __DEFAULT_FN_ATTRS 790_mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) 791{ 792 return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, 793 (__v32hi) __B, 794 (__v32hi) _mm512_setzero_hi(), 795 (__mmask32) __U); 796} 797 798static __inline__ __m512i __DEFAULT_FN_ATTRS 799_mm512_max_epi8 (__m512i __A, __m512i __B) 800{ 801 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, 802 (__v64qi) __B, 803 (__v64qi) _mm512_setzero_qi(), 804 (__mmask64) -1); 805} 806 807static __inline__ __m512i __DEFAULT_FN_ATTRS 808_mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B) 809{ 810 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, 811 (__v64qi) __B, 812 (__v64qi) _mm512_setzero_qi(), 813 (__mmask64) __M); 814} 815 816static __inline__ __m512i __DEFAULT_FN_ATTRS 817_mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, 818 __m512i __B) 819{ 820 return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, 821 (__v64qi) __B, 822 (__v64qi) __W, 823 (__mmask64) __M); 824} 825 826static __inline__ __m512i __DEFAULT_FN_ATTRS 827_mm512_max_epi16 (__m512i __A, __m512i __B) 828{ 829 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, 830 (__v32hi) __B, 831 (__v32hi) _mm512_setzero_hi(), 832 (__mmask32) -1); 833} 834 835static __inline__ __m512i __DEFAULT_FN_ATTRS 836_mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B) 837{ 838 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, 839 (__v32hi) __B, 840 (__v32hi) _mm512_setzero_hi(), 841 (__mmask32) __M); 842} 843 844static __inline__ __m512i __DEFAULT_FN_ATTRS 845_mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A, 846 __m512i __B) 847{ 848 return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, 849 (__v32hi) __B, 850 (__v32hi) __W, 851 (__mmask32) __M); 852} 853 854static __inline__ __m512i __DEFAULT_FN_ATTRS 855_mm512_max_epu8 (__m512i __A, __m512i __B) 856{ 857 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, 858 (__v64qi) __B, 859 (__v64qi) _mm512_setzero_qi(), 860 (__mmask64) -1); 861} 862 863static __inline__ __m512i __DEFAULT_FN_ATTRS 864_mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B) 865{ 866 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, 867 (__v64qi) __B, 868 (__v64qi) _mm512_setzero_qi(), 869 (__mmask64) __M); 870} 871 872static __inline__ __m512i __DEFAULT_FN_ATTRS 873_mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, 874 __m512i __B) 875{ 876 return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, 877 (__v64qi) __B, 878 (__v64qi) __W, 879 (__mmask64) __M); 880} 881 882static __inline__ __m512i __DEFAULT_FN_ATTRS 883_mm512_max_epu16 (__m512i __A, __m512i __B) 884{ 885 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, 886 (__v32hi) __B, 887 (__v32hi) _mm512_setzero_hi(), 888 (__mmask32) -1); 889} 890 891static __inline__ __m512i __DEFAULT_FN_ATTRS 892_mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B) 893{ 894 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, 895 (__v32hi) __B, 896 (__v32hi) _mm512_setzero_hi(), 897 (__mmask32) __M); 898} 899 900static __inline__ __m512i __DEFAULT_FN_ATTRS 901_mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, 902 __m512i __B) 903{ 904 return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, 905 (__v32hi) __B, 906 (__v32hi) __W, 907 (__mmask32) __M); 908} 909 910static __inline__ __m512i __DEFAULT_FN_ATTRS 911_mm512_min_epi8 (__m512i __A, __m512i __B) 912{ 913 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, 914 (__v64qi) __B, 915 (__v64qi) _mm512_setzero_qi(), 916 (__mmask64) -1); 917} 918 919static __inline__ __m512i __DEFAULT_FN_ATTRS 920_mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B) 921{ 922 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, 923 (__v64qi) __B, 924 (__v64qi) _mm512_setzero_qi(), 925 (__mmask64) __M); 926} 927 928static __inline__ __m512i __DEFAULT_FN_ATTRS 929_mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, 930 __m512i __B) 931{ 932 return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, 933 (__v64qi) __B, 934 (__v64qi) __W, 935 (__mmask64) __M); 936} 937 938static __inline__ __m512i __DEFAULT_FN_ATTRS 939_mm512_min_epi16 (__m512i __A, __m512i __B) 940{ 941 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, 942 (__v32hi) __B, 943 (__v32hi) _mm512_setzero_hi(), 944 (__mmask32) -1); 945} 946 947static __inline__ __m512i __DEFAULT_FN_ATTRS 948_mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B) 949{ 950 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, 951 (__v32hi) __B, 952 (__v32hi) _mm512_setzero_hi(), 953 (__mmask32) __M); 954} 955 956static __inline__ __m512i __DEFAULT_FN_ATTRS 957_mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, 958 __m512i __B) 959{ 960 return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, 961 (__v32hi) __B, 962 (__v32hi) __W, 963 (__mmask32) __M); 964} 965 966static __inline__ __m512i __DEFAULT_FN_ATTRS 967_mm512_min_epu8 (__m512i __A, __m512i __B) 968{ 969 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, 970 (__v64qi) __B, 971 (__v64qi) _mm512_setzero_qi(), 972 (__mmask64) -1); 973} 974 975static __inline__ __m512i __DEFAULT_FN_ATTRS 976_mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B) 977{ 978 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, 979 (__v64qi) __B, 980 (__v64qi) _mm512_setzero_qi(), 981 (__mmask64) __M); 982} 983 984static __inline__ __m512i __DEFAULT_FN_ATTRS 985_mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, 986 __m512i __B) 987{ 988 return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, 989 (__v64qi) __B, 990 (__v64qi) __W, 991 (__mmask64) __M); 992} 993 994static __inline__ __m512i __DEFAULT_FN_ATTRS 995_mm512_min_epu16 (__m512i __A, __m512i __B) 996{ 997 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, 998 (__v32hi) __B, 999 (__v32hi) _mm512_setzero_hi(), 1000 (__mmask32) -1); 1001} 1002 1003static __inline__ __m512i __DEFAULT_FN_ATTRS 1004_mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B) 1005{ 1006 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, 1007 (__v32hi) __B, 1008 (__v32hi) _mm512_setzero_hi(), 1009 (__mmask32) __M); 1010} 1011 1012static __inline__ __m512i __DEFAULT_FN_ATTRS 1013_mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, 1014 __m512i __B) 1015{ 1016 return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, 1017 (__v32hi) __B, 1018 (__v32hi) __W, 1019 (__mmask32) __M); 1020} 1021 1022static __inline__ __m512i __DEFAULT_FN_ATTRS 1023_mm512_shuffle_epi8 (__m512i __A, __m512i __B) 1024{ 1025 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, 1026 (__v64qi) __B, 1027 (__v64qi) _mm512_setzero_qi(), 1028 (__mmask64) -1); 1029} 1030 1031static __inline__ __m512i __DEFAULT_FN_ATTRS 1032_mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A, 1033 __m512i __B) 1034{ 1035 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, 1036 (__v64qi) __B, 1037 (__v64qi) __W, 1038 (__mmask64) __U); 1039} 1040 1041static __inline__ __m512i __DEFAULT_FN_ATTRS 1042_mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B) 1043{ 1044 return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, 1045 (__v64qi) __B, 1046 (__v64qi) _mm512_setzero_qi(), 1047 (__mmask64) __U); 1048} 1049 1050static __inline__ __m512i __DEFAULT_FN_ATTRS 1051_mm512_subs_epi8 (__m512i __A, __m512i __B) 1052{ 1053 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, 1054 (__v64qi) __B, 1055 (__v64qi) _mm512_setzero_qi(), 1056 (__mmask64) -1); 1057} 1058 1059static __inline__ __m512i __DEFAULT_FN_ATTRS 1060_mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, 1061 __m512i __B) 1062{ 1063 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, 1064 (__v64qi) __B, 1065 (__v64qi) __W, 1066 (__mmask64) __U); 1067} 1068 1069static __inline__ __m512i __DEFAULT_FN_ATTRS 1070_mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B) 1071{ 1072 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, 1073 (__v64qi) __B, 1074 (__v64qi) _mm512_setzero_qi(), 1075 (__mmask64) __U); 1076} 1077 1078static __inline__ __m512i __DEFAULT_FN_ATTRS 1079_mm512_subs_epi16 (__m512i __A, __m512i __B) 1080{ 1081 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, 1082 (__v32hi) __B, 1083 (__v32hi) _mm512_setzero_hi(), 1084 (__mmask32) -1); 1085} 1086 1087static __inline__ __m512i __DEFAULT_FN_ATTRS 1088_mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, 1089 __m512i __B) 1090{ 1091 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, 1092 (__v32hi) __B, 1093 (__v32hi) __W, 1094 (__mmask32) __U); 1095} 1096 1097static __inline__ __m512i __DEFAULT_FN_ATTRS 1098_mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) 1099{ 1100 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, 1101 (__v32hi) __B, 1102 (__v32hi) _mm512_setzero_hi(), 1103 (__mmask32) __U); 1104} 1105 1106static __inline__ __m512i __DEFAULT_FN_ATTRS 1107_mm512_subs_epu8 (__m512i __A, __m512i __B) 1108{ 1109 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, 1110 (__v64qi) __B, 1111 (__v64qi) _mm512_setzero_qi(), 1112 (__mmask64) -1); 1113} 1114 1115static __inline__ __m512i __DEFAULT_FN_ATTRS 1116_mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, 1117 __m512i __B) 1118{ 1119 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, 1120 (__v64qi) __B, 1121 (__v64qi) __W, 1122 (__mmask64) __U); 1123} 1124 1125static __inline__ __m512i __DEFAULT_FN_ATTRS 1126_mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B) 1127{ 1128 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, 1129 (__v64qi) __B, 1130 (__v64qi) _mm512_setzero_qi(), 1131 (__mmask64) __U); 1132} 1133 1134static __inline__ __m512i __DEFAULT_FN_ATTRS 1135_mm512_subs_epu16 (__m512i __A, __m512i __B) 1136{ 1137 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, 1138 (__v32hi) __B, 1139 (__v32hi) _mm512_setzero_hi(), 1140 (__mmask32) -1); 1141} 1142 1143static __inline__ __m512i __DEFAULT_FN_ATTRS 1144_mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, 1145 __m512i __B) 1146{ 1147 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, 1148 (__v32hi) __B, 1149 (__v32hi) __W, 1150 (__mmask32) __U); 1151} 1152 1153static __inline__ __m512i __DEFAULT_FN_ATTRS 1154_mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B) 1155{ 1156 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, 1157 (__v32hi) __B, 1158 (__v32hi) _mm512_setzero_hi(), 1159 (__mmask32) __U); 1160} 1161 1162static __inline__ __m512i __DEFAULT_FN_ATTRS 1163_mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I, 1164 __mmask32 __U, __m512i __B) 1165{ 1166 return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A, 1167 (__v32hi) __I /* idx */ , 1168 (__v32hi) __B, 1169 (__mmask32) __U); 1170} 1171 1172static __inline__ __m512i __DEFAULT_FN_ATTRS 1173_mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B) 1174{ 1175 return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */, 1176 (__v32hi) __A, 1177 (__v32hi) __B, 1178 (__mmask32) -1); 1179} 1180 1181static __inline__ __m512i __DEFAULT_FN_ATTRS 1182_mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U, 1183 __m512i __I, __m512i __B) 1184{ 1185 return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */, 1186 (__v32hi) __A, 1187 (__v32hi) __B, 1188 (__mmask32) __U); 1189} 1190 1191static __inline__ __m512i __DEFAULT_FN_ATTRS 1192_mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A, 1193 __m512i __I, __m512i __B) 1194{ 1195 return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I 1196 /* idx */ , 1197 (__v32hi) __A, 1198 (__v32hi) __B, 1199 (__mmask32) __U); 1200} 1201 1202static __inline__ __m512i __DEFAULT_FN_ATTRS 1203_mm512_mulhrs_epi16 (__m512i __A, __m512i __B) 1204{ 1205 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, 1206 (__v32hi) __B, 1207 (__v32hi) _mm512_setzero_hi(), 1208 (__mmask32) -1); 1209} 1210 1211static __inline__ __m512i __DEFAULT_FN_ATTRS 1212_mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, 1213 __m512i __B) 1214{ 1215 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, 1216 (__v32hi) __B, 1217 (__v32hi) __W, 1218 (__mmask32) __U); 1219} 1220 1221static __inline__ __m512i __DEFAULT_FN_ATTRS 1222_mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) 1223{ 1224 return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, 1225 (__v32hi) __B, 1226 (__v32hi) _mm512_setzero_hi(), 1227 (__mmask32) __U); 1228} 1229 1230static __inline__ __m512i __DEFAULT_FN_ATTRS 1231_mm512_mulhi_epi16 (__m512i __A, __m512i __B) 1232{ 1233 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, 1234 (__v32hi) __B, 1235 (__v32hi) _mm512_setzero_hi(), 1236 (__mmask32) -1); 1237} 1238 1239static __inline__ __m512i __DEFAULT_FN_ATTRS 1240_mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, 1241 __m512i __B) 1242{ 1243 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, 1244 (__v32hi) __B, 1245 (__v32hi) __W, 1246 (__mmask32) __U); 1247} 1248 1249static __inline__ __m512i __DEFAULT_FN_ATTRS 1250_mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B) 1251{ 1252 return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, 1253 (__v32hi) __B, 1254 (__v32hi) _mm512_setzero_hi(), 1255 (__mmask32) __U); 1256} 1257 1258static __inline__ __m512i __DEFAULT_FN_ATTRS 1259_mm512_mulhi_epu16 (__m512i __A, __m512i __B) 1260{ 1261 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, 1262 (__v32hi) __B, 1263 (__v32hi) _mm512_setzero_hi(), 1264 (__mmask32) -1); 1265} 1266 1267static __inline__ __m512i __DEFAULT_FN_ATTRS 1268_mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A, 1269 __m512i __B) 1270{ 1271 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, 1272 (__v32hi) __B, 1273 (__v32hi) __W, 1274 (__mmask32) __U); 1275} 1276 1277static __inline__ __m512i __DEFAULT_FN_ATTRS 1278_mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B) 1279{ 1280 return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, 1281 (__v32hi) __B, 1282 (__v32hi) _mm512_setzero_hi(), 1283 (__mmask32) __U); 1284} 1285 1286static __inline__ __m512i __DEFAULT_FN_ATTRS 1287_mm512_maddubs_epi16 (__m512i __X, __m512i __Y) { 1288 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, 1289 (__v64qi) __Y, 1290 (__v32hi) _mm512_setzero_hi(), 1291 (__mmask32) -1); 1292} 1293 1294static __inline__ __m512i __DEFAULT_FN_ATTRS 1295_mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X, 1296 __m512i __Y) { 1297 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, 1298 (__v64qi) __Y, 1299 (__v32hi) __W, 1300 (__mmask32) __U); 1301} 1302 1303static __inline__ __m512i __DEFAULT_FN_ATTRS 1304_mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y) { 1305 return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, 1306 (__v64qi) __Y, 1307 (__v32hi) _mm512_setzero_hi(), 1308 (__mmask32) __U); 1309} 1310 1311static __inline__ __m512i __DEFAULT_FN_ATTRS 1312_mm512_madd_epi16 (__m512i __A, __m512i __B) { 1313 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, 1314 (__v32hi) __B, 1315 (__v16si) _mm512_setzero_si512(), 1316 (__mmask16) -1); 1317} 1318 1319static __inline__ __m512i __DEFAULT_FN_ATTRS 1320_mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A, 1321 __m512i __B) { 1322 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, 1323 (__v32hi) __B, 1324 (__v16si) __W, 1325 (__mmask16) __U); 1326} 1327 1328static __inline__ __m512i __DEFAULT_FN_ATTRS 1329_mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B) { 1330 return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, 1331 (__v32hi) __B, 1332 (__v16si) _mm512_setzero_si512(), 1333 (__mmask16) __U); 1334} 1335 1336static __inline__ __m256i __DEFAULT_FN_ATTRS 1337_mm512_cvtsepi16_epi8 (__m512i __A) { 1338 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, 1339 (__v32qi)_mm256_setzero_si256(), 1340 (__mmask32) -1); 1341} 1342 1343static __inline__ __m256i __DEFAULT_FN_ATTRS 1344_mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { 1345 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, 1346 (__v32qi)__O, 1347 __M); 1348} 1349 1350static __inline__ __m256i __DEFAULT_FN_ATTRS 1351_mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) { 1352 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, 1353 (__v32qi) _mm256_setzero_si256(), 1354 __M); 1355} 1356 1357static __inline__ __m256i __DEFAULT_FN_ATTRS 1358_mm512_cvtusepi16_epi8 (__m512i __A) { 1359 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, 1360 (__v32qi) _mm256_setzero_si256(), 1361 (__mmask32) -1); 1362} 1363 1364static __inline__ __m256i __DEFAULT_FN_ATTRS 1365_mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { 1366 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, 1367 (__v32qi) __O, 1368 __M); 1369} 1370 1371static __inline__ __m256i __DEFAULT_FN_ATTRS 1372_mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) { 1373 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, 1374 (__v32qi) _mm256_setzero_si256(), 1375 __M); 1376} 1377 1378static __inline__ __m256i __DEFAULT_FN_ATTRS 1379_mm512_cvtepi16_epi8 (__m512i __A) { 1380 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, 1381 (__v32qi) _mm256_setzero_si256(), 1382 (__mmask32) -1); 1383} 1384 1385static __inline__ __m256i __DEFAULT_FN_ATTRS 1386_mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { 1387 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, 1388 (__v32qi) __O, 1389 __M); 1390} 1391 1392static __inline__ __m256i __DEFAULT_FN_ATTRS 1393_mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) { 1394 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, 1395 (__v32qi) _mm256_setzero_si256(), 1396 __M); 1397} 1398 1399static __inline__ __m512i __DEFAULT_FN_ATTRS 1400_mm512_unpackhi_epi8 (__m512i __A, __m512i __B) { 1401 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, 1402 (__v64qi) __B, 1403 (__v64qi) _mm512_setzero_qi(), 1404 (__mmask64) -1); 1405} 1406 1407static __inline__ __m512i __DEFAULT_FN_ATTRS 1408_mm512_mask_unpackhi_epi8 (__m512i __W, __mmask64 __U, __m512i __A, 1409 __m512i __B) { 1410 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, 1411 (__v64qi) __B, 1412 (__v64qi) __W, 1413 (__mmask64) __U); 1414} 1415 1416static __inline__ __m512i __DEFAULT_FN_ATTRS 1417_mm512_maskz_unpackhi_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { 1418 return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, 1419 (__v64qi) __B, 1420 (__v64qi) _mm512_setzero_qi(), 1421 (__mmask64) __U); 1422} 1423 1424static __inline__ __m512i __DEFAULT_FN_ATTRS 1425_mm512_unpackhi_epi16 (__m512i __A, __m512i __B) { 1426 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, 1427 (__v32hi) __B, 1428 (__v32hi) _mm512_setzero_hi(), 1429 (__mmask32) -1); 1430} 1431 1432static __inline__ __m512i __DEFAULT_FN_ATTRS 1433_mm512_mask_unpackhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, 1434 __m512i __B) { 1435 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, 1436 (__v32hi) __B, 1437 (__v32hi) __W, 1438 (__mmask32) __U); 1439} 1440 1441static __inline__ __m512i __DEFAULT_FN_ATTRS 1442_mm512_maskz_unpackhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 1443 return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, 1444 (__v32hi) __B, 1445 (__v32hi) _mm512_setzero_hi(), 1446 (__mmask32) __U); 1447} 1448 1449static __inline__ __m512i __DEFAULT_FN_ATTRS 1450_mm512_unpacklo_epi8 (__m512i __A, __m512i __B) { 1451 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, 1452 (__v64qi) __B, 1453 (__v64qi) _mm512_setzero_qi(), 1454 (__mmask64) -1); 1455} 1456 1457static __inline__ __m512i __DEFAULT_FN_ATTRS 1458_mm512_mask_unpacklo_epi8 (__m512i __W, __mmask64 __U, __m512i __A, 1459 __m512i __B) { 1460 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, 1461 (__v64qi) __B, 1462 (__v64qi) __W, 1463 (__mmask64) __U); 1464} 1465 1466static __inline__ __m512i __DEFAULT_FN_ATTRS 1467_mm512_maskz_unpacklo_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { 1468 return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, 1469 (__v64qi) __B, 1470 (__v64qi) _mm512_setzero_qi(), 1471 (__mmask64) __U); 1472} 1473 1474static __inline__ __m512i __DEFAULT_FN_ATTRS 1475_mm512_unpacklo_epi16 (__m512i __A, __m512i __B) { 1476 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, 1477 (__v32hi) __B, 1478 (__v32hi) _mm512_setzero_hi(), 1479 (__mmask32) -1); 1480} 1481 1482static __inline__ __m512i __DEFAULT_FN_ATTRS 1483_mm512_mask_unpacklo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, 1484 __m512i __B) { 1485 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, 1486 (__v32hi) __B, 1487 (__v32hi) __W, 1488 (__mmask32) __U); 1489} 1490 1491static __inline__ __m512i __DEFAULT_FN_ATTRS 1492_mm512_maskz_unpacklo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 1493 return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, 1494 (__v32hi) __B, 1495 (__v32hi) _mm512_setzero_hi(), 1496 (__mmask32) __U); 1497} 1498 1499#define _mm512_cmp_epi8_mask(a, b, p) __extension__ ({ \ 1500 (__mmask16)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \ 1501 (__v64qi)(__m512i)(b), \ 1502 (p), (__mmask64)-1); }) 1503 1504#define _mm512_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \ 1505 (__mmask16)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \ 1506 (__v64qi)(__m512i)(b), \ 1507 (p), (__mmask64)(m)); }) 1508 1509#define _mm512_cmp_epu8_mask(a, b, p) __extension__ ({ \ 1510 (__mmask16)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \ 1511 (__v64qi)(__m512i)(b), \ 1512 (p), (__mmask64)-1); }) 1513 1514#define _mm512_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \ 1515 (__mmask16)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \ 1516 (__v64qi)(__m512i)(b), \ 1517 (p), (__mmask64)(m)); }) 1518 1519#define _mm512_cmp_epi16_mask(a, b, p) __extension__ ({ \ 1520 (__mmask16)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \ 1521 (__v32hi)(__m512i)(b), \ 1522 (p), (__mmask32)-1); }) 1523 1524#define _mm512_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \ 1525 (__mmask16)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \ 1526 (__v32hi)(__m512i)(b), \ 1527 (p), (__mmask32)(m)); }) 1528 1529#define _mm512_cmp_epu16_mask(a, b, p) __extension__ ({ \ 1530 (__mmask16)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \ 1531 (__v32hi)(__m512i)(b), \ 1532 (p), (__mmask32)-1); }) 1533 1534#define _mm512_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \ 1535 (__mmask16)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \ 1536 (__v32hi)(__m512i)(b), \ 1537 (p), (__mmask32)(m)); }) 1538 1539 1540#undef __DEFAULT_FN_ATTRS 1541 1542#endif 1543