1 /* Copyright (C) 2014-2018 Free Software Foundation, Inc. 2 3 This file is part of GCC. 4 5 GCC is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3, or (at your option) 8 any later version. 9 10 GCC is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 Under Section 7 of GPL version 3, you are granted additional 16 permissions described in the GCC Runtime Library Exception, version 17 3.1, as published by the Free Software Foundation. 18 19 You should have received a copy of the GNU General Public License and 20 a copy of the GCC Runtime Library Exception along with this program; 21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 22 <http://www.gnu.org/licenses/>. */ 23 24 #ifndef _IMMINTRIN_H_INCLUDED 25 #error "Never use <avx512vlbwintrin.h> directly; include <immintrin.h> instead." 26 #endif 27 28 #ifndef _AVX512VLBWINTRIN_H_INCLUDED 29 #define _AVX512VLBWINTRIN_H_INCLUDED 30 31 #if !defined(__AVX512VL__) || !defined(__AVX512BW__) 32 #pragma GCC push_options 33 #pragma GCC target("avx512vl,avx512bw") 34 #define __DISABLE_AVX512VLBW__ 35 #endif /* __AVX512VLBW__ */ 36 37 38 extern __inline __m256i 39 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 40 _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A) 41 { 42 return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A, 43 (__v32qi) __W, 44 (__mmask32) __U); 45 } 46 47 extern __inline __m256i 48 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 49 _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) 50 { 51 return (__m256i) __builtin_ia32_movdquqi256_mask ((__v32qi) __A, 52 (__v32qi) 53 _mm256_setzero_si256 (), 54 (__mmask32) __U); 55 } 56 57 extern __inline __m128i 58 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 59 _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A) 60 { 61 return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A, 62 (__v16qi) __W, 63 (__mmask16) __U); 64 } 65 66 extern __inline __m128i 67 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 68 _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A) 69 { 70 return (__m128i) __builtin_ia32_movdquqi128_mask ((__v16qi) __A, 71 (__v16qi) 72 _mm_setzero_si128 (), 73 (__mmask16) __U); 74 } 75 76 extern __inline void 77 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 78 _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A) 79 { 80 __builtin_ia32_storedquqi256_mask ((char *) __P, 81 (__v32qi) __A, 82 (__mmask32) __U); 83 } 84 85 extern __inline void 86 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 87 _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A) 88 { 89 __builtin_ia32_storedquqi128_mask ((char *) __P, 90 (__v16qi) __A, 91 (__mmask16) __U); 92 } 93 94 extern __inline __m256i 95 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 96 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P) 97 { 98 return (__m256i) __builtin_ia32_loaddquhi256_mask ((const short *) __P, 99 (__v16hi) __W, 100 (__mmask16) __U); 101 } 102 103 extern __inline __m256i 104 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 105 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P) 106 { 107 return (__m256i) __builtin_ia32_loaddquhi256_mask ((const short *) __P, 108 (__v16hi) 109 _mm256_setzero_si256 (), 110 (__mmask16) __U); 111 } 112 113 extern __inline __m128i 114 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 115 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P) 116 { 117 return (__m128i) __builtin_ia32_loaddquhi128_mask ((const short *) __P, 118 (__v8hi) __W, 119 (__mmask8) __U); 120 } 121 122 extern __inline __m128i 123 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 124 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P) 125 { 126 return (__m128i) __builtin_ia32_loaddquhi128_mask ((const short *) __P, 127 (__v8hi) 128 _mm_setzero_si128 (), 129 (__mmask8) __U); 130 } 131 132 133 extern __inline __m256i 134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 135 _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A) 136 { 137 return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A, 138 (__v16hi) __W, 139 (__mmask16) __U); 140 } 141 142 extern __inline __m256i 143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 144 _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A) 145 { 146 return (__m256i) __builtin_ia32_movdquhi256_mask ((__v16hi) __A, 147 (__v16hi) 148 _mm256_setzero_si256 (), 149 (__mmask16) __U); 150 } 151 152 extern __inline __m128i 153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 154 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A) 155 { 156 return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A, 157 (__v8hi) __W, 158 (__mmask8) __U); 159 } 160 161 extern __inline __m128i 162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 163 _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A) 164 { 165 return (__m128i) __builtin_ia32_movdquhi128_mask ((__v8hi) __A, 166 (__v8hi) 167 _mm_setzero_si128 (), 168 (__mmask8) __U); 169 } 170 171 extern __inline __m256i 172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 173 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P) 174 { 175 return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P, 176 (__v32qi) __W, 177 (__mmask32) __U); 178 } 179 180 extern __inline __m256i 181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 182 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P) 183 { 184 return (__m256i) __builtin_ia32_loaddquqi256_mask ((const char *) __P, 185 (__v32qi) 186 _mm256_setzero_si256 (), 187 (__mmask32) __U); 188 } 189 190 extern __inline __m128i 191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 192 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P) 193 { 194 return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P, 195 (__v16qi) __W, 196 (__mmask16) __U); 197 } 198 199 extern __inline __m128i 200 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 201 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P) 202 { 203 return (__m128i) __builtin_ia32_loaddquqi128_mask ((const char *) __P, 204 (__v16qi) 205 _mm_setzero_si128 (), 206 (__mmask16) __U); 207 } 208 209 extern __inline __m128i 210 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 211 _mm256_cvtepi16_epi8 (__m256i __A) 212 { 213 214 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 215 (__v16qi)_mm_undefined_si128(), 216 (__mmask16) -1); 217 } 218 219 extern __inline void 220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 221 _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A) 222 { 223 __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M); 224 } 225 226 extern __inline __m128i 227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 228 _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) 229 { 230 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 231 (__v16qi) __O, __M); 232 } 233 234 extern __inline __m128i 235 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 236 _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) 237 { 238 return (__m128i) __builtin_ia32_pmovwb256_mask ((__v16hi) __A, 239 (__v16qi) 240 _mm_setzero_si128 (), 241 __M); 242 } 243 244 extern __inline __m128i 245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 246 _mm_cvtsepi16_epi8 (__m128i __A) 247 { 248 249 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 250 (__v16qi)_mm_undefined_si128(), 251 (__mmask8) -1); 252 } 253 254 extern __inline void 255 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 256 _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A) 257 { 258 __builtin_ia32_pmovswb128mem_mask ((__v8qi *) __P , (__v8hi) __A, __M); 259 } 260 261 extern __inline __m128i 262 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 263 _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 264 { 265 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 266 (__v16qi) __O, __M); 267 } 268 269 extern __inline __m128i 270 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 271 _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) 272 { 273 return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, 274 (__v16qi) 275 _mm_setzero_si128 (), 276 __M); 277 } 278 279 extern __inline __m128i 280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 281 _mm256_cvtsepi16_epi8 (__m256i __A) 282 { 283 284 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 285 (__v16qi)_mm_undefined_si128(), 286 (__mmask16) -1); 287 } 288 289 extern __inline void 290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 291 _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A) 292 { 293 __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M); 294 } 295 296 extern __inline __m128i 297 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 298 _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) 299 { 300 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 301 (__v16qi) __O, __M); 302 } 303 304 extern __inline __m128i 305 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 306 _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) 307 { 308 return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, 309 (__v16qi) 310 _mm_setzero_si128 (), 311 __M); 312 } 313 314 extern __inline __m128i 315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 316 _mm_cvtusepi16_epi8 (__m128i __A) 317 { 318 319 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 320 (__v16qi)_mm_undefined_si128(), 321 (__mmask8) -1); 322 } 323 324 extern __inline void 325 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 326 _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A) 327 { 328 __builtin_ia32_pmovuswb128mem_mask ((__v8qi *) __P , (__v8hi) __A, __M); 329 } 330 331 extern __inline __m128i 332 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 333 _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 334 { 335 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 336 (__v16qi) __O, 337 __M); 338 } 339 340 extern __inline __m128i 341 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 342 _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) 343 { 344 return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, 345 (__v16qi) 346 _mm_setzero_si128 (), 347 __M); 348 } 349 350 extern __inline __m128i 351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 352 _mm256_cvtusepi16_epi8 (__m256i __A) 353 { 354 355 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 356 (__v16qi)_mm_undefined_si128(), 357 (__mmask16) -1); 358 } 359 360 extern __inline void 361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 362 _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M,__m256i __A) 363 { 364 __builtin_ia32_pmovuswb256mem_mask ((__v16qi *) __P , (__v16hi) __A, __M); 365 } 366 367 extern __inline __m128i 368 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 369 _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) 370 { 371 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 372 (__v16qi) __O, 373 __M); 374 } 375 376 extern __inline __m128i 377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 378 _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) 379 { 380 return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, 381 (__v16qi) 382 _mm_setzero_si128 (), 383 __M); 384 } 385 386 extern __inline __m256i 387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 388 _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A) 389 { 390 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A, 391 (__v32qi) __O, 392 __M); 393 } 394 395 extern __inline __m256i 396 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 397 _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A) 398 { 399 return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A, 400 (__v32qi) 401 _mm256_setzero_si256 (), 402 __M); 403 } 404 405 extern __inline __m256i 406 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 407 _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) 408 { 409 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, 410 (__v32qi) __O, 411 __M); 412 } 413 414 extern __inline __m256i 415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 416 _mm256_maskz_set1_epi8 (__mmask32 __M, char __A) 417 { 418 return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, 419 (__v32qi) 420 _mm256_setzero_si256 (), 421 __M); 422 } 423 424 extern __inline __m128i 425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 426 _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A) 427 { 428 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A, 429 (__v16qi) __O, 430 __M); 431 } 432 433 extern __inline __m128i 434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 435 _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A) 436 { 437 return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A, 438 (__v16qi) 439 _mm_setzero_si128 (), 440 __M); 441 } 442 443 extern __inline __m128i 444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 445 _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) 446 { 447 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, 448 (__v16qi) __O, 449 __M); 450 } 451 452 extern __inline __m128i 453 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 454 _mm_maskz_set1_epi8 (__mmask16 __M, char __A) 455 { 456 return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, 457 (__v16qi) 458 _mm_setzero_si128 (), 459 __M); 460 } 461 462 extern __inline __m256i 463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 464 _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A) 465 { 466 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A, 467 (__v16hi) __O, 468 __M); 469 } 470 471 extern __inline __m256i 472 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 473 _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) 474 { 475 return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A, 476 (__v16hi) 477 _mm256_setzero_si256 (), 478 __M); 479 } 480 481 extern __inline __m256i 482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 483 _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) 484 { 485 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, 486 (__v16hi) __O, 487 __M); 488 } 489 490 extern __inline __m256i 491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 492 _mm256_maskz_set1_epi16 (__mmask16 __M, short __A) 493 { 494 return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, 495 (__v16hi) 496 _mm256_setzero_si256 (), 497 __M); 498 } 499 500 extern __inline __m128i 501 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 502 _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 503 { 504 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A, 505 (__v8hi) __O, 506 __M); 507 } 508 509 extern __inline __m128i 510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 511 _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A) 512 { 513 return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A, 514 (__v8hi) 515 _mm_setzero_si128 (), 516 __M); 517 } 518 519 extern __inline __m128i 520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 521 _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) 522 { 523 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, 524 (__v8hi) __O, 525 __M); 526 } 527 528 extern __inline __m128i 529 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 530 _mm_maskz_set1_epi16 (__mmask8 __M, short __A) 531 { 532 return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, 533 (__v8hi) 534 _mm_setzero_si128 (), 535 __M); 536 } 537 538 extern __inline __m256i 539 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 540 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B) 541 { 542 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, 543 (__v16hi) __A, 544 (__v16hi) 545 _mm256_setzero_si256 (), 546 (__mmask16) -1); 547 } 548 549 extern __inline __m256i 550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 551 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A, 552 __m256i __B) 553 { 554 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, 555 (__v16hi) __A, 556 (__v16hi) 557 _mm256_setzero_si256 (), 558 (__mmask16) __M); 559 } 560 561 extern __inline __m256i 562 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 563 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A, 564 __m256i __B) 565 { 566 return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B, 567 (__v16hi) __A, 568 (__v16hi) __W, 569 (__mmask16) __M); 570 } 571 572 extern __inline __m128i 573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 574 _mm_permutexvar_epi16 (__m128i __A, __m128i __B) 575 { 576 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, 577 (__v8hi) __A, 578 (__v8hi) 579 _mm_setzero_si128 (), 580 (__mmask8) -1); 581 } 582 583 extern __inline __m128i 584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 585 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B) 586 { 587 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, 588 (__v8hi) __A, 589 (__v8hi) 590 _mm_setzero_si128 (), 591 (__mmask8) __M); 592 } 593 594 extern __inline __m128i 595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 596 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A, 597 __m128i __B) 598 { 599 return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B, 600 (__v8hi) __A, 601 (__v8hi) __W, 602 (__mmask8) __M); 603 } 604 605 extern __inline __m256i 606 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 607 _mm256_permutex2var_epi16 (__m256i __A, __m256i __I, __m256i __B) 608 { 609 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I 610 /* idx */ , 611 (__v16hi) __A, 612 (__v16hi) __B, 613 (__mmask16) -1); 614 } 615 616 extern __inline __m256i 617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 618 _mm256_mask_permutex2var_epi16 (__m256i __A, __mmask16 __U, 619 __m256i __I, __m256i __B) 620 { 621 return (__m256i) __builtin_ia32_vpermt2varhi256_mask ((__v16hi) __I 622 /* idx */ , 623 (__v16hi) __A, 624 (__v16hi) __B, 625 (__mmask16) 626 __U); 627 } 628 629 extern __inline __m256i 630 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 631 _mm256_mask2_permutex2var_epi16 (__m256i __A, __m256i __I, 632 __mmask16 __U, __m256i __B) 633 { 634 return (__m256i) __builtin_ia32_vpermi2varhi256_mask ((__v16hi) __A, 635 (__v16hi) __I 636 /* idx */ , 637 (__v16hi) __B, 638 (__mmask16) 639 __U); 640 } 641 642 extern __inline __m256i 643 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 644 _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, 645 __m256i __I, __m256i __B) 646 { 647 return (__m256i) __builtin_ia32_vpermt2varhi256_maskz ((__v16hi) __I 648 /* idx */ , 649 (__v16hi) __A, 650 (__v16hi) __B, 651 (__mmask16) 652 __U); 653 } 654 655 extern __inline __m128i 656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 657 _mm_permutex2var_epi16 (__m128i __A, __m128i __I, __m128i __B) 658 { 659 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I 660 /* idx */ , 661 (__v8hi) __A, 662 (__v8hi) __B, 663 (__mmask8) -1); 664 } 665 666 extern __inline __m128i 667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 668 _mm_mask_permutex2var_epi16 (__m128i __A, __mmask8 __U, __m128i __I, 669 __m128i __B) 670 { 671 return (__m128i) __builtin_ia32_vpermt2varhi128_mask ((__v8hi) __I 672 /* idx */ , 673 (__v8hi) __A, 674 (__v8hi) __B, 675 (__mmask8) 676 __U); 677 } 678 679 extern __inline __m128i 680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 681 _mm_mask2_permutex2var_epi16 (__m128i __A, __m128i __I, __mmask8 __U, 682 __m128i __B) 683 { 684 return (__m128i) __builtin_ia32_vpermi2varhi128_mask ((__v8hi) __A, 685 (__v8hi) __I 686 /* idx */ , 687 (__v8hi) __B, 688 (__mmask8) 689 __U); 690 } 691 692 extern __inline __m128i 693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 694 _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I, 695 __m128i __B) 696 { 697 return (__m128i) __builtin_ia32_vpermt2varhi128_maskz ((__v8hi) __I 698 /* idx */ , 699 (__v8hi) __A, 700 (__v8hi) __B, 701 (__mmask8) 702 __U); 703 } 704 705 extern __inline __m256i 706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 707 _mm256_mask_maddubs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, 708 __m256i __Y) 709 { 710 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X, 711 (__v32qi) __Y, 712 (__v16hi) __W, 713 (__mmask16) __U); 714 } 715 716 extern __inline __m256i 717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 718 _mm256_maskz_maddubs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) 719 { 720 return (__m256i) __builtin_ia32_pmaddubsw256_mask ((__v32qi) __X, 721 (__v32qi) __Y, 722 (__v16hi) 723 _mm256_setzero_si256 (), 724 (__mmask16) __U); 725 } 726 727 extern __inline __m128i 728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 729 _mm_mask_maddubs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, 730 __m128i __Y) 731 { 732 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X, 733 (__v16qi) __Y, 734 (__v8hi) __W, 735 (__mmask8) __U); 736 } 737 738 extern __inline __m128i 739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 740 _mm_maskz_maddubs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) 741 { 742 return (__m128i) __builtin_ia32_pmaddubsw128_mask ((__v16qi) __X, 743 (__v16qi) __Y, 744 (__v8hi) 745 _mm_setzero_si128 (), 746 (__mmask8) __U); 747 } 748 749 extern __inline __m256i 750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 751 _mm256_mask_madd_epi16 (__m256i __W, __mmask8 __U, __m256i __A, 752 __m256i __B) 753 { 754 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A, 755 (__v16hi) __B, 756 (__v8si) __W, 757 (__mmask8) __U); 758 } 759 760 extern __inline __m256i 761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 762 _mm256_maskz_madd_epi16 (__mmask8 __U, __m256i __A, __m256i __B) 763 { 764 return (__m256i) __builtin_ia32_pmaddwd256_mask ((__v16hi) __A, 765 (__v16hi) __B, 766 (__v8si) 767 _mm256_setzero_si256 (), 768 (__mmask8) __U); 769 } 770 771 extern __inline __m128i 772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 773 _mm_mask_madd_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 774 __m128i __B) 775 { 776 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A, 777 (__v8hi) __B, 778 (__v4si) __W, 779 (__mmask8) __U); 780 } 781 782 extern __inline __m128i 783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 784 _mm_maskz_madd_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 785 { 786 return (__m128i) __builtin_ia32_pmaddwd128_mask ((__v8hi) __A, 787 (__v8hi) __B, 788 (__v4si) 789 _mm_setzero_si128 (), 790 (__mmask8) __U); 791 } 792 793 extern __inline __mmask16 794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 795 _mm_movepi8_mask (__m128i __A) 796 { 797 return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A); 798 } 799 800 extern __inline __mmask32 801 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 802 _mm256_movepi8_mask (__m256i __A) 803 { 804 return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A); 805 } 806 807 extern __inline __mmask8 808 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 809 _mm_movepi16_mask (__m128i __A) 810 { 811 return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A); 812 } 813 814 extern __inline __mmask16 815 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 816 _mm256_movepi16_mask (__m256i __A) 817 { 818 return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A); 819 } 820 821 extern __inline __m128i 822 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 823 _mm_movm_epi8 (__mmask16 __A) 824 { 825 return (__m128i) __builtin_ia32_cvtmask2b128 (__A); 826 } 827 828 extern __inline __m256i 829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 830 _mm256_movm_epi8 (__mmask32 __A) 831 { 832 return (__m256i) __builtin_ia32_cvtmask2b256 (__A); 833 } 834 835 extern __inline __m128i 836 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 837 _mm_movm_epi16 (__mmask8 __A) 838 { 839 return (__m128i) __builtin_ia32_cvtmask2w128 (__A); 840 } 841 842 extern __inline __m256i 843 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 844 _mm256_movm_epi16 (__mmask16 __A) 845 { 846 return (__m256i) __builtin_ia32_cvtmask2w256 (__A); 847 } 848 849 extern __inline __mmask16 850 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 851 _mm_test_epi8_mask (__m128i __A, __m128i __B) 852 { 853 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, 854 (__v16qi) __B, 855 (__mmask16) -1); 856 } 857 858 extern __inline __mmask16 859 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 860 _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) 861 { 862 return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A, 863 (__v16qi) __B, __U); 864 } 865 866 extern __inline __mmask32 867 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 868 _mm256_test_epi8_mask (__m256i __A, __m256i __B) 869 { 870 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, 871 (__v32qi) __B, 872 (__mmask32) -1); 873 } 874 875 extern __inline __mmask32 876 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 877 _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) 878 { 879 return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A, 880 (__v32qi) __B, __U); 881 } 882 883 extern __inline __mmask8 884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 885 _mm_test_epi16_mask (__m128i __A, __m128i __B) 886 { 887 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, 888 (__v8hi) __B, 889 (__mmask8) -1); 890 } 891 892 extern __inline __mmask8 893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 894 _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) 895 { 896 return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A, 897 (__v8hi) __B, __U); 898 } 899 900 extern __inline __mmask16 901 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 902 _mm256_test_epi16_mask (__m256i __A, __m256i __B) 903 { 904 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, 905 (__v16hi) __B, 906 (__mmask16) -1); 907 } 908 909 extern __inline __mmask16 910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 911 _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) 912 { 913 return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A, 914 (__v16hi) __B, __U); 915 } 916 917 extern __inline __m256i 918 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 919 _mm256_maskz_min_epu16 (__mmask16 __M, __m256i __A, __m256i __B) 920 { 921 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A, 922 (__v16hi) __B, 923 (__v16hi) 924 _mm256_setzero_si256 (), 925 (__mmask16) __M); 926 } 927 928 extern __inline __m256i 929 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 930 _mm256_mask_min_epu16 (__m256i __W, __mmask16 __M, __m256i __A, 931 __m256i __B) 932 { 933 return (__m256i) __builtin_ia32_pminuw256_mask ((__v16hi) __A, 934 (__v16hi) __B, 935 (__v16hi) __W, 936 (__mmask16) __M); 937 } 938 939 extern __inline __m128i 940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 941 _mm_maskz_min_epu16 (__mmask8 __M, __m128i __A, __m128i __B) 942 { 943 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A, 944 (__v8hi) __B, 945 (__v8hi) 946 _mm_setzero_si128 (), 947 (__mmask8) __M); 948 } 949 950 extern __inline __m128i 951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 952 _mm_mask_min_epu16 (__m128i __W, __mmask8 __M, __m128i __A, 953 __m128i __B) 954 { 955 return (__m128i) __builtin_ia32_pminuw128_mask ((__v8hi) __A, 956 (__v8hi) __B, 957 (__v8hi) __W, 958 (__mmask8) __M); 959 } 960 961 extern __inline __m256i 962 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 963 _mm256_maskz_min_epi16 (__mmask16 __M, __m256i __A, __m256i __B) 964 { 965 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A, 966 (__v16hi) __B, 967 (__v16hi) 968 _mm256_setzero_si256 (), 969 (__mmask16) __M); 970 } 971 972 extern __inline __m256i 973 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 974 _mm256_mask_min_epi16 (__m256i __W, __mmask16 __M, __m256i __A, 975 __m256i __B) 976 { 977 return (__m256i) __builtin_ia32_pminsw256_mask ((__v16hi) __A, 978 (__v16hi) __B, 979 (__v16hi) __W, 980 (__mmask16) __M); 981 } 982 983 extern __inline __m256i 984 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 985 _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B) 986 { 987 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A, 988 (__v32qi) __B, 989 (__v32qi) 990 _mm256_setzero_si256 (), 991 (__mmask32) __M); 992 } 993 994 extern __inline __m256i 995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 996 _mm256_mask_max_epu8 (__m256i __W, __mmask32 __M, __m256i __A, 997 __m256i __B) 998 { 999 return (__m256i) __builtin_ia32_pmaxub256_mask ((__v32qi) __A, 1000 (__v32qi) __B, 1001 (__v32qi) __W, 1002 (__mmask32) __M); 1003 } 1004 1005 extern __inline __m128i 1006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1007 _mm_maskz_max_epu8 (__mmask16 __M, __m128i __A, __m128i __B) 1008 { 1009 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A, 1010 (__v16qi) __B, 1011 (__v16qi) 1012 _mm_setzero_si128 (), 1013 (__mmask16) __M); 1014 } 1015 1016 extern __inline __m128i 1017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1018 _mm_mask_max_epu8 (__m128i __W, __mmask16 __M, __m128i __A, 1019 __m128i __B) 1020 { 1021 return (__m128i) __builtin_ia32_pmaxub128_mask ((__v16qi) __A, 1022 (__v16qi) __B, 1023 (__v16qi) __W, 1024 (__mmask16) __M); 1025 } 1026 1027 extern __inline __m256i 1028 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1029 _mm256_maskz_max_epi8 (__mmask32 __M, __m256i __A, __m256i __B) 1030 { 1031 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A, 1032 (__v32qi) __B, 1033 (__v32qi) 1034 _mm256_setzero_si256 (), 1035 (__mmask32) __M); 1036 } 1037 1038 extern __inline __m256i 1039 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1040 _mm256_mask_max_epi8 (__m256i __W, __mmask32 __M, __m256i __A, 1041 __m256i __B) 1042 { 1043 return (__m256i) __builtin_ia32_pmaxsb256_mask ((__v32qi) __A, 1044 (__v32qi) __B, 1045 (__v32qi) __W, 1046 (__mmask32) __M); 1047 } 1048 1049 extern __inline __m128i 1050 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1051 _mm_maskz_max_epi8 (__mmask16 __M, __m128i __A, __m128i __B) 1052 { 1053 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A, 1054 (__v16qi) __B, 1055 (__v16qi) 1056 _mm_setzero_si128 (), 1057 (__mmask16) __M); 1058 } 1059 1060 extern __inline __m128i 1061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1062 _mm_mask_max_epi8 (__m128i __W, __mmask16 __M, __m128i __A, 1063 __m128i __B) 1064 { 1065 return (__m128i) __builtin_ia32_pmaxsb128_mask ((__v16qi) __A, 1066 (__v16qi) __B, 1067 (__v16qi) __W, 1068 (__mmask16) __M); 1069 } 1070 1071 extern __inline __m256i 1072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1073 _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B) 1074 { 1075 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A, 1076 (__v32qi) __B, 1077 (__v32qi) 1078 _mm256_setzero_si256 (), 1079 (__mmask32) __M); 1080 } 1081 1082 extern __inline __m256i 1083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1084 _mm256_mask_min_epu8 (__m256i __W, __mmask32 __M, __m256i __A, 1085 __m256i __B) 1086 { 1087 return (__m256i) __builtin_ia32_pminub256_mask ((__v32qi) __A, 1088 (__v32qi) __B, 1089 (__v32qi) __W, 1090 (__mmask32) __M); 1091 } 1092 1093 extern __inline __m128i 1094 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1095 _mm_maskz_min_epu8 (__mmask16 __M, __m128i __A, __m128i __B) 1096 { 1097 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A, 1098 (__v16qi) __B, 1099 (__v16qi) 1100 _mm_setzero_si128 (), 1101 (__mmask16) __M); 1102 } 1103 1104 extern __inline __m128i 1105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1106 _mm_mask_min_epu8 (__m128i __W, __mmask16 __M, __m128i __A, 1107 __m128i __B) 1108 { 1109 return (__m128i) __builtin_ia32_pminub128_mask ((__v16qi) __A, 1110 (__v16qi) __B, 1111 (__v16qi) __W, 1112 (__mmask16) __M); 1113 } 1114 1115 extern __inline __m256i 1116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1117 _mm256_maskz_min_epi8 (__mmask32 __M, __m256i __A, __m256i __B) 1118 { 1119 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A, 1120 (__v32qi) __B, 1121 (__v32qi) 1122 _mm256_setzero_si256 (), 1123 (__mmask32) __M); 1124 } 1125 1126 extern __inline __m256i 1127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1128 _mm256_mask_min_epi8 (__m256i __W, __mmask32 __M, __m256i __A, 1129 __m256i __B) 1130 { 1131 return (__m256i) __builtin_ia32_pminsb256_mask ((__v32qi) __A, 1132 (__v32qi) __B, 1133 (__v32qi) __W, 1134 (__mmask32) __M); 1135 } 1136 1137 extern __inline __m128i 1138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1139 _mm_maskz_min_epi8 (__mmask16 __M, __m128i __A, __m128i __B) 1140 { 1141 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A, 1142 (__v16qi) __B, 1143 (__v16qi) 1144 _mm_setzero_si128 (), 1145 (__mmask16) __M); 1146 } 1147 1148 extern __inline __m128i 1149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1150 _mm_mask_min_epi8 (__m128i __W, __mmask16 __M, __m128i __A, 1151 __m128i __B) 1152 { 1153 return (__m128i) __builtin_ia32_pminsb128_mask ((__v16qi) __A, 1154 (__v16qi) __B, 1155 (__v16qi) __W, 1156 (__mmask16) __M); 1157 } 1158 1159 extern __inline __m256i 1160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1161 _mm256_maskz_max_epi16 (__mmask16 __M, __m256i __A, __m256i __B) 1162 { 1163 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A, 1164 (__v16hi) __B, 1165 (__v16hi) 1166 _mm256_setzero_si256 (), 1167 (__mmask16) __M); 1168 } 1169 1170 extern __inline __m256i 1171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1172 _mm256_mask_max_epi16 (__m256i __W, __mmask16 __M, __m256i __A, 1173 __m256i __B) 1174 { 1175 return (__m256i) __builtin_ia32_pmaxsw256_mask ((__v16hi) __A, 1176 (__v16hi) __B, 1177 (__v16hi) __W, 1178 (__mmask16) __M); 1179 } 1180 1181 extern __inline __m128i 1182 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1183 _mm_maskz_max_epi16 (__mmask8 __M, __m128i __A, __m128i __B) 1184 { 1185 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A, 1186 (__v8hi) __B, 1187 (__v8hi) 1188 _mm_setzero_si128 (), 1189 (__mmask8) __M); 1190 } 1191 1192 extern __inline __m128i 1193 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1194 _mm_mask_max_epi16 (__m128i __W, __mmask8 __M, __m128i __A, 1195 __m128i __B) 1196 { 1197 return (__m128i) __builtin_ia32_pmaxsw128_mask ((__v8hi) __A, 1198 (__v8hi) __B, 1199 (__v8hi) __W, 1200 (__mmask8) __M); 1201 } 1202 1203 extern __inline __m256i 1204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1205 _mm256_maskz_max_epu16 (__mmask16 __M, __m256i __A, __m256i __B) 1206 { 1207 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A, 1208 (__v16hi) __B, 1209 (__v16hi) 1210 _mm256_setzero_si256 (), 1211 (__mmask16) __M); 1212 } 1213 1214 extern __inline __m256i 1215 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1216 _mm256_mask_max_epu16 (__m256i __W, __mmask16 __M, __m256i __A, 1217 __m256i __B) 1218 { 1219 return (__m256i) __builtin_ia32_pmaxuw256_mask ((__v16hi) __A, 1220 (__v16hi) __B, 1221 (__v16hi) __W, 1222 (__mmask16) __M); 1223 } 1224 1225 extern __inline __m128i 1226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1227 _mm_maskz_max_epu16 (__mmask8 __M, __m128i __A, __m128i __B) 1228 { 1229 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A, 1230 (__v8hi) __B, 1231 (__v8hi) 1232 _mm_setzero_si128 (), 1233 (__mmask8) __M); 1234 } 1235 1236 extern __inline __m128i 1237 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1238 _mm_mask_max_epu16 (__m128i __W, __mmask8 __M, __m128i __A, 1239 __m128i __B) 1240 { 1241 return (__m128i) __builtin_ia32_pmaxuw128_mask ((__v8hi) __A, 1242 (__v8hi) __B, 1243 (__v8hi) __W, 1244 (__mmask8) __M); 1245 } 1246 1247 extern __inline __m128i 1248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1249 _mm_maskz_min_epi16 (__mmask8 __M, __m128i __A, __m128i __B) 1250 { 1251 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A, 1252 (__v8hi) __B, 1253 (__v8hi) 1254 _mm_setzero_si128 (), 1255 (__mmask8) __M); 1256 } 1257 1258 extern __inline __m128i 1259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1260 _mm_mask_min_epi16 (__m128i __W, __mmask8 __M, __m128i __A, 1261 __m128i __B) 1262 { 1263 return (__m128i) __builtin_ia32_pminsw128_mask ((__v8hi) __A, 1264 (__v8hi) __B, 1265 (__v8hi) __W, 1266 (__mmask8) __M); 1267 } 1268 1269 #ifdef __OPTIMIZE__ 1270 extern __inline __m256i 1271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1272 _mm256_mask_alignr_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 1273 __m256i __B, const int __N) 1274 { 1275 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A, 1276 (__v4di) __B, 1277 __N * 8, 1278 (__v4di) __W, 1279 (__mmask32) __U); 1280 } 1281 1282 extern __inline __m256i 1283 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1284 _mm256_maskz_alignr_epi8 (__mmask32 __U, __m256i __A, __m256i __B, 1285 const int __N) 1286 { 1287 return (__m256i) __builtin_ia32_palignr256_mask ((__v4di) __A, 1288 (__v4di) __B, 1289 __N * 8, 1290 (__v4di) 1291 _mm256_setzero_si256 (), 1292 (__mmask32) __U); 1293 } 1294 1295 extern __inline __m128i 1296 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1297 _mm_mask_alignr_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 1298 __m128i __B, const int __N) 1299 { 1300 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A, 1301 (__v2di) __B, 1302 __N * 8, 1303 (__v2di) __W, 1304 (__mmask16) __U); 1305 } 1306 1307 extern __inline __m128i 1308 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1309 _mm_maskz_alignr_epi8 (__mmask16 __U, __m128i __A, __m128i __B, 1310 const int __N) 1311 { 1312 return (__m128i) __builtin_ia32_palignr128_mask ((__v2di) __A, 1313 (__v2di) __B, 1314 __N * 8, 1315 (__v2di) 1316 _mm_setzero_si128 (), 1317 (__mmask16) __U); 1318 } 1319 1320 extern __inline __m256i 1321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1322 _mm256_dbsad_epu8 (__m256i __A, __m256i __B, const int __imm) 1323 { 1324 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A, 1325 (__v32qi) __B, 1326 __imm, 1327 (__v16hi) 1328 _mm256_setzero_si256 (), 1329 (__mmask16) -1); 1330 } 1331 1332 extern __inline __m256i 1333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1334 _mm256_mask_dbsad_epu8 (__m256i __W, __mmask16 __U, __m256i __A, 1335 __m256i __B, const int __imm) 1336 { 1337 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A, 1338 (__v32qi) __B, 1339 __imm, 1340 (__v16hi) __W, 1341 (__mmask16) __U); 1342 } 1343 1344 extern __inline __m256i 1345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1346 _mm256_maskz_dbsad_epu8 (__mmask16 __U, __m256i __A, __m256i __B, 1347 const int __imm) 1348 { 1349 return (__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi) __A, 1350 (__v32qi) __B, 1351 __imm, 1352 (__v16hi) 1353 _mm256_setzero_si256 (), 1354 (__mmask16) __U); 1355 } 1356 1357 extern __inline __m128i 1358 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1359 _mm_dbsad_epu8 (__m128i __A, __m128i __B, const int __imm) 1360 { 1361 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A, 1362 (__v16qi) __B, 1363 __imm, 1364 (__v8hi) 1365 _mm_setzero_si128 (), 1366 (__mmask8) -1); 1367 } 1368 1369 extern __inline __m128i 1370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1371 _mm_mask_dbsad_epu8 (__m128i __W, __mmask8 __U, __m128i __A, 1372 __m128i __B, const int __imm) 1373 { 1374 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A, 1375 (__v16qi) __B, 1376 __imm, 1377 (__v8hi) __W, 1378 (__mmask8) __U); 1379 } 1380 1381 extern __inline __m128i 1382 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1383 _mm_maskz_dbsad_epu8 (__mmask8 __U, __m128i __A, __m128i __B, 1384 const int __imm) 1385 { 1386 return (__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi) __A, 1387 (__v16qi) __B, 1388 __imm, 1389 (__v8hi) 1390 _mm_setzero_si128 (), 1391 (__mmask8) __U); 1392 } 1393 1394 extern __inline __m128i 1395 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1396 _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W) 1397 { 1398 return (__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) __A, 1399 (__v8hi) __W, 1400 (__mmask8) __U); 1401 } 1402 1403 extern __inline __m128i 1404 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1405 _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W) 1406 { 1407 return (__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) __A, 1408 (__v16qi) __W, 1409 (__mmask16) __U); 1410 } 1411 1412 extern __inline __m256i 1413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1414 _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W) 1415 { 1416 return (__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) __A, 1417 (__v16hi) __W, 1418 (__mmask16) __U); 1419 } 1420 1421 extern __inline __m256i 1422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1423 _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W) 1424 { 1425 return (__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) __A, 1426 (__v32qi) __W, 1427 (__mmask32) __U); 1428 } 1429 1430 extern __inline __mmask8 1431 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1432 _mm_mask_cmp_epi16_mask (__mmask8 __U, __m128i __X, __m128i __Y, 1433 const int __P) 1434 { 1435 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 1436 (__v8hi) __Y, __P, 1437 (__mmask8) __U); 1438 } 1439 1440 extern __inline __mmask8 1441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1442 _mm_cmp_epi16_mask (__m128i __X, __m128i __Y, const int __P) 1443 { 1444 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 1445 (__v8hi) __Y, __P, 1446 (__mmask8) -1); 1447 } 1448 1449 extern __inline __mmask16 1450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1451 _mm256_mask_cmp_epi16_mask (__mmask16 __U, __m256i __X, __m256i __Y, 1452 const int __P) 1453 { 1454 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 1455 (__v16hi) __Y, __P, 1456 (__mmask16) __U); 1457 } 1458 1459 extern __inline __mmask16 1460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1461 _mm256_cmp_epi16_mask (__m256i __X, __m256i __Y, const int __P) 1462 { 1463 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 1464 (__v16hi) __Y, __P, 1465 (__mmask16) -1); 1466 } 1467 1468 extern __inline __mmask16 1469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1470 _mm_mask_cmp_epi8_mask (__mmask8 __U, __m128i __X, __m128i __Y, 1471 const int __P) 1472 { 1473 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 1474 (__v16qi) __Y, __P, 1475 (__mmask16) __U); 1476 } 1477 1478 extern __inline __mmask16 1479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1480 _mm_cmp_epi8_mask (__m128i __X, __m128i __Y, const int __P) 1481 { 1482 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 1483 (__v16qi) __Y, __P, 1484 (__mmask16) -1); 1485 } 1486 1487 extern __inline __mmask32 1488 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1489 _mm256_mask_cmp_epi8_mask (__mmask16 __U, __m256i __X, __m256i __Y, 1490 const int __P) 1491 { 1492 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 1493 (__v32qi) __Y, __P, 1494 (__mmask32) __U); 1495 } 1496 1497 extern __inline __mmask16 1498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1499 _mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P) 1500 { 1501 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 1502 (__v32qi) __Y, __P, 1503 (__mmask32) -1); 1504 } 1505 1506 extern __inline __mmask8 1507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1508 _mm_mask_cmp_epu16_mask (__mmask8 __U, __m128i __X, __m128i __Y, 1509 const int __P) 1510 { 1511 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 1512 (__v8hi) __Y, __P, 1513 (__mmask8) __U); 1514 } 1515 1516 extern __inline __mmask8 1517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1518 _mm_cmp_epu16_mask (__m128i __X, __m128i __Y, const int __P) 1519 { 1520 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 1521 (__v8hi) __Y, __P, 1522 (__mmask8) -1); 1523 } 1524 1525 extern __inline __mmask16 1526 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1527 _mm256_mask_cmp_epu16_mask (__mmask16 __U, __m256i __X, __m256i __Y, 1528 const int __P) 1529 { 1530 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 1531 (__v16hi) __Y, __P, 1532 (__mmask16) __U); 1533 } 1534 1535 extern __inline __mmask16 1536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1537 _mm256_cmp_epu16_mask (__m256i __X, __m256i __Y, const int __P) 1538 { 1539 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 1540 (__v16hi) __Y, __P, 1541 (__mmask16) -1); 1542 } 1543 1544 extern __inline __mmask16 1545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1546 _mm_mask_cmp_epu8_mask (__mmask8 __U, __m128i __X, __m128i __Y, 1547 const int __P) 1548 { 1549 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 1550 (__v16qi) __Y, __P, 1551 (__mmask16) __U); 1552 } 1553 1554 extern __inline __mmask16 1555 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1556 _mm_cmp_epu8_mask (__m128i __X, __m128i __Y, const int __P) 1557 { 1558 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 1559 (__v16qi) __Y, __P, 1560 (__mmask16) -1); 1561 } 1562 1563 extern __inline __mmask32 1564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1565 _mm256_mask_cmp_epu8_mask (__mmask16 __U, __m256i __X, __m256i __Y, 1566 const int __P) 1567 { 1568 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 1569 (__v32qi) __Y, __P, 1570 (__mmask32) __U); 1571 } 1572 1573 extern __inline __mmask16 1574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1575 _mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P) 1576 { 1577 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 1578 (__v32qi) __Y, __P, 1579 (__mmask32) -1); 1580 } 1581 1582 extern __inline __m256i 1583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1584 _mm256_mask_srli_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1585 const int __imm) 1586 { 1587 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm, 1588 (__v16hi) __W, 1589 (__mmask16) __U); 1590 } 1591 1592 extern __inline __m256i 1593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1594 _mm256_maskz_srli_epi16 (__mmask16 __U, __m256i __A, const int __imm) 1595 { 1596 return (__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi) __A, __imm, 1597 (__v16hi) 1598 _mm256_setzero_si256 (), 1599 (__mmask16) __U); 1600 } 1601 1602 extern __inline __m128i 1603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1604 _mm_mask_srli_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1605 const int __imm) 1606 { 1607 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm, 1608 (__v8hi) __W, 1609 (__mmask8) __U); 1610 } 1611 1612 extern __inline __m128i 1613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1614 _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, const int __imm) 1615 { 1616 return (__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi) __A, __imm, 1617 (__v8hi) 1618 _mm_setzero_si128 (), 1619 (__mmask8) __U); 1620 } 1621 1622 extern __inline __m256i 1623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1624 _mm256_mask_shufflehi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1625 const int __imm) 1626 { 1627 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A, 1628 __imm, 1629 (__v16hi) __W, 1630 (__mmask16) __U); 1631 } 1632 1633 extern __inline __m256i 1634 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1635 _mm256_maskz_shufflehi_epi16 (__mmask16 __U, __m256i __A, 1636 const int __imm) 1637 { 1638 return (__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi) __A, 1639 __imm, 1640 (__v16hi) 1641 _mm256_setzero_si256 (), 1642 (__mmask16) __U); 1643 } 1644 1645 extern __inline __m128i 1646 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1647 _mm_mask_shufflehi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1648 const int __imm) 1649 { 1650 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm, 1651 (__v8hi) __W, 1652 (__mmask8) __U); 1653 } 1654 1655 extern __inline __m128i 1656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1657 _mm_maskz_shufflehi_epi16 (__mmask8 __U, __m128i __A, const int __imm) 1658 { 1659 return (__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi) __A, __imm, 1660 (__v8hi) 1661 _mm_setzero_si128 (), 1662 (__mmask8) __U); 1663 } 1664 1665 extern __inline __m256i 1666 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1667 _mm256_mask_shufflelo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1668 const int __imm) 1669 { 1670 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A, 1671 __imm, 1672 (__v16hi) __W, 1673 (__mmask16) __U); 1674 } 1675 1676 extern __inline __m256i 1677 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1678 _mm256_maskz_shufflelo_epi16 (__mmask16 __U, __m256i __A, 1679 const int __imm) 1680 { 1681 return (__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi) __A, 1682 __imm, 1683 (__v16hi) 1684 _mm256_setzero_si256 (), 1685 (__mmask16) __U); 1686 } 1687 1688 extern __inline __m128i 1689 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1690 _mm_mask_shufflelo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1691 const int __imm) 1692 { 1693 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm, 1694 (__v8hi) __W, 1695 (__mmask8) __U); 1696 } 1697 1698 extern __inline __m128i 1699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1700 _mm_maskz_shufflelo_epi16 (__mmask8 __U, __m128i __A, const int __imm) 1701 { 1702 return (__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi) __A, __imm, 1703 (__v8hi) 1704 _mm_setzero_si128 (), 1705 (__mmask8) __U); 1706 } 1707 1708 extern __inline __m256i 1709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1710 _mm256_mask_srai_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1711 const int __imm) 1712 { 1713 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm, 1714 (__v16hi) __W, 1715 (__mmask16) __U); 1716 } 1717 1718 extern __inline __m256i 1719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1720 _mm256_maskz_srai_epi16 (__mmask16 __U, __m256i __A, const int __imm) 1721 { 1722 return (__m256i) __builtin_ia32_psrawi256_mask ((__v16hi) __A, __imm, 1723 (__v16hi) 1724 _mm256_setzero_si256 (), 1725 (__mmask16) __U); 1726 } 1727 1728 extern __inline __m128i 1729 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1730 _mm_mask_srai_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 1731 const int __imm) 1732 { 1733 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm, 1734 (__v8hi) __W, 1735 (__mmask8) __U); 1736 } 1737 1738 extern __inline __m128i 1739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1740 _mm_maskz_srai_epi16 (__mmask8 __U, __m128i __A, const int __imm) 1741 { 1742 return (__m128i) __builtin_ia32_psrawi128_mask ((__v8hi) __A, __imm, 1743 (__v8hi) 1744 _mm_setzero_si128 (), 1745 (__mmask8) __U); 1746 } 1747 1748 extern __inline __m256i 1749 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1750 _mm256_mask_slli_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 1751 int __B) 1752 { 1753 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B, 1754 (__v16hi) __W, 1755 (__mmask16) __U); 1756 } 1757 1758 extern __inline __m256i 1759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1760 _mm256_maskz_slli_epi16 (__mmask16 __U, __m256i __A, int __B) 1761 { 1762 return (__m256i) __builtin_ia32_psllwi256_mask ((__v16hi) __A, __B, 1763 (__v16hi) 1764 _mm256_setzero_si256 (), 1765 (__mmask16) __U); 1766 } 1767 1768 extern __inline __m128i 1769 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1770 _mm_mask_slli_epi16 (__m128i __W, __mmask8 __U, __m128i __A, int __B) 1771 { 1772 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B, 1773 (__v8hi) __W, 1774 (__mmask8) __U); 1775 } 1776 1777 extern __inline __m128i 1778 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1779 _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B) 1780 { 1781 return (__m128i) __builtin_ia32_psllwi128_mask ((__v8hi) __A, __B, 1782 (__v8hi) 1783 _mm_setzero_si128 (), 1784 (__mmask8) __U); 1785 } 1786 1787 #else 1788 #define _mm256_mask_alignr_epi8(W, U, X, Y, N) \ 1789 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \ 1790 (__v4di)(__m256i)(Y), (int)(N * 8), \ 1791 (__v4di)(__m256i)(X), (__mmask32)(U))) 1792 1793 #define _mm256_mask_srli_epi16(W, U, A, B) \ 1794 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \ 1795 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U))) 1796 1797 #define _mm256_maskz_srli_epi16(U, A, B) \ 1798 ((__m256i) __builtin_ia32_psrlwi256_mask ((__v16hi)(__m256i)(A), \ 1799 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U))) 1800 1801 #define _mm_mask_srli_epi16(W, U, A, B) \ 1802 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \ 1803 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U))) 1804 1805 #define _mm_maskz_srli_epi16(U, A, B) \ 1806 ((__m128i) __builtin_ia32_psrlwi128_mask ((__v8hi)(__m128i)(A), \ 1807 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U))) 1808 1809 #define _mm256_mask_srai_epi16(W, U, A, B) \ 1810 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \ 1811 (int)(B), (__v16hi)(__m256i)(W), (__mmask16)(U))) 1812 1813 #define _mm256_maskz_srai_epi16(U, A, B) \ 1814 ((__m256i) __builtin_ia32_psrawi256_mask ((__v16hi)(__m256i)(A), \ 1815 (int)(B), (__v16hi)_mm256_setzero_si256 (), (__mmask16)(U))) 1816 1817 #define _mm_mask_srai_epi16(W, U, A, B) \ 1818 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \ 1819 (int)(B), (__v8hi)(__m128i)(W), (__mmask8)(U))) 1820 1821 #define _mm_maskz_srai_epi16(U, A, B) \ 1822 ((__m128i) __builtin_ia32_psrawi128_mask ((__v8hi)(__m128i)(A), \ 1823 (int)(B), (__v8hi)_mm_setzero_si128(), (__mmask8)(U))) 1824 1825 #define _mm256_mask_shufflehi_epi16(W, U, A, B) \ 1826 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \ 1827 (__v16hi)(__m256i)(W), \ 1828 (__mmask16)(U))) 1829 1830 #define _mm256_maskz_shufflehi_epi16(U, A, B) \ 1831 ((__m256i) __builtin_ia32_pshufhw256_mask ((__v16hi)(__m256i)(A), (int)(B), \ 1832 (__v16hi)(__m256i)_mm256_setzero_si256 (), \ 1833 (__mmask16)(U))) 1834 1835 #define _mm_mask_shufflehi_epi16(W, U, A, B) \ 1836 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \ 1837 (__v8hi)(__m128i)(W), \ 1838 (__mmask8)(U))) 1839 1840 #define _mm_maskz_shufflehi_epi16(U, A, B) \ 1841 ((__m128i) __builtin_ia32_pshufhw128_mask ((__v8hi)(__m128i)(A), (int)(B), \ 1842 (__v8hi)(__m128i)_mm_setzero_si128 (), \ 1843 (__mmask8)(U))) 1844 1845 #define _mm256_mask_shufflelo_epi16(W, U, A, B) \ 1846 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \ 1847 (__v16hi)(__m256i)(W), \ 1848 (__mmask16)(U))) 1849 1850 #define _mm256_maskz_shufflelo_epi16(U, A, B) \ 1851 ((__m256i) __builtin_ia32_pshuflw256_mask ((__v16hi)(__m256i)(A), (int)(B), \ 1852 (__v16hi)(__m256i)_mm256_setzero_si256 (), \ 1853 (__mmask16)(U))) 1854 1855 #define _mm_mask_shufflelo_epi16(W, U, A, B) \ 1856 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \ 1857 (__v8hi)(__m128i)(W), \ 1858 (__mmask8)(U))) 1859 1860 #define _mm_maskz_shufflelo_epi16(U, A, B) \ 1861 ((__m128i) __builtin_ia32_pshuflw128_mask ((__v8hi)(__m128i)(A), (int)(B), \ 1862 (__v8hi)(__m128i)_mm_setzero_si128 (), \ 1863 (__mmask8)(U))) 1864 1865 #define _mm256_maskz_alignr_epi8(U, X, Y, N) \ 1866 ((__m256i) __builtin_ia32_palignr256_mask ((__v4di)(__m256i)(X), \ 1867 (__v4di)(__m256i)(Y), (int)(N * 8), \ 1868 (__v4di)(__m256i)_mm256_setzero_si256 (), \ 1869 (__mmask32)(U))) 1870 1871 #define _mm_mask_alignr_epi8(W, U, X, Y, N) \ 1872 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \ 1873 (__v2di)(__m128i)(Y), (int)(N * 8), \ 1874 (__v2di)(__m128i)(X), (__mmask16)(U))) 1875 1876 #define _mm_maskz_alignr_epi8(U, X, Y, N) \ 1877 ((__m128i) __builtin_ia32_palignr128_mask ((__v2di)(__m128i)(X), \ 1878 (__v2di)(__m128i)(Y), (int)(N * 8), \ 1879 (__v2di)(__m128i)_mm_setzero_si128 (), \ 1880 (__mmask16)(U))) 1881 1882 #define _mm_mask_slli_epi16(W, U, X, C) \ 1883 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\ 1884 (__v8hi)(__m128i)(W),\ 1885 (__mmask8)(U))) 1886 1887 #define _mm_maskz_slli_epi16(U, X, C) \ 1888 ((__m128i)__builtin_ia32_psllwi128_mask ((__v8hi)(__m128i)(X), (int)(C),\ 1889 (__v8hi)(__m128i)_mm_setzero_si128 (),\ 1890 (__mmask8)(U))) 1891 1892 #define _mm256_dbsad_epu8(X, Y, C) \ 1893 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \ 1894 (__v32qi)(__m256i) (Y), (int) (C), \ 1895 (__v16hi)(__m256i)_mm256_setzero_si256(),\ 1896 (__mmask16)-1)) 1897 1898 #define _mm256_mask_slli_epi16(W, U, X, C) \ 1899 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\ 1900 (__v16hi)(__m256i)(W),\ 1901 (__mmask16)(U))) 1902 1903 #define _mm256_maskz_slli_epi16(U, X, C) \ 1904 ((__m256i)__builtin_ia32_psllwi256_mask ((__v16hi)(__m256i)(X), (int)(C),\ 1905 (__v16hi)(__m256i)_mm256_setzero_si256 (),\ 1906 (__mmask16)(U))) 1907 1908 #define _mm256_mask_dbsad_epu8(W, U, X, Y, C) \ 1909 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \ 1910 (__v32qi)(__m256i) (Y), (int) (C), \ 1911 (__v16hi)(__m256i)(W), \ 1912 (__mmask16)(U))) 1913 1914 #define _mm256_maskz_dbsad_epu8(U, X, Y, C) \ 1915 ((__m256i) __builtin_ia32_dbpsadbw256_mask ((__v32qi)(__m256i) (X), \ 1916 (__v32qi)(__m256i) (Y), (int) (C), \ 1917 (__v16hi)(__m256i)_mm256_setzero_si256(),\ 1918 (__mmask16)(U))) 1919 1920 #define _mm_dbsad_epu8(X, Y, C) \ 1921 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \ 1922 (__v16qi)(__m128i) (Y), (int) (C), \ 1923 (__v8hi)(__m128i)_mm_setzero_si128(), \ 1924 (__mmask8)-1)) 1925 1926 #define _mm_mask_dbsad_epu8(W, U, X, Y, C) \ 1927 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \ 1928 (__v16qi)(__m128i) (Y), (int) (C), \ 1929 (__v8hi)(__m128i)(W), \ 1930 (__mmask8)(U))) 1931 1932 #define _mm_maskz_dbsad_epu8(U, X, Y, C) \ 1933 ((__m128i) __builtin_ia32_dbpsadbw128_mask ((__v16qi)(__m128i) (X), \ 1934 (__v16qi)(__m128i) (Y), (int) (C), \ 1935 (__v8hi)(__m128i)_mm_setzero_si128(), \ 1936 (__mmask8)(U))) 1937 1938 #define _mm_mask_blend_epi16(__U, __A, __W) \ 1939 ((__m128i) __builtin_ia32_blendmw_128_mask ((__v8hi) (__A), \ 1940 (__v8hi) (__W), \ 1941 (__mmask8) (__U))) 1942 1943 #define _mm_mask_blend_epi8(__U, __A, __W) \ 1944 ((__m128i) __builtin_ia32_blendmb_128_mask ((__v16qi) (__A), \ 1945 (__v16qi) (__W), \ 1946 (__mmask16) (__U))) 1947 1948 #define _mm256_mask_blend_epi16(__U, __A, __W) \ 1949 ((__m256i) __builtin_ia32_blendmw_256_mask ((__v16hi) (__A), \ 1950 (__v16hi) (__W), \ 1951 (__mmask16) (__U))) 1952 1953 #define _mm256_mask_blend_epi8(__U, __A, __W) \ 1954 ((__m256i) __builtin_ia32_blendmb_256_mask ((__v32qi) (__A), \ 1955 (__v32qi) (__W), \ 1956 (__mmask32) (__U))) 1957 1958 #define _mm_cmp_epi16_mask(X, Y, P) \ 1959 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \ 1960 (__v8hi)(__m128i)(Y), (int)(P),\ 1961 (__mmask8)(-1))) 1962 1963 #define _mm_cmp_epi8_mask(X, Y, P) \ 1964 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \ 1965 (__v16qi)(__m128i)(Y), (int)(P),\ 1966 (__mmask16)(-1))) 1967 1968 #define _mm256_cmp_epi16_mask(X, Y, P) \ 1969 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \ 1970 (__v16hi)(__m256i)(Y), (int)(P),\ 1971 (__mmask16)(-1))) 1972 1973 #define _mm256_cmp_epi8_mask(X, Y, P) \ 1974 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \ 1975 (__v32qi)(__m256i)(Y), (int)(P),\ 1976 (__mmask32)(-1))) 1977 1978 #define _mm_cmp_epu16_mask(X, Y, P) \ 1979 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \ 1980 (__v8hi)(__m128i)(Y), (int)(P),\ 1981 (__mmask8)(-1))) 1982 1983 #define _mm_cmp_epu8_mask(X, Y, P) \ 1984 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \ 1985 (__v16qi)(__m128i)(Y), (int)(P),\ 1986 (__mmask16)(-1))) 1987 1988 #define _mm256_cmp_epu16_mask(X, Y, P) \ 1989 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \ 1990 (__v16hi)(__m256i)(Y), (int)(P),\ 1991 (__mmask16)(-1))) 1992 1993 #define _mm256_cmp_epu8_mask(X, Y, P) \ 1994 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \ 1995 (__v32qi)(__m256i)(Y), (int)(P),\ 1996 (__mmask32)-1)) 1997 1998 #define _mm_mask_cmp_epi16_mask(M, X, Y, P) \ 1999 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \ 2000 (__v8hi)(__m128i)(Y), (int)(P),\ 2001 (__mmask16)(M))) 2002 2003 #define _mm_mask_cmp_epi8_mask(M, X, Y, P) \ 2004 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \ 2005 (__v16qi)(__m128i)(Y), (int)(P),\ 2006 (__mmask16)(M))) 2007 2008 #define _mm256_mask_cmp_epi16_mask(M, X, Y, P) \ 2009 ((__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi)(__m256i)(X), \ 2010 (__v16hi)(__m256i)(Y), (int)(P),\ 2011 (__mmask16)(M))) 2012 2013 #define _mm256_mask_cmp_epi8_mask(M, X, Y, P) \ 2014 ((__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi)(__m256i)(X), \ 2015 (__v32qi)(__m256i)(Y), (int)(P),\ 2016 (__mmask32)(M))) 2017 2018 #define _mm_mask_cmp_epu16_mask(M, X, Y, P) \ 2019 ((__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi)(__m128i)(X), \ 2020 (__v8hi)(__m128i)(Y), (int)(P),\ 2021 (__mmask8)(M))) 2022 2023 #define _mm_mask_cmp_epu8_mask(M, X, Y, P) \ 2024 ((__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi)(__m128i)(X), \ 2025 (__v16qi)(__m128i)(Y), (int)(P),\ 2026 (__mmask16)(M))) 2027 2028 #define _mm256_mask_cmp_epu16_mask(M, X, Y, P) \ 2029 ((__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi)(__m256i)(X), \ 2030 (__v16hi)(__m256i)(Y), (int)(P),\ 2031 (__mmask16)(M))) 2032 2033 #define _mm256_mask_cmp_epu8_mask(M, X, Y, P) \ 2034 ((__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi)(__m256i)(X), \ 2035 (__v32qi)(__m256i)(Y), (int)(P),\ 2036 (__mmask32)M)) 2037 #endif 2038 2039 extern __inline __mmask32 2040 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2041 _mm256_cmpneq_epi8_mask (__m256i __X, __m256i __Y) 2042 { 2043 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 2044 (__v32qi) __Y, 4, 2045 (__mmask32) -1); 2046 } 2047 2048 extern __inline __mmask32 2049 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2050 _mm256_cmplt_epi8_mask (__m256i __X, __m256i __Y) 2051 { 2052 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 2053 (__v32qi) __Y, 1, 2054 (__mmask32) -1); 2055 } 2056 2057 extern __inline __mmask32 2058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2059 _mm256_cmpge_epi8_mask (__m256i __X, __m256i __Y) 2060 { 2061 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 2062 (__v32qi) __Y, 5, 2063 (__mmask32) -1); 2064 } 2065 2066 extern __inline __mmask32 2067 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2068 _mm256_cmple_epi8_mask (__m256i __X, __m256i __Y) 2069 { 2070 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 2071 (__v32qi) __Y, 2, 2072 (__mmask32) -1); 2073 } 2074 2075 extern __inline __mmask16 2076 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2077 _mm256_cmpneq_epi16_mask (__m256i __X, __m256i __Y) 2078 { 2079 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 2080 (__v16hi) __Y, 4, 2081 (__mmask16) -1); 2082 } 2083 2084 extern __inline __mmask16 2085 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2086 _mm256_cmplt_epi16_mask (__m256i __X, __m256i __Y) 2087 { 2088 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 2089 (__v16hi) __Y, 1, 2090 (__mmask16) -1); 2091 } 2092 2093 extern __inline __mmask16 2094 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2095 _mm256_cmpge_epi16_mask (__m256i __X, __m256i __Y) 2096 { 2097 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 2098 (__v16hi) __Y, 5, 2099 (__mmask16) -1); 2100 } 2101 2102 extern __inline __mmask16 2103 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2104 _mm256_cmple_epi16_mask (__m256i __X, __m256i __Y) 2105 { 2106 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 2107 (__v16hi) __Y, 2, 2108 (__mmask16) -1); 2109 } 2110 2111 extern __inline __mmask16 2112 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2113 _mm_cmpneq_epu8_mask (__m128i __X, __m128i __Y) 2114 { 2115 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 2116 (__v16qi) __Y, 4, 2117 (__mmask16) -1); 2118 } 2119 2120 extern __inline __mmask16 2121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2122 _mm_cmplt_epu8_mask (__m128i __X, __m128i __Y) 2123 { 2124 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 2125 (__v16qi) __Y, 1, 2126 (__mmask16) -1); 2127 } 2128 2129 extern __inline __mmask16 2130 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2131 _mm_cmpge_epu8_mask (__m128i __X, __m128i __Y) 2132 { 2133 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 2134 (__v16qi) __Y, 5, 2135 (__mmask16) -1); 2136 } 2137 2138 extern __inline __mmask16 2139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2140 _mm_cmple_epu8_mask (__m128i __X, __m128i __Y) 2141 { 2142 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 2143 (__v16qi) __Y, 2, 2144 (__mmask16) -1); 2145 } 2146 2147 extern __inline __mmask8 2148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2149 _mm_cmpneq_epu16_mask (__m128i __X, __m128i __Y) 2150 { 2151 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 2152 (__v8hi) __Y, 4, 2153 (__mmask8) -1); 2154 } 2155 2156 extern __inline __mmask8 2157 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2158 _mm_cmplt_epu16_mask (__m128i __X, __m128i __Y) 2159 { 2160 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 2161 (__v8hi) __Y, 1, 2162 (__mmask8) -1); 2163 } 2164 2165 extern __inline __mmask8 2166 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2167 _mm_cmpge_epu16_mask (__m128i __X, __m128i __Y) 2168 { 2169 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 2170 (__v8hi) __Y, 5, 2171 (__mmask8) -1); 2172 } 2173 2174 extern __inline __mmask8 2175 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2176 _mm_cmple_epu16_mask (__m128i __X, __m128i __Y) 2177 { 2178 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 2179 (__v8hi) __Y, 2, 2180 (__mmask8) -1); 2181 } 2182 2183 extern __inline __mmask16 2184 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2185 _mm_cmpneq_epi8_mask (__m128i __X, __m128i __Y) 2186 { 2187 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 2188 (__v16qi) __Y, 4, 2189 (__mmask16) -1); 2190 } 2191 2192 extern __inline __mmask16 2193 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2194 _mm_cmplt_epi8_mask (__m128i __X, __m128i __Y) 2195 { 2196 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 2197 (__v16qi) __Y, 1, 2198 (__mmask16) -1); 2199 } 2200 2201 extern __inline __mmask16 2202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2203 _mm_cmpge_epi8_mask (__m128i __X, __m128i __Y) 2204 { 2205 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 2206 (__v16qi) __Y, 5, 2207 (__mmask16) -1); 2208 } 2209 2210 extern __inline __mmask16 2211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2212 _mm_cmple_epi8_mask (__m128i __X, __m128i __Y) 2213 { 2214 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 2215 (__v16qi) __Y, 2, 2216 (__mmask16) -1); 2217 } 2218 2219 extern __inline __mmask8 2220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2221 _mm_cmpneq_epi16_mask (__m128i __X, __m128i __Y) 2222 { 2223 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 2224 (__v8hi) __Y, 4, 2225 (__mmask8) -1); 2226 } 2227 2228 extern __inline __mmask8 2229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2230 _mm_cmplt_epi16_mask (__m128i __X, __m128i __Y) 2231 { 2232 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 2233 (__v8hi) __Y, 1, 2234 (__mmask8) -1); 2235 } 2236 2237 extern __inline __mmask8 2238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2239 _mm_cmpge_epi16_mask (__m128i __X, __m128i __Y) 2240 { 2241 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 2242 (__v8hi) __Y, 5, 2243 (__mmask8) -1); 2244 } 2245 2246 extern __inline __mmask8 2247 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2248 _mm_cmple_epi16_mask (__m128i __X, __m128i __Y) 2249 { 2250 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 2251 (__v8hi) __Y, 2, 2252 (__mmask8) -1); 2253 } 2254 2255 extern __inline __m256i 2256 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2257 _mm256_mask_mulhrs_epi16 (__m256i __W, __mmask16 __U, __m256i __X, 2258 __m256i __Y) 2259 { 2260 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X, 2261 (__v16hi) __Y, 2262 (__v16hi) __W, 2263 (__mmask16) __U); 2264 } 2265 2266 extern __inline __m256i 2267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2268 _mm256_maskz_mulhrs_epi16 (__mmask16 __U, __m256i __X, __m256i __Y) 2269 { 2270 return (__m256i) __builtin_ia32_pmulhrsw256_mask ((__v16hi) __X, 2271 (__v16hi) __Y, 2272 (__v16hi) 2273 _mm256_setzero_si256 (), 2274 (__mmask16) __U); 2275 } 2276 2277 extern __inline __m256i 2278 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2279 _mm256_mask_mulhi_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 2280 __m256i __B) 2281 { 2282 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A, 2283 (__v16hi) __B, 2284 (__v16hi) __W, 2285 (__mmask16) __U); 2286 } 2287 2288 extern __inline __m256i 2289 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2290 _mm256_maskz_mulhi_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 2291 { 2292 return (__m256i) __builtin_ia32_pmulhuw256_mask ((__v16hi) __A, 2293 (__v16hi) __B, 2294 (__v16hi) 2295 _mm256_setzero_si256 (), 2296 (__mmask16) __U); 2297 } 2298 2299 extern __inline __m256i 2300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2301 _mm256_mask_mulhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2302 __m256i __B) 2303 { 2304 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A, 2305 (__v16hi) __B, 2306 (__v16hi) __W, 2307 (__mmask16) __U); 2308 } 2309 2310 extern __inline __m256i 2311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2312 _mm256_maskz_mulhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2313 { 2314 return (__m256i) __builtin_ia32_pmulhw256_mask ((__v16hi) __A, 2315 (__v16hi) __B, 2316 (__v16hi) 2317 _mm256_setzero_si256 (), 2318 (__mmask16) __U); 2319 } 2320 2321 extern __inline __m128i 2322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2323 _mm_mask_mulhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2324 __m128i __B) 2325 { 2326 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A, 2327 (__v8hi) __B, 2328 (__v8hi) __W, 2329 (__mmask8) __U); 2330 } 2331 2332 extern __inline __m128i 2333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2334 _mm_maskz_mulhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 2335 { 2336 return (__m128i) __builtin_ia32_pmulhw128_mask ((__v8hi) __A, 2337 (__v8hi) __B, 2338 (__v8hi) 2339 _mm_setzero_si128 (), 2340 (__mmask8) __U); 2341 } 2342 2343 extern __inline __m128i 2344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2345 _mm_mask_mulhi_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 2346 __m128i __B) 2347 { 2348 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A, 2349 (__v8hi) __B, 2350 (__v8hi) __W, 2351 (__mmask8) __U); 2352 } 2353 2354 extern __inline __m128i 2355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2356 _mm_maskz_mulhi_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 2357 { 2358 return (__m128i) __builtin_ia32_pmulhuw128_mask ((__v8hi) __A, 2359 (__v8hi) __B, 2360 (__v8hi) 2361 _mm_setzero_si128 (), 2362 (__mmask8) __U); 2363 } 2364 2365 extern __inline __m128i 2366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2367 _mm_mask_mulhrs_epi16 (__m128i __W, __mmask8 __U, __m128i __X, 2368 __m128i __Y) 2369 { 2370 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X, 2371 (__v8hi) __Y, 2372 (__v8hi) __W, 2373 (__mmask8) __U); 2374 } 2375 2376 extern __inline __m128i 2377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2378 _mm_maskz_mulhrs_epi16 (__mmask8 __U, __m128i __X, __m128i __Y) 2379 { 2380 return (__m128i) __builtin_ia32_pmulhrsw128_mask ((__v8hi) __X, 2381 (__v8hi) __Y, 2382 (__v8hi) 2383 _mm_setzero_si128 (), 2384 (__mmask8) __U); 2385 } 2386 2387 extern __inline __m256i 2388 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2389 _mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2390 __m256i __B) 2391 { 2392 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A, 2393 (__v16hi) __B, 2394 (__v16hi) __W, 2395 (__mmask16) __U); 2396 } 2397 2398 extern __inline __m256i 2399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2400 _mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2401 { 2402 return (__m256i) __builtin_ia32_pmullw256_mask ((__v16hi) __A, 2403 (__v16hi) __B, 2404 (__v16hi) 2405 _mm256_setzero_si256 (), 2406 (__mmask16) __U); 2407 } 2408 2409 extern __inline __m128i 2410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2411 _mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2412 __m128i __B) 2413 { 2414 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A, 2415 (__v8hi) __B, 2416 (__v8hi) __W, 2417 (__mmask8) __U); 2418 } 2419 2420 extern __inline __m128i 2421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2422 _mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 2423 { 2424 return (__m128i) __builtin_ia32_pmullw128_mask ((__v8hi) __A, 2425 (__v8hi) __B, 2426 (__v8hi) 2427 _mm_setzero_si128 (), 2428 (__mmask8) __U); 2429 } 2430 2431 extern __inline __m256i 2432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2433 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A) 2434 { 2435 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A, 2436 (__v16hi) __W, 2437 (__mmask16) __U); 2438 } 2439 2440 extern __inline __m256i 2441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2442 _mm256_maskz_cvtepi8_epi16 (__mmask16 __U, __m128i __A) 2443 { 2444 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A, 2445 (__v16hi) 2446 _mm256_setzero_si256 (), 2447 (__mmask16) __U); 2448 } 2449 2450 extern __inline __m128i 2451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2452 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A) 2453 { 2454 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A, 2455 (__v8hi) __W, 2456 (__mmask8) __U); 2457 } 2458 2459 extern __inline __m128i 2460 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2461 _mm_maskz_cvtepi8_epi16 (__mmask8 __U, __m128i __A) 2462 { 2463 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A, 2464 (__v8hi) 2465 _mm_setzero_si128 (), 2466 (__mmask8) __U); 2467 } 2468 2469 extern __inline __m256i 2470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2471 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A) 2472 { 2473 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A, 2474 (__v16hi) __W, 2475 (__mmask16) __U); 2476 } 2477 2478 extern __inline __m256i 2479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2480 _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A) 2481 { 2482 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A, 2483 (__v16hi) 2484 _mm256_setzero_si256 (), 2485 (__mmask16) __U); 2486 } 2487 2488 extern __inline __m128i 2489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2490 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A) 2491 { 2492 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A, 2493 (__v8hi) __W, 2494 (__mmask8) __U); 2495 } 2496 2497 extern __inline __m128i 2498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2499 _mm_maskz_cvtepu8_epi16 (__mmask8 __U, __m128i __A) 2500 { 2501 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A, 2502 (__v8hi) 2503 _mm_setzero_si128 (), 2504 (__mmask8) __U); 2505 } 2506 2507 extern __inline __m256i 2508 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2509 _mm256_mask_avg_epu8 (__m256i __W, __mmask32 __U, __m256i __A, 2510 __m256i __B) 2511 { 2512 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A, 2513 (__v32qi) __B, 2514 (__v32qi) __W, 2515 (__mmask32) __U); 2516 } 2517 2518 extern __inline __m256i 2519 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2520 _mm256_maskz_avg_epu8 (__mmask32 __U, __m256i __A, __m256i __B) 2521 { 2522 return (__m256i) __builtin_ia32_pavgb256_mask ((__v32qi) __A, 2523 (__v32qi) __B, 2524 (__v32qi) 2525 _mm256_setzero_si256 (), 2526 (__mmask32) __U); 2527 } 2528 2529 extern __inline __m128i 2530 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2531 _mm_mask_avg_epu8 (__m128i __W, __mmask16 __U, __m128i __A, 2532 __m128i __B) 2533 { 2534 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A, 2535 (__v16qi) __B, 2536 (__v16qi) __W, 2537 (__mmask16) __U); 2538 } 2539 2540 extern __inline __m128i 2541 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2542 _mm_maskz_avg_epu8 (__mmask16 __U, __m128i __A, __m128i __B) 2543 { 2544 return (__m128i) __builtin_ia32_pavgb128_mask ((__v16qi) __A, 2545 (__v16qi) __B, 2546 (__v16qi) 2547 _mm_setzero_si128 (), 2548 (__mmask16) __U); 2549 } 2550 2551 extern __inline __m256i 2552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2553 _mm256_mask_avg_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 2554 __m256i __B) 2555 { 2556 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A, 2557 (__v16hi) __B, 2558 (__v16hi) __W, 2559 (__mmask16) __U); 2560 } 2561 2562 extern __inline __m256i 2563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2564 _mm256_maskz_avg_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 2565 { 2566 return (__m256i) __builtin_ia32_pavgw256_mask ((__v16hi) __A, 2567 (__v16hi) __B, 2568 (__v16hi) 2569 _mm256_setzero_si256 (), 2570 (__mmask16) __U); 2571 } 2572 2573 extern __inline __m128i 2574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2575 _mm_mask_avg_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 2576 __m128i __B) 2577 { 2578 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A, 2579 (__v8hi) __B, 2580 (__v8hi) __W, 2581 (__mmask8) __U); 2582 } 2583 2584 extern __inline __m128i 2585 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2586 _mm_maskz_avg_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 2587 { 2588 return (__m128i) __builtin_ia32_pavgw128_mask ((__v8hi) __A, 2589 (__v8hi) __B, 2590 (__v8hi) 2591 _mm_setzero_si128 (), 2592 (__mmask8) __U); 2593 } 2594 2595 extern __inline __m256i 2596 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2597 _mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2598 __m256i __B) 2599 { 2600 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A, 2601 (__v32qi) __B, 2602 (__v32qi) __W, 2603 (__mmask32) __U); 2604 } 2605 2606 extern __inline __m256i 2607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2608 _mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 2609 { 2610 return (__m256i) __builtin_ia32_paddb256_mask ((__v32qi) __A, 2611 (__v32qi) __B, 2612 (__v32qi) 2613 _mm256_setzero_si256 (), 2614 (__mmask32) __U); 2615 } 2616 2617 extern __inline __m256i 2618 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2619 _mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2620 __m256i __B) 2621 { 2622 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A, 2623 (__v16hi) __B, 2624 (__v16hi) __W, 2625 (__mmask16) __U); 2626 } 2627 2628 extern __inline __m256i 2629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2630 _mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2631 { 2632 return (__m256i) __builtin_ia32_paddw256_mask ((__v16hi) __A, 2633 (__v16hi) __B, 2634 (__v16hi) 2635 _mm256_setzero_si256 (), 2636 (__mmask16) __U); 2637 } 2638 2639 extern __inline __m256i 2640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2641 _mm256_mask_adds_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2642 __m256i __B) 2643 { 2644 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A, 2645 (__v32qi) __B, 2646 (__v32qi) __W, 2647 (__mmask32) __U); 2648 } 2649 2650 extern __inline __m256i 2651 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2652 _mm256_maskz_adds_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 2653 { 2654 return (__m256i) __builtin_ia32_paddsb256_mask ((__v32qi) __A, 2655 (__v32qi) __B, 2656 (__v32qi) 2657 _mm256_setzero_si256 (), 2658 (__mmask32) __U); 2659 } 2660 2661 extern __inline __m256i 2662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2663 _mm256_mask_adds_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2664 __m256i __B) 2665 { 2666 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A, 2667 (__v16hi) __B, 2668 (__v16hi) __W, 2669 (__mmask16) __U); 2670 } 2671 2672 extern __inline __m256i 2673 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2674 _mm256_maskz_adds_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2675 { 2676 return (__m256i) __builtin_ia32_paddsw256_mask ((__v16hi) __A, 2677 (__v16hi) __B, 2678 (__v16hi) 2679 _mm256_setzero_si256 (), 2680 (__mmask16) __U); 2681 } 2682 2683 extern __inline __m256i 2684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2685 _mm256_mask_adds_epu8 (__m256i __W, __mmask32 __U, __m256i __A, 2686 __m256i __B) 2687 { 2688 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A, 2689 (__v32qi) __B, 2690 (__v32qi) __W, 2691 (__mmask32) __U); 2692 } 2693 2694 extern __inline __m256i 2695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2696 _mm256_maskz_adds_epu8 (__mmask32 __U, __m256i __A, __m256i __B) 2697 { 2698 return (__m256i) __builtin_ia32_paddusb256_mask ((__v32qi) __A, 2699 (__v32qi) __B, 2700 (__v32qi) 2701 _mm256_setzero_si256 (), 2702 (__mmask32) __U); 2703 } 2704 2705 extern __inline __m256i 2706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2707 _mm256_mask_adds_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 2708 __m256i __B) 2709 { 2710 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A, 2711 (__v16hi) __B, 2712 (__v16hi) __W, 2713 (__mmask16) __U); 2714 } 2715 2716 extern __inline __m256i 2717 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2718 _mm256_maskz_adds_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 2719 { 2720 return (__m256i) __builtin_ia32_paddusw256_mask ((__v16hi) __A, 2721 (__v16hi) __B, 2722 (__v16hi) 2723 _mm256_setzero_si256 (), 2724 (__mmask16) __U); 2725 } 2726 2727 extern __inline __m256i 2728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2729 _mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2730 __m256i __B) 2731 { 2732 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A, 2733 (__v32qi) __B, 2734 (__v32qi) __W, 2735 (__mmask32) __U); 2736 } 2737 2738 extern __inline __m256i 2739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2740 _mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 2741 { 2742 return (__m256i) __builtin_ia32_psubb256_mask ((__v32qi) __A, 2743 (__v32qi) __B, 2744 (__v32qi) 2745 _mm256_setzero_si256 (), 2746 (__mmask32) __U); 2747 } 2748 2749 extern __inline __m256i 2750 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2751 _mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2752 __m256i __B) 2753 { 2754 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A, 2755 (__v16hi) __B, 2756 (__v16hi) __W, 2757 (__mmask16) __U); 2758 } 2759 2760 extern __inline __m256i 2761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2762 _mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2763 { 2764 return (__m256i) __builtin_ia32_psubw256_mask ((__v16hi) __A, 2765 (__v16hi) __B, 2766 (__v16hi) 2767 _mm256_setzero_si256 (), 2768 (__mmask16) __U); 2769 } 2770 2771 extern __inline __m256i 2772 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2773 _mm256_mask_subs_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2774 __m256i __B) 2775 { 2776 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A, 2777 (__v32qi) __B, 2778 (__v32qi) __W, 2779 (__mmask32) __U); 2780 } 2781 2782 extern __inline __m256i 2783 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2784 _mm256_maskz_subs_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 2785 { 2786 return (__m256i) __builtin_ia32_psubsb256_mask ((__v32qi) __A, 2787 (__v32qi) __B, 2788 (__v32qi) 2789 _mm256_setzero_si256 (), 2790 (__mmask32) __U); 2791 } 2792 2793 extern __inline __m256i 2794 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2795 _mm256_mask_subs_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2796 __m256i __B) 2797 { 2798 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A, 2799 (__v16hi) __B, 2800 (__v16hi) __W, 2801 (__mmask16) __U); 2802 } 2803 2804 extern __inline __m256i 2805 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2806 _mm256_maskz_subs_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2807 { 2808 return (__m256i) __builtin_ia32_psubsw256_mask ((__v16hi) __A, 2809 (__v16hi) __B, 2810 (__v16hi) 2811 _mm256_setzero_si256 (), 2812 (__mmask16) __U); 2813 } 2814 2815 extern __inline __m256i 2816 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2817 _mm256_mask_subs_epu8 (__m256i __W, __mmask32 __U, __m256i __A, 2818 __m256i __B) 2819 { 2820 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A, 2821 (__v32qi) __B, 2822 (__v32qi) __W, 2823 (__mmask32) __U); 2824 } 2825 2826 extern __inline __m256i 2827 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2828 _mm256_maskz_subs_epu8 (__mmask32 __U, __m256i __A, __m256i __B) 2829 { 2830 return (__m256i) __builtin_ia32_psubusb256_mask ((__v32qi) __A, 2831 (__v32qi) __B, 2832 (__v32qi) 2833 _mm256_setzero_si256 (), 2834 (__mmask32) __U); 2835 } 2836 2837 extern __inline __m256i 2838 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2839 _mm256_mask_subs_epu16 (__m256i __W, __mmask16 __U, __m256i __A, 2840 __m256i __B) 2841 { 2842 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A, 2843 (__v16hi) __B, 2844 (__v16hi) __W, 2845 (__mmask16) __U); 2846 } 2847 2848 extern __inline __m256i 2849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2850 _mm256_maskz_subs_epu16 (__mmask16 __U, __m256i __A, __m256i __B) 2851 { 2852 return (__m256i) __builtin_ia32_psubusw256_mask ((__v16hi) __A, 2853 (__v16hi) __B, 2854 (__v16hi) 2855 _mm256_setzero_si256 (), 2856 (__mmask16) __U); 2857 } 2858 2859 extern __inline __m128i 2860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2861 _mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 2862 __m128i __B) 2863 { 2864 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A, 2865 (__v16qi) __B, 2866 (__v16qi) __W, 2867 (__mmask16) __U); 2868 } 2869 2870 extern __inline __m128i 2871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2872 _mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 2873 { 2874 return (__m128i) __builtin_ia32_paddb128_mask ((__v16qi) __A, 2875 (__v16qi) __B, 2876 (__v16qi) 2877 _mm_setzero_si128 (), 2878 (__mmask16) __U); 2879 } 2880 2881 extern __inline __m128i 2882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2883 _mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2884 __m128i __B) 2885 { 2886 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A, 2887 (__v8hi) __B, 2888 (__v8hi) __W, 2889 (__mmask8) __U); 2890 } 2891 2892 extern __inline __m128i 2893 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2894 _mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 2895 { 2896 return (__m128i) __builtin_ia32_paddw128_mask ((__v8hi) __A, 2897 (__v8hi) __B, 2898 (__v8hi) 2899 _mm_setzero_si128 (), 2900 (__mmask8) __U); 2901 } 2902 2903 extern __inline __m256i 2904 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2905 _mm256_mask_unpackhi_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2906 __m256i __B) 2907 { 2908 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A, 2909 (__v32qi) __B, 2910 (__v32qi) __W, 2911 (__mmask32) __U); 2912 } 2913 2914 extern __inline __m256i 2915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2916 _mm256_maskz_unpackhi_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 2917 { 2918 return (__m256i) __builtin_ia32_punpckhbw256_mask ((__v32qi) __A, 2919 (__v32qi) __B, 2920 (__v32qi) 2921 _mm256_setzero_si256 (), 2922 (__mmask32) __U); 2923 } 2924 2925 extern __inline __m128i 2926 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2927 _mm_mask_unpackhi_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 2928 __m128i __B) 2929 { 2930 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A, 2931 (__v16qi) __B, 2932 (__v16qi) __W, 2933 (__mmask16) __U); 2934 } 2935 2936 extern __inline __m128i 2937 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2938 _mm_maskz_unpackhi_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 2939 { 2940 return (__m128i) __builtin_ia32_punpckhbw128_mask ((__v16qi) __A, 2941 (__v16qi) __B, 2942 (__v16qi) 2943 _mm_setzero_si128 (), 2944 (__mmask16) __U); 2945 } 2946 2947 extern __inline __m256i 2948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2949 _mm256_mask_unpackhi_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 2950 __m256i __B) 2951 { 2952 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A, 2953 (__v16hi) __B, 2954 (__v16hi) __W, 2955 (__mmask16) __U); 2956 } 2957 2958 extern __inline __m256i 2959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2960 _mm256_maskz_unpackhi_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 2961 { 2962 return (__m256i) __builtin_ia32_punpckhwd256_mask ((__v16hi) __A, 2963 (__v16hi) __B, 2964 (__v16hi) 2965 _mm256_setzero_si256 (), 2966 (__mmask16) __U); 2967 } 2968 2969 extern __inline __m128i 2970 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2971 _mm_mask_unpackhi_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 2972 __m128i __B) 2973 { 2974 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A, 2975 (__v8hi) __B, 2976 (__v8hi) __W, 2977 (__mmask8) __U); 2978 } 2979 2980 extern __inline __m128i 2981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2982 _mm_maskz_unpackhi_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 2983 { 2984 return (__m128i) __builtin_ia32_punpckhwd128_mask ((__v8hi) __A, 2985 (__v8hi) __B, 2986 (__v8hi) 2987 _mm_setzero_si128 (), 2988 (__mmask8) __U); 2989 } 2990 2991 extern __inline __m256i 2992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 2993 _mm256_mask_unpacklo_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 2994 __m256i __B) 2995 { 2996 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A, 2997 (__v32qi) __B, 2998 (__v32qi) __W, 2999 (__mmask32) __U); 3000 } 3001 3002 extern __inline __m256i 3003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3004 _mm256_maskz_unpacklo_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 3005 { 3006 return (__m256i) __builtin_ia32_punpcklbw256_mask ((__v32qi) __A, 3007 (__v32qi) __B, 3008 (__v32qi) 3009 _mm256_setzero_si256 (), 3010 (__mmask32) __U); 3011 } 3012 3013 extern __inline __m128i 3014 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3015 _mm_mask_unpacklo_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 3016 __m128i __B) 3017 { 3018 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A, 3019 (__v16qi) __B, 3020 (__v16qi) __W, 3021 (__mmask16) __U); 3022 } 3023 3024 extern __inline __m128i 3025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3026 _mm_maskz_unpacklo_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 3027 { 3028 return (__m128i) __builtin_ia32_punpcklbw128_mask ((__v16qi) __A, 3029 (__v16qi) __B, 3030 (__v16qi) 3031 _mm_setzero_si128 (), 3032 (__mmask16) __U); 3033 } 3034 3035 extern __inline __m256i 3036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3037 _mm256_mask_unpacklo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 3038 __m256i __B) 3039 { 3040 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A, 3041 (__v16hi) __B, 3042 (__v16hi) __W, 3043 (__mmask16) __U); 3044 } 3045 3046 extern __inline __m256i 3047 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3048 _mm256_maskz_unpacklo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 3049 { 3050 return (__m256i) __builtin_ia32_punpcklwd256_mask ((__v16hi) __A, 3051 (__v16hi) __B, 3052 (__v16hi) 3053 _mm256_setzero_si256 (), 3054 (__mmask16) __U); 3055 } 3056 3057 extern __inline __m128i 3058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3059 _mm_mask_unpacklo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 3060 __m128i __B) 3061 { 3062 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A, 3063 (__v8hi) __B, 3064 (__v8hi) __W, 3065 (__mmask8) __U); 3066 } 3067 3068 extern __inline __m128i 3069 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3070 _mm_maskz_unpacklo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 3071 { 3072 return (__m128i) __builtin_ia32_punpcklwd128_mask ((__v8hi) __A, 3073 (__v8hi) __B, 3074 (__v8hi) 3075 _mm_setzero_si128 (), 3076 (__mmask8) __U); 3077 } 3078 3079 extern __inline __mmask16 3080 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3081 _mm_cmpeq_epi8_mask (__m128i __A, __m128i __B) 3082 { 3083 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A, 3084 (__v16qi) __B, 3085 (__mmask16) -1); 3086 } 3087 3088 extern __inline __mmask16 3089 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3090 _mm_cmpeq_epu8_mask (__m128i __A, __m128i __B) 3091 { 3092 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, 3093 (__v16qi) __B, 0, 3094 (__mmask16) -1); 3095 } 3096 3097 extern __inline __mmask16 3098 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3099 _mm_mask_cmpeq_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B) 3100 { 3101 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, 3102 (__v16qi) __B, 0, 3103 __U); 3104 } 3105 3106 extern __inline __mmask16 3107 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3108 _mm_mask_cmpeq_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) 3109 { 3110 return (__mmask16) __builtin_ia32_pcmpeqb128_mask ((__v16qi) __A, 3111 (__v16qi) __B, 3112 __U); 3113 } 3114 3115 extern __inline __mmask32 3116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3117 _mm256_cmpeq_epu8_mask (__m256i __A, __m256i __B) 3118 { 3119 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, 3120 (__v32qi) __B, 0, 3121 (__mmask32) -1); 3122 } 3123 3124 extern __inline __mmask32 3125 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3126 _mm256_cmpeq_epi8_mask (__m256i __A, __m256i __B) 3127 { 3128 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A, 3129 (__v32qi) __B, 3130 (__mmask32) -1); 3131 } 3132 3133 extern __inline __mmask32 3134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3135 _mm256_mask_cmpeq_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B) 3136 { 3137 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, 3138 (__v32qi) __B, 0, 3139 __U); 3140 } 3141 3142 extern __inline __mmask32 3143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3144 _mm256_mask_cmpeq_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) 3145 { 3146 return (__mmask32) __builtin_ia32_pcmpeqb256_mask ((__v32qi) __A, 3147 (__v32qi) __B, 3148 __U); 3149 } 3150 3151 extern __inline __mmask8 3152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3153 _mm_cmpeq_epu16_mask (__m128i __A, __m128i __B) 3154 { 3155 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, 3156 (__v8hi) __B, 0, 3157 (__mmask8) -1); 3158 } 3159 3160 extern __inline __mmask8 3161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3162 _mm_cmpeq_epi16_mask (__m128i __A, __m128i __B) 3163 { 3164 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A, 3165 (__v8hi) __B, 3166 (__mmask8) -1); 3167 } 3168 3169 extern __inline __mmask8 3170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3171 _mm_mask_cmpeq_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B) 3172 { 3173 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, 3174 (__v8hi) __B, 0, __U); 3175 } 3176 3177 extern __inline __mmask8 3178 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3179 _mm_mask_cmpeq_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) 3180 { 3181 return (__mmask8) __builtin_ia32_pcmpeqw128_mask ((__v8hi) __A, 3182 (__v8hi) __B, __U); 3183 } 3184 3185 extern __inline __mmask16 3186 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3187 _mm256_cmpeq_epu16_mask (__m256i __A, __m256i __B) 3188 { 3189 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, 3190 (__v16hi) __B, 0, 3191 (__mmask16) -1); 3192 } 3193 3194 extern __inline __mmask16 3195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3196 _mm256_cmpeq_epi16_mask (__m256i __A, __m256i __B) 3197 { 3198 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A, 3199 (__v16hi) __B, 3200 (__mmask16) -1); 3201 } 3202 3203 extern __inline __mmask16 3204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3205 _mm256_mask_cmpeq_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B) 3206 { 3207 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, 3208 (__v16hi) __B, 0, 3209 __U); 3210 } 3211 3212 extern __inline __mmask16 3213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3214 _mm256_mask_cmpeq_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) 3215 { 3216 return (__mmask16) __builtin_ia32_pcmpeqw256_mask ((__v16hi) __A, 3217 (__v16hi) __B, 3218 __U); 3219 } 3220 3221 extern __inline __mmask16 3222 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3223 _mm_cmpgt_epu8_mask (__m128i __A, __m128i __B) 3224 { 3225 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, 3226 (__v16qi) __B, 6, 3227 (__mmask16) -1); 3228 } 3229 3230 extern __inline __mmask16 3231 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3232 _mm_cmpgt_epi8_mask (__m128i __A, __m128i __B) 3233 { 3234 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A, 3235 (__v16qi) __B, 3236 (__mmask16) -1); 3237 } 3238 3239 extern __inline __mmask16 3240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3241 _mm_mask_cmpgt_epu8_mask (__mmask16 __U, __m128i __A, __m128i __B) 3242 { 3243 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __A, 3244 (__v16qi) __B, 6, 3245 __U); 3246 } 3247 3248 extern __inline __mmask16 3249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3250 _mm_mask_cmpgt_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) 3251 { 3252 return (__mmask16) __builtin_ia32_pcmpgtb128_mask ((__v16qi) __A, 3253 (__v16qi) __B, 3254 __U); 3255 } 3256 3257 extern __inline __mmask32 3258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3259 _mm256_cmpgt_epu8_mask (__m256i __A, __m256i __B) 3260 { 3261 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, 3262 (__v32qi) __B, 6, 3263 (__mmask32) -1); 3264 } 3265 3266 extern __inline __mmask32 3267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3268 _mm256_cmpgt_epi8_mask (__m256i __A, __m256i __B) 3269 { 3270 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A, 3271 (__v32qi) __B, 3272 (__mmask32) -1); 3273 } 3274 3275 extern __inline __mmask32 3276 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3277 _mm256_mask_cmpgt_epu8_mask (__mmask32 __U, __m256i __A, __m256i __B) 3278 { 3279 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __A, 3280 (__v32qi) __B, 6, 3281 __U); 3282 } 3283 3284 extern __inline __mmask32 3285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3286 _mm256_mask_cmpgt_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) 3287 { 3288 return (__mmask32) __builtin_ia32_pcmpgtb256_mask ((__v32qi) __A, 3289 (__v32qi) __B, 3290 __U); 3291 } 3292 3293 extern __inline __mmask8 3294 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3295 _mm_cmpgt_epu16_mask (__m128i __A, __m128i __B) 3296 { 3297 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, 3298 (__v8hi) __B, 6, 3299 (__mmask8) -1); 3300 } 3301 3302 extern __inline __mmask8 3303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3304 _mm_cmpgt_epi16_mask (__m128i __A, __m128i __B) 3305 { 3306 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A, 3307 (__v8hi) __B, 3308 (__mmask8) -1); 3309 } 3310 3311 extern __inline __mmask8 3312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3313 _mm_mask_cmpgt_epu16_mask (__mmask8 __U, __m128i __A, __m128i __B) 3314 { 3315 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __A, 3316 (__v8hi) __B, 6, __U); 3317 } 3318 3319 extern __inline __mmask8 3320 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3321 _mm_mask_cmpgt_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) 3322 { 3323 return (__mmask8) __builtin_ia32_pcmpgtw128_mask ((__v8hi) __A, 3324 (__v8hi) __B, __U); 3325 } 3326 3327 extern __inline __mmask16 3328 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3329 _mm256_cmpgt_epu16_mask (__m256i __A, __m256i __B) 3330 { 3331 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, 3332 (__v16hi) __B, 6, 3333 (__mmask16) -1); 3334 } 3335 3336 extern __inline __mmask16 3337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3338 _mm256_cmpgt_epi16_mask (__m256i __A, __m256i __B) 3339 { 3340 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A, 3341 (__v16hi) __B, 3342 (__mmask16) -1); 3343 } 3344 3345 extern __inline __mmask16 3346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3347 _mm256_mask_cmpgt_epu16_mask (__mmask16 __U, __m256i __A, __m256i __B) 3348 { 3349 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __A, 3350 (__v16hi) __B, 6, 3351 __U); 3352 } 3353 3354 extern __inline __mmask16 3355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3356 _mm256_mask_cmpgt_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) 3357 { 3358 return (__mmask16) __builtin_ia32_pcmpgtw256_mask ((__v16hi) __A, 3359 (__v16hi) __B, 3360 __U); 3361 } 3362 3363 extern __inline __mmask16 3364 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3365 _mm_testn_epi8_mask (__m128i __A, __m128i __B) 3366 { 3367 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, 3368 (__v16qi) __B, 3369 (__mmask16) -1); 3370 } 3371 3372 extern __inline __mmask16 3373 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3374 _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) 3375 { 3376 return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A, 3377 (__v16qi) __B, __U); 3378 } 3379 3380 extern __inline __mmask32 3381 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3382 _mm256_testn_epi8_mask (__m256i __A, __m256i __B) 3383 { 3384 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, 3385 (__v32qi) __B, 3386 (__mmask32) -1); 3387 } 3388 3389 extern __inline __mmask32 3390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3391 _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) 3392 { 3393 return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A, 3394 (__v32qi) __B, __U); 3395 } 3396 3397 extern __inline __mmask8 3398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3399 _mm_testn_epi16_mask (__m128i __A, __m128i __B) 3400 { 3401 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, 3402 (__v8hi) __B, 3403 (__mmask8) -1); 3404 } 3405 3406 extern __inline __mmask8 3407 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3408 _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) 3409 { 3410 return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A, 3411 (__v8hi) __B, __U); 3412 } 3413 3414 extern __inline __mmask16 3415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3416 _mm256_testn_epi16_mask (__m256i __A, __m256i __B) 3417 { 3418 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, 3419 (__v16hi) __B, 3420 (__mmask16) -1); 3421 } 3422 3423 extern __inline __mmask16 3424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3425 _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) 3426 { 3427 return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A, 3428 (__v16hi) __B, __U); 3429 } 3430 3431 extern __inline __m256i 3432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3433 _mm256_mask_shuffle_epi8 (__m256i __W, __mmask32 __U, __m256i __A, 3434 __m256i __B) 3435 { 3436 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A, 3437 (__v32qi) __B, 3438 (__v32qi) __W, 3439 (__mmask32) __U); 3440 } 3441 3442 extern __inline __m256i 3443 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3444 _mm256_maskz_shuffle_epi8 (__mmask32 __U, __m256i __A, __m256i __B) 3445 { 3446 return (__m256i) __builtin_ia32_pshufb256_mask ((__v32qi) __A, 3447 (__v32qi) __B, 3448 (__v32qi) 3449 _mm256_setzero_si256 (), 3450 (__mmask32) __U); 3451 } 3452 3453 extern __inline __m128i 3454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3455 _mm_mask_shuffle_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 3456 __m128i __B) 3457 { 3458 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A, 3459 (__v16qi) __B, 3460 (__v16qi) __W, 3461 (__mmask16) __U); 3462 } 3463 3464 extern __inline __m128i 3465 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3466 _mm_maskz_shuffle_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 3467 { 3468 return (__m128i) __builtin_ia32_pshufb128_mask ((__v16qi) __A, 3469 (__v16qi) __B, 3470 (__v16qi) 3471 _mm_setzero_si128 (), 3472 (__mmask16) __U); 3473 } 3474 3475 extern __inline __m256i 3476 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3477 _mm256_maskz_packs_epi16 (__mmask32 __M, __m256i __A, __m256i __B) 3478 { 3479 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A, 3480 (__v16hi) __B, 3481 (__v32qi) 3482 _mm256_setzero_si256 (), 3483 __M); 3484 } 3485 3486 extern __inline __m256i 3487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3488 _mm256_mask_packs_epi16 (__m256i __W, __mmask32 __M, __m256i __A, 3489 __m256i __B) 3490 { 3491 return (__m256i) __builtin_ia32_packsswb256_mask ((__v16hi) __A, 3492 (__v16hi) __B, 3493 (__v32qi) __W, 3494 __M); 3495 } 3496 3497 extern __inline __m128i 3498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3499 _mm_maskz_packs_epi16 (__mmask16 __M, __m128i __A, __m128i __B) 3500 { 3501 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A, 3502 (__v8hi) __B, 3503 (__v16qi) 3504 _mm_setzero_si128 (), 3505 __M); 3506 } 3507 3508 extern __inline __m128i 3509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3510 _mm_mask_packs_epi16 (__m128i __W, __mmask16 __M, __m128i __A, 3511 __m128i __B) 3512 { 3513 return (__m128i) __builtin_ia32_packsswb128_mask ((__v8hi) __A, 3514 (__v8hi) __B, 3515 (__v16qi) __W, 3516 __M); 3517 } 3518 3519 extern __inline __m256i 3520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3521 _mm256_maskz_packus_epi16 (__mmask32 __M, __m256i __A, __m256i __B) 3522 { 3523 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A, 3524 (__v16hi) __B, 3525 (__v32qi) 3526 _mm256_setzero_si256 (), 3527 __M); 3528 } 3529 3530 extern __inline __m256i 3531 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3532 _mm256_mask_packus_epi16 (__m256i __W, __mmask32 __M, __m256i __A, 3533 __m256i __B) 3534 { 3535 return (__m256i) __builtin_ia32_packuswb256_mask ((__v16hi) __A, 3536 (__v16hi) __B, 3537 (__v32qi) __W, 3538 __M); 3539 } 3540 3541 extern __inline __m128i 3542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3543 _mm_maskz_packus_epi16 (__mmask16 __M, __m128i __A, __m128i __B) 3544 { 3545 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A, 3546 (__v8hi) __B, 3547 (__v16qi) 3548 _mm_setzero_si128 (), 3549 __M); 3550 } 3551 3552 extern __inline __m128i 3553 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3554 _mm_mask_packus_epi16 (__m128i __W, __mmask16 __M, __m128i __A, 3555 __m128i __B) 3556 { 3557 return (__m128i) __builtin_ia32_packuswb128_mask ((__v8hi) __A, 3558 (__v8hi) __B, 3559 (__v16qi) __W, 3560 __M); 3561 } 3562 3563 extern __inline __m256i 3564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3565 _mm256_mask_abs_epi8 (__m256i __W, __mmask32 __U, __m256i __A) 3566 { 3567 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A, 3568 (__v32qi) __W, 3569 (__mmask32) __U); 3570 } 3571 3572 extern __inline __m256i 3573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3574 _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A) 3575 { 3576 return (__m256i) __builtin_ia32_pabsb256_mask ((__v32qi) __A, 3577 (__v32qi) 3578 _mm256_setzero_si256 (), 3579 (__mmask32) __U); 3580 } 3581 3582 extern __inline __m128i 3583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3584 _mm_mask_abs_epi8 (__m128i __W, __mmask16 __U, __m128i __A) 3585 { 3586 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A, 3587 (__v16qi) __W, 3588 (__mmask16) __U); 3589 } 3590 3591 extern __inline __m128i 3592 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3593 _mm_maskz_abs_epi8 (__mmask16 __U, __m128i __A) 3594 { 3595 return (__m128i) __builtin_ia32_pabsb128_mask ((__v16qi) __A, 3596 (__v16qi) 3597 _mm_setzero_si128 (), 3598 (__mmask16) __U); 3599 } 3600 3601 extern __inline __m256i 3602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3603 _mm256_mask_abs_epi16 (__m256i __W, __mmask16 __U, __m256i __A) 3604 { 3605 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A, 3606 (__v16hi) __W, 3607 (__mmask16) __U); 3608 } 3609 3610 extern __inline __m256i 3611 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3612 _mm256_maskz_abs_epi16 (__mmask16 __U, __m256i __A) 3613 { 3614 return (__m256i) __builtin_ia32_pabsw256_mask ((__v16hi) __A, 3615 (__v16hi) 3616 _mm256_setzero_si256 (), 3617 (__mmask16) __U); 3618 } 3619 3620 extern __inline __m128i 3621 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3622 _mm_mask_abs_epi16 (__m128i __W, __mmask8 __U, __m128i __A) 3623 { 3624 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A, 3625 (__v8hi) __W, 3626 (__mmask8) __U); 3627 } 3628 3629 extern __inline __m128i 3630 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3631 _mm_maskz_abs_epi16 (__mmask8 __U, __m128i __A) 3632 { 3633 return (__m128i) __builtin_ia32_pabsw128_mask ((__v8hi) __A, 3634 (__v8hi) 3635 _mm_setzero_si128 (), 3636 (__mmask8) __U); 3637 } 3638 3639 extern __inline __mmask32 3640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3641 _mm256_cmpneq_epu8_mask (__m256i __X, __m256i __Y) 3642 { 3643 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 3644 (__v32qi) __Y, 4, 3645 (__mmask32) -1); 3646 } 3647 3648 extern __inline __mmask32 3649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3650 _mm256_cmplt_epu8_mask (__m256i __X, __m256i __Y) 3651 { 3652 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 3653 (__v32qi) __Y, 1, 3654 (__mmask32) -1); 3655 } 3656 3657 extern __inline __mmask32 3658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3659 _mm256_cmpge_epu8_mask (__m256i __X, __m256i __Y) 3660 { 3661 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 3662 (__v32qi) __Y, 5, 3663 (__mmask32) -1); 3664 } 3665 3666 extern __inline __mmask32 3667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3668 _mm256_cmple_epu8_mask (__m256i __X, __m256i __Y) 3669 { 3670 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 3671 (__v32qi) __Y, 2, 3672 (__mmask32) -1); 3673 } 3674 3675 extern __inline __mmask16 3676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3677 _mm256_cmpneq_epu16_mask (__m256i __X, __m256i __Y) 3678 { 3679 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 3680 (__v16hi) __Y, 4, 3681 (__mmask16) -1); 3682 } 3683 3684 extern __inline __mmask16 3685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3686 _mm256_cmplt_epu16_mask (__m256i __X, __m256i __Y) 3687 { 3688 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 3689 (__v16hi) __Y, 1, 3690 (__mmask16) -1); 3691 } 3692 3693 extern __inline __mmask16 3694 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3695 _mm256_cmpge_epu16_mask (__m256i __X, __m256i __Y) 3696 { 3697 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 3698 (__v16hi) __Y, 5, 3699 (__mmask16) -1); 3700 } 3701 3702 extern __inline __mmask16 3703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3704 _mm256_cmple_epu16_mask (__m256i __X, __m256i __Y) 3705 { 3706 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 3707 (__v16hi) __Y, 2, 3708 (__mmask16) -1); 3709 } 3710 3711 extern __inline void 3712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3713 _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A) 3714 { 3715 __builtin_ia32_storedquhi256_mask ((short *) __P, 3716 (__v16hi) __A, 3717 (__mmask16) __U); 3718 } 3719 3720 extern __inline void 3721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3722 _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A) 3723 { 3724 __builtin_ia32_storedquhi128_mask ((short *) __P, 3725 (__v8hi) __A, 3726 (__mmask8) __U); 3727 } 3728 3729 extern __inline __m128i 3730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3731 _mm_mask_adds_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 3732 __m128i __B) 3733 { 3734 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A, 3735 (__v8hi) __B, 3736 (__v8hi) __W, 3737 (__mmask8) __U); 3738 } 3739 3740 extern __inline __m128i 3741 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3742 _mm_mask_subs_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 3743 __m128i __B) 3744 { 3745 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A, 3746 (__v16qi) __B, 3747 (__v16qi) __W, 3748 (__mmask16) __U); 3749 } 3750 3751 extern __inline __m128i 3752 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3753 _mm_maskz_subs_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 3754 { 3755 return (__m128i) __builtin_ia32_psubsb128_mask ((__v16qi) __A, 3756 (__v16qi) __B, 3757 (__v16qi) 3758 _mm_setzero_si128 (), 3759 (__mmask16) __U); 3760 } 3761 3762 extern __inline __m128i 3763 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3764 _mm_mask_subs_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 3765 __m128i __B) 3766 { 3767 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A, 3768 (__v8hi) __B, 3769 (__v8hi) __W, 3770 (__mmask8) __U); 3771 } 3772 3773 extern __inline __m128i 3774 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3775 _mm_maskz_subs_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 3776 { 3777 return (__m128i) __builtin_ia32_psubsw128_mask ((__v8hi) __A, 3778 (__v8hi) __B, 3779 (__v8hi) 3780 _mm_setzero_si128 (), 3781 (__mmask8) __U); 3782 } 3783 3784 extern __inline __m128i 3785 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3786 _mm_mask_subs_epu8 (__m128i __W, __mmask16 __U, __m128i __A, 3787 __m128i __B) 3788 { 3789 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A, 3790 (__v16qi) __B, 3791 (__v16qi) __W, 3792 (__mmask16) __U); 3793 } 3794 3795 extern __inline __m128i 3796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3797 _mm_maskz_subs_epu8 (__mmask16 __U, __m128i __A, __m128i __B) 3798 { 3799 return (__m128i) __builtin_ia32_psubusb128_mask ((__v16qi) __A, 3800 (__v16qi) __B, 3801 (__v16qi) 3802 _mm_setzero_si128 (), 3803 (__mmask16) __U); 3804 } 3805 3806 extern __inline __m128i 3807 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3808 _mm_mask_subs_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 3809 __m128i __B) 3810 { 3811 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A, 3812 (__v8hi) __B, 3813 (__v8hi) __W, 3814 (__mmask8) __U); 3815 } 3816 3817 extern __inline __m128i 3818 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3819 _mm_maskz_subs_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 3820 { 3821 return (__m128i) __builtin_ia32_psubusw128_mask ((__v8hi) __A, 3822 (__v8hi) __B, 3823 (__v8hi) 3824 _mm_setzero_si128 (), 3825 (__mmask8) __U); 3826 } 3827 3828 extern __inline __m256i 3829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3830 _mm256_mask_srl_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 3831 __m128i __B) 3832 { 3833 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A, 3834 (__v8hi) __B, 3835 (__v16hi) __W, 3836 (__mmask16) __U); 3837 } 3838 3839 extern __inline __m256i 3840 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3841 _mm256_maskz_srl_epi16 (__mmask16 __U, __m256i __A, __m128i __B) 3842 { 3843 return (__m256i) __builtin_ia32_psrlw256_mask ((__v16hi) __A, 3844 (__v8hi) __B, 3845 (__v16hi) 3846 _mm256_setzero_si256 (), 3847 (__mmask16) __U); 3848 } 3849 3850 extern __inline __m128i 3851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3852 _mm_mask_srl_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 3853 __m128i __B) 3854 { 3855 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A, 3856 (__v8hi) __B, 3857 (__v8hi) __W, 3858 (__mmask8) __U); 3859 } 3860 3861 extern __inline __m128i 3862 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3863 _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 3864 { 3865 return (__m128i) __builtin_ia32_psrlw128_mask ((__v8hi) __A, 3866 (__v8hi) __B, 3867 (__v8hi) 3868 _mm_setzero_si128 (), 3869 (__mmask8) __U); 3870 } 3871 3872 extern __inline __m256i 3873 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3874 _mm256_mask_sra_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 3875 __m128i __B) 3876 { 3877 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A, 3878 (__v8hi) __B, 3879 (__v16hi) __W, 3880 (__mmask16) __U); 3881 } 3882 3883 extern __inline __m256i 3884 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3885 _mm256_maskz_sra_epi16 (__mmask16 __U, __m256i __A, __m128i __B) 3886 { 3887 return (__m256i) __builtin_ia32_psraw256_mask ((__v16hi) __A, 3888 (__v8hi) __B, 3889 (__v16hi) 3890 _mm256_setzero_si256 (), 3891 (__mmask16) __U); 3892 } 3893 3894 extern __inline __m128i 3895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3896 _mm_mask_sra_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 3897 __m128i __B) 3898 { 3899 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A, 3900 (__v8hi) __B, 3901 (__v8hi) __W, 3902 (__mmask8) __U); 3903 } 3904 3905 extern __inline __m128i 3906 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3907 _mm_maskz_sra_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 3908 { 3909 return (__m128i) __builtin_ia32_psraw128_mask ((__v8hi) __A, 3910 (__v8hi) __B, 3911 (__v8hi) 3912 _mm_setzero_si128 (), 3913 (__mmask8) __U); 3914 } 3915 3916 extern __inline __m128i 3917 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3918 _mm_maskz_adds_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 3919 { 3920 return (__m128i) __builtin_ia32_paddsw128_mask ((__v8hi) __A, 3921 (__v8hi) __B, 3922 (__v8hi) 3923 _mm_setzero_si128 (), 3924 (__mmask8) __U); 3925 } 3926 3927 extern __inline __m128i 3928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3929 _mm_mask_adds_epu8 (__m128i __W, __mmask16 __U, __m128i __A, 3930 __m128i __B) 3931 { 3932 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A, 3933 (__v16qi) __B, 3934 (__v16qi) __W, 3935 (__mmask16) __U); 3936 } 3937 3938 extern __inline __m128i 3939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3940 _mm_maskz_adds_epu8 (__mmask16 __U, __m128i __A, __m128i __B) 3941 { 3942 return (__m128i) __builtin_ia32_paddusb128_mask ((__v16qi) __A, 3943 (__v16qi) __B, 3944 (__v16qi) 3945 _mm_setzero_si128 (), 3946 (__mmask16) __U); 3947 } 3948 3949 extern __inline __m128i 3950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3951 _mm_mask_adds_epu16 (__m128i __W, __mmask8 __U, __m128i __A, 3952 __m128i __B) 3953 { 3954 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A, 3955 (__v8hi) __B, 3956 (__v8hi) __W, 3957 (__mmask8) __U); 3958 } 3959 3960 extern __inline __m128i 3961 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3962 _mm_maskz_adds_epu16 (__mmask8 __U, __m128i __A, __m128i __B) 3963 { 3964 return (__m128i) __builtin_ia32_paddusw128_mask ((__v8hi) __A, 3965 (__v8hi) __B, 3966 (__v8hi) 3967 _mm_setzero_si128 (), 3968 (__mmask8) __U); 3969 } 3970 3971 extern __inline __m128i 3972 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3973 _mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 3974 __m128i __B) 3975 { 3976 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A, 3977 (__v16qi) __B, 3978 (__v16qi) __W, 3979 (__mmask16) __U); 3980 } 3981 3982 extern __inline __m128i 3983 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3984 _mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 3985 { 3986 return (__m128i) __builtin_ia32_psubb128_mask ((__v16qi) __A, 3987 (__v16qi) __B, 3988 (__v16qi) 3989 _mm_setzero_si128 (), 3990 (__mmask16) __U); 3991 } 3992 3993 extern __inline __m128i 3994 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 3995 _mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 3996 __m128i __B) 3997 { 3998 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A, 3999 (__v8hi) __B, 4000 (__v8hi) __W, 4001 (__mmask8) __U); 4002 } 4003 4004 extern __inline __m128i 4005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4006 _mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 4007 { 4008 return (__m128i) __builtin_ia32_psubw128_mask ((__v8hi) __A, 4009 (__v8hi) __B, 4010 (__v8hi) 4011 _mm_setzero_si128 (), 4012 (__mmask8) __U); 4013 } 4014 4015 extern __inline __m128i 4016 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4017 _mm_mask_adds_epi8 (__m128i __W, __mmask16 __U, __m128i __A, 4018 __m128i __B) 4019 { 4020 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A, 4021 (__v16qi) __B, 4022 (__v16qi) __W, 4023 (__mmask16) __U); 4024 } 4025 4026 extern __inline __m128i 4027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4028 _mm_maskz_adds_epi8 (__mmask16 __U, __m128i __A, __m128i __B) 4029 { 4030 return (__m128i) __builtin_ia32_paddsb128_mask ((__v16qi) __A, 4031 (__v16qi) __B, 4032 (__v16qi) 4033 _mm_setzero_si128 (), 4034 (__mmask16) __U); 4035 } 4036 4037 extern __inline __m128i 4038 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4039 _mm_cvtepi16_epi8 (__m128i __A) 4040 { 4041 4042 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 4043 (__v16qi)_mm_undefined_si128(), 4044 (__mmask8) -1); 4045 } 4046 4047 extern __inline void 4048 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4049 _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M,__m128i __A) 4050 { 4051 __builtin_ia32_pmovwb128mem_mask ((__v8qi *) __P , (__v8hi) __A, __M); 4052 } 4053 4054 extern __inline __m128i 4055 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4056 _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 4057 { 4058 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 4059 (__v16qi) __O, __M); 4060 } 4061 4062 extern __inline __m128i 4063 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4064 _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) 4065 { 4066 return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, 4067 (__v16qi) 4068 _mm_setzero_si128 (), 4069 __M); 4070 } 4071 4072 extern __inline __m256i 4073 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4074 _mm256_srav_epi16 (__m256i __A, __m256i __B) 4075 { 4076 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A, 4077 (__v16hi) __B, 4078 (__v16hi) 4079 _mm256_setzero_si256 (), 4080 (__mmask16) -1); 4081 } 4082 4083 extern __inline __m256i 4084 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4085 _mm256_mask_srav_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 4086 __m256i __B) 4087 { 4088 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A, 4089 (__v16hi) __B, 4090 (__v16hi) __W, 4091 (__mmask16) __U); 4092 } 4093 4094 extern __inline __m256i 4095 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4096 _mm256_maskz_srav_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 4097 { 4098 return (__m256i) __builtin_ia32_psrav16hi_mask ((__v16hi) __A, 4099 (__v16hi) __B, 4100 (__v16hi) 4101 _mm256_setzero_si256 (), 4102 (__mmask16) __U); 4103 } 4104 4105 extern __inline __m128i 4106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4107 _mm_srav_epi16 (__m128i __A, __m128i __B) 4108 { 4109 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A, 4110 (__v8hi) __B, 4111 (__v8hi) 4112 _mm_setzero_si128 (), 4113 (__mmask8) -1); 4114 } 4115 4116 extern __inline __m128i 4117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4118 _mm_mask_srav_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 4119 __m128i __B) 4120 { 4121 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A, 4122 (__v8hi) __B, 4123 (__v8hi) __W, 4124 (__mmask8) __U); 4125 } 4126 4127 extern __inline __m128i 4128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4129 _mm_maskz_srav_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 4130 { 4131 return (__m128i) __builtin_ia32_psrav8hi_mask ((__v8hi) __A, 4132 (__v8hi) __B, 4133 (__v8hi) 4134 _mm_setzero_si128 (), 4135 (__mmask8) __U); 4136 } 4137 4138 extern __inline __m256i 4139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4140 _mm256_srlv_epi16 (__m256i __A, __m256i __B) 4141 { 4142 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A, 4143 (__v16hi) __B, 4144 (__v16hi) 4145 _mm256_setzero_si256 (), 4146 (__mmask16) -1); 4147 } 4148 4149 extern __inline __m256i 4150 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4151 _mm256_mask_srlv_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 4152 __m256i __B) 4153 { 4154 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A, 4155 (__v16hi) __B, 4156 (__v16hi) __W, 4157 (__mmask16) __U); 4158 } 4159 4160 extern __inline __m256i 4161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4162 _mm256_maskz_srlv_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 4163 { 4164 return (__m256i) __builtin_ia32_psrlv16hi_mask ((__v16hi) __A, 4165 (__v16hi) __B, 4166 (__v16hi) 4167 _mm256_setzero_si256 (), 4168 (__mmask16) __U); 4169 } 4170 4171 extern __inline __m128i 4172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4173 _mm_srlv_epi16 (__m128i __A, __m128i __B) 4174 { 4175 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A, 4176 (__v8hi) __B, 4177 (__v8hi) 4178 _mm_setzero_si128 (), 4179 (__mmask8) -1); 4180 } 4181 4182 extern __inline __m128i 4183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4184 _mm_mask_srlv_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 4185 __m128i __B) 4186 { 4187 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A, 4188 (__v8hi) __B, 4189 (__v8hi) __W, 4190 (__mmask8) __U); 4191 } 4192 4193 extern __inline __m128i 4194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4195 _mm_maskz_srlv_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 4196 { 4197 return (__m128i) __builtin_ia32_psrlv8hi_mask ((__v8hi) __A, 4198 (__v8hi) __B, 4199 (__v8hi) 4200 _mm_setzero_si128 (), 4201 (__mmask8) __U); 4202 } 4203 4204 extern __inline __m256i 4205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4206 _mm256_sllv_epi16 (__m256i __A, __m256i __B) 4207 { 4208 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A, 4209 (__v16hi) __B, 4210 (__v16hi) 4211 _mm256_setzero_si256 (), 4212 (__mmask16) -1); 4213 } 4214 4215 extern __inline __m256i 4216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4217 _mm256_mask_sllv_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 4218 __m256i __B) 4219 { 4220 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A, 4221 (__v16hi) __B, 4222 (__v16hi) __W, 4223 (__mmask16) __U); 4224 } 4225 4226 extern __inline __m256i 4227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4228 _mm256_maskz_sllv_epi16 (__mmask16 __U, __m256i __A, __m256i __B) 4229 { 4230 return (__m256i) __builtin_ia32_psllv16hi_mask ((__v16hi) __A, 4231 (__v16hi) __B, 4232 (__v16hi) 4233 _mm256_setzero_si256 (), 4234 (__mmask16) __U); 4235 } 4236 4237 extern __inline __m128i 4238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4239 _mm_sllv_epi16 (__m128i __A, __m128i __B) 4240 { 4241 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A, 4242 (__v8hi) __B, 4243 (__v8hi) 4244 _mm_setzero_si128 (), 4245 (__mmask8) -1); 4246 } 4247 4248 extern __inline __m128i 4249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4250 _mm_mask_sllv_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 4251 __m128i __B) 4252 { 4253 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A, 4254 (__v8hi) __B, 4255 (__v8hi) __W, 4256 (__mmask8) __U); 4257 } 4258 4259 extern __inline __m128i 4260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4261 _mm_maskz_sllv_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 4262 { 4263 return (__m128i) __builtin_ia32_psllv8hi_mask ((__v8hi) __A, 4264 (__v8hi) __B, 4265 (__v8hi) 4266 _mm_setzero_si128 (), 4267 (__mmask8) __U); 4268 } 4269 4270 extern __inline __m128i 4271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4272 _mm_mask_sll_epi16 (__m128i __W, __mmask8 __U, __m128i __A, 4273 __m128i __B) 4274 { 4275 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A, 4276 (__v8hi) __B, 4277 (__v8hi) __W, 4278 (__mmask8) __U); 4279 } 4280 4281 extern __inline __m128i 4282 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4283 _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B) 4284 { 4285 return (__m128i) __builtin_ia32_psllw128_mask ((__v8hi) __A, 4286 (__v8hi) __B, 4287 (__v8hi) 4288 _mm_setzero_si128 (), 4289 (__mmask8) __U); 4290 } 4291 4292 extern __inline __m256i 4293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4294 _mm256_mask_sll_epi16 (__m256i __W, __mmask16 __U, __m256i __A, 4295 __m128i __B) 4296 { 4297 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A, 4298 (__v8hi) __B, 4299 (__v16hi) __W, 4300 (__mmask16) __U); 4301 } 4302 4303 extern __inline __m256i 4304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4305 _mm256_maskz_sll_epi16 (__mmask16 __U, __m256i __A, __m128i __B) 4306 { 4307 return (__m256i) __builtin_ia32_psllw256_mask ((__v16hi) __A, 4308 (__v8hi) __B, 4309 (__v16hi) 4310 _mm256_setzero_si256 (), 4311 (__mmask16) __U); 4312 } 4313 4314 extern __inline __m256i 4315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4316 _mm256_maskz_packus_epi32 (__mmask16 __M, __m256i __A, __m256i __B) 4317 { 4318 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A, 4319 (__v8si) __B, 4320 (__v16hi) 4321 _mm256_setzero_si256 (), 4322 __M); 4323 } 4324 4325 extern __inline __m256i 4326 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4327 _mm256_mask_packus_epi32 (__m256i __W, __mmask16 __M, __m256i __A, 4328 __m256i __B) 4329 { 4330 return (__m256i) __builtin_ia32_packusdw256_mask ((__v8si) __A, 4331 (__v8si) __B, 4332 (__v16hi) __W, 4333 __M); 4334 } 4335 4336 extern __inline __m128i 4337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4338 _mm_maskz_packus_epi32 (__mmask8 __M, __m128i __A, __m128i __B) 4339 { 4340 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, 4341 (__v4si) __B, 4342 (__v8hi) 4343 _mm_setzero_si128 (), 4344 __M); 4345 } 4346 4347 extern __inline __m128i 4348 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4349 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A, 4350 __m128i __B) 4351 { 4352 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, 4353 (__v4si) __B, 4354 (__v8hi) __W, __M); 4355 } 4356 4357 extern __inline __m256i 4358 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4359 _mm256_maskz_packs_epi32 (__mmask16 __M, __m256i __A, __m256i __B) 4360 { 4361 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A, 4362 (__v8si) __B, 4363 (__v16hi) 4364 _mm256_setzero_si256 (), 4365 __M); 4366 } 4367 4368 extern __inline __m256i 4369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4370 _mm256_mask_packs_epi32 (__m256i __W, __mmask16 __M, __m256i __A, 4371 __m256i __B) 4372 { 4373 return (__m256i) __builtin_ia32_packssdw256_mask ((__v8si) __A, 4374 (__v8si) __B, 4375 (__v16hi) __W, 4376 __M); 4377 } 4378 4379 extern __inline __m128i 4380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4381 _mm_maskz_packs_epi32 (__mmask8 __M, __m128i __A, __m128i __B) 4382 { 4383 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, 4384 (__v4si) __B, 4385 (__v8hi) 4386 _mm_setzero_si128 (), 4387 __M); 4388 } 4389 4390 extern __inline __m128i 4391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4392 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A, 4393 __m128i __B) 4394 { 4395 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, 4396 (__v4si) __B, 4397 (__v8hi) __W, __M); 4398 } 4399 4400 extern __inline __mmask16 4401 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4402 _mm_mask_cmpneq_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4403 { 4404 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 4405 (__v16qi) __Y, 4, 4406 (__mmask16) __M); 4407 } 4408 4409 extern __inline __mmask16 4410 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4411 _mm_mask_cmplt_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4412 { 4413 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 4414 (__v16qi) __Y, 1, 4415 (__mmask16) __M); 4416 } 4417 4418 extern __inline __mmask16 4419 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4420 _mm_mask_cmpge_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4421 { 4422 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 4423 (__v16qi) __Y, 5, 4424 (__mmask16) __M); 4425 } 4426 4427 extern __inline __mmask16 4428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4429 _mm_mask_cmple_epu8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4430 { 4431 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, 4432 (__v16qi) __Y, 2, 4433 (__mmask16) __M); 4434 } 4435 4436 extern __inline __mmask8 4437 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4438 _mm_mask_cmpneq_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4439 { 4440 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 4441 (__v8hi) __Y, 4, 4442 (__mmask8) __M); 4443 } 4444 4445 extern __inline __mmask8 4446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4447 _mm_mask_cmplt_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4448 { 4449 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 4450 (__v8hi) __Y, 1, 4451 (__mmask8) __M); 4452 } 4453 4454 extern __inline __mmask8 4455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4456 _mm_mask_cmpge_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4457 { 4458 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 4459 (__v8hi) __Y, 5, 4460 (__mmask8) __M); 4461 } 4462 4463 extern __inline __mmask8 4464 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4465 _mm_mask_cmple_epu16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4466 { 4467 return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X, 4468 (__v8hi) __Y, 2, 4469 (__mmask8) __M); 4470 } 4471 4472 extern __inline __mmask16 4473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4474 _mm_mask_cmpneq_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4475 { 4476 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 4477 (__v16qi) __Y, 4, 4478 (__mmask16) __M); 4479 } 4480 4481 extern __inline __mmask16 4482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4483 _mm_mask_cmplt_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4484 { 4485 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 4486 (__v16qi) __Y, 1, 4487 (__mmask16) __M); 4488 } 4489 4490 extern __inline __mmask16 4491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4492 _mm_mask_cmpge_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4493 { 4494 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 4495 (__v16qi) __Y, 5, 4496 (__mmask16) __M); 4497 } 4498 4499 extern __inline __mmask16 4500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4501 _mm_mask_cmple_epi8_mask (__mmask16 __M, __m128i __X, __m128i __Y) 4502 { 4503 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, 4504 (__v16qi) __Y, 2, 4505 (__mmask16) __M); 4506 } 4507 4508 extern __inline __mmask8 4509 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4510 _mm_mask_cmpneq_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4511 { 4512 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 4513 (__v8hi) __Y, 4, 4514 (__mmask8) __M); 4515 } 4516 4517 extern __inline __mmask8 4518 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4519 _mm_mask_cmplt_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4520 { 4521 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 4522 (__v8hi) __Y, 1, 4523 (__mmask8) __M); 4524 } 4525 4526 extern __inline __mmask8 4527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4528 _mm_mask_cmpge_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4529 { 4530 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 4531 (__v8hi) __Y, 5, 4532 (__mmask8) __M); 4533 } 4534 4535 extern __inline __mmask8 4536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4537 _mm_mask_cmple_epi16_mask (__mmask8 __M, __m128i __X, __m128i __Y) 4538 { 4539 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, 4540 (__v8hi) __Y, 2, 4541 (__mmask8) __M); 4542 } 4543 4544 extern __inline __mmask8 4545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4546 _mm256_mask_cmpneq_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4547 { 4548 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 4549 (__v32qi) __Y, 4, 4550 (__mmask8) __M); 4551 } 4552 4553 extern __inline __mmask8 4554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4555 _mm256_mask_cmplt_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4556 { 4557 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 4558 (__v32qi) __Y, 1, 4559 (__mmask8) __M); 4560 } 4561 4562 extern __inline __mmask8 4563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4564 _mm256_mask_cmpge_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4565 { 4566 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 4567 (__v32qi) __Y, 5, 4568 (__mmask8) __M); 4569 } 4570 4571 extern __inline __mmask8 4572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4573 _mm256_mask_cmple_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4574 { 4575 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, 4576 (__v32qi) __Y, 2, 4577 (__mmask8) __M); 4578 } 4579 4580 extern __inline __mmask8 4581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4582 _mm256_mask_cmpneq_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4583 { 4584 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 4585 (__v16hi) __Y, 4, 4586 (__mmask8) __M); 4587 } 4588 4589 extern __inline __mmask8 4590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4591 _mm256_mask_cmplt_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4592 { 4593 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 4594 (__v16hi) __Y, 1, 4595 (__mmask8) __M); 4596 } 4597 4598 extern __inline __mmask8 4599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4600 _mm256_mask_cmpge_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4601 { 4602 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 4603 (__v16hi) __Y, 5, 4604 (__mmask8) __M); 4605 } 4606 4607 extern __inline __mmask8 4608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4609 _mm256_mask_cmple_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4610 { 4611 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, 4612 (__v16hi) __Y, 2, 4613 (__mmask8) __M); 4614 } 4615 4616 extern __inline __mmask8 4617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4618 _mm256_mask_cmpneq_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4619 { 4620 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 4621 (__v32qi) __Y, 4, 4622 (__mmask8) __M); 4623 } 4624 4625 extern __inline __mmask8 4626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4627 _mm256_mask_cmplt_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4628 { 4629 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 4630 (__v32qi) __Y, 1, 4631 (__mmask8) __M); 4632 } 4633 4634 extern __inline __mmask8 4635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4636 _mm256_mask_cmpge_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4637 { 4638 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 4639 (__v32qi) __Y, 5, 4640 (__mmask8) __M); 4641 } 4642 4643 extern __inline __mmask8 4644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4645 _mm256_mask_cmple_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4646 { 4647 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, 4648 (__v32qi) __Y, 2, 4649 (__mmask8) __M); 4650 } 4651 4652 extern __inline __mmask8 4653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4654 _mm256_mask_cmpneq_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4655 { 4656 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 4657 (__v16hi) __Y, 4, 4658 (__mmask8) __M); 4659 } 4660 4661 extern __inline __mmask8 4662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4663 _mm256_mask_cmplt_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4664 { 4665 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 4666 (__v16hi) __Y, 1, 4667 (__mmask8) __M); 4668 } 4669 4670 extern __inline __mmask8 4671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4672 _mm256_mask_cmpge_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4673 { 4674 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 4675 (__v16hi) __Y, 5, 4676 (__mmask8) __M); 4677 } 4678 4679 extern __inline __mmask8 4680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 4681 _mm256_mask_cmple_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) 4682 { 4683 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, 4684 (__v16hi) __Y, 2, 4685 (__mmask8) __M); 4686 } 4687 4688 #ifdef __DISABLE_AVX512VLBW__ 4689 #undef __DISABLE_AVX512VLBW__ 4690 #pragma GCC pop_options 4691 #endif /* __DISABLE_AVX512VLBW__ */ 4692 4693 #endif /* _AVX512VLBWINTRIN_H_INCLUDED */ 4694