avx512vlbwintrin.h revision 302408
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 34/* Integer compare */ 35 36static __inline__ __mmask16 __DEFAULT_FN_ATTRS 37_mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) { 38 return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b, 39 (__mmask16)-1); 40} 41 42static __inline__ __mmask16 __DEFAULT_FN_ATTRS 43_mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 44 return (__mmask16)__builtin_ia32_pcmpeqb128_mask((__v16qi)__a, (__v16qi)__b, 45 __u); 46} 47 48static __inline__ __mmask16 __DEFAULT_FN_ATTRS 49_mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) { 50 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0, 51 (__mmask16)-1); 52} 53 54static __inline__ __mmask16 __DEFAULT_FN_ATTRS 55_mm_mask_cmpeq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 56 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 0, 57 __u); 58} 59 60static __inline__ __mmask32 __DEFAULT_FN_ATTRS 61_mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) { 62 return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b, 63 (__mmask32)-1); 64} 65 66static __inline__ __mmask32 __DEFAULT_FN_ATTRS 67_mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 68 return (__mmask32)__builtin_ia32_pcmpeqb256_mask((__v32qi)__a, (__v32qi)__b, 69 __u); 70} 71 72static __inline__ __mmask32 __DEFAULT_FN_ATTRS 73_mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) { 74 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0, 75 (__mmask32)-1); 76} 77 78static __inline__ __mmask32 __DEFAULT_FN_ATTRS 79_mm256_mask_cmpeq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 80 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 0, 81 __u); 82} 83 84static __inline__ __mmask8 __DEFAULT_FN_ATTRS 85_mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) { 86 return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b, 87 (__mmask8)-1); 88} 89 90static __inline__ __mmask8 __DEFAULT_FN_ATTRS 91_mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 92 return (__mmask8)__builtin_ia32_pcmpeqw128_mask((__v8hi)__a, (__v8hi)__b, 93 __u); 94} 95 96static __inline__ __mmask8 __DEFAULT_FN_ATTRS 97_mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) { 98 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0, 99 (__mmask8)-1); 100} 101 102static __inline__ __mmask8 __DEFAULT_FN_ATTRS 103_mm_mask_cmpeq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 104 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 0, 105 __u); 106} 107 108static __inline__ __mmask16 __DEFAULT_FN_ATTRS 109_mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) { 110 return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b, 111 (__mmask16)-1); 112} 113 114static __inline__ __mmask16 __DEFAULT_FN_ATTRS 115_mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 116 return (__mmask16)__builtin_ia32_pcmpeqw256_mask((__v16hi)__a, (__v16hi)__b, 117 __u); 118} 119 120static __inline__ __mmask16 __DEFAULT_FN_ATTRS 121_mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) { 122 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0, 123 (__mmask16)-1); 124} 125 126static __inline__ __mmask16 __DEFAULT_FN_ATTRS 127_mm256_mask_cmpeq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 128 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 0, 129 __u); 130} 131 132static __inline__ __mmask16 __DEFAULT_FN_ATTRS 133_mm_cmpge_epi8_mask(__m128i __a, __m128i __b) { 134 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 135 (__mmask16)-1); 136} 137 138static __inline__ __mmask16 __DEFAULT_FN_ATTRS 139_mm_mask_cmpge_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 140 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 141 __u); 142} 143 144static __inline__ __mmask16 __DEFAULT_FN_ATTRS 145_mm_cmpge_epu8_mask(__m128i __a, __m128i __b) { 146 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 147 (__mmask16)-1); 148} 149 150static __inline__ __mmask16 __DEFAULT_FN_ATTRS 151_mm_mask_cmpge_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 152 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 5, 153 __u); 154} 155 156static __inline__ __mmask32 __DEFAULT_FN_ATTRS 157_mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) { 158 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 159 (__mmask32)-1); 160} 161 162static __inline__ __mmask32 __DEFAULT_FN_ATTRS 163_mm256_mask_cmpge_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 164 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 165 __u); 166} 167 168static __inline__ __mmask32 __DEFAULT_FN_ATTRS 169_mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) { 170 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 171 (__mmask32)-1); 172} 173 174static __inline__ __mmask32 __DEFAULT_FN_ATTRS 175_mm256_mask_cmpge_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 176 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 5, 177 __u); 178} 179 180static __inline__ __mmask8 __DEFAULT_FN_ATTRS 181_mm_cmpge_epi16_mask(__m128i __a, __m128i __b) { 182 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 183 (__mmask8)-1); 184} 185 186static __inline__ __mmask8 __DEFAULT_FN_ATTRS 187_mm_mask_cmpge_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 188 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 189 __u); 190} 191 192static __inline__ __mmask8 __DEFAULT_FN_ATTRS 193_mm_cmpge_epu16_mask(__m128i __a, __m128i __b) { 194 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 195 (__mmask8)-1); 196} 197 198static __inline__ __mmask8 __DEFAULT_FN_ATTRS 199_mm_mask_cmpge_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 200 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 5, 201 __u); 202} 203 204static __inline__ __mmask16 __DEFAULT_FN_ATTRS 205_mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) { 206 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 207 (__mmask16)-1); 208} 209 210static __inline__ __mmask16 __DEFAULT_FN_ATTRS 211_mm256_mask_cmpge_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 212 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 213 __u); 214} 215 216static __inline__ __mmask16 __DEFAULT_FN_ATTRS 217_mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) { 218 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 219 (__mmask16)-1); 220} 221 222static __inline__ __mmask16 __DEFAULT_FN_ATTRS 223_mm256_mask_cmpge_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 224 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 5, 225 __u); 226} 227 228static __inline__ __mmask16 __DEFAULT_FN_ATTRS 229_mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) { 230 return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b, 231 (__mmask16)-1); 232} 233 234static __inline__ __mmask16 __DEFAULT_FN_ATTRS 235_mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 236 return (__mmask16)__builtin_ia32_pcmpgtb128_mask((__v16qi)__a, (__v16qi)__b, 237 __u); 238} 239 240static __inline__ __mmask16 __DEFAULT_FN_ATTRS 241_mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) { 242 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6, 243 (__mmask16)-1); 244} 245 246static __inline__ __mmask16 __DEFAULT_FN_ATTRS 247_mm_mask_cmpgt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 248 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 6, 249 __u); 250} 251 252static __inline__ __mmask32 __DEFAULT_FN_ATTRS 253_mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) { 254 return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b, 255 (__mmask32)-1); 256} 257 258static __inline__ __mmask32 __DEFAULT_FN_ATTRS 259_mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 260 return (__mmask32)__builtin_ia32_pcmpgtb256_mask((__v32qi)__a, (__v32qi)__b, 261 __u); 262} 263 264static __inline__ __mmask32 __DEFAULT_FN_ATTRS 265_mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) { 266 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6, 267 (__mmask32)-1); 268} 269 270static __inline__ __mmask32 __DEFAULT_FN_ATTRS 271_mm256_mask_cmpgt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 272 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 6, 273 __u); 274} 275 276static __inline__ __mmask8 __DEFAULT_FN_ATTRS 277_mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) { 278 return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b, 279 (__mmask8)-1); 280} 281 282static __inline__ __mmask8 __DEFAULT_FN_ATTRS 283_mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 284 return (__mmask8)__builtin_ia32_pcmpgtw128_mask((__v8hi)__a, (__v8hi)__b, 285 __u); 286} 287 288static __inline__ __mmask8 __DEFAULT_FN_ATTRS 289_mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) { 290 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6, 291 (__mmask8)-1); 292} 293 294static __inline__ __mmask8 __DEFAULT_FN_ATTRS 295_mm_mask_cmpgt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 296 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 6, 297 __u); 298} 299 300static __inline__ __mmask16 __DEFAULT_FN_ATTRS 301_mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) { 302 return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b, 303 (__mmask16)-1); 304} 305 306static __inline__ __mmask16 __DEFAULT_FN_ATTRS 307_mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 308 return (__mmask16)__builtin_ia32_pcmpgtw256_mask((__v16hi)__a, (__v16hi)__b, 309 __u); 310} 311 312static __inline__ __mmask16 __DEFAULT_FN_ATTRS 313_mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) { 314 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6, 315 (__mmask16)-1); 316} 317 318static __inline__ __mmask16 __DEFAULT_FN_ATTRS 319_mm256_mask_cmpgt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 320 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 6, 321 __u); 322} 323 324static __inline__ __mmask16 __DEFAULT_FN_ATTRS 325_mm_cmple_epi8_mask(__m128i __a, __m128i __b) { 326 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 327 (__mmask16)-1); 328} 329 330static __inline__ __mmask16 __DEFAULT_FN_ATTRS 331_mm_mask_cmple_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 332 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 333 __u); 334} 335 336static __inline__ __mmask16 __DEFAULT_FN_ATTRS 337_mm_cmple_epu8_mask(__m128i __a, __m128i __b) { 338 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 339 (__mmask16)-1); 340} 341 342static __inline__ __mmask16 __DEFAULT_FN_ATTRS 343_mm_mask_cmple_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 344 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 2, 345 __u); 346} 347 348static __inline__ __mmask32 __DEFAULT_FN_ATTRS 349_mm256_cmple_epi8_mask(__m256i __a, __m256i __b) { 350 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 351 (__mmask32)-1); 352} 353 354static __inline__ __mmask32 __DEFAULT_FN_ATTRS 355_mm256_mask_cmple_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 356 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 357 __u); 358} 359 360static __inline__ __mmask32 __DEFAULT_FN_ATTRS 361_mm256_cmple_epu8_mask(__m256i __a, __m256i __b) { 362 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 363 (__mmask32)-1); 364} 365 366static __inline__ __mmask32 __DEFAULT_FN_ATTRS 367_mm256_mask_cmple_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 368 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 2, 369 __u); 370} 371 372static __inline__ __mmask8 __DEFAULT_FN_ATTRS 373_mm_cmple_epi16_mask(__m128i __a, __m128i __b) { 374 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 375 (__mmask8)-1); 376} 377 378static __inline__ __mmask8 __DEFAULT_FN_ATTRS 379_mm_mask_cmple_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 380 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 381 __u); 382} 383 384static __inline__ __mmask8 __DEFAULT_FN_ATTRS 385_mm_cmple_epu16_mask(__m128i __a, __m128i __b) { 386 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 387 (__mmask8)-1); 388} 389 390static __inline__ __mmask8 __DEFAULT_FN_ATTRS 391_mm_mask_cmple_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 392 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 2, 393 __u); 394} 395 396static __inline__ __mmask16 __DEFAULT_FN_ATTRS 397_mm256_cmple_epi16_mask(__m256i __a, __m256i __b) { 398 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 399 (__mmask16)-1); 400} 401 402static __inline__ __mmask16 __DEFAULT_FN_ATTRS 403_mm256_mask_cmple_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 404 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 405 __u); 406} 407 408static __inline__ __mmask16 __DEFAULT_FN_ATTRS 409_mm256_cmple_epu16_mask(__m256i __a, __m256i __b) { 410 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 411 (__mmask16)-1); 412} 413 414static __inline__ __mmask16 __DEFAULT_FN_ATTRS 415_mm256_mask_cmple_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 416 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 2, 417 __u); 418} 419 420static __inline__ __mmask16 __DEFAULT_FN_ATTRS 421_mm_cmplt_epi8_mask(__m128i __a, __m128i __b) { 422 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 423 (__mmask16)-1); 424} 425 426static __inline__ __mmask16 __DEFAULT_FN_ATTRS 427_mm_mask_cmplt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 428 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 429 __u); 430} 431 432static __inline__ __mmask16 __DEFAULT_FN_ATTRS 433_mm_cmplt_epu8_mask(__m128i __a, __m128i __b) { 434 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 435 (__mmask16)-1); 436} 437 438static __inline__ __mmask16 __DEFAULT_FN_ATTRS 439_mm_mask_cmplt_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 440 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 1, 441 __u); 442} 443 444static __inline__ __mmask32 __DEFAULT_FN_ATTRS 445_mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) { 446 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 447 (__mmask32)-1); 448} 449 450static __inline__ __mmask32 __DEFAULT_FN_ATTRS 451_mm256_mask_cmplt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 452 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 453 __u); 454} 455 456static __inline__ __mmask32 __DEFAULT_FN_ATTRS 457_mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) { 458 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 459 (__mmask32)-1); 460} 461 462static __inline__ __mmask32 __DEFAULT_FN_ATTRS 463_mm256_mask_cmplt_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 464 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 1, 465 __u); 466} 467 468static __inline__ __mmask8 __DEFAULT_FN_ATTRS 469_mm_cmplt_epi16_mask(__m128i __a, __m128i __b) { 470 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 471 (__mmask8)-1); 472} 473 474static __inline__ __mmask8 __DEFAULT_FN_ATTRS 475_mm_mask_cmplt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 476 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 477 __u); 478} 479 480static __inline__ __mmask8 __DEFAULT_FN_ATTRS 481_mm_cmplt_epu16_mask(__m128i __a, __m128i __b) { 482 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 483 (__mmask8)-1); 484} 485 486static __inline__ __mmask8 __DEFAULT_FN_ATTRS 487_mm_mask_cmplt_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 488 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 1, 489 __u); 490} 491 492static __inline__ __mmask16 __DEFAULT_FN_ATTRS 493_mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) { 494 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 495 (__mmask16)-1); 496} 497 498static __inline__ __mmask16 __DEFAULT_FN_ATTRS 499_mm256_mask_cmplt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 500 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 501 __u); 502} 503 504static __inline__ __mmask16 __DEFAULT_FN_ATTRS 505_mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) { 506 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 507 (__mmask16)-1); 508} 509 510static __inline__ __mmask16 __DEFAULT_FN_ATTRS 511_mm256_mask_cmplt_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 512 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 1, 513 __u); 514} 515 516static __inline__ __mmask16 __DEFAULT_FN_ATTRS 517_mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) { 518 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 519 (__mmask16)-1); 520} 521 522static __inline__ __mmask16 __DEFAULT_FN_ATTRS 523_mm_mask_cmpneq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 524 return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 525 __u); 526} 527 528static __inline__ __mmask16 __DEFAULT_FN_ATTRS 529_mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) { 530 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 531 (__mmask16)-1); 532} 533 534static __inline__ __mmask16 __DEFAULT_FN_ATTRS 535_mm_mask_cmpneq_epu8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 536 return (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)__a, (__v16qi)__b, 4, 537 __u); 538} 539 540static __inline__ __mmask32 __DEFAULT_FN_ATTRS 541_mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) { 542 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 543 (__mmask32)-1); 544} 545 546static __inline__ __mmask32 __DEFAULT_FN_ATTRS 547_mm256_mask_cmpneq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 548 return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 549 __u); 550} 551 552static __inline__ __mmask32 __DEFAULT_FN_ATTRS 553_mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) { 554 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 555 (__mmask32)-1); 556} 557 558static __inline__ __mmask32 __DEFAULT_FN_ATTRS 559_mm256_mask_cmpneq_epu8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 560 return (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)__a, (__v32qi)__b, 4, 561 __u); 562} 563 564static __inline__ __mmask8 __DEFAULT_FN_ATTRS 565_mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) { 566 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 567 (__mmask8)-1); 568} 569 570static __inline__ __mmask8 __DEFAULT_FN_ATTRS 571_mm_mask_cmpneq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 572 return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 573 __u); 574} 575 576static __inline__ __mmask8 __DEFAULT_FN_ATTRS 577_mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) { 578 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 579 (__mmask8)-1); 580} 581 582static __inline__ __mmask8 __DEFAULT_FN_ATTRS 583_mm_mask_cmpneq_epu16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 584 return (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)__a, (__v8hi)__b, 4, 585 __u); 586} 587 588static __inline__ __mmask16 __DEFAULT_FN_ATTRS 589_mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) { 590 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 591 (__mmask16)-1); 592} 593 594static __inline__ __mmask16 __DEFAULT_FN_ATTRS 595_mm256_mask_cmpneq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 596 return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 597 __u); 598} 599 600static __inline__ __mmask16 __DEFAULT_FN_ATTRS 601_mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) { 602 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 603 (__mmask16)-1); 604} 605 606static __inline__ __mmask16 __DEFAULT_FN_ATTRS 607_mm256_mask_cmpneq_epu16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 608 return (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)__a, (__v16hi)__b, 4, 609 __u); 610} 611 612static __inline__ __m256i __DEFAULT_FN_ATTRS 613_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){ 614 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A, 615 (__v32qi) __B, 616 (__v32qi) __W, 617 (__mmask32) __U); 618} 619 620static __inline__ __m256i __DEFAULT_FN_ATTRS 621_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { 622 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A, 623 (__v32qi) __B, 624 (__v32qi) 625 _mm256_setzero_si256 (), 626 (__mmask32) __U); 627} 628 629static __inline__ __m256i __DEFAULT_FN_ATTRS 630_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 631 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A, 632 (__v16hi) __B, 633 (__v16hi) __W, 634 (__mmask16) __U); 635} 636 637static __inline__ __m256i __DEFAULT_FN_ATTRS 638_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 639 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A, 640 (__v16hi) __B, 641 (__v16hi) 642 _mm256_setzero_si256 (), 643 (__mmask16) __U); 644} 645 646static __inline__ __m256i __DEFAULT_FN_ATTRS 647_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 648 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A, 649 (__v32qi) __B, 650 (__v32qi) __W, 651 (__mmask32) __U); 652} 653 654static __inline__ __m256i __DEFAULT_FN_ATTRS 655_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { 656 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A, 657 (__v32qi) __B, 658 (__v32qi) 659 _mm256_setzero_si256 (), 660 (__mmask32) __U); 661} 662 663static __inline__ __m256i __DEFAULT_FN_ATTRS 664_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 665 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A, 666 (__v16hi) __B, 667 (__v16hi) __W, 668 (__mmask16) __U); 669} 670 671static __inline__ __m256i __DEFAULT_FN_ATTRS 672_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 673 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A, 674 (__v16hi) __B, 675 (__v16hi) 676 _mm256_setzero_si256 (), 677 (__mmask16) __U); 678} 679static __inline__ __m128i __DEFAULT_FN_ATTRS 680_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 681 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A, 682 (__v16qi) __B, 683 (__v16qi) __W, 684 (__mmask16) __U); 685} 686 687static __inline__ __m128i __DEFAULT_FN_ATTRS 688_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { 689 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A, 690 (__v16qi) __B, 691 (__v16qi) 692 _mm_setzero_si128 (), 693 (__mmask16) __U); 694} 695 696static __inline__ __m128i __DEFAULT_FN_ATTRS 697_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 698 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A, 699 (__v8hi) __B, 700 (__v8hi) __W, 701 (__mmask8) __U); 702} 703 704static __inline__ __m128i __DEFAULT_FN_ATTRS 705_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 706 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A, 707 (__v8hi) __B, 708 (__v8hi) 709 _mm_setzero_si128 (), 710 (__mmask8) __U); 711} 712 713static __inline__ __m128i __DEFAULT_FN_ATTRS 714_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 715 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A, 716 (__v16qi) __B, 717 (__v16qi) __W, 718 (__mmask16) __U); 719} 720 721static __inline__ __m128i __DEFAULT_FN_ATTRS 722_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { 723 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A, 724 (__v16qi) __B, 725 (__v16qi) 726 _mm_setzero_si128 (), 727 (__mmask16) __U); 728} 729 730static __inline__ __m128i __DEFAULT_FN_ATTRS 731_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 732 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A, 733 (__v8hi) __B, 734 (__v8hi) __W, 735 (__mmask8) __U); 736} 737 738static __inline__ __m128i __DEFAULT_FN_ATTRS 739_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 740 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A, 741 (__v8hi) __B, 742 (__v8hi) 743 _mm_setzero_si128 (), 744 (__mmask8) __U); 745} 746 747static __inline__ __m256i __DEFAULT_FN_ATTRS 748_mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 749 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A, 750 (__v16hi) __B, 751 (__v16hi) __W, 752 (__mmask16) __U); 753} 754 755static __inline__ __m256i __DEFAULT_FN_ATTRS 756_mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 757 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A, 758 (__v16hi) __B, 759 (__v16hi) 760 _mm256_setzero_si256 (), 761 (__mmask16) __U); 762} 763 764static __inline__ __m128i __DEFAULT_FN_ATTRS 765_mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 766 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A, 767 (__v8hi) __B, 768 (__v8hi) __W, 769 (__mmask8) __U); 770} 771 772static __inline__ __m128i __DEFAULT_FN_ATTRS 773_mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 774 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A, 775 (__v8hi) __B, 776 (__v8hi) 777 _mm_setzero_si128 (), 778 (__mmask8) __U); 779} 780 781static __inline__ __m128i __DEFAULT_FN_ATTRS 782_mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W) 783{ 784 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A, 785 (__v16qi) __W, 786 (__mmask16) __U); 787} 788 789static __inline__ __m256i __DEFAULT_FN_ATTRS 790_mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W) 791{ 792 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A, 793 (__v32qi) __W, 794 (__mmask32) __U); 795} 796 797static __inline__ __m128i __DEFAULT_FN_ATTRS 798_mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W) 799{ 800 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A, 801 (__v8hi) __W, 802 (__mmask8) __U); 803} 804 805static __inline__ __m256i __DEFAULT_FN_ATTRS 806_mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W) 807{ 808 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A, 809 (__v16hi) __W, 810 (__mmask16) __U); 811} 812 813static __inline__ __m128i __DEFAULT_FN_ATTRS 814_mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A) 815{ 816 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A, 817 (__v16qi) __W, 818 (__mmask16) __U); 819} 820 821static __inline__ __m128i __DEFAULT_FN_ATTRS 822_mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A) 823{ 824 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A, 825 (__v16qi) _mm_setzero_si128 (), 826 (__mmask16) __U); 827} 828 829static __inline__ __m256i __DEFAULT_FN_ATTRS 830_mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A) 831{ 832 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A, 833 (__v32qi) __W, 834 (__mmask32) __U); 835} 836 837static __inline__ __m256i __DEFAULT_FN_ATTRS 838_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A) 839{ 840 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A, 841 (__v32qi) _mm256_setzero_si256 (), 842 (__mmask32) __U); 843} 844 845static __inline__ __m128i __DEFAULT_FN_ATTRS 846_mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A) 847{ 848 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A, 849 (__v8hi) __W, 850 (__mmask8) __U); 851} 852 853static __inline__ __m128i __DEFAULT_FN_ATTRS 854_mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A) 855{ 856 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A, 857 (__v8hi) _mm_setzero_si128 (), 858 (__mmask8) __U); 859} 860 861static __inline__ __m256i __DEFAULT_FN_ATTRS 862_mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A) 863{ 864 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A, 865 (__v16hi) __W, 866 (__mmask16) __U); 867} 868 869static __inline__ __m256i __DEFAULT_FN_ATTRS 870_mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A) 871{ 872 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A, 873 (__v16hi) _mm256_setzero_si256 (), 874 (__mmask16) __U); 875} 876 877static __inline__ __m128i __DEFAULT_FN_ATTRS 878_mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B) 879{ 880 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, 881 (__v4si) __B, 882 (__v8hi) _mm_setzero_si128 (), __M); 883} 884 885static __inline__ __m128i __DEFAULT_FN_ATTRS 886_mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A, 887 __m128i __B) 888{ 889 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, 890 (__v4si) __B, 891 (__v8hi) __W, __M); 892} 893 894static __inline__ __m256i __DEFAULT_FN_ATTRS 895_mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B) 896{ 897 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A, 898 (__v8si) __B, 899 (__v16hi) _mm256_setzero_si256 (), 900 __M); 901} 902 903static __inline__ __m256i __DEFAULT_FN_ATTRS 904_mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A, 905 __m256i __B) 906{ 907 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A, 908 (__v8si) __B, 909 (__v16hi) __W, __M); 910} 911 912static __inline__ __m128i __DEFAULT_FN_ATTRS 913_mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B) 914{ 915 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A, 916 (__v8hi) __B, 917 (__v16qi) _mm_setzero_si128 (), 918 __M); 919} 920 921static __inline__ __m128i __DEFAULT_FN_ATTRS 922_mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A, 923 __m128i __B) 924{ 925 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A, 926 (__v8hi) __B, 927 (__v16qi) __W, 928 __M); 929} 930 931static __inline__ __m256i __DEFAULT_FN_ATTRS 932_mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B) 933{ 934 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A, 935 (__v16hi) __B, 936 (__v32qi) _mm256_setzero_si256 (), 937 __M); 938} 939 940static __inline__ __m256i __DEFAULT_FN_ATTRS 941_mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A, 942 __m256i __B) 943{ 944 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A, 945 (__v16hi) __B, 946 (__v32qi) __W, 947 __M); 948} 949 950static __inline__ __m128i __DEFAULT_FN_ATTRS 951_mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B) 952{ 953 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, 954 (__v4si) __B, 955 (__v8hi) _mm_setzero_si128 (), 956 __M); 957} 958 959static __inline__ __m128i __DEFAULT_FN_ATTRS 960_mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A, 961 __m128i __B) 962{ 963 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, 964 (__v4si) __B, 965 (__v8hi) __W, __M); 966} 967 968static __inline__ __m256i __DEFAULT_FN_ATTRS 969_mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B) 970{ 971 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A, 972 (__v8si) __B, 973 (__v16hi) _mm256_setzero_si256 (), 974 __M); 975} 976 977static __inline__ __m256i __DEFAULT_FN_ATTRS 978_mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A, 979 __m256i __B) 980{ 981 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A, 982 (__v8si) __B, 983 (__v16hi) __W, 984 __M); 985} 986 987static __inline__ __m128i __DEFAULT_FN_ATTRS 988_mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B) 989{ 990 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A, 991 (__v8hi) __B, 992 (__v16qi) _mm_setzero_si128 (), 993 __M); 994} 995 996static __inline__ __m128i __DEFAULT_FN_ATTRS 997_mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A, 998 __m128i __B) 999{ 1000 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A, 1001 (__v8hi) __B, 1002 (__v16qi) __W, 1003 __M); 1004} 1005 1006static __inline__ __m256i __DEFAULT_FN_ATTRS 1007_mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B) 1008{ 1009 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A, 1010 (__v16hi) __B, 1011 (__v32qi) _mm256_setzero_si256 (), 1012 __M); 1013} 1014 1015static __inline__ __m256i __DEFAULT_FN_ATTRS 1016_mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A, 1017 __m256i __B) 1018{ 1019 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A, 1020 (__v16hi) __B, 1021 (__v32qi) __W, 1022 __M); 1023} 1024 1025static __inline__ __m128i __DEFAULT_FN_ATTRS 1026_mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 1027 __m128i __B) 1028{ 1029 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A, 1030 (__v16qi) __B, 1031 (__v16qi) __W, 1032 (__mmask16) __U); 1033} 1034 1035static __inline__ __m128i __DEFAULT_FN_ATTRS 1036_mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 1037{ 1038 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A, 1039 (__v16qi) __B, 1040 (__v16qi) _mm_setzero_si128 (), 1041 (__mmask16) __U); 1042} 1043 1044static __inline__ __m256i __DEFAULT_FN_ATTRS 1045_mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 1046 __m256i __B) 1047{ 1048 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A, 1049 (__v32qi) __B, 1050 (__v32qi) __W, 1051 (__mmask32) __U); 1052} 1053 1054static __inline__ __m256i __DEFAULT_FN_ATTRS 1055_mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 1056{ 1057 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A, 1058 (__v32qi) __B, 1059 (__v32qi) _mm256_setzero_si256 (), 1060 (__mmask32) __U); 1061} 1062 1063static __inline__ __m128i __DEFAULT_FN_ATTRS 1064_mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1065 __m128i __B) 1066{ 1067 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A, 1068 (__v8hi) __B, 1069 (__v8hi) __W, 1070 (__mmask8) __U); 1071} 1072 1073static __inline__ __m128i __DEFAULT_FN_ATTRS 1074_mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 1075{ 1076 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A, 1077 (__v8hi) __B, 1078 (__v8hi) _mm_setzero_si128 (), 1079 (__mmask8) __U); 1080} 1081 1082static __inline__ __m256i __DEFAULT_FN_ATTRS 1083_mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1084 __m256i __B) 1085{ 1086 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A, 1087 (__v16hi) __B, 1088 (__v16hi) __W, 1089 (__mmask16) __U); 1090} 1091 1092static __inline__ __m256i __DEFAULT_FN_ATTRS 1093_mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 1094{ 1095 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A, 1096 (__v16hi) __B, 1097 (__v16hi) _mm256_setzero_si256 (), 1098 (__mmask16) __U); 1099} 1100 1101static __inline__ __m128i __DEFAULT_FN_ATTRS 1102_mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A, 1103 __m128i __B) 1104{ 1105 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A, 1106 (__v16qi) __B, 1107 (__v16qi) __W, 1108 (__mmask16) __U); 1109} 1110 1111static __inline__ __m128i __DEFAULT_FN_ATTRS 1112_mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B) 1113{ 1114 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A, 1115 (__v16qi) __B, 1116 (__v16qi) _mm_setzero_si128 (), 1117 (__mmask16) __U); 1118} 1119 1120static __inline__ __m256i __DEFAULT_FN_ATTRS 1121_mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A, 1122 __m256i __B) 1123{ 1124 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A, 1125 (__v32qi) __B, 1126 (__v32qi) __W, 1127 (__mmask32) __U); 1128} 1129 1130static __inline__ __m256i __DEFAULT_FN_ATTRS 1131_mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B) 1132{ 1133 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A, 1134 (__v32qi) __B, 1135 (__v32qi) _mm256_setzero_si256 (), 1136 (__mmask32) __U); 1137} 1138 1139static __inline__ __m128i __DEFAULT_FN_ATTRS 1140_mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 1141 __m128i __B) 1142{ 1143 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A, 1144 (__v8hi) __B, 1145 (__v8hi) __W, 1146 (__mmask8) __U); 1147} 1148 1149static __inline__ __m128i __DEFAULT_FN_ATTRS 1150_mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 1151{ 1152 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A, 1153 (__v8hi) __B, 1154 (__v8hi) _mm_setzero_si128 (), 1155 (__mmask8) __U); 1156} 1157 1158static __inline__ __m256i __DEFAULT_FN_ATTRS 1159_mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 1160 __m256i __B) 1161{ 1162 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A, 1163 (__v16hi) __B, 1164 (__v16hi) __W, 1165 (__mmask16) __U); 1166} 1167 1168static __inline__ __m256i __DEFAULT_FN_ATTRS 1169_mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 1170{ 1171 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A, 1172 (__v16hi) __B, 1173 (__v16hi) _mm256_setzero_si256 (), 1174 (__mmask16) __U); 1175} 1176 1177static __inline__ __m128i __DEFAULT_FN_ATTRS 1178_mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A, 1179 __m128i __B) 1180{ 1181 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A, 1182 (__v16qi) __B, 1183 (__v16qi) __W, 1184 (__mmask16) __U); 1185} 1186 1187static __inline__ __m128i __DEFAULT_FN_ATTRS 1188_mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B) 1189{ 1190 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A, 1191 (__v16qi) __B, 1192 (__v16qi) _mm_setzero_si128 (), 1193 (__mmask16) __U); 1194} 1195 1196static __inline__ __m256i __DEFAULT_FN_ATTRS 1197_mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A, 1198 __m256i __B) 1199{ 1200 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A, 1201 (__v32qi) __B, 1202 (__v32qi) __W, 1203 (__mmask32) __U); 1204} 1205 1206static __inline__ __m256i __DEFAULT_FN_ATTRS 1207_mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B) 1208{ 1209 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A, 1210 (__v32qi) __B, 1211 (__v32qi) _mm256_setzero_si256 (), 1212 (__mmask32) __U); 1213} 1214 1215static __inline__ __m128i __DEFAULT_FN_ATTRS 1216_mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 1217 __m128i __B) 1218{ 1219 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A, 1220 (__v8hi) __B, 1221 (__v8hi) __W, 1222 (__mmask8) __U); 1223} 1224 1225static __inline__ __m128i __DEFAULT_FN_ATTRS 1226_mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 1227{ 1228 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A, 1229 (__v8hi) __B, 1230 (__v8hi) _mm_setzero_si128 (), 1231 (__mmask8) __U); 1232} 1233 1234static __inline__ __m256i __DEFAULT_FN_ATTRS 1235_mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 1236 __m256i __B) 1237{ 1238 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A, 1239 (__v16hi) __B, 1240 (__v16hi) __W, 1241 (__mmask16) __U); 1242} 1243 1244static __inline__ __m256i __DEFAULT_FN_ATTRS 1245_mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 1246{ 1247 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A, 1248 (__v16hi) __B, 1249 (__v16hi) _mm256_setzero_si256 (), 1250 (__mmask16) __U); 1251} 1252 1253static __inline__ __m128i __DEFAULT_FN_ATTRS 1254_mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B) 1255{ 1256 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A, 1257 (__v16qi) __B, 1258 (__v16qi) _mm_setzero_si128 (), 1259 (__mmask16) __M); 1260} 1261 1262static __inline__ __m128i __DEFAULT_FN_ATTRS 1263_mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A, 1264 __m128i __B) 1265{ 1266 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A, 1267 (__v16qi) __B, 1268 (__v16qi) __W, 1269 (__mmask16) __M); 1270} 1271 1272static __inline__ __m256i __DEFAULT_FN_ATTRS 1273_mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B) 1274{ 1275 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A, 1276 (__v32qi) __B, 1277 (__v32qi) _mm256_setzero_si256 (), 1278 (__mmask32) __M); 1279} 1280 1281static __inline__ __m256i __DEFAULT_FN_ATTRS 1282_mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A, 1283 __m256i __B) 1284{ 1285 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A, 1286 (__v32qi) __B, 1287 (__v32qi) __W, 1288 (__mmask32) __M); 1289} 1290 1291static __inline__ __m128i __DEFAULT_FN_ATTRS 1292_mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B) 1293{ 1294 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A, 1295 (__v8hi) __B, 1296 (__v8hi) _mm_setzero_si128 (), 1297 (__mmask8) __M); 1298} 1299 1300static __inline__ __m128i __DEFAULT_FN_ATTRS 1301_mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A, 1302 __m128i __B) 1303{ 1304 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A, 1305 (__v8hi) __B, 1306 (__v8hi) __W, 1307 (__mmask8) __M); 1308} 1309 1310static __inline__ __m256i __DEFAULT_FN_ATTRS 1311_mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B) 1312{ 1313 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A, 1314 (__v16hi) __B, 1315 (__v16hi) _mm256_setzero_si256 (), 1316 (__mmask16) __M); 1317} 1318 1319static __inline__ __m256i __DEFAULT_FN_ATTRS 1320_mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A, 1321 __m256i __B) 1322{ 1323 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A, 1324 (__v16hi) __B, 1325 (__v16hi) __W, 1326 (__mmask16) __M); 1327} 1328 1329static __inline__ __m128i __DEFAULT_FN_ATTRS 1330_mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B) 1331{ 1332 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A, 1333 (__v16qi) __B, 1334 (__v16qi) _mm_setzero_si128 (), 1335 (__mmask16) __M); 1336} 1337 1338static __inline__ __m128i __DEFAULT_FN_ATTRS 1339_mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A, 1340 __m128i __B) 1341{ 1342 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A, 1343 (__v16qi) __B, 1344 (__v16qi) __W, 1345 (__mmask16) __M); 1346} 1347 1348static __inline__ __m256i __DEFAULT_FN_ATTRS 1349_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B) 1350{ 1351 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A, 1352 (__v32qi) __B, 1353 (__v32qi) _mm256_setzero_si256 (), 1354 (__mmask32) __M); 1355} 1356 1357static __inline__ __m256i __DEFAULT_FN_ATTRS 1358_mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A, 1359 __m256i __B) 1360{ 1361 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A, 1362 (__v32qi) __B, 1363 (__v32qi) __W, 1364 (__mmask32) __M); 1365} 1366 1367static __inline__ __m128i __DEFAULT_FN_ATTRS 1368_mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B) 1369{ 1370 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A, 1371 (__v8hi) __B, 1372 (__v8hi) _mm_setzero_si128 (), 1373 (__mmask8) __M); 1374} 1375 1376static __inline__ __m128i __DEFAULT_FN_ATTRS 1377_mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A, 1378 __m128i __B) 1379{ 1380 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A, 1381 (__v8hi) __B, 1382 (__v8hi) __W, 1383 (__mmask8) __M); 1384} 1385 1386static __inline__ __m256i __DEFAULT_FN_ATTRS 1387_mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B) 1388{ 1389 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A, 1390 (__v16hi) __B, 1391 (__v16hi) _mm256_setzero_si256 (), 1392 (__mmask16) __M); 1393} 1394 1395static __inline__ __m256i __DEFAULT_FN_ATTRS 1396_mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A, 1397 __m256i __B) 1398{ 1399 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A, 1400 (__v16hi) __B, 1401 (__v16hi) __W, 1402 (__mmask16) __M); 1403} 1404 1405static __inline__ __m128i __DEFAULT_FN_ATTRS 1406_mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B) 1407{ 1408 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A, 1409 (__v16qi) __B, 1410 (__v16qi) _mm_setzero_si128 (), 1411 (__mmask16) __M); 1412} 1413 1414static __inline__ __m128i __DEFAULT_FN_ATTRS 1415_mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A, 1416 __m128i __B) 1417{ 1418 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A, 1419 (__v16qi) __B, 1420 (__v16qi) __W, 1421 (__mmask16) __M); 1422} 1423 1424static __inline__ __m256i __DEFAULT_FN_ATTRS 1425_mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B) 1426{ 1427 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A, 1428 (__v32qi) __B, 1429 (__v32qi) _mm256_setzero_si256 (), 1430 (__mmask32) __M); 1431} 1432 1433static __inline__ __m256i __DEFAULT_FN_ATTRS 1434_mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A, 1435 __m256i __B) 1436{ 1437 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A, 1438 (__v32qi) __B, 1439 (__v32qi) __W, 1440 (__mmask32) __M); 1441} 1442 1443static __inline__ __m128i __DEFAULT_FN_ATTRS 1444_mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B) 1445{ 1446 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A, 1447 (__v8hi) __B, 1448 (__v8hi) _mm_setzero_si128 (), 1449 (__mmask8) __M); 1450} 1451 1452static __inline__ __m128i __DEFAULT_FN_ATTRS 1453_mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A, 1454 __m128i __B) 1455{ 1456 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A, 1457 (__v8hi) __B, 1458 (__v8hi) __W, 1459 (__mmask8) __M); 1460} 1461 1462static __inline__ __m256i __DEFAULT_FN_ATTRS 1463_mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B) 1464{ 1465 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A, 1466 (__v16hi) __B, 1467 (__v16hi) _mm256_setzero_si256 (), 1468 (__mmask16) __M); 1469} 1470 1471static __inline__ __m256i __DEFAULT_FN_ATTRS 1472_mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A, 1473 __m256i __B) 1474{ 1475 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A, 1476 (__v16hi) __B, 1477 (__v16hi) __W, 1478 (__mmask16) __M); 1479} 1480 1481static __inline__ __m128i __DEFAULT_FN_ATTRS 1482_mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B) 1483{ 1484 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A, 1485 (__v16qi) __B, 1486 (__v16qi) _mm_setzero_si128 (), 1487 (__mmask16) __M); 1488} 1489 1490static __inline__ __m128i __DEFAULT_FN_ATTRS 1491_mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A, 1492 __m128i __B) 1493{ 1494 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A, 1495 (__v16qi) __B, 1496 (__v16qi) __W, 1497 (__mmask16) __M); 1498} 1499 1500static __inline__ __m256i __DEFAULT_FN_ATTRS 1501_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B) 1502{ 1503 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A, 1504 (__v32qi) __B, 1505 (__v32qi) _mm256_setzero_si256 (), 1506 (__mmask32) __M); 1507} 1508 1509static __inline__ __m256i __DEFAULT_FN_ATTRS 1510_mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A, 1511 __m256i __B) 1512{ 1513 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A, 1514 (__v32qi) __B, 1515 (__v32qi) __W, 1516 (__mmask32) __M); 1517} 1518 1519static __inline__ __m128i __DEFAULT_FN_ATTRS 1520_mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B) 1521{ 1522 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A, 1523 (__v8hi) __B, 1524 (__v8hi) _mm_setzero_si128 (), 1525 (__mmask8) __M); 1526} 1527 1528static __inline__ __m128i __DEFAULT_FN_ATTRS 1529_mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A, 1530 __m128i __B) 1531{ 1532 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A, 1533 (__v8hi) __B, 1534 (__v8hi) __W, 1535 (__mmask8) __M); 1536} 1537 1538static __inline__ __m256i __DEFAULT_FN_ATTRS 1539_mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B) 1540{ 1541 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A, 1542 (__v16hi) __B, 1543 (__v16hi) _mm256_setzero_si256 (), 1544 (__mmask16) __M); 1545} 1546 1547static __inline__ __m256i __DEFAULT_FN_ATTRS 1548_mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A, 1549 __m256i __B) 1550{ 1551 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A, 1552 (__v16hi) __B, 1553 (__v16hi) __W, 1554 (__mmask16) __M); 1555} 1556 1557static __inline__ __m128i __DEFAULT_FN_ATTRS 1558_mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 1559 __m128i __B) 1560{ 1561 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A, 1562 (__v16qi) __B, 1563 (__v16qi) __W, 1564 (__mmask16) __U); 1565} 1566 1567static __inline__ __m128i __DEFAULT_FN_ATTRS 1568_mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 1569{ 1570 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A, 1571 (__v16qi) __B, 1572 (__v16qi) _mm_setzero_si128 (), 1573 (__mmask16) __U); 1574} 1575 1576static __inline__ __m256i __DEFAULT_FN_ATTRS 1577_mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 1578 __m256i __B) 1579{ 1580 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A, 1581 (__v32qi) __B, 1582 (__v32qi) __W, 1583 (__mmask32) __U); 1584} 1585 1586static __inline__ __m256i __DEFAULT_FN_ATTRS 1587_mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 1588{ 1589 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A, 1590 (__v32qi) __B, 1591 (__v32qi) _mm256_setzero_si256 (), 1592 (__mmask32) __U); 1593} 1594 1595static __inline__ __m128i __DEFAULT_FN_ATTRS 1596_mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 1597 __m128i __B) 1598{ 1599 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A, 1600 (__v16qi) __B, 1601 (__v16qi) __W, 1602 (__mmask16) __U); 1603} 1604 1605static __inline__ __m128i __DEFAULT_FN_ATTRS 1606_mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 1607{ 1608 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A, 1609 (__v16qi) __B, 1610 (__v16qi) _mm_setzero_si128 (), 1611 (__mmask16) __U); 1612} 1613 1614static __inline__ __m256i __DEFAULT_FN_ATTRS 1615_mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 1616 __m256i __B) 1617{ 1618 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A, 1619 (__v32qi) __B, 1620 (__v32qi) __W, 1621 (__mmask32) __U); 1622} 1623 1624static __inline__ __m256i __DEFAULT_FN_ATTRS 1625_mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 1626{ 1627 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A, 1628 (__v32qi) __B, 1629 (__v32qi) _mm256_setzero_si256 (), 1630 (__mmask32) __U); 1631} 1632 1633static __inline__ __m128i __DEFAULT_FN_ATTRS 1634_mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1635 __m128i __B) 1636{ 1637 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A, 1638 (__v8hi) __B, 1639 (__v8hi) __W, 1640 (__mmask8) __U); 1641} 1642 1643static __inline__ __m128i __DEFAULT_FN_ATTRS 1644_mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 1645{ 1646 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A, 1647 (__v8hi) __B, 1648 (__v8hi) _mm_setzero_si128 (), 1649 (__mmask8) __U); 1650} 1651 1652static __inline__ __m256i __DEFAULT_FN_ATTRS 1653_mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1654 __m256i __B) 1655{ 1656 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A, 1657 (__v16hi) __B, 1658 (__v16hi) __W, 1659 (__mmask16) __U); 1660} 1661 1662static __inline__ __m256i __DEFAULT_FN_ATTRS 1663_mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 1664{ 1665 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A, 1666 (__v16hi) __B, 1667 (__v16hi) _mm256_setzero_si256 (), 1668 (__mmask16) __U); 1669} 1670 1671static __inline__ __m128i __DEFAULT_FN_ATTRS 1672_mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A, 1673 __m128i __B) 1674{ 1675 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A, 1676 (__v16qi) __B, 1677 (__v16qi) __W, 1678 (__mmask16) __U); 1679} 1680 1681static __inline__ __m128i __DEFAULT_FN_ATTRS 1682_mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B) 1683{ 1684 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A, 1685 (__v16qi) __B, 1686 (__v16qi) _mm_setzero_si128 (), 1687 (__mmask16) __U); 1688} 1689 1690static __inline__ __m256i __DEFAULT_FN_ATTRS 1691_mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A, 1692 __m256i __B) 1693{ 1694 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A, 1695 (__v32qi) __B, 1696 (__v32qi) __W, 1697 (__mmask32) __U); 1698} 1699 1700static __inline__ __m256i __DEFAULT_FN_ATTRS 1701_mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B) 1702{ 1703 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A, 1704 (__v32qi) __B, 1705 (__v32qi) _mm256_setzero_si256 (), 1706 (__mmask32) __U); 1707} 1708 1709static __inline__ __m128i __DEFAULT_FN_ATTRS 1710_mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 1711 __m128i __B) 1712{ 1713 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A, 1714 (__v8hi) __B, 1715 (__v8hi) __W, 1716 (__mmask8) __U); 1717} 1718 1719static __inline__ __m128i __DEFAULT_FN_ATTRS 1720_mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 1721{ 1722 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A, 1723 (__v8hi) __B, 1724 (__v8hi) _mm_setzero_si128 (), 1725 (__mmask8) __U); 1726} 1727 1728static __inline__ __m256i __DEFAULT_FN_ATTRS 1729_mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 1730 __m256i __B) 1731{ 1732 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A, 1733 (__v16hi) __B, 1734 (__v16hi) __W, 1735 (__mmask16) __U); 1736} 1737 1738static __inline__ __m256i __DEFAULT_FN_ATTRS 1739_mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 1740{ 1741 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A, 1742 (__v16hi) __B, 1743 (__v16hi) _mm256_setzero_si256 (), 1744 (__mmask16) __U); 1745} 1746 1747static __inline__ __m128i __DEFAULT_FN_ATTRS 1748_mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U, 1749 __m128i __B) 1750{ 1751 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A, 1752 (__v8hi) __I /* idx */ , 1753 (__v8hi) __B, 1754 (__mmask8) __U); 1755} 1756 1757static __inline__ __m256i __DEFAULT_FN_ATTRS 1758_mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I, 1759 __mmask16 __U, __m256i __B) 1760{ 1761 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A, 1762 (__v16hi) __I /* idx */ , 1763 (__v16hi) __B, 1764 (__mmask16) __U); 1765} 1766 1767static __inline__ __m128i __DEFAULT_FN_ATTRS 1768_mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B) 1769{ 1770 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */, 1771 (__v8hi) __A, 1772 (__v8hi) __B, 1773 (__mmask8) -1); 1774} 1775 1776static __inline__ __m128i __DEFAULT_FN_ATTRS 1777_mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I, 1778 __m128i __B) 1779{ 1780 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I/* idx */, 1781 (__v8hi) __A, 1782 (__v8hi) __B, 1783 (__mmask8) __U); 1784} 1785 1786static __inline__ __m128i __DEFAULT_FN_ATTRS 1787_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I, 1788 __m128i __B) 1789{ 1790 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I/* idx */, 1791 (__v8hi) __A, 1792 (__v8hi) __B, 1793 (__mmask8) __U); 1794} 1795 1796static __inline__ __m256i __DEFAULT_FN_ATTRS 1797_mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B) 1798{ 1799 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */, 1800 (__v16hi) __A, 1801 (__v16hi) __B, 1802 (__mmask16) -1); 1803} 1804 1805static __inline__ __m256i __DEFAULT_FN_ATTRS 1806_mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U, 1807 __m256i __I, __m256i __B) 1808{ 1809 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I/* idx */, 1810 (__v16hi) __A, 1811 (__v16hi) __B, 1812 (__mmask16) __U); 1813} 1814 1815static __inline__ __m256i __DEFAULT_FN_ATTRS 1816_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, 1817 __m256i __I, __m256i __B) 1818{ 1819 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I/* idx */, 1820 (__v16hi) __A, 1821 (__v16hi) __B, 1822 (__mmask16) __U); 1823} 1824 1825static __inline__ __m128i __DEFAULT_FN_ATTRS 1826_mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 1827 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X, 1828 (__v16qi) __Y, 1829 (__v8hi) __W, 1830 (__mmask8) __U); 1831} 1832 1833static __inline__ __m128i __DEFAULT_FN_ATTRS 1834_mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) { 1835 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X, 1836 (__v16qi) __Y, 1837 (__v8hi) _mm_setzero_si128(), 1838 (__mmask8) __U); 1839} 1840 1841static __inline__ __m256i __DEFAULT_FN_ATTRS 1842_mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, 1843 __m256i __Y) { 1844 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X, 1845 (__v32qi) __Y, 1846 (__v16hi) __W, 1847 (__mmask16) __U); 1848} 1849 1850static __inline__ __m256i __DEFAULT_FN_ATTRS 1851_mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) { 1852 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X, 1853 (__v32qi) __Y, 1854 (__v16hi) _mm256_setzero_si256(), 1855 (__mmask16) __U); 1856} 1857 1858static __inline__ __m128i __DEFAULT_FN_ATTRS 1859_mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1860 __m128i __B) { 1861 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A, 1862 (__v8hi) __B, 1863 (__v4si) __W, 1864 (__mmask8) __U); 1865} 1866 1867static __inline__ __m128i __DEFAULT_FN_ATTRS 1868_mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 1869 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A, 1870 (__v8hi) __B, 1871 (__v4si) _mm_setzero_si128(), 1872 (__mmask8) __U); 1873} 1874 1875static __inline__ __m256i __DEFAULT_FN_ATTRS 1876_mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 1877 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A, 1878 (__v16hi) __B, 1879 (__v8si) __W, 1880 (__mmask8) __U); 1881} 1882 1883static __inline__ __m256i __DEFAULT_FN_ATTRS 1884_mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) { 1885 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A, 1886 (__v16hi) __B, 1887 (__v8si) _mm256_setzero_si256(), 1888 (__mmask8) __U); 1889} 1890 1891static __inline__ __m128i __DEFAULT_FN_ATTRS 1892_mm_cvtsepi16_epi8 (__m128i __A) { 1893 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 1894 (__v16qi) _mm_setzero_si128(), 1895 (__mmask8) -1); 1896} 1897 1898static __inline__ __m128i __DEFAULT_FN_ATTRS 1899_mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { 1900 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 1901 (__v16qi) __O, 1902 __M); 1903} 1904 1905static __inline__ __m128i __DEFAULT_FN_ATTRS 1906_mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) { 1907 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 1908 (__v16qi) _mm_setzero_si128(), 1909 __M); 1910} 1911 1912static __inline__ __m128i __DEFAULT_FN_ATTRS 1913_mm256_cvtsepi16_epi8 (__m256i __A) { 1914 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 1915 (__v16qi) _mm_setzero_si128(), 1916 (__mmask16) -1); 1917} 1918 1919static __inline__ __m128i __DEFAULT_FN_ATTRS 1920_mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { 1921 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 1922 (__v16qi) __O, 1923 __M); 1924} 1925 1926static __inline__ __m128i __DEFAULT_FN_ATTRS 1927_mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) { 1928 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 1929 (__v16qi) _mm_setzero_si128(), 1930 __M); 1931} 1932 1933static __inline__ __m128i __DEFAULT_FN_ATTRS 1934_mm_cvtusepi16_epi8 (__m128i __A) { 1935 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 1936 (__v16qi) _mm_setzero_si128(), 1937 (__mmask8) -1); 1938} 1939 1940static __inline__ __m128i __DEFAULT_FN_ATTRS 1941_mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { 1942 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 1943 (__v16qi) __O, 1944 __M); 1945} 1946 1947static __inline__ __m128i __DEFAULT_FN_ATTRS 1948_mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) { 1949 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 1950 (__v16qi) _mm_setzero_si128(), 1951 __M); 1952} 1953 1954static __inline__ __m128i __DEFAULT_FN_ATTRS 1955_mm256_cvtusepi16_epi8 (__m256i __A) { 1956 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 1957 (__v16qi) _mm_setzero_si128(), 1958 (__mmask16) -1); 1959} 1960 1961static __inline__ __m128i __DEFAULT_FN_ATTRS 1962_mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { 1963 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 1964 (__v16qi) __O, 1965 __M); 1966} 1967 1968static __inline__ __m128i __DEFAULT_FN_ATTRS 1969_mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) { 1970 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 1971 (__v16qi) _mm_setzero_si128(), 1972 __M); 1973} 1974 1975static __inline__ __m128i __DEFAULT_FN_ATTRS 1976_mm_cvtepi16_epi8 (__m128i __A) { 1977 1978 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 1979 (__v16qi) _mm_setzero_si128(), 1980 (__mmask8) -1); 1981} 1982 1983static __inline__ __m128i __DEFAULT_FN_ATTRS 1984_mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { 1985 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 1986 (__v16qi) __O, 1987 __M); 1988} 1989 1990static __inline__ __m128i __DEFAULT_FN_ATTRS 1991_mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) { 1992 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 1993 (__v16qi) _mm_setzero_si128(), 1994 __M); 1995} 1996 1997static __inline__ __m128i __DEFAULT_FN_ATTRS 1998_mm256_cvtepi16_epi8 (__m256i __A) { 1999 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 2000 (__v16qi) _mm_setzero_si128(), 2001 (__mmask16) -1); 2002} 2003 2004static __inline__ __m128i __DEFAULT_FN_ATTRS 2005_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { 2006 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 2007 (__v16qi) __O, 2008 __M); 2009} 2010 2011static __inline__ __m128i __DEFAULT_FN_ATTRS 2012_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) { 2013 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 2014 (__v16qi) _mm_setzero_si128(), 2015 __M); 2016} 2017 2018static __inline__ __m128i __DEFAULT_FN_ATTRS 2019_mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 2020 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X, 2021 (__v8hi) __Y, 2022 (__v8hi) __W, 2023 (__mmask8) __U); 2024} 2025 2026static __inline__ __m128i __DEFAULT_FN_ATTRS 2027_mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) { 2028 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X, 2029 (__v8hi) __Y, 2030 (__v8hi) _mm_setzero_si128(), 2031 (__mmask8) __U); 2032} 2033 2034static __inline__ __m256i __DEFAULT_FN_ATTRS 2035_mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { 2036 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X, 2037 (__v16hi) __Y, 2038 (__v16hi) __W, 2039 (__mmask16) __U); 2040} 2041 2042static __inline__ __m256i __DEFAULT_FN_ATTRS 2043_mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) { 2044 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X, 2045 (__v16hi) __Y, 2046 (__v16hi) _mm256_setzero_si256(), 2047 (__mmask16) __U); 2048} 2049 2050static __inline__ __m128i __DEFAULT_FN_ATTRS 2051_mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 2052 __m128i __B) { 2053 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A, 2054 (__v8hi) __B, 2055 (__v8hi) __W, 2056 (__mmask8) __U); 2057} 2058 2059static __inline__ __m128i __DEFAULT_FN_ATTRS 2060_mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) { 2061 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A, 2062 (__v8hi) __B, 2063 (__v8hi) _mm_setzero_si128(), 2064 (__mmask8) __U); 2065} 2066 2067static __inline__ __m256i __DEFAULT_FN_ATTRS 2068_mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 2069 __m256i __B) { 2070 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A, 2071 (__v16hi) __B, 2072 (__v16hi) __W, 2073 (__mmask16) __U); 2074} 2075 2076static __inline__ __m256i __DEFAULT_FN_ATTRS 2077_mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) { 2078 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A, 2079 (__v16hi) __B, 2080 (__v16hi) _mm256_setzero_si256(), 2081 (__mmask16) __U); 2082} 2083 2084static __inline__ __m128i __DEFAULT_FN_ATTRS 2085_mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2086 __m128i __B) { 2087 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A, 2088 (__v8hi) __B, 2089 (__v8hi) __W, 2090 (__mmask8) __U); 2091} 2092 2093static __inline__ __m128i __DEFAULT_FN_ATTRS 2094_mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 2095 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A, 2096 (__v8hi) __B, 2097 (__v8hi) _mm_setzero_si128(), 2098 (__mmask8) __U); 2099} 2100 2101static __inline__ __m256i __DEFAULT_FN_ATTRS 2102_mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2103 __m256i __B) { 2104 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A, 2105 (__v16hi) __B, 2106 (__v16hi) __W, 2107 (__mmask16) __U); 2108} 2109 2110static __inline__ __m256i __DEFAULT_FN_ATTRS 2111_mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 2112 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A, 2113 (__v16hi) __B, 2114 (__v16hi) _mm256_setzero_si256(), 2115 (__mmask16) __U); 2116} 2117 2118static __inline__ __m128i __DEFAULT_FN_ATTRS 2119_mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 2120 __m128i __B) { 2121 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A, 2122 (__v16qi) __B, 2123 (__v16qi) __W, 2124 (__mmask16) __U); 2125} 2126 2127static __inline__ __m128i __DEFAULT_FN_ATTRS 2128_mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { 2129 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A, 2130 (__v16qi) __B, 2131 (__v16qi) _mm_setzero_si128(), 2132 (__mmask16) __U); 2133} 2134 2135static __inline__ __m256i __DEFAULT_FN_ATTRS 2136_mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2137 __m256i __B) { 2138 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A, 2139 (__v32qi) __B, 2140 (__v32qi) __W, 2141 (__mmask32) __U); 2142} 2143 2144static __inline__ __m256i __DEFAULT_FN_ATTRS 2145_mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { 2146 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A, 2147 (__v32qi) __B, 2148 (__v32qi) _mm256_setzero_si256(), 2149 (__mmask32) __U); 2150} 2151 2152static __inline__ __m128i __DEFAULT_FN_ATTRS 2153_mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2154 __m128i __B) { 2155 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A, 2156 (__v8hi) __B, 2157 (__v8hi) __W, 2158 (__mmask8) __U); 2159} 2160 2161static __inline__ __m128i __DEFAULT_FN_ATTRS 2162_mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 2163 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A, 2164 (__v8hi) __B, 2165 (__v8hi) _mm_setzero_si128(), 2166 (__mmask8) __U); 2167} 2168 2169static __inline__ __m256i __DEFAULT_FN_ATTRS 2170_mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2171 __m256i __B) { 2172 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A, 2173 (__v16hi) __B, 2174 (__v16hi) __W, 2175 (__mmask16) __U); 2176} 2177 2178static __inline__ __m256i __DEFAULT_FN_ATTRS 2179_mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 2180 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A, 2181 (__v16hi) __B, 2182 (__v16hi) _mm256_setzero_si256(), 2183 (__mmask16) __U); 2184} 2185 2186static __inline__ __m128i __DEFAULT_FN_ATTRS 2187_mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 2188 __m128i __B) { 2189 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A, 2190 (__v16qi) __B, 2191 (__v16qi) __W, 2192 (__mmask16) __U); 2193} 2194 2195static __inline__ __m128i __DEFAULT_FN_ATTRS 2196_mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { 2197 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A, 2198 (__v16qi) __B, 2199 (__v16qi) _mm_setzero_si128(), 2200 (__mmask16) __U); 2201} 2202 2203static __inline__ __m256i __DEFAULT_FN_ATTRS 2204_mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2205 __m256i __B) { 2206 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A, 2207 (__v32qi) __B, 2208 (__v32qi) __W, 2209 (__mmask32) __U); 2210} 2211 2212static __inline__ __m256i __DEFAULT_FN_ATTRS 2213_mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { 2214 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A, 2215 (__v32qi) __B, 2216 (__v32qi) _mm256_setzero_si256(), 2217 (__mmask32) __U); 2218} 2219 2220static __inline__ __m128i __DEFAULT_FN_ATTRS 2221_mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2222 __m128i __B) { 2223 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A, 2224 (__v8hi) __B, 2225 (__v8hi) __W, 2226 (__mmask8) __U); 2227} 2228 2229static __inline__ __m128i __DEFAULT_FN_ATTRS 2230_mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 2231 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A, 2232 (__v8hi) __B, 2233 (__v8hi) _mm_setzero_si128(), 2234 (__mmask8) __U); 2235} 2236 2237static __inline__ __m256i __DEFAULT_FN_ATTRS 2238_mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2239 __m256i __B) { 2240 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A, 2241 (__v16hi) __B, 2242 (__v16hi) __W, 2243 (__mmask16) __U); 2244} 2245 2246static __inline__ __m256i __DEFAULT_FN_ATTRS 2247_mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 2248 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A, 2249 (__v16hi) __B, 2250 (__v16hi) _mm256_setzero_si256(), 2251 (__mmask16) __U); 2252} 2253 2254#define _mm_cmp_epi8_mask(a, b, p) __extension__ ({ \ 2255 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \ 2256 (__v16qi)(__m128i)(b), \ 2257 (p), (__mmask16)-1); }) 2258 2259#define _mm_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \ 2260 (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \ 2261 (__v16qi)(__m128i)(b), \ 2262 (p), (__mmask16)(m)); }) 2263 2264#define _mm_cmp_epu8_mask(a, b, p) __extension__ ({ \ 2265 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \ 2266 (__v16qi)(__m128i)(b), \ 2267 (p), (__mmask16)-1); }) 2268 2269#define _mm_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \ 2270 (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \ 2271 (__v16qi)(__m128i)(b), \ 2272 (p), (__mmask16)(m)); }) 2273 2274#define _mm256_cmp_epi8_mask(a, b, p) __extension__ ({ \ 2275 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \ 2276 (__v32qi)(__m256i)(b), \ 2277 (p), (__mmask32)-1); }) 2278 2279#define _mm256_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \ 2280 (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \ 2281 (__v32qi)(__m256i)(b), \ 2282 (p), (__mmask32)(m)); }) 2283 2284#define _mm256_cmp_epu8_mask(a, b, p) __extension__ ({ \ 2285 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \ 2286 (__v32qi)(__m256i)(b), \ 2287 (p), (__mmask32)-1); }) 2288 2289#define _mm256_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \ 2290 (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \ 2291 (__v32qi)(__m256i)(b), \ 2292 (p), (__mmask32)(m)); }) 2293 2294#define _mm_cmp_epi16_mask(a, b, p) __extension__ ({ \ 2295 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \ 2296 (__v8hi)(__m128i)(b), \ 2297 (p), (__mmask8)-1); }) 2298 2299#define _mm_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \ 2300 (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \ 2301 (__v8hi)(__m128i)(b), \ 2302 (p), (__mmask8)(m)); }) 2303 2304#define _mm_cmp_epu16_mask(a, b, p) __extension__ ({ \ 2305 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \ 2306 (__v8hi)(__m128i)(b), \ 2307 (p), (__mmask8)-1); }) 2308 2309#define _mm_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \ 2310 (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \ 2311 (__v8hi)(__m128i)(b), \ 2312 (p), (__mmask8)(m)); }) 2313 2314#define _mm256_cmp_epi16_mask(a, b, p) __extension__ ({ \ 2315 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \ 2316 (__v16hi)(__m256i)(b), \ 2317 (p), (__mmask16)-1); }) 2318 2319#define _mm256_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \ 2320 (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \ 2321 (__v16hi)(__m256i)(b), \ 2322 (p), (__mmask16)(m)); }) 2323 2324#define _mm256_cmp_epu16_mask(a, b, p) __extension__ ({ \ 2325 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \ 2326 (__v16hi)(__m256i)(b), \ 2327 (p), (__mmask16)-1); }) 2328 2329#define _mm256_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \ 2330 (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \ 2331 (__v16hi)(__m256i)(b), \ 2332 (p), (__mmask16)(m)); }) 2333 2334#undef __DEFAULT_FN_ATTRS 2335 2336#endif /* __AVX512VLBWINTRIN_H */ 2337