1/*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------=== 2 * 3 * Permission is hereby granted, free of charge, to any person obtaining a copy 4 * of this software and associated documentation files (the "Software"), to deal 5 * in the Software without restriction, including without limitation the rights 6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 * copies of the Software, and to permit persons to whom the Software is 8 * furnished to do so, subject to the following conditions: 9 * 10 * The above copyright notice and this permission notice shall be included in 11 * all copies or substantial portions of the Software. 12 * 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 * THE SOFTWARE. 20 * 21 *===-----------------------------------------------------------------------=== 22 */ 23 24#ifndef __IMMINTRIN_H 25#error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead." 26#endif 27 28#ifndef __AVX512VLBWINTRIN_H 29#define __AVX512VLBWINTRIN_H 30 31/* Define the default attributes for the functions in this file. */ 32#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"))) 33 34static __inline __m128i __DEFAULT_FN_ATTRS 35_mm_setzero_hi(void){ 36 return (__m128i)(__v8hi){ 0, 0, 0, 0, 0, 0, 0, 0 }; 37} 38 39/* Integer compare */ 40 41static __inline__ __mmask16 __DEFAULT_FN_ATTRS 42_mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) { 43 return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b, 44 (__mmask16)-1); 45} 46 47static __inline__ __mmask16 __DEFAULT_FN_ATTRS 48_mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 49 return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b, 50 __u); 51} 52 53static __inline__ __mmask16 __DEFAULT_FN_ATTRS 54_mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) { 55 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0, 56 (__mmask16)-1); 57} 58 59static __inline__ __mmask16 __DEFAULT_FN_ATTRS 60_mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 61 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0, 62 __u); 63} 64 65static __inline__ __mmask32 __DEFAULT_FN_ATTRS 66_mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) { 67 return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b, 68 (__mmask32)-1); 69} 70 71static __inline__ __mmask32 __DEFAULT_FN_ATTRS 72_mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 73 return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b, 74 __u); 75} 76 77static __inline__ __mmask32 __DEFAULT_FN_ATTRS 78_mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) { 79 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0, 80 (__mmask32)-1); 81} 82 83static __inline__ __mmask32 __DEFAULT_FN_ATTRS 84_mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 85 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0, 86 __u); 87} 88 89static __inline__ __mmask8 __DEFAULT_FN_ATTRS 90_mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) { 91 return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b, 92 (__mmask8)-1); 93} 94 95static __inline__ __mmask8 __DEFAULT_FN_ATTRS 96_mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 97 return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b, 98 __u); 99} 100 101static __inline__ __mmask8 __DEFAULT_FN_ATTRS 102_mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) { 103 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0, 104 (__mmask8)-1); 105} 106 107static __inline__ __mmask8 __DEFAULT_FN_ATTRS 108_mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 109 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0, 110 __u); 111} 112 113static __inline__ __mmask16 __DEFAULT_FN_ATTRS 114_mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) { 115 return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b, 116 (__mmask16)-1); 117} 118 119static __inline__ __mmask16 __DEFAULT_FN_ATTRS 120_mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 121 return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b, 122 __u); 123} 124 125static __inline__ __mmask16 __DEFAULT_FN_ATTRS 126_mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) { 127 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0, 128 (__mmask16)-1); 129} 130 131static __inline__ __mmask16 __DEFAULT_FN_ATTRS 132_mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 133 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0, 134 __u); 135} 136 137static __inline__ __mmask16 __DEFAULT_FN_ATTRS 138_mm_cmpge_epi8_mask(__m128i __a, __m128i __b) { 139 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 140 (__mmask16)-1); 141} 142 143static __inline__ __mmask16 __DEFAULT_FN_ATTRS 144_mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 145 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 146 __u); 147} 148 149static __inline__ __mmask16 __DEFAULT_FN_ATTRS 150_mm_cmpge_epu8_mask(__m128i __a, __m128i __b) { 151 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 152 (__mmask16)-1); 153} 154 155static __inline__ __mmask16 __DEFAULT_FN_ATTRS 156_mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 157 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 158 __u); 159} 160 161static __inline__ __mmask32 __DEFAULT_FN_ATTRS 162_mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) { 163 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 164 (__mmask32)-1); 165} 166 167static __inline__ __mmask32 __DEFAULT_FN_ATTRS 168_mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 169 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 170 __u); 171} 172 173static __inline__ __mmask32 __DEFAULT_FN_ATTRS 174_mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) { 175 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 176 (__mmask32)-1); 177} 178 179static __inline__ __mmask32 __DEFAULT_FN_ATTRS 180_mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 181 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 182 __u); 183} 184 185static __inline__ __mmask8 __DEFAULT_FN_ATTRS 186_mm_cmpge_epi16_mask(__m128i __a, __m128i __b) { 187 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 188 (__mmask8)-1); 189} 190 191static __inline__ __mmask8 __DEFAULT_FN_ATTRS 192_mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 193 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 194 __u); 195} 196 197static __inline__ __mmask8 __DEFAULT_FN_ATTRS 198_mm_cmpge_epu16_mask(__m128i __a, __m128i __b) { 199 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 200 (__mmask8)-1); 201} 202 203static __inline__ __mmask8 __DEFAULT_FN_ATTRS 204_mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 205 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 206 __u); 207} 208 209static __inline__ __mmask16 __DEFAULT_FN_ATTRS 210_mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) { 211 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 212 (__mmask16)-1); 213} 214 215static __inline__ __mmask16 __DEFAULT_FN_ATTRS 216_mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 217 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 218 __u); 219} 220 221static __inline__ __mmask16 __DEFAULT_FN_ATTRS 222_mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) { 223 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 224 (__mmask16)-1); 225} 226 227static __inline__ __mmask16 __DEFAULT_FN_ATTRS 228_mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 229 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 230 __u); 231} 232 233static __inline__ __mmask16 __DEFAULT_FN_ATTRS 234_mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) { 235 return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b, 236 (__mmask16)-1); 237} 238 239static __inline__ __mmask16 __DEFAULT_FN_ATTRS 240_mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 241 return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b, 242 __u); 243} 244 245static __inline__ __mmask16 __DEFAULT_FN_ATTRS 246_mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) { 247 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6, 248 (__mmask16)-1); 249} 250 251static __inline__ __mmask16 __DEFAULT_FN_ATTRS 252_mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 253 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6, 254 __u); 255} 256 257static __inline__ __mmask32 __DEFAULT_FN_ATTRS 258_mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) { 259 return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b, 260 (__mmask32)-1); 261} 262 263static __inline__ __mmask32 __DEFAULT_FN_ATTRS 264_mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 265 return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b, 266 __u); 267} 268 269static __inline__ __mmask32 __DEFAULT_FN_ATTRS 270_mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) { 271 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6, 272 (__mmask32)-1); 273} 274 275static __inline__ __mmask32 __DEFAULT_FN_ATTRS 276_mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 277 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6, 278 __u); 279} 280 281static __inline__ __mmask8 __DEFAULT_FN_ATTRS 282_mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) { 283 return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b, 284 (__mmask8)-1); 285} 286 287static __inline__ __mmask8 __DEFAULT_FN_ATTRS 288_mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 289 return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b, 290 __u); 291} 292 293static __inline__ __mmask8 __DEFAULT_FN_ATTRS 294_mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) { 295 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6, 296 (__mmask8)-1); 297} 298 299static __inline__ __mmask8 __DEFAULT_FN_ATTRS 300_mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 301 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6, 302 __u); 303} 304 305static __inline__ __mmask16 __DEFAULT_FN_ATTRS 306_mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) { 307 return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b, 308 (__mmask16)-1); 309} 310 311static __inline__ __mmask16 __DEFAULT_FN_ATTRS 312_mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 313 return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b, 314 __u); 315} 316 317static __inline__ __mmask16 __DEFAULT_FN_ATTRS 318_mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) { 319 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6, 320 (__mmask16)-1); 321} 322 323static __inline__ __mmask16 __DEFAULT_FN_ATTRS 324_mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 325 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6, 326 __u); 327} 328 329static __inline__ __mmask16 __DEFAULT_FN_ATTRS 330_mm_cmple_epi8_mask(__m128i __a, __m128i __b) { 331 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 332 (__mmask16)-1); 333} 334 335static __inline__ __mmask16 __DEFAULT_FN_ATTRS 336_mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 337 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 338 __u); 339} 340 341static __inline__ __mmask16 __DEFAULT_FN_ATTRS 342_mm_cmple_epu8_mask(__m128i __a, __m128i __b) { 343 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 344 (__mmask16)-1); 345} 346 347static __inline__ __mmask16 __DEFAULT_FN_ATTRS 348_mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 349 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 350 __u); 351} 352 353static __inline__ __mmask32 __DEFAULT_FN_ATTRS 354_mm256_cmple_epi8_mask(__m256i __a, __m256i __b) { 355 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 356 (__mmask32)-1); 357} 358 359static __inline__ __mmask32 __DEFAULT_FN_ATTRS 360_mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 361 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 362 __u); 363} 364 365static __inline__ __mmask32 __DEFAULT_FN_ATTRS 366_mm256_cmple_epu8_mask(__m256i __a, __m256i __b) { 367 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 368 (__mmask32)-1); 369} 370 371static __inline__ __mmask32 __DEFAULT_FN_ATTRS 372_mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 373 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 374 __u); 375} 376 377static __inline__ __mmask8 __DEFAULT_FN_ATTRS 378_mm_cmple_epi16_mask(__m128i __a, __m128i __b) { 379 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 380 (__mmask8)-1); 381} 382 383static __inline__ __mmask8 __DEFAULT_FN_ATTRS 384_mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 385 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 386 __u); 387} 388 389static __inline__ __mmask8 __DEFAULT_FN_ATTRS 390_mm_cmple_epu16_mask(__m128i __a, __m128i __b) { 391 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 392 (__mmask8)-1); 393} 394 395static __inline__ __mmask8 __DEFAULT_FN_ATTRS 396_mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 397 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 398 __u); 399} 400 401static __inline__ __mmask16 __DEFAULT_FN_ATTRS 402_mm256_cmple_epi16_mask(__m256i __a, __m256i __b) { 403 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 404 (__mmask16)-1); 405} 406 407static __inline__ __mmask16 __DEFAULT_FN_ATTRS 408_mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 409 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 410 __u); 411} 412 413static __inline__ __mmask16 __DEFAULT_FN_ATTRS 414_mm256_cmple_epu16_mask(__m256i __a, __m256i __b) { 415 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 416 (__mmask16)-1); 417} 418 419static __inline__ __mmask16 __DEFAULT_FN_ATTRS 420_mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 421 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 422 __u); 423} 424 425static __inline__ __mmask16 __DEFAULT_FN_ATTRS 426_mm_cmplt_epi8_mask(__m128i __a, __m128i __b) { 427 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 428 (__mmask16)-1); 429} 430 431static __inline__ __mmask16 __DEFAULT_FN_ATTRS 432_mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 433 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 434 __u); 435} 436 437static __inline__ __mmask16 __DEFAULT_FN_ATTRS 438_mm_cmplt_epu8_mask(__m128i __a, __m128i __b) { 439 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 440 (__mmask16)-1); 441} 442 443static __inline__ __mmask16 __DEFAULT_FN_ATTRS 444_mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 445 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 446 __u); 447} 448 449static __inline__ __mmask32 __DEFAULT_FN_ATTRS 450_mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) { 451 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 452 (__mmask32)-1); 453} 454 455static __inline__ __mmask32 __DEFAULT_FN_ATTRS 456_mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 457 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 458 __u); 459} 460 461static __inline__ __mmask32 __DEFAULT_FN_ATTRS 462_mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) { 463 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 464 (__mmask32)-1); 465} 466 467static __inline__ __mmask32 __DEFAULT_FN_ATTRS 468_mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 469 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 470 __u); 471} 472 473static __inline__ __mmask8 __DEFAULT_FN_ATTRS 474_mm_cmplt_epi16_mask(__m128i __a, __m128i __b) { 475 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 476 (__mmask8)-1); 477} 478 479static __inline__ __mmask8 __DEFAULT_FN_ATTRS 480_mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 481 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 482 __u); 483} 484 485static __inline__ __mmask8 __DEFAULT_FN_ATTRS 486_mm_cmplt_epu16_mask(__m128i __a, __m128i __b) { 487 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 488 (__mmask8)-1); 489} 490 491static __inline__ __mmask8 __DEFAULT_FN_ATTRS 492_mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 493 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 494 __u); 495} 496 497static __inline__ __mmask16 __DEFAULT_FN_ATTRS 498_mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) { 499 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 500 (__mmask16)-1); 501} 502 503static __inline__ __mmask16 __DEFAULT_FN_ATTRS 504_mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 505 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 506 __u); 507} 508 509static __inline__ __mmask16 __DEFAULT_FN_ATTRS 510_mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) { 511 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 512 (__mmask16)-1); 513} 514 515static __inline__ __mmask16 __DEFAULT_FN_ATTRS 516_mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 517 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 518 __u); 519} 520 521static __inline__ __mmask16 __DEFAULT_FN_ATTRS 522_mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) { 523 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 524 (__mmask16)-1); 525} 526 527static __inline__ __mmask16 __DEFAULT_FN_ATTRS 528_mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 529 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 530 __u); 531} 532 533static __inline__ __mmask16 __DEFAULT_FN_ATTRS 534_mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) { 535 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 536 (__mmask16)-1); 537} 538 539static __inline__ __mmask16 __DEFAULT_FN_ATTRS 540_mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 541 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 542 __u); 543} 544 545static __inline__ __mmask32 __DEFAULT_FN_ATTRS 546_mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) { 547 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 548 (__mmask32)-1); 549} 550 551static __inline__ __mmask32 __DEFAULT_FN_ATTRS 552_mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 553 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 554 __u); 555} 556 557static __inline__ __mmask32 __DEFAULT_FN_ATTRS 558_mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) { 559 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 560 (__mmask32)-1); 561} 562 563static __inline__ __mmask32 __DEFAULT_FN_ATTRS 564_mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 565 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 566 __u); 567} 568 569static __inline__ __mmask8 __DEFAULT_FN_ATTRS 570_mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) { 571 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 572 (__mmask8)-1); 573} 574 575static __inline__ __mmask8 __DEFAULT_FN_ATTRS 576_mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 577 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 578 __u); 579} 580 581static __inline__ __mmask8 __DEFAULT_FN_ATTRS 582_mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) { 583 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 584 (__mmask8)-1); 585} 586 587static __inline__ __mmask8 __DEFAULT_FN_ATTRS 588_mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 589 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 590 __u); 591} 592 593static __inline__ __mmask16 __DEFAULT_FN_ATTRS 594_mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) { 595 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 596 (__mmask16)-1); 597} 598 599static __inline__ __mmask16 __DEFAULT_FN_ATTRS 600_mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 601 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 602 __u); 603} 604 605static __inline__ __mmask16 __DEFAULT_FN_ATTRS 606_mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) { 607 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 608 (__mmask16)-1); 609} 610 611static __inline__ __mmask16 __DEFAULT_FN_ATTRS 612_mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 613 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 614 __u); 615} 616 617static __inline__ __m256i __DEFAULT_FN_ATTRS 618_mm256_mask_add_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){ 619 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 620 (__v32qi)_mm256_add_epi8(__A, __B), 621 (__v32qi)__W); 622} 623 624static __inline__ __m256i __DEFAULT_FN_ATTRS 625_mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 626 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 627 (__v32qi)_mm256_add_epi8(__A, __B), 628 (__v32qi)_mm256_setzero_si256()); 629} 630 631static __inline__ __m256i __DEFAULT_FN_ATTRS 632_mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 633 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 634 (__v16hi)_mm256_add_epi16(__A, __B), 635 (__v16hi)__W); 636} 637 638static __inline__ __m256i __DEFAULT_FN_ATTRS 639_mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 640 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 641 (__v16hi)_mm256_add_epi16(__A, __B), 642 (__v16hi)_mm256_setzero_si256()); 643} 644 645static __inline__ __m256i __DEFAULT_FN_ATTRS 646_mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 647 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 648 (__v32qi)_mm256_sub_epi8(__A, __B), 649 (__v32qi)__W); 650} 651 652static __inline__ __m256i __DEFAULT_FN_ATTRS 653_mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 654 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 655 (__v32qi)_mm256_sub_epi8(__A, __B), 656 (__v32qi)_mm256_setzero_si256()); 657} 658 659static __inline__ __m256i __DEFAULT_FN_ATTRS 660_mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 661 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 662 (__v16hi)_mm256_sub_epi16(__A, __B), 663 (__v16hi)__W); 664} 665 666static __inline__ __m256i __DEFAULT_FN_ATTRS 667_mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 668 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 669 (__v16hi)_mm256_sub_epi16(__A, __B), 670 (__v16hi)_mm256_setzero_si256()); 671} 672 673static __inline__ __m128i __DEFAULT_FN_ATTRS 674_mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 675 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 676 (__v16qi)_mm_add_epi8(__A, __B), 677 (__v16qi)__W); 678} 679 680static __inline__ __m128i __DEFAULT_FN_ATTRS 681_mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 682 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 683 (__v16qi)_mm_add_epi8(__A, __B), 684 (__v16qi)_mm_setzero_si128()); 685} 686 687static __inline__ __m128i __DEFAULT_FN_ATTRS 688_mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 689 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 690 (__v8hi)_mm_add_epi16(__A, __B), 691 (__v8hi)__W); 692} 693 694static __inline__ __m128i __DEFAULT_FN_ATTRS 695_mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 696 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 697 (__v8hi)_mm_add_epi16(__A, __B), 698 (__v8hi)_mm_setzero_si128()); 699} 700 701static __inline__ __m128i __DEFAULT_FN_ATTRS 702_mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 703 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 704 (__v16qi)_mm_sub_epi8(__A, __B), 705 (__v16qi)__W); 706} 707 708static __inline__ __m128i __DEFAULT_FN_ATTRS 709_mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 710 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 711 (__v16qi)_mm_sub_epi8(__A, __B), 712 (__v16qi)_mm_setzero_si128()); 713} 714 715static __inline__ __m128i __DEFAULT_FN_ATTRS 716_mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 717 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 718 (__v8hi)_mm_sub_epi16(__A, __B), 719 (__v8hi)__W); 720} 721 722static __inline__ __m128i __DEFAULT_FN_ATTRS 723_mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 724 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 725 (__v8hi)_mm_sub_epi16(__A, __B), 726 (__v8hi)_mm_setzero_si128()); 727} 728 729static __inline__ __m256i __DEFAULT_FN_ATTRS 730_mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 731 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 732 (__v16hi)_mm256_mullo_epi16(__A, __B), 733 (__v16hi)__W); 734} 735 736static __inline__ __m256i __DEFAULT_FN_ATTRS 737_mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 738 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 739 (__v16hi)_mm256_mullo_epi16(__A, __B), 740 (__v16hi)_mm256_setzero_si256()); 741} 742 743static __inline__ __m128i __DEFAULT_FN_ATTRS 744_mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 745 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 746 (__v8hi)_mm_mullo_epi16(__A, __B), 747 (__v8hi)__W); 748} 749 750static __inline__ __m128i __DEFAULT_FN_ATTRS 751_mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 752 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 753 (__v8hi)_mm_mullo_epi16(__A, __B), 754 (__v8hi)_mm_setzero_si128()); 755} 756 757static __inline__ __m128i __DEFAULT_FN_ATTRS 758_mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W) 759{ 760 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, 761 (__v16qi) __W, 762 (__v16qi) __A); 763} 764 765static __inline__ __m256i __DEFAULT_FN_ATTRS 766_mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W) 767{ 768 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, 769 (__v32qi) __W, 770 (__v32qi) __A); 771} 772 773static __inline__ __m128i __DEFAULT_FN_ATTRS 774_mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W) 775{ 776 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, 777 (__v8hi) __W, 778 (__v8hi) __A); 779} 780 781static __inline__ __m256i __DEFAULT_FN_ATTRS 782_mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W) 783{ 784 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, 785 (__v16hi) __W, 786 (__v16hi) __A); 787} 788 789static __inline__ __m128i __DEFAULT_FN_ATTRS 790_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A) 791{ 792 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 793 (__v16qi)_mm_abs_epi8(__A), 794 (__v16qi)__W); 795} 796 797static __inline__ __m128i __DEFAULT_FN_ATTRS 798_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) 799{ 800 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 801 (__v16qi)_mm_abs_epi8(__A), 802 (__v16qi)_mm_setzero_si128()); 803} 804 805static __inline__ __m256i __DEFAULT_FN_ATTRS 806_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) 807{ 808 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 809 (__v32qi)_mm256_abs_epi8(__A), 810 (__v32qi)__W); 811} 812 813static __inline__ __m256i __DEFAULT_FN_ATTRS 814_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A) 815{ 816 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 817 (__v32qi)_mm256_abs_epi8(__A), 818 (__v32qi)_mm256_setzero_si256()); 819} 820 821static __inline__ __m128i __DEFAULT_FN_ATTRS 822_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) 823{ 824 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 825 (__v8hi)_mm_abs_epi16(__A), 826 (__v8hi)__W); 827} 828 829static __inline__ __m128i __DEFAULT_FN_ATTRS 830_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) 831{ 832 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 833 (__v8hi)_mm_abs_epi16(__A), 834 (__v8hi)_mm_setzero_si128()); 835} 836 837static __inline__ __m256i __DEFAULT_FN_ATTRS 838_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) 839{ 840 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 841 (__v16hi)_mm256_abs_epi16(__A), 842 (__v16hi)__W); 843} 844 845static __inline__ __m256i __DEFAULT_FN_ATTRS 846_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) 847{ 848 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 849 (__v16hi)_mm256_abs_epi16(__A), 850 (__v16hi)_mm256_setzero_si256()); 851} 852 853static __inline__ __m128i __DEFAULT_FN_ATTRS 854_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) { 855 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 856 (__v8hi)_mm_packs_epi32(__A, __B), 857 (__v8hi)_mm_setzero_si128()); 858} 859 860static __inline__ __m128i __DEFAULT_FN_ATTRS 861_mm_mask_packs_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 862{ 863 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 864 (__v8hi)_mm_packs_epi32(__A, __B), 865 (__v8hi)__W); 866} 867 868static __inline__ __m256i __DEFAULT_FN_ATTRS 869_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) 870{ 871 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 872 (__v16hi)_mm256_packs_epi32(__A, __B), 873 (__v16hi)_mm256_setzero_si256()); 874} 875 876static __inline__ __m256i __DEFAULT_FN_ATTRS 877_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) 878{ 879 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 880 (__v16hi)_mm256_packs_epi32(__A, __B), 881 (__v16hi)__W); 882} 883 884static __inline__ __m128i __DEFAULT_FN_ATTRS 885_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) 886{ 887 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 888 (__v16qi)_mm_packs_epi16(__A, __B), 889 (__v16qi)_mm_setzero_si128()); 890} 891 892static __inline__ __m128i __DEFAULT_FN_ATTRS 893_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 894{ 895 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 896 (__v16qi)_mm_packs_epi16(__A, __B), 897 (__v16qi)__W); 898} 899 900static __inline__ __m256i __DEFAULT_FN_ATTRS 901_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) 902{ 903 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 904 (__v32qi)_mm256_packs_epi16(__A, __B), 905 (__v32qi)_mm256_setzero_si256()); 906} 907 908static __inline__ __m256i __DEFAULT_FN_ATTRS 909_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) 910{ 911 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 912 (__v32qi)_mm256_packs_epi16(__A, __B), 913 (__v32qi)__W); 914} 915 916static __inline__ __m128i __DEFAULT_FN_ATTRS 917_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) 918{ 919 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 920 (__v8hi)_mm_packus_epi32(__A, __B), 921 (__v8hi)_mm_setzero_si128()); 922} 923 924static __inline__ __m128i __DEFAULT_FN_ATTRS 925_mm_mask_packus_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 926{ 927 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 928 (__v8hi)_mm_packus_epi32(__A, __B), 929 (__v8hi)__W); 930} 931 932static __inline__ __m256i __DEFAULT_FN_ATTRS 933_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) 934{ 935 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 936 (__v16hi)_mm256_packus_epi32(__A, __B), 937 (__v16hi)_mm256_setzero_si256()); 938} 939 940static __inline__ __m256i __DEFAULT_FN_ATTRS 941_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) 942{ 943 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 944 (__v16hi)_mm256_packus_epi32(__A, __B), 945 (__v16hi)__W); 946} 947 948static __inline__ __m128i __DEFAULT_FN_ATTRS 949_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) 950{ 951 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 952 (__v16qi)_mm_packus_epi16(__A, __B), 953 (__v16qi)_mm_setzero_si128()); 954} 955 956static __inline__ __m128i __DEFAULT_FN_ATTRS 957_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 958{ 959 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 960 (__v16qi)_mm_packus_epi16(__A, __B), 961 (__v16qi)__W); 962} 963 964static __inline__ __m256i __DEFAULT_FN_ATTRS 965_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) 966{ 967 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 968 (__v32qi)_mm256_packus_epi16(__A, __B), 969 (__v32qi)_mm256_setzero_si256()); 970} 971 972static __inline__ __m256i __DEFAULT_FN_ATTRS 973_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) 974{ 975 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 976 (__v32qi)_mm256_packus_epi16(__A, __B), 977 (__v32qi)__W); 978} 979 980static __inline__ __m128i __DEFAULT_FN_ATTRS 981_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) 982{ 983 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 984 (__v16qi)_mm_adds_epi8(__A, __B), 985 (__v16qi)__W); 986} 987 988static __inline__ __m128i __DEFAULT_FN_ATTRS 989_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) 990{ 991 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 992 (__v16qi)_mm_adds_epi8(__A, __B), 993 (__v16qi)_mm_setzero_si128()); 994} 995 996static __inline__ __m256i __DEFAULT_FN_ATTRS 997_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) 998{ 999 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1000 (__v32qi)_mm256_adds_epi8(__A, __B), 1001 (__v32qi)__W); 1002} 1003 1004static __inline__ __m256i __DEFAULT_FN_ATTRS 1005_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) 1006{ 1007 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1008 (__v32qi)_mm256_adds_epi8(__A, __B), 1009 (__v32qi)_mm256_setzero_si256()); 1010} 1011 1012static __inline__ __m128i __DEFAULT_FN_ATTRS 1013_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1014{ 1015 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1016 (__v8hi)_mm_adds_epi16(__A, __B), 1017 (__v8hi)__W); 1018} 1019 1020static __inline__ __m128i __DEFAULT_FN_ATTRS 1021_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) 1022{ 1023 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1024 (__v8hi)_mm_adds_epi16(__A, __B), 1025 (__v8hi)_mm_setzero_si128()); 1026} 1027 1028static __inline__ __m256i __DEFAULT_FN_ATTRS 1029_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 1030{ 1031 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1032 (__v16hi)_mm256_adds_epi16(__A, __B), 1033 (__v16hi)__W); 1034} 1035 1036static __inline__ __m256i __DEFAULT_FN_ATTRS 1037_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) 1038{ 1039 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1040 (__v16hi)_mm256_adds_epi16(__A, __B), 1041 (__v16hi)_mm256_setzero_si256()); 1042} 1043 1044static __inline__ __m128i __DEFAULT_FN_ATTRS 1045_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) 1046{ 1047 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1048 (__v16qi)_mm_adds_epu8(__A, __B), 1049 (__v16qi)__W); 1050} 1051 1052static __inline__ __m128i __DEFAULT_FN_ATTRS 1053_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) 1054{ 1055 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1056 (__v16qi)_mm_adds_epu8(__A, __B), 1057 (__v16qi)_mm_setzero_si128()); 1058} 1059 1060static __inline__ __m256i __DEFAULT_FN_ATTRS 1061_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) 1062{ 1063 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1064 (__v32qi)_mm256_adds_epu8(__A, __B), 1065 (__v32qi)__W); 1066} 1067 1068static __inline__ __m256i __DEFAULT_FN_ATTRS 1069_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) 1070{ 1071 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1072 (__v32qi)_mm256_adds_epu8(__A, __B), 1073 (__v32qi)_mm256_setzero_si256()); 1074} 1075 1076static __inline__ __m128i __DEFAULT_FN_ATTRS 1077_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1078{ 1079 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1080 (__v8hi)_mm_adds_epu16(__A, __B), 1081 (__v8hi)__W); 1082} 1083 1084static __inline__ __m128i __DEFAULT_FN_ATTRS 1085_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) 1086{ 1087 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1088 (__v8hi)_mm_adds_epu16(__A, __B), 1089 (__v8hi)_mm_setzero_si128()); 1090} 1091 1092static __inline__ __m256i __DEFAULT_FN_ATTRS 1093_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 1094{ 1095 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1096 (__v16hi)_mm256_adds_epu16(__A, __B), 1097 (__v16hi)__W); 1098} 1099 1100static __inline__ __m256i __DEFAULT_FN_ATTRS 1101_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) 1102{ 1103 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1104 (__v16hi)_mm256_adds_epu16(__A, __B), 1105 (__v16hi)_mm256_setzero_si256()); 1106} 1107 1108static __inline__ __m128i __DEFAULT_FN_ATTRS 1109_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) 1110{ 1111 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1112 (__v16qi)_mm_avg_epu8(__A, __B), 1113 (__v16qi)__W); 1114} 1115 1116static __inline__ __m128i __DEFAULT_FN_ATTRS 1117_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) 1118{ 1119 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1120 (__v16qi)_mm_avg_epu8(__A, __B), 1121 (__v16qi)_mm_setzero_si128()); 1122} 1123 1124static __inline__ __m256i __DEFAULT_FN_ATTRS 1125_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) 1126{ 1127 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1128 (__v32qi)_mm256_avg_epu8(__A, __B), 1129 (__v32qi)__W); 1130} 1131 1132static __inline__ __m256i __DEFAULT_FN_ATTRS 1133_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) 1134{ 1135 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1136 (__v32qi)_mm256_avg_epu8(__A, __B), 1137 (__v32qi)_mm256_setzero_si256()); 1138} 1139 1140static __inline__ __m128i __DEFAULT_FN_ATTRS 1141_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1142{ 1143 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1144 (__v8hi)_mm_avg_epu16(__A, __B), 1145 (__v8hi)__W); 1146} 1147 1148static __inline__ __m128i __DEFAULT_FN_ATTRS 1149_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) 1150{ 1151 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1152 (__v8hi)_mm_avg_epu16(__A, __B), 1153 (__v8hi)_mm_setzero_si128()); 1154} 1155 1156static __inline__ __m256i __DEFAULT_FN_ATTRS 1157_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 1158{ 1159 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1160 (__v16hi)_mm256_avg_epu16(__A, __B), 1161 (__v16hi)__W); 1162} 1163 1164static __inline__ __m256i __DEFAULT_FN_ATTRS 1165_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) 1166{ 1167 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1168 (__v16hi)_mm256_avg_epu16(__A, __B), 1169 (__v16hi)_mm256_setzero_si256()); 1170} 1171 1172static __inline__ __m128i __DEFAULT_FN_ATTRS 1173_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) 1174{ 1175 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1176 (__v16qi)_mm_max_epi8(__A, __B), 1177 (__v16qi)_mm_setzero_si128()); 1178} 1179 1180static __inline__ __m128i __DEFAULT_FN_ATTRS 1181_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 1182{ 1183 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1184 (__v16qi)_mm_max_epi8(__A, __B), 1185 (__v16qi)__W); 1186} 1187 1188static __inline__ __m256i __DEFAULT_FN_ATTRS 1189_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) 1190{ 1191 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1192 (__v32qi)_mm256_max_epi8(__A, __B), 1193 (__v32qi)_mm256_setzero_si256()); 1194} 1195 1196static __inline__ __m256i __DEFAULT_FN_ATTRS 1197_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) 1198{ 1199 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1200 (__v32qi)_mm256_max_epi8(__A, __B), 1201 (__v32qi)__W); 1202} 1203 1204static __inline__ __m128i __DEFAULT_FN_ATTRS 1205_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) 1206{ 1207 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1208 (__v8hi)_mm_max_epi16(__A, __B), 1209 (__v8hi)_mm_setzero_si128()); 1210} 1211 1212static __inline__ __m128i __DEFAULT_FN_ATTRS 1213_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) 1214{ 1215 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1216 (__v8hi)_mm_max_epi16(__A, __B), 1217 (__v8hi)__W); 1218} 1219 1220static __inline__ __m256i __DEFAULT_FN_ATTRS 1221_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) 1222{ 1223 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1224 (__v16hi)_mm256_max_epi16(__A, __B), 1225 (__v16hi)_mm256_setzero_si256()); 1226} 1227 1228static __inline__ __m256i __DEFAULT_FN_ATTRS 1229_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) 1230{ 1231 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1232 (__v16hi)_mm256_max_epi16(__A, __B), 1233 (__v16hi)__W); 1234} 1235 1236static __inline__ __m128i __DEFAULT_FN_ATTRS 1237_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) 1238{ 1239 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1240 (__v16qi)_mm_max_epu8(__A, __B), 1241 (__v16qi)_mm_setzero_si128()); 1242} 1243 1244static __inline__ __m128i __DEFAULT_FN_ATTRS 1245_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 1246{ 1247 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1248 (__v16qi)_mm_max_epu8(__A, __B), 1249 (__v16qi)__W); 1250} 1251 1252static __inline__ __m256i __DEFAULT_FN_ATTRS 1253_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B) 1254{ 1255 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1256 (__v32qi)_mm256_max_epu8(__A, __B), 1257 (__v32qi)_mm256_setzero_si256()); 1258} 1259 1260static __inline__ __m256i __DEFAULT_FN_ATTRS 1261_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) 1262{ 1263 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1264 (__v32qi)_mm256_max_epu8(__A, __B), 1265 (__v32qi)__W); 1266} 1267 1268static __inline__ __m128i __DEFAULT_FN_ATTRS 1269_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) 1270{ 1271 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1272 (__v8hi)_mm_max_epu16(__A, __B), 1273 (__v8hi)_mm_setzero_si128()); 1274} 1275 1276static __inline__ __m128i __DEFAULT_FN_ATTRS 1277_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) 1278{ 1279 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1280 (__v8hi)_mm_max_epu16(__A, __B), 1281 (__v8hi)__W); 1282} 1283 1284static __inline__ __m256i __DEFAULT_FN_ATTRS 1285_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) 1286{ 1287 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1288 (__v16hi)_mm256_max_epu16(__A, __B), 1289 (__v16hi)_mm256_setzero_si256()); 1290} 1291 1292static __inline__ __m256i __DEFAULT_FN_ATTRS 1293_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) 1294{ 1295 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1296 (__v16hi)_mm256_max_epu16(__A, __B), 1297 (__v16hi)__W); 1298} 1299 1300static __inline__ __m128i __DEFAULT_FN_ATTRS 1301_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) 1302{ 1303 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1304 (__v16qi)_mm_min_epi8(__A, __B), 1305 (__v16qi)_mm_setzero_si128()); 1306} 1307 1308static __inline__ __m128i __DEFAULT_FN_ATTRS 1309_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 1310{ 1311 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1312 (__v16qi)_mm_min_epi8(__A, __B), 1313 (__v16qi)__W); 1314} 1315 1316static __inline__ __m256i __DEFAULT_FN_ATTRS 1317_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) 1318{ 1319 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1320 (__v32qi)_mm256_min_epi8(__A, __B), 1321 (__v32qi)_mm256_setzero_si256()); 1322} 1323 1324static __inline__ __m256i __DEFAULT_FN_ATTRS 1325_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) 1326{ 1327 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1328 (__v32qi)_mm256_min_epi8(__A, __B), 1329 (__v32qi)__W); 1330} 1331 1332static __inline__ __m128i __DEFAULT_FN_ATTRS 1333_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) 1334{ 1335 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1336 (__v8hi)_mm_min_epi16(__A, __B), 1337 (__v8hi)_mm_setzero_si128()); 1338} 1339 1340static __inline__ __m128i __DEFAULT_FN_ATTRS 1341_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) 1342{ 1343 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1344 (__v8hi)_mm_min_epi16(__A, __B), 1345 (__v8hi)__W); 1346} 1347 1348static __inline__ __m256i __DEFAULT_FN_ATTRS 1349_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) 1350{ 1351 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1352 (__v16hi)_mm256_min_epi16(__A, __B), 1353 (__v16hi)_mm256_setzero_si256()); 1354} 1355 1356static __inline__ __m256i __DEFAULT_FN_ATTRS 1357_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) 1358{ 1359 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1360 (__v16hi)_mm256_min_epi16(__A, __B), 1361 (__v16hi)__W); 1362} 1363 1364static __inline__ __m128i __DEFAULT_FN_ATTRS 1365_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) 1366{ 1367 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1368 (__v16qi)_mm_min_epu8(__A, __B), 1369 (__v16qi)_mm_setzero_si128()); 1370} 1371 1372static __inline__ __m128i __DEFAULT_FN_ATTRS 1373_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) 1374{ 1375 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, 1376 (__v16qi)_mm_min_epu8(__A, __B), 1377 (__v16qi)__W); 1378} 1379 1380static __inline__ __m256i __DEFAULT_FN_ATTRS 1381_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B) 1382{ 1383 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1384 (__v32qi)_mm256_min_epu8(__A, __B), 1385 (__v32qi)_mm256_setzero_si256()); 1386} 1387 1388static __inline__ __m256i __DEFAULT_FN_ATTRS 1389_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) 1390{ 1391 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, 1392 (__v32qi)_mm256_min_epu8(__A, __B), 1393 (__v32qi)__W); 1394} 1395 1396static __inline__ __m128i __DEFAULT_FN_ATTRS 1397_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) 1398{ 1399 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1400 (__v8hi)_mm_min_epu16(__A, __B), 1401 (__v8hi)_mm_setzero_si128()); 1402} 1403 1404static __inline__ __m128i __DEFAULT_FN_ATTRS 1405_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) 1406{ 1407 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, 1408 (__v8hi)_mm_min_epu16(__A, __B), 1409 (__v8hi)__W); 1410} 1411 1412static __inline__ __m256i __DEFAULT_FN_ATTRS 1413_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) 1414{ 1415 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1416 (__v16hi)_mm256_min_epu16(__A, __B), 1417 (__v16hi)_mm256_setzero_si256()); 1418} 1419 1420static __inline__ __m256i __DEFAULT_FN_ATTRS 1421_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) 1422{ 1423 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, 1424 (__v16hi)_mm256_min_epu16(__A, __B), 1425 (__v16hi)__W); 1426} 1427 1428static __inline__ __m128i __DEFAULT_FN_ATTRS 1429_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) 1430{ 1431 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1432 (__v16qi)_mm_shuffle_epi8(__A, __B), 1433 (__v16qi)__W); 1434} 1435 1436static __inline__ __m128i __DEFAULT_FN_ATTRS 1437_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) 1438{ 1439 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1440 (__v16qi)_mm_shuffle_epi8(__A, __B), 1441 (__v16qi)_mm_setzero_si128()); 1442} 1443 1444static __inline__ __m256i __DEFAULT_FN_ATTRS 1445_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) 1446{ 1447 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1448 (__v32qi)_mm256_shuffle_epi8(__A, __B), 1449 (__v32qi)__W); 1450} 1451 1452static __inline__ __m256i __DEFAULT_FN_ATTRS 1453_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) 1454{ 1455 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1456 (__v32qi)_mm256_shuffle_epi8(__A, __B), 1457 (__v32qi)_mm256_setzero_si256()); 1458} 1459 1460static __inline__ __m128i __DEFAULT_FN_ATTRS 1461_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) 1462{ 1463 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1464 (__v16qi)_mm_subs_epi8(__A, __B), 1465 (__v16qi)__W); 1466} 1467 1468static __inline__ __m128i __DEFAULT_FN_ATTRS 1469_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) 1470{ 1471 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1472 (__v16qi)_mm_subs_epi8(__A, __B), 1473 (__v16qi)_mm_setzero_si128()); 1474} 1475 1476static __inline__ __m256i __DEFAULT_FN_ATTRS 1477_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) 1478{ 1479 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1480 (__v32qi)_mm256_subs_epi8(__A, __B), 1481 (__v32qi)__W); 1482} 1483 1484static __inline__ __m256i __DEFAULT_FN_ATTRS 1485_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) 1486{ 1487 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1488 (__v32qi)_mm256_subs_epi8(__A, __B), 1489 (__v32qi)_mm256_setzero_si256()); 1490} 1491 1492static __inline__ __m128i __DEFAULT_FN_ATTRS 1493_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1494{ 1495 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1496 (__v8hi)_mm_subs_epi16(__A, __B), 1497 (__v8hi)__W); 1498} 1499 1500static __inline__ __m128i __DEFAULT_FN_ATTRS 1501_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) 1502{ 1503 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1504 (__v8hi)_mm_subs_epi16(__A, __B), 1505 (__v8hi)_mm_setzero_si128()); 1506} 1507 1508static __inline__ __m256i __DEFAULT_FN_ATTRS 1509_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 1510{ 1511 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1512 (__v16hi)_mm256_subs_epi16(__A, __B), 1513 (__v16hi)__W); 1514} 1515 1516static __inline__ __m256i __DEFAULT_FN_ATTRS 1517_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) 1518{ 1519 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1520 (__v16hi)_mm256_subs_epi16(__A, __B), 1521 (__v16hi)_mm256_setzero_si256()); 1522} 1523 1524static __inline__ __m128i __DEFAULT_FN_ATTRS 1525_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) 1526{ 1527 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1528 (__v16qi)_mm_subs_epu8(__A, __B), 1529 (__v16qi)__W); 1530} 1531 1532static __inline__ __m128i __DEFAULT_FN_ATTRS 1533_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) 1534{ 1535 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1536 (__v16qi)_mm_subs_epu8(__A, __B), 1537 (__v16qi)_mm_setzero_si128()); 1538} 1539 1540static __inline__ __m256i __DEFAULT_FN_ATTRS 1541_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) 1542{ 1543 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1544 (__v32qi)_mm256_subs_epu8(__A, __B), 1545 (__v32qi)__W); 1546} 1547 1548static __inline__ __m256i __DEFAULT_FN_ATTRS 1549_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) 1550{ 1551 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1552 (__v32qi)_mm256_subs_epu8(__A, __B), 1553 (__v32qi)_mm256_setzero_si256()); 1554} 1555 1556static __inline__ __m128i __DEFAULT_FN_ATTRS 1557_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1558{ 1559 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1560 (__v8hi)_mm_subs_epu16(__A, __B), 1561 (__v8hi)__W); 1562} 1563 1564static __inline__ __m128i __DEFAULT_FN_ATTRS 1565_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) 1566{ 1567 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1568 (__v8hi)_mm_subs_epu16(__A, __B), 1569 (__v8hi)_mm_setzero_si128()); 1570} 1571 1572static __inline__ __m256i __DEFAULT_FN_ATTRS 1573_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A, 1574 __m256i __B) { 1575 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1576 (__v16hi)_mm256_subs_epu16(__A, __B), 1577 (__v16hi)__W); 1578} 1579 1580static __inline__ __m256i __DEFAULT_FN_ATTRS 1581_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) 1582{ 1583 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1584 (__v16hi)_mm256_subs_epu16(__A, __B), 1585 (__v16hi)_mm256_setzero_si256()); 1586} 1587 1588static __inline__ __m128i __DEFAULT_FN_ATTRS 1589_mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U, 1590 __m128i __B) 1591{ 1592 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A, 1593 (__v8hi) __I /* idx */ , 1594 (__v8hi) __B, 1595 (__mmask8) __U); 1596} 1597 1598static __inline__ __m256i __DEFAULT_FN_ATTRS 1599_mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I, 1600 __mmask16 __U, __m256i __B) 1601{ 1602 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A, 1603 (__v16hi) __I /* idx */ , 1604 (__v16hi) __B, 1605 (__mmask16) __U); 1606} 1607 1608static __inline__ __m128i __DEFAULT_FN_ATTRS 1609_mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B) 1610{ 1611 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */, 1612 (__v8hi) __A, 1613 (__v8hi) __B, 1614 (__mmask8) -1); 1615} 1616 1617static __inline__ __m128i __DEFAULT_FN_ATTRS 1618_mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I, 1619 __m128i __B) 1620{ 1621 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */, 1622 (__v8hi) __A, 1623 (__v8hi) __B, 1624 (__mmask8) __U); 1625} 1626 1627static __inline__ __m128i __DEFAULT_FN_ATTRS 1628_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I, 1629 __m128i __B) 1630{ 1631 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */, 1632 (__v8hi) __A, 1633 (__v8hi) __B, 1634 (__mmask8) __U); 1635} 1636 1637static __inline__ __m256i __DEFAULT_FN_ATTRS 1638_mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B) 1639{ 1640 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */, 1641 (__v16hi) __A, 1642 (__v16hi) __B, 1643 (__mmask16) -1); 1644} 1645 1646static __inline__ __m256i __DEFAULT_FN_ATTRS 1647_mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U, 1648 __m256i __I, __m256i __B) 1649{ 1650 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */, 1651 (__v16hi) __A, 1652 (__v16hi) __B, 1653 (__mmask16) __U); 1654} 1655 1656static __inline__ __m256i __DEFAULT_FN_ATTRS 1657_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, 1658 __m256i __I, __m256i __B) 1659{ 1660 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */, 1661 (__v16hi) __A, 1662 (__v16hi) __B, 1663 (__mmask16) __U); 1664} 1665 1666static __inline__ __m128i __DEFAULT_FN_ATTRS 1667_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 1668 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1669 (__v8hi)_mm_maddubs_epi16(__X, __Y), 1670 (__v8hi)__W); 1671} 1672 1673static __inline__ __m128i __DEFAULT_FN_ATTRS 1674_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { 1675 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1676 (__v8hi)_mm_maddubs_epi16(__X, __Y), 1677 (__v8hi)_mm_setzero_si128()); 1678} 1679 1680static __inline__ __m256i __DEFAULT_FN_ATTRS 1681_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, 1682 __m256i __Y) { 1683 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1684 (__v16hi)_mm256_maddubs_epi16(__X, __Y), 1685 (__v16hi)__W); 1686} 1687 1688static __inline__ __m256i __DEFAULT_FN_ATTRS 1689_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { 1690 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1691 (__v16hi)_mm256_maddubs_epi16(__X, __Y), 1692 (__v16hi)_mm256_setzero_si256()); 1693} 1694 1695static __inline__ __m128i __DEFAULT_FN_ATTRS 1696_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1697 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 1698 (__v4si)_mm_madd_epi16(__A, __B), 1699 (__v4si)__W); 1700} 1701 1702static __inline__ __m128i __DEFAULT_FN_ATTRS 1703_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1704 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 1705 (__v4si)_mm_madd_epi16(__A, __B), 1706 (__v4si)_mm_setzero_si128()); 1707} 1708 1709static __inline__ __m256i __DEFAULT_FN_ATTRS 1710_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 1711 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 1712 (__v8si)_mm256_madd_epi16(__A, __B), 1713 (__v8si)__W); 1714} 1715 1716static __inline__ __m256i __DEFAULT_FN_ATTRS 1717_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) { 1718 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 1719 (__v8si)_mm256_madd_epi16(__A, __B), 1720 (__v8si)_mm256_setzero_si256()); 1721} 1722 1723static __inline__ __m128i __DEFAULT_FN_ATTRS 1724_mm_cvtsepi16_epi8 (__m128i __A) { 1725 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 1726 (__v16qi) _mm_setzero_si128(), 1727 (__mmask8) -1); 1728} 1729 1730static __inline__ __m128i __DEFAULT_FN_ATTRS 1731_mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { 1732 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 1733 (__v16qi) __O, 1734 __M); 1735} 1736 1737static __inline__ __m128i __DEFAULT_FN_ATTRS 1738_mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) { 1739 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 1740 (__v16qi) _mm_setzero_si128(), 1741 __M); 1742} 1743 1744static __inline__ __m128i __DEFAULT_FN_ATTRS 1745_mm256_cvtsepi16_epi8 (__m256i __A) { 1746 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 1747 (__v16qi) _mm_setzero_si128(), 1748 (__mmask16) -1); 1749} 1750 1751static __inline__ __m128i __DEFAULT_FN_ATTRS 1752_mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { 1753 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 1754 (__v16qi) __O, 1755 __M); 1756} 1757 1758static __inline__ __m128i __DEFAULT_FN_ATTRS 1759_mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) { 1760 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 1761 (__v16qi) _mm_setzero_si128(), 1762 __M); 1763} 1764 1765static __inline__ __m128i __DEFAULT_FN_ATTRS 1766_mm_cvtusepi16_epi8 (__m128i __A) { 1767 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 1768 (__v16qi) _mm_setzero_si128(), 1769 (__mmask8) -1); 1770} 1771 1772static __inline__ __m128i __DEFAULT_FN_ATTRS 1773_mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { 1774 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 1775 (__v16qi) __O, 1776 __M); 1777} 1778 1779static __inline__ __m128i __DEFAULT_FN_ATTRS 1780_mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) { 1781 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 1782 (__v16qi) _mm_setzero_si128(), 1783 __M); 1784} 1785 1786static __inline__ __m128i __DEFAULT_FN_ATTRS 1787_mm256_cvtusepi16_epi8 (__m256i __A) { 1788 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 1789 (__v16qi) _mm_setzero_si128(), 1790 (__mmask16) -1); 1791} 1792 1793static __inline__ __m128i __DEFAULT_FN_ATTRS 1794_mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { 1795 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 1796 (__v16qi) __O, 1797 __M); 1798} 1799 1800static __inline__ __m128i __DEFAULT_FN_ATTRS 1801_mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) { 1802 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 1803 (__v16qi) _mm_setzero_si128(), 1804 __M); 1805} 1806 1807static __inline__ __m128i __DEFAULT_FN_ATTRS 1808_mm_cvtepi16_epi8 (__m128i __A) { 1809 1810 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 1811 (__v16qi) _mm_setzero_si128(), 1812 (__mmask8) -1); 1813} 1814 1815static __inline__ __m128i __DEFAULT_FN_ATTRS 1816_mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { 1817 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 1818 (__v16qi) __O, 1819 __M); 1820} 1821 1822static __inline__ __m128i __DEFAULT_FN_ATTRS 1823_mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) { 1824 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 1825 (__v16qi) _mm_setzero_si128(), 1826 __M); 1827} 1828 1829static __inline__ void __DEFAULT_FN_ATTRS 1830_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 1831{ 1832 __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); 1833} 1834 1835 1836static __inline__ void __DEFAULT_FN_ATTRS 1837_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 1838{ 1839 __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); 1840} 1841 1842static __inline__ void __DEFAULT_FN_ATTRS 1843_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 1844{ 1845 __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); 1846} 1847 1848static __inline__ __m128i __DEFAULT_FN_ATTRS 1849_mm256_cvtepi16_epi8 (__m256i __A) { 1850 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 1851 (__v16qi) _mm_setzero_si128(), 1852 (__mmask16) -1); 1853} 1854 1855static __inline__ __m128i __DEFAULT_FN_ATTRS 1856_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { 1857 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 1858 (__v16qi) __O, 1859 __M); 1860} 1861 1862static __inline__ __m128i __DEFAULT_FN_ATTRS 1863_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) { 1864 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 1865 (__v16qi) _mm_setzero_si128(), 1866 __M); 1867} 1868 1869static __inline__ void __DEFAULT_FN_ATTRS 1870_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) 1871{ 1872 __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M); 1873} 1874 1875static __inline__ void __DEFAULT_FN_ATTRS 1876_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) 1877{ 1878 __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M); 1879} 1880 1881static __inline__ void __DEFAULT_FN_ATTRS 1882_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 1883{ 1884 __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M); 1885} 1886 1887static __inline__ __m128i __DEFAULT_FN_ATTRS 1888_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 1889 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1890 (__v8hi)_mm_mulhrs_epi16(__X, __Y), 1891 (__v8hi)__W); 1892} 1893 1894static __inline__ __m128i __DEFAULT_FN_ATTRS 1895_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { 1896 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1897 (__v8hi)_mm_mulhrs_epi16(__X, __Y), 1898 (__v8hi)_mm_setzero_si128()); 1899} 1900 1901static __inline__ __m256i __DEFAULT_FN_ATTRS 1902_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { 1903 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1904 (__v16hi)_mm256_mulhrs_epi16(__X, __Y), 1905 (__v16hi)__W); 1906} 1907 1908static __inline__ __m256i __DEFAULT_FN_ATTRS 1909_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { 1910 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1911 (__v16hi)_mm256_mulhrs_epi16(__X, __Y), 1912 (__v16hi)_mm256_setzero_si256()); 1913} 1914 1915static __inline__ __m128i __DEFAULT_FN_ATTRS 1916_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1917 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1918 (__v8hi)_mm_mulhi_epu16(__A, __B), 1919 (__v8hi)__W); 1920} 1921 1922static __inline__ __m128i __DEFAULT_FN_ATTRS 1923_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) { 1924 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1925 (__v8hi)_mm_mulhi_epu16(__A, __B), 1926 (__v8hi)_mm_setzero_si128()); 1927} 1928 1929static __inline__ __m256i __DEFAULT_FN_ATTRS 1930_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1931 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1932 (__v16hi)_mm256_mulhi_epu16(__A, __B), 1933 (__v16hi)__W); 1934} 1935 1936static __inline__ __m256i __DEFAULT_FN_ATTRS 1937_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) { 1938 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1939 (__v16hi)_mm256_mulhi_epu16(__A, __B), 1940 (__v16hi)_mm256_setzero_si256()); 1941} 1942 1943static __inline__ __m128i __DEFAULT_FN_ATTRS 1944_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1945 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1946 (__v8hi)_mm_mulhi_epi16(__A, __B), 1947 (__v8hi)__W); 1948} 1949 1950static __inline__ __m128i __DEFAULT_FN_ATTRS 1951_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1952 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 1953 (__v8hi)_mm_mulhi_epi16(__A, __B), 1954 (__v8hi)_mm_setzero_si128()); 1955} 1956 1957static __inline__ __m256i __DEFAULT_FN_ATTRS 1958_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1959 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1960 (__v16hi)_mm256_mulhi_epi16(__A, __B), 1961 (__v16hi)__W); 1962} 1963 1964static __inline__ __m256i __DEFAULT_FN_ATTRS 1965_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 1966 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 1967 (__v16hi)_mm256_mulhi_epi16(__A, __B), 1968 (__v16hi)_mm256_setzero_si256()); 1969} 1970 1971static __inline__ __m128i __DEFAULT_FN_ATTRS 1972_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1973 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1974 (__v16qi)_mm_unpackhi_epi8(__A, __B), 1975 (__v16qi)__W); 1976} 1977 1978static __inline__ __m128i __DEFAULT_FN_ATTRS 1979_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 1980 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 1981 (__v16qi)_mm_unpackhi_epi8(__A, __B), 1982 (__v16qi)_mm_setzero_si128()); 1983} 1984 1985static __inline__ __m256i __DEFAULT_FN_ATTRS 1986_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1987 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1988 (__v32qi)_mm256_unpackhi_epi8(__A, __B), 1989 (__v32qi)__W); 1990} 1991 1992static __inline__ __m256i __DEFAULT_FN_ATTRS 1993_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 1994 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 1995 (__v32qi)_mm256_unpackhi_epi8(__A, __B), 1996 (__v32qi)_mm256_setzero_si256()); 1997} 1998 1999static __inline__ __m128i __DEFAULT_FN_ATTRS 2000_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 2001 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2002 (__v8hi)_mm_unpackhi_epi16(__A, __B), 2003 (__v8hi)__W); 2004} 2005 2006static __inline__ __m128i __DEFAULT_FN_ATTRS 2007_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 2008 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2009 (__v8hi)_mm_unpackhi_epi16(__A, __B), 2010 (__v8hi) _mm_setzero_si128()); 2011} 2012 2013static __inline__ __m256i __DEFAULT_FN_ATTRS 2014_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 2015 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2016 (__v16hi)_mm256_unpackhi_epi16(__A, __B), 2017 (__v16hi)__W); 2018} 2019 2020static __inline__ __m256i __DEFAULT_FN_ATTRS 2021_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 2022 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2023 (__v16hi)_mm256_unpackhi_epi16(__A, __B), 2024 (__v16hi)_mm256_setzero_si256()); 2025} 2026 2027static __inline__ __m128i __DEFAULT_FN_ATTRS 2028_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 2029 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 2030 (__v16qi)_mm_unpacklo_epi8(__A, __B), 2031 (__v16qi)__W); 2032} 2033 2034static __inline__ __m128i __DEFAULT_FN_ATTRS 2035_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 2036 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, 2037 (__v16qi)_mm_unpacklo_epi8(__A, __B), 2038 (__v16qi)_mm_setzero_si128()); 2039} 2040 2041static __inline__ __m256i __DEFAULT_FN_ATTRS 2042_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 2043 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 2044 (__v32qi)_mm256_unpacklo_epi8(__A, __B), 2045 (__v32qi)__W); 2046} 2047 2048static __inline__ __m256i __DEFAULT_FN_ATTRS 2049_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 2050 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, 2051 (__v32qi)_mm256_unpacklo_epi8(__A, __B), 2052 (__v32qi)_mm256_setzero_si256()); 2053} 2054 2055static __inline__ __m128i __DEFAULT_FN_ATTRS 2056_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 2057 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2058 (__v8hi)_mm_unpacklo_epi16(__A, __B), 2059 (__v8hi)__W); 2060} 2061 2062static __inline__ __m128i __DEFAULT_FN_ATTRS 2063_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 2064 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2065 (__v8hi)_mm_unpacklo_epi16(__A, __B), 2066 (__v8hi) _mm_setzero_si128()); 2067} 2068 2069static __inline__ __m256i __DEFAULT_FN_ATTRS 2070_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 2071 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2072 (__v16hi)_mm256_unpacklo_epi16(__A, __B), 2073 (__v16hi)__W); 2074} 2075 2076static __inline__ __m256i __DEFAULT_FN_ATTRS 2077_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 2078 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2079 (__v16hi)_mm256_unpacklo_epi16(__A, __B), 2080 (__v16hi)_mm256_setzero_si256()); 2081} 2082 2083static __inline__ __m128i __DEFAULT_FN_ATTRS 2084_mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A) 2085{ 2086 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2087 (__v8hi)_mm_cvtepi8_epi16(__A), 2088 (__v8hi)__W); 2089} 2090 2091static __inline__ __m128i __DEFAULT_FN_ATTRS 2092_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A) 2093{ 2094 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2095 (__v8hi)_mm_cvtepi8_epi16(__A), 2096 (__v8hi)_mm_setzero_si128()); 2097} 2098 2099static __inline__ __m256i __DEFAULT_FN_ATTRS 2100_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A) 2101{ 2102 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2103 (__v16hi)_mm256_cvtepi8_epi16(__A), 2104 (__v16hi)__W); 2105} 2106 2107static __inline__ __m256i __DEFAULT_FN_ATTRS 2108_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A) 2109{ 2110 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2111 (__v16hi)_mm256_cvtepi8_epi16(__A), 2112 (__v16hi)_mm256_setzero_si256()); 2113} 2114 2115 2116static __inline__ __m128i __DEFAULT_FN_ATTRS 2117_mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A) 2118{ 2119 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2120 (__v8hi)_mm_cvtepu8_epi16(__A), 2121 (__v8hi)__W); 2122} 2123 2124static __inline__ __m128i __DEFAULT_FN_ATTRS 2125_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A) 2126{ 2127 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2128 (__v8hi)_mm_cvtepu8_epi16(__A), 2129 (__v8hi)_mm_setzero_si128()); 2130} 2131 2132static __inline__ __m256i __DEFAULT_FN_ATTRS 2133_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A) 2134{ 2135 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2136 (__v16hi)_mm256_cvtepu8_epi16(__A), 2137 (__v16hi)__W); 2138} 2139 2140static __inline__ __m256i __DEFAULT_FN_ATTRS 2141_mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A) 2142{ 2143 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2144 (__v16hi)_mm256_cvtepu8_epi16(__A), 2145 (__v16hi)_mm256_setzero_si256()); 2146} 2147 2148 2149#define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \ 2150 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \ 2151 (__v16qi)(__m128i)(b), (int)(p), \ 2152 (__mmask16)-1); }) 2153 2154#define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \ 2155 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \ 2156 (__v16qi)(__m128i)(b), (int)(p), \ 2157 (__mmask16)(m)); }) 2158 2159#define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \ 2160 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \ 2161 (__v16qi)(__m128i)(b), (int)(p), \ 2162 (__mmask16)-1); }) 2163 2164#define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \ 2165 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \ 2166 (__v16qi)(__m128i)(b), (int)(p), \ 2167 (__mmask16)(m)); }) 2168 2169#define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \ 2170 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \ 2171 (__v32qi)(__m256i)(b), (int)(p), \ 2172 (__mmask32)-1); }) 2173 2174#define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \ 2175 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \ 2176 (__v32qi)(__m256i)(b), (int)(p), \ 2177 (__mmask32)(m)); }) 2178 2179#define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \ 2180 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \ 2181 (__v32qi)(__m256i)(b), (int)(p), \ 2182 (__mmask32)-1); }) 2183 2184#define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \ 2185 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \ 2186 (__v32qi)(__m256i)(b), (int)(p), \ 2187 (__mmask32)(m)); }) 2188 2189#define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \ 2190 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \ 2191 (__v8hi)(__m128i)(b), (int)(p), \ 2192 (__mmask8)-1); }) 2193 2194#define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \ 2195 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \ 2196 (__v8hi)(__m128i)(b), (int)(p), \ 2197 (__mmask8)(m)); }) 2198 2199#define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \ 2200 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \ 2201 (__v8hi)(__m128i)(b), (int)(p), \ 2202 (__mmask8)-1); }) 2203 2204#define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \ 2205 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \ 2206 (__v8hi)(__m128i)(b), (int)(p), \ 2207 (__mmask8)(m)); }) 2208 2209#define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \ 2210 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \ 2211 (__v16hi)(__m256i)(b), (int)(p), \ 2212 (__mmask16)-1); }) 2213 2214#define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \ 2215 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \ 2216 (__v16hi)(__m256i)(b), (int)(p), \ 2217 (__mmask16)(m)); }) 2218 2219#define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \ 2220 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \ 2221 (__v16hi)(__m256i)(b), (int)(p), \ 2222 (__mmask16)-1); }) 2223 2224#define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \ 2225 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \ 2226 (__v16hi)(__m256i)(b), (int)(p), \ 2227 (__mmask16)(m)); }) 2228 2229#define _mm_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \ 2230 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ 2231 (__v8hi)_mm_shufflehi_epi16((A), (imm)), \ 2232 (__v8hi)(__m128i)(W)); }) 2233 2234#define _mm_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \ 2235 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ 2236 (__v8hi)_mm_shufflehi_epi16((A), (imm)), \ 2237 (__v8hi)_mm_setzero_hi()); }) 2238 2239#define _mm256_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \ 2240 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ 2241 (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \ 2242 (__v16hi)(__m256i)(W)); }) 2243 2244#define _mm256_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \ 2245 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ 2246 (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \ 2247 (__v16hi)_mm256_setzero_si256()); }) 2248 2249#define _mm_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \ 2250 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ 2251 (__v8hi)_mm_shufflelo_epi16((A), (imm)), \ 2252 (__v8hi)(__m128i)(W)); }) 2253 2254#define _mm_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \ 2255 (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ 2256 (__v8hi)_mm_shufflelo_epi16((A), (imm)), \ 2257 (__v8hi)_mm_setzero_hi()); }) 2258 2259#define _mm256_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \ 2260 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ 2261 (__v16hi)_mm256_shufflelo_epi16((A), \ 2262 (imm)), \ 2263 (__v16hi)(__m256i)(W)); }) 2264 2265#define _mm256_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \ 2266 (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ 2267 (__v16hi)_mm256_shufflelo_epi16((A), \ 2268 (imm)), \ 2269 (__v16hi)_mm256_setzero_si256()); }) 2270 2271static __inline__ __m256i __DEFAULT_FN_ATTRS 2272_mm256_sllv_epi16(__m256i __A, __m256i __B) 2273{ 2274 return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B); 2275} 2276 2277static __inline__ __m256i __DEFAULT_FN_ATTRS 2278_mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 2279{ 2280 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2281 (__v16hi)_mm256_sllv_epi16(__A, __B), 2282 (__v16hi)__W); 2283} 2284 2285static __inline__ __m256i __DEFAULT_FN_ATTRS 2286_mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B) 2287{ 2288 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2289 (__v16hi)_mm256_sllv_epi16(__A, __B), 2290 (__v16hi)_mm256_setzero_si256()); 2291} 2292 2293static __inline__ __m128i __DEFAULT_FN_ATTRS 2294_mm_sllv_epi16(__m128i __A, __m128i __B) 2295{ 2296 return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B); 2297} 2298 2299static __inline__ __m128i __DEFAULT_FN_ATTRS 2300_mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 2301{ 2302 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2303 (__v8hi)_mm_sllv_epi16(__A, __B), 2304 (__v8hi)__W); 2305} 2306 2307static __inline__ __m128i __DEFAULT_FN_ATTRS 2308_mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B) 2309{ 2310 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2311 (__v8hi)_mm_sllv_epi16(__A, __B), 2312 (__v8hi)_mm_setzero_si128()); 2313} 2314 2315static __inline__ __m128i __DEFAULT_FN_ATTRS 2316_mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 2317{ 2318 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2319 (__v8hi)_mm_sll_epi16(__A, __B), 2320 (__v8hi)__W); 2321} 2322 2323static __inline__ __m128i __DEFAULT_FN_ATTRS 2324_mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 2325{ 2326 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2327 (__v8hi)_mm_sll_epi16(__A, __B), 2328 (__v8hi)_mm_setzero_si128()); 2329} 2330 2331static __inline__ __m256i __DEFAULT_FN_ATTRS 2332_mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) 2333{ 2334 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2335 (__v16hi)_mm256_sll_epi16(__A, __B), 2336 (__v16hi)__W); 2337} 2338 2339static __inline__ __m256i __DEFAULT_FN_ATTRS 2340_mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B) 2341{ 2342 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2343 (__v16hi)_mm256_sll_epi16(__A, __B), 2344 (__v16hi)_mm256_setzero_si256()); 2345} 2346 2347static __inline__ __m128i __DEFAULT_FN_ATTRS 2348_mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) 2349{ 2350 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2351 (__v8hi)_mm_slli_epi16(__A, __B), 2352 (__v8hi)__W); 2353} 2354 2355static __inline__ __m128i __DEFAULT_FN_ATTRS 2356_mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B) 2357{ 2358 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2359 (__v8hi)_mm_slli_epi16(__A, __B), 2360 (__v8hi)_mm_setzero_si128()); 2361} 2362 2363static __inline__ __m256i __DEFAULT_FN_ATTRS 2364_mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) 2365{ 2366 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2367 (__v16hi)_mm256_slli_epi16(__A, __B), 2368 (__v16hi)__W); 2369} 2370 2371static __inline__ __m256i __DEFAULT_FN_ATTRS 2372_mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B) 2373{ 2374 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2375 (__v16hi)_mm256_slli_epi16(__A, __B), 2376 (__v16hi)_mm256_setzero_si256()); 2377} 2378 2379static __inline__ __m256i __DEFAULT_FN_ATTRS 2380_mm256_srlv_epi16(__m256i __A, __m256i __B) 2381{ 2382 return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B); 2383} 2384 2385static __inline__ __m256i __DEFAULT_FN_ATTRS 2386_mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 2387{ 2388 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2389 (__v16hi)_mm256_srlv_epi16(__A, __B), 2390 (__v16hi)__W); 2391} 2392 2393static __inline__ __m256i __DEFAULT_FN_ATTRS 2394_mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B) 2395{ 2396 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2397 (__v16hi)_mm256_srlv_epi16(__A, __B), 2398 (__v16hi)_mm256_setzero_si256()); 2399} 2400 2401static __inline__ __m128i __DEFAULT_FN_ATTRS 2402_mm_srlv_epi16(__m128i __A, __m128i __B) 2403{ 2404 return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B); 2405} 2406 2407static __inline__ __m128i __DEFAULT_FN_ATTRS 2408_mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 2409{ 2410 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2411 (__v8hi)_mm_srlv_epi16(__A, __B), 2412 (__v8hi)__W); 2413} 2414 2415static __inline__ __m128i __DEFAULT_FN_ATTRS 2416_mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B) 2417{ 2418 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2419 (__v8hi)_mm_srlv_epi16(__A, __B), 2420 (__v8hi)_mm_setzero_si128()); 2421} 2422 2423static __inline__ __m256i __DEFAULT_FN_ATTRS 2424_mm256_srav_epi16(__m256i __A, __m256i __B) 2425{ 2426 return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B); 2427} 2428 2429static __inline__ __m256i __DEFAULT_FN_ATTRS 2430_mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) 2431{ 2432 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2433 (__v16hi)_mm256_srav_epi16(__A, __B), 2434 (__v16hi)__W); 2435} 2436 2437static __inline__ __m256i __DEFAULT_FN_ATTRS 2438_mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B) 2439{ 2440 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2441 (__v16hi)_mm256_srav_epi16(__A, __B), 2442 (__v16hi)_mm256_setzero_si256()); 2443} 2444 2445static __inline__ __m128i __DEFAULT_FN_ATTRS 2446_mm_srav_epi16(__m128i __A, __m128i __B) 2447{ 2448 return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B); 2449} 2450 2451static __inline__ __m128i __DEFAULT_FN_ATTRS 2452_mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 2453{ 2454 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2455 (__v8hi)_mm_srav_epi16(__A, __B), 2456 (__v8hi)__W); 2457} 2458 2459static __inline__ __m128i __DEFAULT_FN_ATTRS 2460_mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B) 2461{ 2462 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2463 (__v8hi)_mm_srav_epi16(__A, __B), 2464 (__v8hi)_mm_setzero_si128()); 2465} 2466 2467static __inline__ __m128i __DEFAULT_FN_ATTRS 2468_mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 2469{ 2470 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2471 (__v8hi)_mm_sra_epi16(__A, __B), 2472 (__v8hi)__W); 2473} 2474 2475static __inline__ __m128i __DEFAULT_FN_ATTRS 2476_mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B) 2477{ 2478 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2479 (__v8hi)_mm_sra_epi16(__A, __B), 2480 (__v8hi)_mm_setzero_si128()); 2481} 2482 2483static __inline__ __m256i __DEFAULT_FN_ATTRS 2484_mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) 2485{ 2486 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2487 (__v16hi)_mm256_sra_epi16(__A, __B), 2488 (__v16hi)__W); 2489} 2490 2491static __inline__ __m256i __DEFAULT_FN_ATTRS 2492_mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B) 2493{ 2494 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2495 (__v16hi)_mm256_sra_epi16(__A, __B), 2496 (__v16hi)_mm256_setzero_si256()); 2497} 2498 2499static __inline__ __m128i __DEFAULT_FN_ATTRS 2500_mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) 2501{ 2502 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2503 (__v8hi)_mm_srai_epi16(__A, __B), 2504 (__v8hi)__W); 2505} 2506 2507static __inline__ __m128i __DEFAULT_FN_ATTRS 2508_mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B) 2509{ 2510 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2511 (__v8hi)_mm_srai_epi16(__A, __B), 2512 (__v8hi)_mm_setzero_si128()); 2513} 2514 2515static __inline__ __m256i __DEFAULT_FN_ATTRS 2516_mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) 2517{ 2518 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2519 (__v16hi)_mm256_srai_epi16(__A, __B), 2520 (__v16hi)__W); 2521} 2522 2523static __inline__ __m256i __DEFAULT_FN_ATTRS 2524_mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B) 2525{ 2526 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2527 (__v16hi)_mm256_srai_epi16(__A, __B), 2528 (__v16hi)_mm256_setzero_si256()); 2529} 2530 2531static __inline__ __m128i __DEFAULT_FN_ATTRS 2532_mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 2533{ 2534 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2535 (__v8hi)_mm_srl_epi16(__A, __B), 2536 (__v8hi)__W); 2537} 2538 2539static __inline__ __m128i __DEFAULT_FN_ATTRS 2540_mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 2541{ 2542 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2543 (__v8hi)_mm_srl_epi16(__A, __B), 2544 (__v8hi)_mm_setzero_si128()); 2545} 2546 2547static __inline__ __m256i __DEFAULT_FN_ATTRS 2548_mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) 2549{ 2550 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2551 (__v16hi)_mm256_srl_epi16(__A, __B), 2552 (__v16hi)__W); 2553} 2554 2555static __inline__ __m256i __DEFAULT_FN_ATTRS 2556_mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B) 2557{ 2558 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2559 (__v16hi)_mm256_srl_epi16(__A, __B), 2560 (__v16hi)_mm256_setzero_si256()); 2561} 2562 2563static __inline__ __m128i __DEFAULT_FN_ATTRS 2564_mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) 2565{ 2566 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2567 (__v8hi)_mm_srli_epi16(__A, __B), 2568 (__v8hi)__W); 2569} 2570 2571static __inline__ __m128i __DEFAULT_FN_ATTRS 2572_mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B) 2573{ 2574 return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, 2575 (__v8hi)_mm_srli_epi16(__A, __B), 2576 (__v8hi)_mm_setzero_si128()); 2577} 2578 2579static __inline__ __m256i __DEFAULT_FN_ATTRS 2580_mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) 2581{ 2582 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2583 (__v16hi)_mm256_srli_epi16(__A, __B), 2584 (__v16hi)__W); 2585} 2586 2587static __inline__ __m256i __DEFAULT_FN_ATTRS 2588_mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B) 2589{ 2590 return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, 2591 (__v16hi)_mm256_srli_epi16(__A, __B), 2592 (__v16hi)_mm256_setzero_si256()); 2593} 2594 2595static __inline__ __m128i __DEFAULT_FN_ATTRS 2596_mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A) 2597{ 2598 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, 2599 (__v8hi) __A, 2600 (__v8hi) __W); 2601} 2602 2603static __inline__ __m128i __DEFAULT_FN_ATTRS 2604_mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A) 2605{ 2606 return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, 2607 (__v8hi) __A, 2608 (__v8hi) _mm_setzero_hi ()); 2609} 2610 2611static __inline__ __m256i __DEFAULT_FN_ATTRS 2612_mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A) 2613{ 2614 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, 2615 (__v16hi) __A, 2616 (__v16hi) __W); 2617} 2618 2619static __inline__ __m256i __DEFAULT_FN_ATTRS 2620_mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A) 2621{ 2622 return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, 2623 (__v16hi) __A, 2624 (__v16hi) _mm256_setzero_si256 ()); 2625} 2626 2627static __inline__ __m128i __DEFAULT_FN_ATTRS 2628_mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A) 2629{ 2630 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, 2631 (__v16qi) __A, 2632 (__v16qi) __W); 2633} 2634 2635static __inline__ __m128i __DEFAULT_FN_ATTRS 2636_mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A) 2637{ 2638 return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, 2639 (__v16qi) __A, 2640 (__v16qi) _mm_setzero_hi ()); 2641} 2642 2643static __inline__ __m256i __DEFAULT_FN_ATTRS 2644_mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A) 2645{ 2646 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, 2647 (__v32qi) __A, 2648 (__v32qi) __W); 2649} 2650 2651static __inline__ __m256i __DEFAULT_FN_ATTRS 2652_mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) 2653{ 2654 return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, 2655 (__v32qi) __A, 2656 (__v32qi) _mm256_setzero_si256 ()); 2657} 2658 2659 2660static __inline__ __m128i __DEFAULT_FN_ATTRS 2661_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) 2662{ 2663 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, 2664 (__v16qi) __O, 2665 __M); 2666} 2667 2668static __inline__ __m128i __DEFAULT_FN_ATTRS 2669_mm_maskz_set1_epi8 (__mmask16 __M, char __A) 2670{ 2671 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, 2672 (__v16qi) 2673 _mm_setzero_si128 (), 2674 __M); 2675} 2676 2677static __inline__ __m256i __DEFAULT_FN_ATTRS 2678_mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) 2679{ 2680 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, 2681 (__v32qi) __O, 2682 __M); 2683} 2684 2685static __inline__ __m256i __DEFAULT_FN_ATTRS 2686_mm256_maskz_set1_epi8 (__mmask32 __M, char __A) 2687{ 2688 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, 2689 (__v32qi) 2690 _mm256_setzero_si256 (), 2691 __M); 2692} 2693 2694static __inline__ __m128i __DEFAULT_FN_ATTRS 2695_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P) 2696{ 2697 return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, 2698 (__v8hi) __W, 2699 (__mmask8) __U); 2700} 2701 2702static __inline__ __m128i __DEFAULT_FN_ATTRS 2703_mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P) 2704{ 2705 return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, 2706 (__v8hi) 2707 _mm_setzero_hi (), 2708 (__mmask8) __U); 2709} 2710 2711static __inline__ __m256i __DEFAULT_FN_ATTRS 2712_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P) 2713{ 2714 return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, 2715 (__v16hi) __W, 2716 (__mmask16) __U); 2717} 2718 2719static __inline__ __m256i __DEFAULT_FN_ATTRS 2720_mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P) 2721{ 2722 return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, 2723 (__v16hi) 2724 _mm256_setzero_si256 (), 2725 (__mmask16) __U); 2726} 2727 2728static __inline__ __m128i __DEFAULT_FN_ATTRS 2729_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P) 2730{ 2731 return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, 2732 (__v16qi) __W, 2733 (__mmask16) __U); 2734} 2735 2736static __inline__ __m128i __DEFAULT_FN_ATTRS 2737_mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P) 2738{ 2739 return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, 2740 (__v16qi) 2741 _mm_setzero_si128 (), 2742 (__mmask16) __U); 2743} 2744 2745static __inline__ __m256i __DEFAULT_FN_ATTRS 2746_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P) 2747{ 2748 return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, 2749 (__v32qi) __W, 2750 (__mmask32) __U); 2751} 2752 2753static __inline__ __m256i __DEFAULT_FN_ATTRS 2754_mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P) 2755{ 2756 return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, 2757 (__v32qi) 2758 _mm256_setzero_si256 (), 2759 (__mmask32) __U); 2760} 2761static __inline__ void __DEFAULT_FN_ATTRS 2762_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A) 2763{ 2764 __builtin_ia32_storedquhi128_mask ((__v8hi *) __P, 2765 (__v8hi) __A, 2766 (__mmask8) __U); 2767} 2768 2769static __inline__ void __DEFAULT_FN_ATTRS 2770_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A) 2771{ 2772 __builtin_ia32_storedquhi256_mask ((__v16hi *) __P, 2773 (__v16hi) __A, 2774 (__mmask16) __U); 2775} 2776 2777static __inline__ void __DEFAULT_FN_ATTRS 2778_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A) 2779{ 2780 __builtin_ia32_storedquqi128_mask ((__v16qi *) __P, 2781 (__v16qi) __A, 2782 (__mmask16) __U); 2783} 2784 2785static __inline__ void __DEFAULT_FN_ATTRS 2786_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A) 2787{ 2788 __builtin_ia32_storedquqi256_mask ((__v32qi *) __P, 2789 (__v32qi) __A, 2790 (__mmask32) __U); 2791} 2792 2793static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2794_mm_test_epi8_mask (__m128i __A, __m128i __B) 2795{ 2796 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, 2797 (__v16qi) __B, 2798 (__mmask16) -1); 2799} 2800 2801static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2802_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) 2803{ 2804 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, 2805 (__v16qi) __B, __U); 2806} 2807 2808static __inline__ __mmask32 __DEFAULT_FN_ATTRS 2809_mm256_test_epi8_mask (__m256i __A, __m256i __B) 2810{ 2811 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, 2812 (__v32qi) __B, 2813 (__mmask32) -1); 2814} 2815 2816static __inline__ __mmask32 __DEFAULT_FN_ATTRS 2817_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) 2818{ 2819 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, 2820 (__v32qi) __B, __U); 2821} 2822 2823static __inline__ __mmask8 __DEFAULT_FN_ATTRS 2824_mm_test_epi16_mask (__m128i __A, __m128i __B) 2825{ 2826 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, 2827 (__v8hi) __B, 2828 (__mmask8) -1); 2829} 2830 2831static __inline__ __mmask8 __DEFAULT_FN_ATTRS 2832_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) 2833{ 2834 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, 2835 (__v8hi) __B, __U); 2836} 2837 2838static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2839_mm256_test_epi16_mask (__m256i __A, __m256i __B) 2840{ 2841 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, 2842 (__v16hi) __B, 2843 (__mmask16) -1); 2844} 2845 2846static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2847_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) 2848{ 2849 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, 2850 (__v16hi) __B, __U); 2851} 2852 2853static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2854_mm_testn_epi8_mask (__m128i __A, __m128i __B) 2855{ 2856 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, 2857 (__v16qi) __B, 2858 (__mmask16) -1); 2859} 2860 2861static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2862_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) 2863{ 2864 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, 2865 (__v16qi) __B, __U); 2866} 2867 2868static __inline__ __mmask32 __DEFAULT_FN_ATTRS 2869_mm256_testn_epi8_mask (__m256i __A, __m256i __B) 2870{ 2871 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, 2872 (__v32qi) __B, 2873 (__mmask32) -1); 2874} 2875 2876static __inline__ __mmask32 __DEFAULT_FN_ATTRS 2877_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) 2878{ 2879 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, 2880 (__v32qi) __B, __U); 2881} 2882 2883static __inline__ __mmask8 __DEFAULT_FN_ATTRS 2884_mm_testn_epi16_mask (__m128i __A, __m128i __B) 2885{ 2886 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, 2887 (__v8hi) __B, 2888 (__mmask8) -1); 2889} 2890 2891static __inline__ __mmask8 __DEFAULT_FN_ATTRS 2892_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) 2893{ 2894 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, 2895 (__v8hi) __B, __U); 2896} 2897 2898static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2899_mm256_testn_epi16_mask (__m256i __A, __m256i __B) 2900{ 2901 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, 2902 (__v16hi) __B, 2903 (__mmask16) -1); 2904} 2905 2906static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2907_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) 2908{ 2909 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, 2910 (__v16hi) __B, __U); 2911} 2912 2913static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2914_mm_movepi8_mask (__m128i __A) 2915{ 2916 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A); 2917} 2918 2919static __inline__ __mmask32 __DEFAULT_FN_ATTRS 2920_mm256_movepi8_mask (__m256i __A) 2921{ 2922 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A); 2923} 2924 2925static __inline__ __mmask8 __DEFAULT_FN_ATTRS 2926_mm_movepi16_mask (__m128i __A) 2927{ 2928 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A); 2929} 2930 2931static __inline__ __mmask16 __DEFAULT_FN_ATTRS 2932_mm256_movepi16_mask (__m256i __A) 2933{ 2934 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A); 2935} 2936 2937static __inline__ __m128i __DEFAULT_FN_ATTRS 2938_mm_movm_epi8 (__mmask16 __A) 2939{ 2940 return (__m128i) __builtin_ia32_cvtmask2b128 (__A); 2941} 2942 2943static __inline__ __m256i __DEFAULT_FN_ATTRS 2944_mm256_movm_epi8 (__mmask32 __A) 2945{ 2946 return (__m256i) __builtin_ia32_cvtmask2b256 (__A); 2947} 2948 2949static __inline__ __m128i __DEFAULT_FN_ATTRS 2950_mm_movm_epi16 (__mmask8 __A) 2951{ 2952 return (__m128i) __builtin_ia32_cvtmask2w128 (__A); 2953} 2954 2955static __inline__ __m256i __DEFAULT_FN_ATTRS 2956_mm256_movm_epi16 (__mmask16 __A) 2957{ 2958 return (__m256i) __builtin_ia32_cvtmask2w256 (__A); 2959} 2960 2961static __inline__ __m128i __DEFAULT_FN_ATTRS 2962_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A) 2963{ 2964 return (__m128i)__builtin_ia32_selectb_128(__M, 2965 (__v16qi) _mm_broadcastb_epi8(__A), 2966 (__v16qi) __O); 2967} 2968 2969static __inline__ __m128i __DEFAULT_FN_ATTRS 2970_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A) 2971{ 2972 return (__m128i)__builtin_ia32_selectb_128(__M, 2973 (__v16qi) _mm_broadcastb_epi8(__A), 2974 (__v16qi) _mm_setzero_si128()); 2975} 2976 2977static __inline__ __m256i __DEFAULT_FN_ATTRS 2978_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A) 2979{ 2980 return (__m256i)__builtin_ia32_selectb_256(__M, 2981 (__v32qi) _mm256_broadcastb_epi8(__A), 2982 (__v32qi) __O); 2983} 2984 2985static __inline__ __m256i __DEFAULT_FN_ATTRS 2986_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A) 2987{ 2988 return (__m256i)__builtin_ia32_selectb_256(__M, 2989 (__v32qi) _mm256_broadcastb_epi8(__A), 2990 (__v32qi) _mm256_setzero_si256()); 2991} 2992 2993static __inline__ __m128i __DEFAULT_FN_ATTRS 2994_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 2995{ 2996 return (__m128i)__builtin_ia32_selectw_128(__M, 2997 (__v8hi) _mm_broadcastw_epi16(__A), 2998 (__v8hi) __O); 2999} 3000 3001static __inline__ __m128i __DEFAULT_FN_ATTRS 3002_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A) 3003{ 3004 return (__m128i)__builtin_ia32_selectw_128(__M, 3005 (__v8hi) _mm_broadcastw_epi16(__A), 3006 (__v8hi) _mm_setzero_si128()); 3007} 3008 3009static __inline__ __m256i __DEFAULT_FN_ATTRS 3010_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A) 3011{ 3012 return (__m256i)__builtin_ia32_selectw_256(__M, 3013 (__v16hi) _mm256_broadcastw_epi16(__A), 3014 (__v16hi) __O); 3015} 3016 3017static __inline__ __m256i __DEFAULT_FN_ATTRS 3018_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) 3019{ 3020 return (__m256i)__builtin_ia32_selectw_256(__M, 3021 (__v16hi) _mm256_broadcastw_epi16(__A), 3022 (__v16hi) _mm256_setzero_si256()); 3023} 3024 3025static __inline__ __m256i __DEFAULT_FN_ATTRS 3026_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) 3027{ 3028 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, 3029 (__v16hi) __O, 3030 __M); 3031} 3032 3033static __inline__ __m256i __DEFAULT_FN_ATTRS 3034_mm256_maskz_set1_epi16 (__mmask16 __M, short __A) 3035{ 3036 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, 3037 (__v16hi) _mm256_setzero_si256 (), 3038 __M); 3039} 3040 3041static __inline__ __m128i __DEFAULT_FN_ATTRS 3042_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) 3043{ 3044 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, 3045 (__v8hi) __O, 3046 __M); 3047} 3048 3049static __inline__ __m128i __DEFAULT_FN_ATTRS 3050_mm_maskz_set1_epi16 (__mmask8 __M, short __A) 3051{ 3052 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, 3053 (__v8hi) _mm_setzero_si128 (), 3054 __M); 3055} 3056 3057static __inline__ __m128i __DEFAULT_FN_ATTRS 3058_mm_permutexvar_epi16 (__m128i __A, __m128i __B) 3059{ 3060 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, 3061 (__v8hi) __A, 3062 (__v8hi) _mm_undefined_si128 (), 3063 (__mmask8) -1); 3064} 3065 3066static __inline__ __m128i __DEFAULT_FN_ATTRS 3067_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B) 3068{ 3069 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, 3070 (__v8hi) __A, 3071 (__v8hi) _mm_setzero_si128 (), 3072 (__mmask8) __M); 3073} 3074 3075static __inline__ __m128i __DEFAULT_FN_ATTRS 3076_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A, 3077 __m128i __B) 3078{ 3079 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, 3080 (__v8hi) __A, 3081 (__v8hi) __W, 3082 (__mmask8) __M); 3083} 3084 3085static __inline__ __m256i __DEFAULT_FN_ATTRS 3086_mm256_permutexvar_epi16 (__m256i __A, __m256i __B) 3087{ 3088 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, 3089 (__v16hi) __A, 3090 (__v16hi) _mm256_undefined_si256 (), 3091 (__mmask16) -1); 3092} 3093 3094static __inline__ __m256i __DEFAULT_FN_ATTRS 3095_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A, 3096 __m256i __B) 3097{ 3098 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, 3099 (__v16hi) __A, 3100 (__v16hi) _mm256_setzero_si256 (), 3101 (__mmask16) __M); 3102} 3103 3104static __inline__ __m256i __DEFAULT_FN_ATTRS 3105_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A, 3106 __m256i __B) 3107{ 3108 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, 3109 (__v16hi) __A, 3110 (__v16hi) __W, 3111 (__mmask16) __M); 3112} 3113 3114#define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \ 3115 (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ 3116 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \ 3117 (__v16qi)(__m128i)(W)); }) 3118 3119#define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \ 3120 (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ 3121 (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \ 3122 (__v16qi)_mm_setzero_si128()); }) 3123 3124#define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \ 3125 (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ 3126 (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \ 3127 (__v32qi)(__m256i)(W)); }) 3128 3129#define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \ 3130 (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ 3131 (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \ 3132 (__v32qi)_mm256_setzero_si256()); }) 3133 3134#define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \ 3135 (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \ 3136 (__v16qi)(__m128i)(B), (int)(imm), \ 3137 (__v8hi)_mm_setzero_hi(), \ 3138 (__mmask8)-1); }) 3139 3140#define _mm_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \ 3141 (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \ 3142 (__v16qi)(__m128i)(B), (int)(imm), \ 3143 (__v8hi)(__m128i)(W), \ 3144 (__mmask8)(U)); }) 3145 3146#define _mm_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \ 3147 (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \ 3148 (__v16qi)(__m128i)(B), (int)(imm), \ 3149 (__v8hi)_mm_setzero_si128(), \ 3150 (__mmask8)(U)); }) 3151 3152#define _mm256_dbsad_epu8(A, B, imm) __extension__ ({ \ 3153 (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \ 3154 (__v32qi)(__m256i)(B), (int)(imm), \ 3155 (__v16hi)_mm256_setzero_si256(), \ 3156 (__mmask16)-1); }) 3157 3158#define _mm256_mask_dbsad_epu8(W, U, A, B, imm) __extension__ ({ \ 3159 (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \ 3160 (__v32qi)(__m256i)(B), (int)(imm), \ 3161 (__v16hi)(__m256i)(W), \ 3162 (__mmask16)(U)); }) 3163 3164#define _mm256_maskz_dbsad_epu8(U, A, B, imm) __extension__ ({ \ 3165 (__m256i)__builtin_ia32_dbpsadbw256_mask((__v32qi)(__m256i)(A), \ 3166 (__v32qi)(__m256i)(B), (int)(imm), \ 3167 (__v16hi)_mm256_setzero_si256(), \ 3168 (__mmask16)(U)); }) 3169 3170#undef __DEFAULT_FN_ATTRS 3171 3172#endif /* __AVX512VLBWINTRIN_H */ 3173