Home | History | Annotate | Line # | Download | only in i386
avx512vlintrin.h revision 1.1.1.5
      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 <avx512vlintrin.h> directly; include <immintrin.h> instead."
     26 #endif
     27 
     28 #ifndef _AVX512VLINTRIN_H_INCLUDED
     29 #define _AVX512VLINTRIN_H_INCLUDED
     30 
     31 #ifndef __AVX512VL__
     32 #pragma GCC push_options
     33 #pragma GCC target("avx512vl")
     34 #define __DISABLE_AVX512VL__
     35 #endif /* __AVX512VL__ */
     36 
     37 /* Internal data types for implementing the intrinsics.  */
     38 typedef unsigned int __mmask32;
     39 
     40 extern __inline __m256d
     41 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     42 _mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
     43 {
     44   return (__m256d) __builtin_ia32_movapd256_mask ((__v4df) __A,
     45 						  (__v4df) __W,
     46 						  (__mmask8) __U);
     47 }
     48 
     49 extern __inline __m256d
     50 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     51 _mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
     52 {
     53   return (__m256d) __builtin_ia32_movapd256_mask ((__v4df) __A,
     54 						  (__v4df)
     55 						  _mm256_setzero_pd (),
     56 						  (__mmask8) __U);
     57 }
     58 
     59 extern __inline __m128d
     60 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     61 _mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
     62 {
     63   return (__m128d) __builtin_ia32_movapd128_mask ((__v2df) __A,
     64 						  (__v2df) __W,
     65 						  (__mmask8) __U);
     66 }
     67 
     68 extern __inline __m128d
     69 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     70 _mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
     71 {
     72   return (__m128d) __builtin_ia32_movapd128_mask ((__v2df) __A,
     73 						  (__v2df)
     74 						  _mm_setzero_pd (),
     75 						  (__mmask8) __U);
     76 }
     77 
     78 extern __inline __m256d
     79 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     80 _mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
     81 {
     82   return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
     83 						   (__v4df) __W,
     84 						   (__mmask8) __U);
     85 }
     86 
     87 extern __inline __m256d
     88 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     89 _mm256_maskz_load_pd (__mmask8 __U, void const *__P)
     90 {
     91   return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P,
     92 						   (__v4df)
     93 						   _mm256_setzero_pd (),
     94 						   (__mmask8) __U);
     95 }
     96 
     97 extern __inline __m128d
     98 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
     99 _mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
    100 {
    101   return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
    102 						   (__v2df) __W,
    103 						   (__mmask8) __U);
    104 }
    105 
    106 extern __inline __m128d
    107 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    108 _mm_maskz_load_pd (__mmask8 __U, void const *__P)
    109 {
    110   return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P,
    111 						   (__v2df)
    112 						   _mm_setzero_pd (),
    113 						   (__mmask8) __U);
    114 }
    115 
    116 extern __inline void
    117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    118 _mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
    119 {
    120   __builtin_ia32_storeapd256_mask ((__v4df *) __P,
    121 				   (__v4df) __A,
    122 				   (__mmask8) __U);
    123 }
    124 
    125 extern __inline void
    126 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    127 _mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
    128 {
    129   __builtin_ia32_storeapd128_mask ((__v2df *) __P,
    130 				   (__v2df) __A,
    131 				   (__mmask8) __U);
    132 }
    133 
    134 extern __inline __m256
    135 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    136 _mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
    137 {
    138   return (__m256) __builtin_ia32_movaps256_mask ((__v8sf) __A,
    139 						 (__v8sf) __W,
    140 						 (__mmask8) __U);
    141 }
    142 
    143 extern __inline __m256
    144 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    145 _mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
    146 {
    147   return (__m256) __builtin_ia32_movaps256_mask ((__v8sf) __A,
    148 						 (__v8sf)
    149 						 _mm256_setzero_ps (),
    150 						 (__mmask8) __U);
    151 }
    152 
    153 extern __inline __m128
    154 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    155 _mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
    156 {
    157   return (__m128) __builtin_ia32_movaps128_mask ((__v4sf) __A,
    158 						 (__v4sf) __W,
    159 						 (__mmask8) __U);
    160 }
    161 
    162 extern __inline __m128
    163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    164 _mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
    165 {
    166   return (__m128) __builtin_ia32_movaps128_mask ((__v4sf) __A,
    167 						 (__v4sf)
    168 						 _mm_setzero_ps (),
    169 						 (__mmask8) __U);
    170 }
    171 
    172 extern __inline __m256
    173 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    174 _mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
    175 {
    176   return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
    177 						  (__v8sf) __W,
    178 						  (__mmask8) __U);
    179 }
    180 
    181 extern __inline __m256
    182 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    183 _mm256_maskz_load_ps (__mmask8 __U, void const *__P)
    184 {
    185   return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P,
    186 						  (__v8sf)
    187 						  _mm256_setzero_ps (),
    188 						  (__mmask8) __U);
    189 }
    190 
    191 extern __inline __m128
    192 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    193 _mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
    194 {
    195   return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
    196 						  (__v4sf) __W,
    197 						  (__mmask8) __U);
    198 }
    199 
    200 extern __inline __m128
    201 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    202 _mm_maskz_load_ps (__mmask8 __U, void const *__P)
    203 {
    204   return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P,
    205 						  (__v4sf)
    206 						  _mm_setzero_ps (),
    207 						  (__mmask8) __U);
    208 }
    209 
    210 extern __inline void
    211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    212 _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
    213 {
    214   __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
    215 				   (__v8sf) __A,
    216 				   (__mmask8) __U);
    217 }
    218 
    219 extern __inline void
    220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    221 _mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
    222 {
    223   __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
    224 				   (__v4sf) __A,
    225 				   (__mmask8) __U);
    226 }
    227 
    228 extern __inline __m256i
    229 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    230 _mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
    231 {
    232   return (__m256i) __builtin_ia32_movdqa64_256_mask ((__v4di) __A,
    233 						     (__v4di) __W,
    234 						     (__mmask8) __U);
    235 }
    236 
    237 extern __inline __m256i
    238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    239 _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
    240 {
    241   return (__m256i) __builtin_ia32_movdqa64_256_mask ((__v4di) __A,
    242 						     (__v4di)
    243 						     _mm256_setzero_si256 (),
    244 						     (__mmask8) __U);
    245 }
    246 
    247 extern __inline __m128i
    248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    249 _mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
    250 {
    251   return (__m128i) __builtin_ia32_movdqa64_128_mask ((__v2di) __A,
    252 						     (__v2di) __W,
    253 						     (__mmask8) __U);
    254 }
    255 
    256 extern __inline __m128i
    257 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    258 _mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
    259 {
    260   return (__m128i) __builtin_ia32_movdqa64_128_mask ((__v2di) __A,
    261 						     (__v2di)
    262 						     _mm_setzero_si128 (),
    263 						     (__mmask8) __U);
    264 }
    265 
    266 extern __inline __m256i
    267 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    268 _mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
    269 {
    270   return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
    271 							(__v4di) __W,
    272 							(__mmask8)
    273 							__U);
    274 }
    275 
    276 extern __inline __m256i
    277 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    278 _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
    279 {
    280   return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P,
    281 							(__v4di)
    282 							_mm256_setzero_si256 (),
    283 							(__mmask8)
    284 							__U);
    285 }
    286 
    287 extern __inline __m128i
    288 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    289 _mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
    290 {
    291   return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
    292 							(__v2di) __W,
    293 							(__mmask8)
    294 							__U);
    295 }
    296 
    297 extern __inline __m128i
    298 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    299 _mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
    300 {
    301   return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P,
    302 							(__v2di)
    303 							_mm_setzero_si128 (),
    304 							(__mmask8)
    305 							__U);
    306 }
    307 
    308 extern __inline void
    309 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    310 _mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
    311 {
    312   __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
    313 					(__v4di) __A,
    314 					(__mmask8) __U);
    315 }
    316 
    317 extern __inline void
    318 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    319 _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
    320 {
    321   __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
    322 					(__v2di) __A,
    323 					(__mmask8) __U);
    324 }
    325 
    326 extern __inline __m256i
    327 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    328 _mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
    329 {
    330   return (__m256i) __builtin_ia32_movdqa32_256_mask ((__v8si) __A,
    331 						     (__v8si) __W,
    332 						     (__mmask8) __U);
    333 }
    334 
    335 extern __inline __m256i
    336 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    337 _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
    338 {
    339   return (__m256i) __builtin_ia32_movdqa32_256_mask ((__v8si) __A,
    340 						     (__v8si)
    341 						     _mm256_setzero_si256 (),
    342 						     (__mmask8) __U);
    343 }
    344 
    345 extern __inline __m128i
    346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    347 _mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
    348 {
    349   return (__m128i) __builtin_ia32_movdqa32_128_mask ((__v4si) __A,
    350 						     (__v4si) __W,
    351 						     (__mmask8) __U);
    352 }
    353 
    354 extern __inline __m128i
    355 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    356 _mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
    357 {
    358   return (__m128i) __builtin_ia32_movdqa32_128_mask ((__v4si) __A,
    359 						     (__v4si)
    360 						     _mm_setzero_si128 (),
    361 						     (__mmask8) __U);
    362 }
    363 
    364 extern __inline __m256i
    365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    366 _mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
    367 {
    368   return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
    369 							(__v8si) __W,
    370 							(__mmask8)
    371 							__U);
    372 }
    373 
    374 extern __inline __m256i
    375 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    376 _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
    377 {
    378   return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P,
    379 							(__v8si)
    380 							_mm256_setzero_si256 (),
    381 							(__mmask8)
    382 							__U);
    383 }
    384 
    385 extern __inline __m128i
    386 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    387 _mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
    388 {
    389   return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
    390 							(__v4si) __W,
    391 							(__mmask8)
    392 							__U);
    393 }
    394 
    395 extern __inline __m128i
    396 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    397 _mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
    398 {
    399   return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P,
    400 							(__v4si)
    401 							_mm_setzero_si128 (),
    402 							(__mmask8)
    403 							__U);
    404 }
    405 
    406 extern __inline void
    407 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    408 _mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
    409 {
    410   __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
    411 					(__v8si) __A,
    412 					(__mmask8) __U);
    413 }
    414 
    415 extern __inline void
    416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    417 _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
    418 {
    419   __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
    420 					(__v4si) __A,
    421 					(__mmask8) __U);
    422 }
    423 
    424 extern __inline __m128d
    425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    426 _mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    427 {
    428   return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
    429 						 (__v2df) __B,
    430 						 (__v2df) __W,
    431 						 (__mmask8) __U);
    432 }
    433 
    434 extern __inline __m128d
    435 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    436 _mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B)
    437 {
    438   return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A,
    439 						 (__v2df) __B,
    440 						 (__v2df)
    441 						 _mm_setzero_pd (),
    442 						 (__mmask8) __U);
    443 }
    444 
    445 extern __inline __m256d
    446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    447 _mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A,
    448 		    __m256d __B)
    449 {
    450   return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
    451 						 (__v4df) __B,
    452 						 (__v4df) __W,
    453 						 (__mmask8) __U);
    454 }
    455 
    456 extern __inline __m256d
    457 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    458 _mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B)
    459 {
    460   return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A,
    461 						 (__v4df) __B,
    462 						 (__v4df)
    463 						 _mm256_setzero_pd (),
    464 						 (__mmask8) __U);
    465 }
    466 
    467 extern __inline __m128
    468 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    469 _mm_mask_add_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    470 {
    471   return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
    472 						(__v4sf) __B,
    473 						(__v4sf) __W,
    474 						(__mmask8) __U);
    475 }
    476 
    477 extern __inline __m128
    478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    479 _mm_maskz_add_ps (__mmask8 __U, __m128 __A, __m128 __B)
    480 {
    481   return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A,
    482 						(__v4sf) __B,
    483 						(__v4sf)
    484 						_mm_setzero_ps (),
    485 						(__mmask8) __U);
    486 }
    487 
    488 extern __inline __m256
    489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    490 _mm256_mask_add_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
    491 {
    492   return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
    493 						(__v8sf) __B,
    494 						(__v8sf) __W,
    495 						(__mmask8) __U);
    496 }
    497 
    498 extern __inline __m256
    499 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    500 _mm256_maskz_add_ps (__mmask8 __U, __m256 __A, __m256 __B)
    501 {
    502   return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A,
    503 						(__v8sf) __B,
    504 						(__v8sf)
    505 						_mm256_setzero_ps (),
    506 						(__mmask8) __U);
    507 }
    508 
    509 extern __inline __m128d
    510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    511 _mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
    512 {
    513   return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
    514 						 (__v2df) __B,
    515 						 (__v2df) __W,
    516 						 (__mmask8) __U);
    517 }
    518 
    519 extern __inline __m128d
    520 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    521 _mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B)
    522 {
    523   return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A,
    524 						 (__v2df) __B,
    525 						 (__v2df)
    526 						 _mm_setzero_pd (),
    527 						 (__mmask8) __U);
    528 }
    529 
    530 extern __inline __m256d
    531 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    532 _mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A,
    533 		    __m256d __B)
    534 {
    535   return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
    536 						 (__v4df) __B,
    537 						 (__v4df) __W,
    538 						 (__mmask8) __U);
    539 }
    540 
    541 extern __inline __m256d
    542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    543 _mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B)
    544 {
    545   return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A,
    546 						 (__v4df) __B,
    547 						 (__v4df)
    548 						 _mm256_setzero_pd (),
    549 						 (__mmask8) __U);
    550 }
    551 
    552 extern __inline __m128
    553 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    554 _mm_mask_sub_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
    555 {
    556   return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
    557 						(__v4sf) __B,
    558 						(__v4sf) __W,
    559 						(__mmask8) __U);
    560 }
    561 
    562 extern __inline __m128
    563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    564 _mm_maskz_sub_ps (__mmask8 __U, __m128 __A, __m128 __B)
    565 {
    566   return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A,
    567 						(__v4sf) __B,
    568 						(__v4sf)
    569 						_mm_setzero_ps (),
    570 						(__mmask8) __U);
    571 }
    572 
    573 extern __inline __m256
    574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    575 _mm256_mask_sub_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
    576 {
    577   return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
    578 						(__v8sf) __B,
    579 						(__v8sf) __W,
    580 						(__mmask8) __U);
    581 }
    582 
    583 extern __inline __m256
    584 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    585 _mm256_maskz_sub_ps (__mmask8 __U, __m256 __A, __m256 __B)
    586 {
    587   return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A,
    588 						(__v8sf) __B,
    589 						(__v8sf)
    590 						_mm256_setzero_ps (),
    591 						(__mmask8) __U);
    592 }
    593 
    594 extern __inline void
    595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    596 _mm256_store_epi64 (void *__P, __m256i __A)
    597 {
    598   *(__m256i *) __P = __A;
    599 }
    600 
    601 extern __inline void
    602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    603 _mm_store_epi64 (void *__P, __m128i __A)
    604 {
    605   *(__m128i *) __P = __A;
    606 }
    607 
    608 extern __inline __m256d
    609 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    610 _mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
    611 {
    612   return (__m256d) __builtin_ia32_loadupd256_mask ((const double *) __P,
    613 						   (__v4df) __W,
    614 						   (__mmask8) __U);
    615 }
    616 
    617 extern __inline __m256d
    618 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    619 _mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
    620 {
    621   return (__m256d) __builtin_ia32_loadupd256_mask ((const double *) __P,
    622 						   (__v4df)
    623 						   _mm256_setzero_pd (),
    624 						   (__mmask8) __U);
    625 }
    626 
    627 extern __inline __m128d
    628 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    629 _mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
    630 {
    631   return (__m128d) __builtin_ia32_loadupd128_mask ((const double *) __P,
    632 						   (__v2df) __W,
    633 						   (__mmask8) __U);
    634 }
    635 
    636 extern __inline __m128d
    637 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    638 _mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
    639 {
    640   return (__m128d) __builtin_ia32_loadupd128_mask ((const double *) __P,
    641 						   (__v2df)
    642 						   _mm_setzero_pd (),
    643 						   (__mmask8) __U);
    644 }
    645 
    646 extern __inline void
    647 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    648 _mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
    649 {
    650   __builtin_ia32_storeupd256_mask ((double *) __P,
    651 				   (__v4df) __A,
    652 				   (__mmask8) __U);
    653 }
    654 
    655 extern __inline void
    656 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    657 _mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
    658 {
    659   __builtin_ia32_storeupd128_mask ((double *) __P,
    660 				   (__v2df) __A,
    661 				   (__mmask8) __U);
    662 }
    663 
    664 extern __inline __m256
    665 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    666 _mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
    667 {
    668   return (__m256) __builtin_ia32_loadups256_mask ((const float *) __P,
    669 						  (__v8sf) __W,
    670 						  (__mmask8) __U);
    671 }
    672 
    673 extern __inline __m256
    674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    675 _mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
    676 {
    677   return (__m256) __builtin_ia32_loadups256_mask ((const float *) __P,
    678 						  (__v8sf)
    679 						  _mm256_setzero_ps (),
    680 						  (__mmask8) __U);
    681 }
    682 
    683 extern __inline __m128
    684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    685 _mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
    686 {
    687   return (__m128) __builtin_ia32_loadups128_mask ((const float *) __P,
    688 						  (__v4sf) __W,
    689 						  (__mmask8) __U);
    690 }
    691 
    692 extern __inline __m128
    693 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    694 _mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
    695 {
    696   return (__m128) __builtin_ia32_loadups128_mask ((const float *) __P,
    697 						  (__v4sf)
    698 						  _mm_setzero_ps (),
    699 						  (__mmask8) __U);
    700 }
    701 
    702 extern __inline void
    703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    704 _mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
    705 {
    706   __builtin_ia32_storeups256_mask ((float *) __P,
    707 				   (__v8sf) __A,
    708 				   (__mmask8) __U);
    709 }
    710 
    711 extern __inline void
    712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    713 _mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
    714 {
    715   __builtin_ia32_storeups128_mask ((float *) __P,
    716 				   (__v4sf) __A,
    717 				   (__mmask8) __U);
    718 }
    719 
    720 extern __inline __m256i
    721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    722 _mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
    723 {
    724   return (__m256i) __builtin_ia32_loaddqudi256_mask ((const long long *) __P,
    725 						     (__v4di) __W,
    726 						     (__mmask8) __U);
    727 }
    728 
    729 extern __inline __m256i
    730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    731 _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
    732 {
    733   return (__m256i) __builtin_ia32_loaddqudi256_mask ((const long long *) __P,
    734 						     (__v4di)
    735 						     _mm256_setzero_si256 (),
    736 						     (__mmask8) __U);
    737 }
    738 
    739 extern __inline __m128i
    740 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    741 _mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
    742 {
    743   return (__m128i) __builtin_ia32_loaddqudi128_mask ((const long long *) __P,
    744 						     (__v2di) __W,
    745 						     (__mmask8) __U);
    746 }
    747 
    748 extern __inline __m128i
    749 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    750 _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
    751 {
    752   return (__m128i) __builtin_ia32_loaddqudi128_mask ((const long long *) __P,
    753 						     (__v2di)
    754 						     _mm_setzero_si128 (),
    755 						     (__mmask8) __U);
    756 }
    757 
    758 extern __inline void
    759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    760 _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
    761 {
    762   __builtin_ia32_storedqudi256_mask ((long long *) __P,
    763 				     (__v4di) __A,
    764 				     (__mmask8) __U);
    765 }
    766 
    767 extern __inline void
    768 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    769 _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
    770 {
    771   __builtin_ia32_storedqudi128_mask ((long long *) __P,
    772 				     (__v2di) __A,
    773 				     (__mmask8) __U);
    774 }
    775 
    776 extern __inline __m256i
    777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    778 _mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
    779 {
    780   return (__m256i) __builtin_ia32_loaddqusi256_mask ((const int *) __P,
    781 						     (__v8si) __W,
    782 						     (__mmask8) __U);
    783 }
    784 
    785 extern __inline __m256i
    786 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    787 _mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
    788 {
    789   return (__m256i) __builtin_ia32_loaddqusi256_mask ((const int *) __P,
    790 						     (__v8si)
    791 						     _mm256_setzero_si256 (),
    792 						     (__mmask8) __U);
    793 }
    794 
    795 extern __inline __m128i
    796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    797 _mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
    798 {
    799   return (__m128i) __builtin_ia32_loaddqusi128_mask ((const int *) __P,
    800 						     (__v4si) __W,
    801 						     (__mmask8) __U);
    802 }
    803 
    804 extern __inline __m128i
    805 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    806 _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
    807 {
    808   return (__m128i) __builtin_ia32_loaddqusi128_mask ((const int *) __P,
    809 						     (__v4si)
    810 						     _mm_setzero_si128 (),
    811 						     (__mmask8) __U);
    812 }
    813 
    814 extern __inline void
    815 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    816 _mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
    817 {
    818   __builtin_ia32_storedqusi256_mask ((int *) __P,
    819 				     (__v8si) __A,
    820 				     (__mmask8) __U);
    821 }
    822 
    823 extern __inline void
    824 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    825 _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
    826 {
    827   __builtin_ia32_storedqusi128_mask ((int *) __P,
    828 				     (__v4si) __A,
    829 				     (__mmask8) __U);
    830 }
    831 
    832 extern __inline __m256i
    833 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    834 _mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
    835 {
    836   return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
    837 						 (__v8si) __W,
    838 						 (__mmask8) __U);
    839 }
    840 
    841 extern __inline __m256i
    842 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    843 _mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A)
    844 {
    845   return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A,
    846 						 (__v8si)
    847 						 _mm256_setzero_si256 (),
    848 						 (__mmask8) __U);
    849 }
    850 
    851 extern __inline __m128i
    852 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    853 _mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
    854 {
    855   return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
    856 						 (__v4si) __W,
    857 						 (__mmask8) __U);
    858 }
    859 
    860 extern __inline __m128i
    861 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    862 _mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A)
    863 {
    864   return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A,
    865 						 (__v4si)
    866 						 _mm_setzero_si128 (),
    867 						 (__mmask8) __U);
    868 }
    869 
    870 extern __inline __m256i
    871 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    872 _mm256_abs_epi64 (__m256i __A)
    873 {
    874   return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
    875 						 (__v4di)
    876 						 _mm256_setzero_si256 (),
    877 						 (__mmask8) -1);
    878 }
    879 
    880 extern __inline __m256i
    881 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    882 _mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
    883 {
    884   return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
    885 						 (__v4di) __W,
    886 						 (__mmask8) __U);
    887 }
    888 
    889 extern __inline __m256i
    890 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    891 _mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A)
    892 {
    893   return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A,
    894 						 (__v4di)
    895 						 _mm256_setzero_si256 (),
    896 						 (__mmask8) __U);
    897 }
    898 
    899 extern __inline __m128i
    900 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    901 _mm_abs_epi64 (__m128i __A)
    902 {
    903   return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
    904 						 (__v2di)
    905 						 _mm_setzero_si128 (),
    906 						 (__mmask8) -1);
    907 }
    908 
    909 extern __inline __m128i
    910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    911 _mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
    912 {
    913   return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
    914 						 (__v2di) __W,
    915 						 (__mmask8) __U);
    916 }
    917 
    918 extern __inline __m128i
    919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    920 _mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A)
    921 {
    922   return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A,
    923 						 (__v2di)
    924 						 _mm_setzero_si128 (),
    925 						 (__mmask8) __U);
    926 }
    927 
    928 extern __inline __m128i
    929 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    930 _mm256_cvtpd_epu32 (__m256d __A)
    931 {
    932   return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
    933 						     (__v4si)
    934 						     _mm_setzero_si128 (),
    935 						     (__mmask8) -1);
    936 }
    937 
    938 extern __inline __m128i
    939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    940 _mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A)
    941 {
    942   return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
    943 						     (__v4si) __W,
    944 						     (__mmask8) __U);
    945 }
    946 
    947 extern __inline __m128i
    948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    949 _mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A)
    950 {
    951   return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
    952 						     (__v4si)
    953 						     _mm_setzero_si128 (),
    954 						     (__mmask8) __U);
    955 }
    956 
    957 extern __inline __m128i
    958 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    959 _mm_cvtpd_epu32 (__m128d __A)
    960 {
    961   return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
    962 						     (__v4si)
    963 						     _mm_setzero_si128 (),
    964 						     (__mmask8) -1);
    965 }
    966 
    967 extern __inline __m128i
    968 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    969 _mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A)
    970 {
    971   return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
    972 						     (__v4si) __W,
    973 						     (__mmask8) __U);
    974 }
    975 
    976 extern __inline __m128i
    977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    978 _mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A)
    979 {
    980   return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
    981 						     (__v4si)
    982 						     _mm_setzero_si128 (),
    983 						     (__mmask8) __U);
    984 }
    985 
    986 extern __inline __m256i
    987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    988 _mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A)
    989 {
    990   return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
    991 						     (__v8si) __W,
    992 						     (__mmask8) __U);
    993 }
    994 
    995 extern __inline __m256i
    996 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
    997 _mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A)
    998 {
    999   return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A,
   1000 						     (__v8si)
   1001 						     _mm256_setzero_si256 (),
   1002 						     (__mmask8) __U);
   1003 }
   1004 
   1005 extern __inline __m128i
   1006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1007 _mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A)
   1008 {
   1009   return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
   1010 						     (__v4si) __W,
   1011 						     (__mmask8) __U);
   1012 }
   1013 
   1014 extern __inline __m128i
   1015 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1016 _mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A)
   1017 {
   1018   return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A,
   1019 						     (__v4si)
   1020 						     _mm_setzero_si128 (),
   1021 						     (__mmask8) __U);
   1022 }
   1023 
   1024 extern __inline __m256i
   1025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1026 _mm256_cvttps_epu32 (__m256 __A)
   1027 {
   1028   return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
   1029 						      (__v8si)
   1030 						      _mm256_setzero_si256 (),
   1031 						      (__mmask8) -1);
   1032 }
   1033 
   1034 extern __inline __m256i
   1035 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1036 _mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A)
   1037 {
   1038   return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
   1039 						      (__v8si) __W,
   1040 						      (__mmask8) __U);
   1041 }
   1042 
   1043 extern __inline __m256i
   1044 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1045 _mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A)
   1046 {
   1047   return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
   1048 						      (__v8si)
   1049 						      _mm256_setzero_si256 (),
   1050 						      (__mmask8) __U);
   1051 }
   1052 
   1053 extern __inline __m128i
   1054 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1055 _mm_cvttps_epu32 (__m128 __A)
   1056 {
   1057   return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
   1058 						      (__v4si)
   1059 						      _mm_setzero_si128 (),
   1060 						      (__mmask8) -1);
   1061 }
   1062 
   1063 extern __inline __m128i
   1064 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1065 _mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A)
   1066 {
   1067   return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
   1068 						      (__v4si) __W,
   1069 						      (__mmask8) __U);
   1070 }
   1071 
   1072 extern __inline __m128i
   1073 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1074 _mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A)
   1075 {
   1076   return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
   1077 						      (__v4si)
   1078 						      _mm_setzero_si128 (),
   1079 						      (__mmask8) __U);
   1080 }
   1081 
   1082 extern __inline __m128i
   1083 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1084 _mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A)
   1085 {
   1086   return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
   1087 						     (__v4si) __W,
   1088 						     (__mmask8) __U);
   1089 }
   1090 
   1091 extern __inline __m128i
   1092 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1093 _mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A)
   1094 {
   1095   return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A,
   1096 						     (__v4si)
   1097 						     _mm_setzero_si128 (),
   1098 						     (__mmask8) __U);
   1099 }
   1100 
   1101 extern __inline __m128i
   1102 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1103 _mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A)
   1104 {
   1105   return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
   1106 						     (__v4si) __W,
   1107 						     (__mmask8) __U);
   1108 }
   1109 
   1110 extern __inline __m128i
   1111 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1112 _mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A)
   1113 {
   1114   return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
   1115 						     (__v4si)
   1116 						     _mm_setzero_si128 (),
   1117 						     (__mmask8) __U);
   1118 }
   1119 
   1120 extern __inline __m128i
   1121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1122 _mm256_cvttpd_epu32 (__m256d __A)
   1123 {
   1124   return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
   1125 						      (__v4si)
   1126 						      _mm_setzero_si128 (),
   1127 						      (__mmask8) -1);
   1128 }
   1129 
   1130 extern __inline __m128i
   1131 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1132 _mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A)
   1133 {
   1134   return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
   1135 						      (__v4si) __W,
   1136 						      (__mmask8) __U);
   1137 }
   1138 
   1139 extern __inline __m128i
   1140 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1141 _mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A)
   1142 {
   1143   return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
   1144 						      (__v4si)
   1145 						      _mm_setzero_si128 (),
   1146 						      (__mmask8) __U);
   1147 }
   1148 
   1149 extern __inline __m128i
   1150 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1151 _mm_cvttpd_epu32 (__m128d __A)
   1152 {
   1153   return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
   1154 						      (__v4si)
   1155 						      _mm_setzero_si128 (),
   1156 						      (__mmask8) -1);
   1157 }
   1158 
   1159 extern __inline __m128i
   1160 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1161 _mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A)
   1162 {
   1163   return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
   1164 						      (__v4si) __W,
   1165 						      (__mmask8) __U);
   1166 }
   1167 
   1168 extern __inline __m128i
   1169 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1170 _mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A)
   1171 {
   1172   return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
   1173 						      (__v4si)
   1174 						      _mm_setzero_si128 (),
   1175 						      (__mmask8) __U);
   1176 }
   1177 
   1178 extern __inline __m128i
   1179 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1180 _mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A)
   1181 {
   1182   return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
   1183 						    (__v4si) __W,
   1184 						    (__mmask8) __U);
   1185 }
   1186 
   1187 extern __inline __m128i
   1188 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1189 _mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A)
   1190 {
   1191   return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A,
   1192 						    (__v4si)
   1193 						    _mm_setzero_si128 (),
   1194 						    (__mmask8) __U);
   1195 }
   1196 
   1197 extern __inline __m128i
   1198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1199 _mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A)
   1200 {
   1201   return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
   1202 						    (__v4si) __W,
   1203 						    (__mmask8) __U);
   1204 }
   1205 
   1206 extern __inline __m128i
   1207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1208 _mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A)
   1209 {
   1210   return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
   1211 						    (__v4si)
   1212 						    _mm_setzero_si128 (),
   1213 						    (__mmask8) __U);
   1214 }
   1215 
   1216 extern __inline __m256d
   1217 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1218 _mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A)
   1219 {
   1220   return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
   1221 						    (__v4df) __W,
   1222 						    (__mmask8) __U);
   1223 }
   1224 
   1225 extern __inline __m256d
   1226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1227 _mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A)
   1228 {
   1229   return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A,
   1230 						    (__v4df)
   1231 						    _mm256_setzero_pd (),
   1232 						    (__mmask8) __U);
   1233 }
   1234 
   1235 extern __inline __m128d
   1236 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1237 _mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A)
   1238 {
   1239   return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
   1240 						    (__v2df) __W,
   1241 						    (__mmask8) __U);
   1242 }
   1243 
   1244 extern __inline __m128d
   1245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1246 _mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A)
   1247 {
   1248   return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A,
   1249 						    (__v2df)
   1250 						    _mm_setzero_pd (),
   1251 						    (__mmask8) __U);
   1252 }
   1253 
   1254 extern __inline __m256d
   1255 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1256 _mm256_cvtepu32_pd (__m128i __A)
   1257 {
   1258   return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
   1259 						     (__v4df)
   1260 						     _mm256_setzero_pd (),
   1261 						     (__mmask8) -1);
   1262 }
   1263 
   1264 extern __inline __m256d
   1265 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1266 _mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A)
   1267 {
   1268   return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
   1269 						     (__v4df) __W,
   1270 						     (__mmask8) __U);
   1271 }
   1272 
   1273 extern __inline __m256d
   1274 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1275 _mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A)
   1276 {
   1277   return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A,
   1278 						     (__v4df)
   1279 						     _mm256_setzero_pd (),
   1280 						     (__mmask8) __U);
   1281 }
   1282 
   1283 extern __inline __m128d
   1284 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1285 _mm_cvtepu32_pd (__m128i __A)
   1286 {
   1287   return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
   1288 						     (__v2df)
   1289 						     _mm_setzero_pd (),
   1290 						     (__mmask8) -1);
   1291 }
   1292 
   1293 extern __inline __m128d
   1294 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1295 _mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A)
   1296 {
   1297   return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
   1298 						     (__v2df) __W,
   1299 						     (__mmask8) __U);
   1300 }
   1301 
   1302 extern __inline __m128d
   1303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1304 _mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A)
   1305 {
   1306   return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A,
   1307 						     (__v2df)
   1308 						     _mm_setzero_pd (),
   1309 						     (__mmask8) __U);
   1310 }
   1311 
   1312 extern __inline __m256
   1313 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1314 _mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A)
   1315 {
   1316   return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
   1317 						   (__v8sf) __W,
   1318 						   (__mmask8) __U);
   1319 }
   1320 
   1321 extern __inline __m256
   1322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1323 _mm256_maskz_cvtepi32_ps (__mmask8 __U, __m256i __A)
   1324 {
   1325   return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A,
   1326 						   (__v8sf)
   1327 						   _mm256_setzero_ps (),
   1328 						   (__mmask8) __U);
   1329 }
   1330 
   1331 extern __inline __m128
   1332 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1333 _mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A)
   1334 {
   1335   return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
   1336 						   (__v4sf) __W,
   1337 						   (__mmask8) __U);
   1338 }
   1339 
   1340 extern __inline __m128
   1341 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1342 _mm_maskz_cvtepi32_ps (__mmask8 __U, __m128i __A)
   1343 {
   1344   return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A,
   1345 						   (__v4sf)
   1346 						   _mm_setzero_ps (),
   1347 						   (__mmask8) __U);
   1348 }
   1349 
   1350 extern __inline __m256
   1351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1352 _mm256_cvtepu32_ps (__m256i __A)
   1353 {
   1354   return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
   1355 						    (__v8sf)
   1356 						    _mm256_setzero_ps (),
   1357 						    (__mmask8) -1);
   1358 }
   1359 
   1360 extern __inline __m256
   1361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1362 _mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A)
   1363 {
   1364   return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
   1365 						    (__v8sf) __W,
   1366 						    (__mmask8) __U);
   1367 }
   1368 
   1369 extern __inline __m256
   1370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1371 _mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A)
   1372 {
   1373   return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A,
   1374 						    (__v8sf)
   1375 						    _mm256_setzero_ps (),
   1376 						    (__mmask8) __U);
   1377 }
   1378 
   1379 extern __inline __m128
   1380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1381 _mm_cvtepu32_ps (__m128i __A)
   1382 {
   1383   return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
   1384 						    (__v4sf)
   1385 						    _mm_setzero_ps (),
   1386 						    (__mmask8) -1);
   1387 }
   1388 
   1389 extern __inline __m128
   1390 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1391 _mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A)
   1392 {
   1393   return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
   1394 						    (__v4sf) __W,
   1395 						    (__mmask8) __U);
   1396 }
   1397 
   1398 extern __inline __m128
   1399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1400 _mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A)
   1401 {
   1402   return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A,
   1403 						    (__v4sf)
   1404 						    _mm_setzero_ps (),
   1405 						    (__mmask8) __U);
   1406 }
   1407 
   1408 extern __inline __m256d
   1409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1410 _mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A)
   1411 {
   1412   return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
   1413 						    (__v4df) __W,
   1414 						    (__mmask8) __U);
   1415 }
   1416 
   1417 extern __inline __m256d
   1418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1419 _mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A)
   1420 {
   1421   return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A,
   1422 						    (__v4df)
   1423 						    _mm256_setzero_pd (),
   1424 						    (__mmask8) __U);
   1425 }
   1426 
   1427 extern __inline __m128d
   1428 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1429 _mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A)
   1430 {
   1431   return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
   1432 						    (__v2df) __W,
   1433 						    (__mmask8) __U);
   1434 }
   1435 
   1436 extern __inline __m128d
   1437 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1438 _mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A)
   1439 {
   1440   return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A,
   1441 						    (__v2df)
   1442 						    _mm_setzero_pd (),
   1443 						    (__mmask8) __U);
   1444 }
   1445 
   1446 extern __inline __m128i
   1447 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1448 _mm_cvtepi32_epi8 (__m128i __A)
   1449 {
   1450   return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
   1451 						  (__v16qi)
   1452 						  _mm_undefined_si128 (),
   1453 						  (__mmask8) -1);
   1454 }
   1455 
   1456 extern __inline void
   1457 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1458 _mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1459 {
   1460   __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
   1461 }
   1462 
   1463 extern __inline __m128i
   1464 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1465 _mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
   1466 {
   1467   return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
   1468 						  (__v16qi) __O, __M);
   1469 }
   1470 
   1471 extern __inline __m128i
   1472 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1473 _mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
   1474 {
   1475   return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
   1476 						  (__v16qi)
   1477 						  _mm_setzero_si128 (),
   1478 						  __M);
   1479 }
   1480 
   1481 extern __inline __m128i
   1482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1483 _mm256_cvtepi32_epi8 (__m256i __A)
   1484 {
   1485   return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
   1486 						  (__v16qi)
   1487 						  _mm_undefined_si128 (),
   1488 						  (__mmask8) -1);
   1489 }
   1490 
   1491 extern __inline __m128i
   1492 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1493 _mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
   1494 {
   1495   return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
   1496 						  (__v16qi) __O, __M);
   1497 }
   1498 
   1499 extern __inline void
   1500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1501 _mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   1502 {
   1503   __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
   1504 }
   1505 
   1506 extern __inline __m128i
   1507 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1508 _mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
   1509 {
   1510   return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
   1511 						  (__v16qi)
   1512 						  _mm_setzero_si128 (),
   1513 						  __M);
   1514 }
   1515 
   1516 extern __inline __m128i
   1517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1518 _mm_cvtsepi32_epi8 (__m128i __A)
   1519 {
   1520   return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
   1521 						   (__v16qi)
   1522 						   _mm_undefined_si128 (),
   1523 						   (__mmask8) -1);
   1524 }
   1525 
   1526 extern __inline void
   1527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1528 _mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1529 {
   1530   __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
   1531 }
   1532 
   1533 extern __inline __m128i
   1534 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1535 _mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
   1536 {
   1537   return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
   1538 						   (__v16qi) __O, __M);
   1539 }
   1540 
   1541 extern __inline __m128i
   1542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1543 _mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
   1544 {
   1545   return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
   1546 						   (__v16qi)
   1547 						   _mm_setzero_si128 (),
   1548 						   __M);
   1549 }
   1550 
   1551 extern __inline __m128i
   1552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1553 _mm256_cvtsepi32_epi8 (__m256i __A)
   1554 {
   1555   return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
   1556 						   (__v16qi)
   1557 						   _mm_undefined_si128 (),
   1558 						   (__mmask8) -1);
   1559 }
   1560 
   1561 extern __inline void
   1562 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1563 _mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   1564 {
   1565   __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
   1566 }
   1567 
   1568 extern __inline __m128i
   1569 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1570 _mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
   1571 {
   1572   return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
   1573 						   (__v16qi) __O, __M);
   1574 }
   1575 
   1576 extern __inline __m128i
   1577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1578 _mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
   1579 {
   1580   return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
   1581 						   (__v16qi)
   1582 						   _mm_setzero_si128 (),
   1583 						   __M);
   1584 }
   1585 
   1586 extern __inline __m128i
   1587 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1588 _mm_cvtusepi32_epi8 (__m128i __A)
   1589 {
   1590   return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
   1591 						    (__v16qi)
   1592 						    _mm_undefined_si128 (),
   1593 						    (__mmask8) -1);
   1594 }
   1595 
   1596 extern __inline void
   1597 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1598 _mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1599 {
   1600   __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
   1601 }
   1602 
   1603 extern __inline __m128i
   1604 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1605 _mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
   1606 {
   1607   return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
   1608 						    (__v16qi) __O,
   1609 						    __M);
   1610 }
   1611 
   1612 extern __inline __m128i
   1613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1614 _mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
   1615 {
   1616   return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
   1617 						    (__v16qi)
   1618 						    _mm_setzero_si128 (),
   1619 						    __M);
   1620 }
   1621 
   1622 extern __inline __m128i
   1623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1624 _mm256_cvtusepi32_epi8 (__m256i __A)
   1625 {
   1626   return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
   1627 						    (__v16qi)
   1628 						    _mm_undefined_si128 (),
   1629 						    (__mmask8) -1);
   1630 }
   1631 
   1632 extern __inline void
   1633 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1634 _mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   1635 {
   1636   __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
   1637 }
   1638 
   1639 extern __inline __m128i
   1640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1641 _mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
   1642 {
   1643   return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
   1644 						    (__v16qi) __O,
   1645 						    __M);
   1646 }
   1647 
   1648 extern __inline __m128i
   1649 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1650 _mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
   1651 {
   1652   return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
   1653 						    (__v16qi)
   1654 						    _mm_setzero_si128 (),
   1655 						    __M);
   1656 }
   1657 
   1658 extern __inline __m128i
   1659 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1660 _mm_cvtepi32_epi16 (__m128i __A)
   1661 {
   1662   return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
   1663 						  (__v8hi)
   1664 						  _mm_setzero_si128 (),
   1665 						  (__mmask8) -1);
   1666 }
   1667 
   1668 extern __inline void
   1669 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1670 _mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
   1671 {
   1672   __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
   1673 }
   1674 
   1675 extern __inline __m128i
   1676 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1677 _mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   1678 {
   1679   return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
   1680 						  (__v8hi) __O, __M);
   1681 }
   1682 
   1683 extern __inline __m128i
   1684 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1685 _mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
   1686 {
   1687   return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
   1688 						  (__v8hi)
   1689 						  _mm_setzero_si128 (),
   1690 						  __M);
   1691 }
   1692 
   1693 extern __inline __m128i
   1694 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1695 _mm256_cvtepi32_epi16 (__m256i __A)
   1696 {
   1697   return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
   1698 						  (__v8hi)
   1699 						  _mm_setzero_si128 (),
   1700 						  (__mmask8) -1);
   1701 }
   1702 
   1703 extern __inline void
   1704 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1705 _mm256_mask_cvtepi32_storeu_epi16 (void *  __P, __mmask8 __M, __m256i __A)
   1706 {
   1707   __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
   1708 }
   1709 
   1710 extern __inline __m128i
   1711 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1712 _mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
   1713 {
   1714   return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
   1715 						  (__v8hi) __O, __M);
   1716 }
   1717 
   1718 extern __inline __m128i
   1719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1720 _mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
   1721 {
   1722   return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
   1723 						  (__v8hi)
   1724 						  _mm_setzero_si128 (),
   1725 						  __M);
   1726 }
   1727 
   1728 extern __inline __m128i
   1729 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1730 _mm_cvtsepi32_epi16 (__m128i __A)
   1731 {
   1732   return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
   1733 						   (__v8hi)
   1734 						   _mm_setzero_si128 (),
   1735 						   (__mmask8) -1);
   1736 }
   1737 
   1738 extern __inline void
   1739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1740 _mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
   1741 {
   1742   __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
   1743 }
   1744 
   1745 extern __inline __m128i
   1746 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1747 _mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   1748 {
   1749   return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
   1750 						   (__v8hi)__O,
   1751 						   __M);
   1752 }
   1753 
   1754 extern __inline __m128i
   1755 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1756 _mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
   1757 {
   1758   return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
   1759 						   (__v8hi)
   1760 						   _mm_setzero_si128 (),
   1761 						   __M);
   1762 }
   1763 
   1764 extern __inline __m128i
   1765 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1766 _mm256_cvtsepi32_epi16 (__m256i __A)
   1767 {
   1768   return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
   1769 						   (__v8hi)
   1770 						   _mm_undefined_si128 (),
   1771 						   (__mmask8) -1);
   1772 }
   1773 
   1774 extern __inline void
   1775 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1776 _mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
   1777 {
   1778   __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
   1779 }
   1780 
   1781 extern __inline __m128i
   1782 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1783 _mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
   1784 {
   1785   return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
   1786 						   (__v8hi) __O, __M);
   1787 }
   1788 
   1789 extern __inline __m128i
   1790 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1791 _mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
   1792 {
   1793   return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
   1794 						   (__v8hi)
   1795 						   _mm_setzero_si128 (),
   1796 						   __M);
   1797 }
   1798 
   1799 extern __inline __m128i
   1800 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1801 _mm_cvtusepi32_epi16 (__m128i __A)
   1802 {
   1803   return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
   1804 						    (__v8hi)
   1805 						    _mm_undefined_si128 (),
   1806 						    (__mmask8) -1);
   1807 }
   1808 
   1809 extern __inline void
   1810 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1811 _mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
   1812 {
   1813   __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
   1814 }
   1815 
   1816 extern __inline __m128i
   1817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1818 _mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   1819 {
   1820   return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
   1821 						    (__v8hi) __O, __M);
   1822 }
   1823 
   1824 extern __inline __m128i
   1825 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1826 _mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
   1827 {
   1828   return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
   1829 						    (__v8hi)
   1830 						    _mm_setzero_si128 (),
   1831 						    __M);
   1832 }
   1833 
   1834 extern __inline __m128i
   1835 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1836 _mm256_cvtusepi32_epi16 (__m256i __A)
   1837 {
   1838   return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
   1839 						    (__v8hi)
   1840 						    _mm_undefined_si128 (),
   1841 						    (__mmask8) -1);
   1842 }
   1843 
   1844 extern __inline void
   1845 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1846 _mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
   1847 {
   1848   __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
   1849 }
   1850 
   1851 extern __inline __m128i
   1852 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1853 _mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
   1854 {
   1855   return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
   1856 						    (__v8hi) __O, __M);
   1857 }
   1858 
   1859 extern __inline __m128i
   1860 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1861 _mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
   1862 {
   1863   return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
   1864 						    (__v8hi)
   1865 						    _mm_setzero_si128 (),
   1866 						    __M);
   1867 }
   1868 
   1869 extern __inline __m128i
   1870 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1871 _mm_cvtepi64_epi8 (__m128i __A)
   1872 {
   1873   return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
   1874 						  (__v16qi)
   1875 						  _mm_undefined_si128 (),
   1876 						  (__mmask8) -1);
   1877 }
   1878 
   1879 extern __inline void
   1880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1881 _mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1882 {
   1883   __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
   1884 }
   1885 
   1886 extern __inline __m128i
   1887 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1888 _mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
   1889 {
   1890   return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
   1891 						  (__v16qi) __O, __M);
   1892 }
   1893 
   1894 extern __inline __m128i
   1895 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1896 _mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
   1897 {
   1898   return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
   1899 						  (__v16qi)
   1900 						  _mm_setzero_si128 (),
   1901 						  __M);
   1902 }
   1903 
   1904 extern __inline __m128i
   1905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1906 _mm256_cvtepi64_epi8 (__m256i __A)
   1907 {
   1908   return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
   1909 						  (__v16qi)
   1910 						  _mm_undefined_si128 (),
   1911 						  (__mmask8) -1);
   1912 }
   1913 
   1914 extern __inline void
   1915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1916 _mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   1917 {
   1918   __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
   1919 }
   1920 
   1921 extern __inline __m128i
   1922 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1923 _mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
   1924 {
   1925   return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
   1926 						  (__v16qi) __O, __M);
   1927 }
   1928 
   1929 extern __inline __m128i
   1930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1931 _mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
   1932 {
   1933   return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
   1934 						  (__v16qi)
   1935 						  _mm_setzero_si128 (),
   1936 						  __M);
   1937 }
   1938 
   1939 extern __inline __m128i
   1940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1941 _mm_cvtsepi64_epi8 (__m128i __A)
   1942 {
   1943   return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
   1944 						   (__v16qi)
   1945 						   _mm_undefined_si128 (),
   1946 						   (__mmask8) -1);
   1947 }
   1948 
   1949 extern __inline void
   1950 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1951 _mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   1952 {
   1953   __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
   1954 }
   1955 
   1956 extern __inline __m128i
   1957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1958 _mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
   1959 {
   1960   return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
   1961 						   (__v16qi) __O, __M);
   1962 }
   1963 
   1964 extern __inline __m128i
   1965 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1966 _mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
   1967 {
   1968   return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
   1969 						   (__v16qi)
   1970 						   _mm_setzero_si128 (),
   1971 						   __M);
   1972 }
   1973 
   1974 extern __inline __m128i
   1975 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1976 _mm256_cvtsepi64_epi8 (__m256i __A)
   1977 {
   1978   return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
   1979 						   (__v16qi)
   1980 						   _mm_undefined_si128 (),
   1981 						   (__mmask8) -1);
   1982 }
   1983 
   1984 extern __inline void
   1985 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1986 _mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   1987 {
   1988   __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
   1989 }
   1990 
   1991 extern __inline __m128i
   1992 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   1993 _mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
   1994 {
   1995   return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
   1996 						   (__v16qi) __O, __M);
   1997 }
   1998 
   1999 extern __inline __m128i
   2000 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2001 _mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
   2002 {
   2003   return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
   2004 						   (__v16qi)
   2005 						   _mm_setzero_si128 (),
   2006 						   __M);
   2007 }
   2008 
   2009 extern __inline __m128i
   2010 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2011 _mm_cvtusepi64_epi8 (__m128i __A)
   2012 {
   2013   return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
   2014 						    (__v16qi)
   2015 						    _mm_undefined_si128 (),
   2016 						    (__mmask8) -1);
   2017 }
   2018 
   2019 extern __inline void
   2020 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2021 _mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
   2022 {
   2023   __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
   2024 }
   2025 
   2026 extern __inline __m128i
   2027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2028 _mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
   2029 {
   2030   return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
   2031 						    (__v16qi) __O,
   2032 						    __M);
   2033 }
   2034 
   2035 extern __inline __m128i
   2036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2037 _mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
   2038 {
   2039   return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
   2040 						    (__v16qi)
   2041 						    _mm_setzero_si128 (),
   2042 						    __M);
   2043 }
   2044 
   2045 extern __inline __m128i
   2046 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2047 _mm256_cvtusepi64_epi8 (__m256i __A)
   2048 {
   2049   return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
   2050 						    (__v16qi)
   2051 						    _mm_undefined_si128 (),
   2052 						    (__mmask8) -1);
   2053 }
   2054 
   2055 extern __inline void
   2056 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2057 _mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
   2058 {
   2059   __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
   2060 }
   2061 
   2062 extern __inline __m128i
   2063 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2064 _mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
   2065 {
   2066   return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
   2067 						    (__v16qi) __O,
   2068 						    __M);
   2069 }
   2070 
   2071 extern __inline __m128i
   2072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2073 _mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
   2074 {
   2075   return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
   2076 						    (__v16qi)
   2077 						    _mm_setzero_si128 (),
   2078 						    __M);
   2079 }
   2080 
   2081 extern __inline __m128i
   2082 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2083 _mm_cvtepi64_epi16 (__m128i __A)
   2084 {
   2085   return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
   2086 						  (__v8hi)
   2087 						  _mm_undefined_si128 (),
   2088 						  (__mmask8) -1);
   2089 }
   2090 
   2091 extern __inline void
   2092 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2093 _mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
   2094 {
   2095   __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
   2096 }
   2097 
   2098 extern __inline __m128i
   2099 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2100 _mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   2101 {
   2102   return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
   2103 						  (__v8hi)__O,
   2104 						  __M);
   2105 }
   2106 
   2107 extern __inline __m128i
   2108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2109 _mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
   2110 {
   2111   return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
   2112 						  (__v8hi)
   2113 						  _mm_setzero_si128 (),
   2114 						  __M);
   2115 }
   2116 
   2117 extern __inline __m128i
   2118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2119 _mm256_cvtepi64_epi16 (__m256i __A)
   2120 {
   2121   return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
   2122 						  (__v8hi)
   2123 						  _mm_undefined_si128 (),
   2124 						  (__mmask8) -1);
   2125 }
   2126 
   2127 extern __inline void
   2128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2129 _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
   2130 {
   2131   __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
   2132 }
   2133 
   2134 extern __inline __m128i
   2135 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2136 _mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
   2137 {
   2138   return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
   2139 						  (__v8hi) __O, __M);
   2140 }
   2141 
   2142 extern __inline __m128i
   2143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2144 _mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
   2145 {
   2146   return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
   2147 						  (__v8hi)
   2148 						  _mm_setzero_si128 (),
   2149 						  __M);
   2150 }
   2151 
   2152 extern __inline __m128i
   2153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2154 _mm_cvtsepi64_epi16 (__m128i __A)
   2155 {
   2156   return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
   2157 						   (__v8hi)
   2158 						   _mm_undefined_si128 (),
   2159 						   (__mmask8) -1);
   2160 }
   2161 
   2162 extern __inline void
   2163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2164 _mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
   2165 {
   2166   __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
   2167 }
   2168 
   2169 extern __inline __m128i
   2170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2171 _mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   2172 {
   2173   return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
   2174 						   (__v8hi) __O, __M);
   2175 }
   2176 
   2177 extern __inline __m128i
   2178 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2179 _mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
   2180 {
   2181   return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
   2182 						   (__v8hi)
   2183 						   _mm_setzero_si128 (),
   2184 						   __M);
   2185 }
   2186 
   2187 extern __inline __m128i
   2188 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2189 _mm256_cvtsepi64_epi16 (__m256i __A)
   2190 {
   2191   return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
   2192 						   (__v8hi)
   2193 						   _mm_undefined_si128 (),
   2194 						   (__mmask8) -1);
   2195 }
   2196 
   2197 extern __inline void
   2198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2199 _mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
   2200 {
   2201   __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
   2202 }
   2203 
   2204 extern __inline __m128i
   2205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2206 _mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
   2207 {
   2208   return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
   2209 						   (__v8hi) __O, __M);
   2210 }
   2211 
   2212 extern __inline __m128i
   2213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2214 _mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
   2215 {
   2216   return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
   2217 						   (__v8hi)
   2218 						   _mm_setzero_si128 (),
   2219 						   __M);
   2220 }
   2221 
   2222 extern __inline __m128i
   2223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2224 _mm_cvtusepi64_epi16 (__m128i __A)
   2225 {
   2226   return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
   2227 						    (__v8hi)
   2228 						    _mm_undefined_si128 (),
   2229 						    (__mmask8) -1);
   2230 }
   2231 
   2232 extern __inline void
   2233 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2234 _mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
   2235 {
   2236   __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
   2237 }
   2238 
   2239 extern __inline __m128i
   2240 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2241 _mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
   2242 {
   2243   return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
   2244 						    (__v8hi) __O, __M);
   2245 }
   2246 
   2247 extern __inline __m128i
   2248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2249 _mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
   2250 {
   2251   return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
   2252 						    (__v8hi)
   2253 						    _mm_setzero_si128 (),
   2254 						    __M);
   2255 }
   2256 
   2257 extern __inline __m128i
   2258 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2259 _mm256_cvtusepi64_epi16 (__m256i __A)
   2260 {
   2261   return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
   2262 						    (__v8hi)
   2263 						    _mm_undefined_si128 (),
   2264 						    (__mmask8) -1);
   2265 }
   2266 
   2267 extern __inline void
   2268 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2269 _mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
   2270 {
   2271   __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
   2272 }
   2273 
   2274 extern __inline __m128i
   2275 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2276 _mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
   2277 {
   2278   return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
   2279 						    (__v8hi) __O, __M);
   2280 }
   2281 
   2282 extern __inline __m128i
   2283 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2284 _mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
   2285 {
   2286   return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
   2287 						    (__v8hi)
   2288 						    _mm_setzero_si128 (),
   2289 						    __M);
   2290 }
   2291 
   2292 extern __inline __m128i
   2293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2294 _mm_cvtepi64_epi32 (__m128i __A)
   2295 {
   2296   return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
   2297 						  (__v4si)
   2298 						  _mm_undefined_si128 (),
   2299 						  (__mmask8) -1);
   2300 }
   2301 
   2302 extern __inline void
   2303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2304 _mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
   2305 {
   2306   __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
   2307 }
   2308 
   2309 extern __inline __m128i
   2310 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2311 _mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
   2312 {
   2313   return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
   2314 						  (__v4si) __O, __M);
   2315 }
   2316 
   2317 extern __inline __m128i
   2318 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2319 _mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
   2320 {
   2321   return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
   2322 						  (__v4si)
   2323 						  _mm_setzero_si128 (),
   2324 						  __M);
   2325 }
   2326 
   2327 extern __inline __m128i
   2328 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2329 _mm256_cvtepi64_epi32 (__m256i __A)
   2330 {
   2331   return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
   2332 						  (__v4si)
   2333 						  _mm_undefined_si128 (),
   2334 						  (__mmask8) -1);
   2335 }
   2336 
   2337 extern __inline void
   2338 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2339 _mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
   2340 {
   2341   __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
   2342 }
   2343 
   2344 extern __inline __m128i
   2345 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2346 _mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
   2347 {
   2348   return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
   2349 						  (__v4si) __O, __M);
   2350 }
   2351 
   2352 extern __inline __m128i
   2353 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2354 _mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
   2355 {
   2356   return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
   2357 						  (__v4si)
   2358 						  _mm_setzero_si128 (),
   2359 						  __M);
   2360 }
   2361 
   2362 extern __inline __m128i
   2363 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2364 _mm_cvtsepi64_epi32 (__m128i __A)
   2365 {
   2366   return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
   2367 						   (__v4si)
   2368 						   _mm_undefined_si128 (),
   2369 						   (__mmask8) -1);
   2370 }
   2371 
   2372 extern __inline void
   2373 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2374 _mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
   2375 {
   2376   __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
   2377 }
   2378 
   2379 extern __inline __m128i
   2380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2381 _mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
   2382 {
   2383   return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
   2384 						   (__v4si) __O, __M);
   2385 }
   2386 
   2387 extern __inline __m128i
   2388 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2389 _mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
   2390 {
   2391   return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
   2392 						   (__v4si)
   2393 						   _mm_setzero_si128 (),
   2394 						   __M);
   2395 }
   2396 
   2397 extern __inline __m128i
   2398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2399 _mm256_cvtsepi64_epi32 (__m256i __A)
   2400 {
   2401   return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
   2402 						   (__v4si)
   2403 						   _mm_undefined_si128 (),
   2404 						   (__mmask8) -1);
   2405 }
   2406 
   2407 extern __inline void
   2408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2409 _mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
   2410 {
   2411   __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
   2412 }
   2413 
   2414 extern __inline __m128i
   2415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2416 _mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
   2417 {
   2418   return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
   2419 						   (__v4si)__O,
   2420 						   __M);
   2421 }
   2422 
   2423 extern __inline __m128i
   2424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2425 _mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
   2426 {
   2427   return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
   2428 						   (__v4si)
   2429 						   _mm_setzero_si128 (),
   2430 						   __M);
   2431 }
   2432 
   2433 extern __inline __m128i
   2434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2435 _mm_cvtusepi64_epi32 (__m128i __A)
   2436 {
   2437   return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
   2438 						    (__v4si)
   2439 						    _mm_undefined_si128 (),
   2440 						    (__mmask8) -1);
   2441 }
   2442 
   2443 extern __inline void
   2444 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2445 _mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
   2446 {
   2447   __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
   2448 }
   2449 
   2450 extern __inline __m128i
   2451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2452 _mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
   2453 {
   2454   return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
   2455 						    (__v4si) __O, __M);
   2456 }
   2457 
   2458 extern __inline __m128i
   2459 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2460 _mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
   2461 {
   2462   return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
   2463 						    (__v4si)
   2464 						    _mm_setzero_si128 (),
   2465 						    __M);
   2466 }
   2467 
   2468 extern __inline __m128i
   2469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2470 _mm256_cvtusepi64_epi32 (__m256i __A)
   2471 {
   2472   return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
   2473 						    (__v4si)
   2474 						    _mm_undefined_si128 (),
   2475 						    (__mmask8) -1);
   2476 }
   2477 
   2478 extern __inline void
   2479 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2480 _mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
   2481 {
   2482   __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
   2483 }
   2484 
   2485 extern __inline __m128i
   2486 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2487 _mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
   2488 {
   2489   return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
   2490 						    (__v4si) __O, __M);
   2491 }
   2492 
   2493 extern __inline __m128i
   2494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2495 _mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
   2496 {
   2497   return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
   2498 						    (__v4si)
   2499 						    _mm_setzero_si128 (),
   2500 						    __M);
   2501 }
   2502 
   2503 extern __inline __m256
   2504 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2505 _mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
   2506 {
   2507   return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A,
   2508 						      (__v8sf) __O,
   2509 						      __M);
   2510 }
   2511 
   2512 extern __inline __m256
   2513 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2514 _mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
   2515 {
   2516   return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A,
   2517 						      (__v8sf)
   2518 						      _mm256_setzero_ps (),
   2519 						      __M);
   2520 }
   2521 
   2522 extern __inline __m128
   2523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2524 _mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
   2525 {
   2526   return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A,
   2527 						      (__v4sf) __O,
   2528 						      __M);
   2529 }
   2530 
   2531 extern __inline __m128
   2532 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2533 _mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
   2534 {
   2535   return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A,
   2536 						      (__v4sf)
   2537 						      _mm_setzero_ps (),
   2538 						      __M);
   2539 }
   2540 
   2541 extern __inline __m256d
   2542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2543 _mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
   2544 {
   2545   return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A,
   2546 						       (__v4df) __O,
   2547 						       __M);
   2548 }
   2549 
   2550 extern __inline __m256d
   2551 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2552 _mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
   2553 {
   2554   return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A,
   2555 						       (__v4df)
   2556 						       _mm256_setzero_pd (),
   2557 						       __M);
   2558 }
   2559 
   2560 extern __inline __m256i
   2561 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2562 _mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
   2563 {
   2564   return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A,
   2565 						       (__v8si) __O,
   2566 						       __M);
   2567 }
   2568 
   2569 extern __inline __m256i
   2570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2571 _mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
   2572 {
   2573   return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A,
   2574 						       (__v8si)
   2575 						       _mm256_setzero_si256 (),
   2576 						       __M);
   2577 }
   2578 
   2579 extern __inline __m256i
   2580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2581 _mm256_mask_set1_epi32 (__m256i __O, __mmask8 __M, int __A)
   2582 {
   2583   return (__m256i) __builtin_ia32_pbroadcastd256_gpr_mask (__A, (__v8si) __O,
   2584 							   __M);
   2585 }
   2586 
   2587 extern __inline __m256i
   2588 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2589 _mm256_maskz_set1_epi32 (__mmask8 __M, int __A)
   2590 {
   2591   return (__m256i) __builtin_ia32_pbroadcastd256_gpr_mask (__A,
   2592 							   (__v8si)
   2593 							   _mm256_setzero_si256 (),
   2594 							   __M);
   2595 }
   2596 
   2597 extern __inline __m128i
   2598 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2599 _mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
   2600 {
   2601   return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A,
   2602 						       (__v4si) __O,
   2603 						       __M);
   2604 }
   2605 
   2606 extern __inline __m128i
   2607 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2608 _mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
   2609 {
   2610   return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A,
   2611 						       (__v4si)
   2612 						       _mm_setzero_si128 (),
   2613 						       __M);
   2614 }
   2615 
   2616 extern __inline __m128i
   2617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2618 _mm_mask_set1_epi32 (__m128i __O, __mmask8 __M, int __A)
   2619 {
   2620   return (__m128i) __builtin_ia32_pbroadcastd128_gpr_mask (__A, (__v4si) __O,
   2621 							   __M);
   2622 }
   2623 
   2624 extern __inline __m128i
   2625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2626 _mm_maskz_set1_epi32 (__mmask8 __M, int __A)
   2627 {
   2628   return (__m128i)
   2629 	 __builtin_ia32_pbroadcastd128_gpr_mask (__A,
   2630 						 (__v4si) _mm_setzero_si128 (),
   2631 						 __M);
   2632 }
   2633 
   2634 extern __inline __m256i
   2635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2636 _mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
   2637 {
   2638   return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A,
   2639 						       (__v4di) __O,
   2640 						       __M);
   2641 }
   2642 
   2643 extern __inline __m256i
   2644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2645 _mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
   2646 {
   2647   return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A,
   2648 						       (__v4di)
   2649 						       _mm256_setzero_si256 (),
   2650 						       __M);
   2651 }
   2652 
   2653 extern __inline __m256i
   2654 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2655 _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
   2656 {
   2657   return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O,
   2658 							   __M);
   2659 }
   2660 
   2661 extern __inline __m256i
   2662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2663 _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
   2664 {
   2665   return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A,
   2666 							   (__v4di)
   2667 							   _mm256_setzero_si256 (),
   2668 							   __M);
   2669 }
   2670 
   2671 extern __inline __m128i
   2672 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2673 _mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
   2674 {
   2675   return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A,
   2676 						       (__v2di) __O,
   2677 						       __M);
   2678 }
   2679 
   2680 extern __inline __m128i
   2681 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2682 _mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
   2683 {
   2684   return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A,
   2685 						       (__v2di)
   2686 						       _mm_setzero_si128 (),
   2687 						       __M);
   2688 }
   2689 
   2690 extern __inline __m128i
   2691 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2692 _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
   2693 {
   2694   return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O,
   2695 							   __M);
   2696 }
   2697 
   2698 extern __inline __m128i
   2699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2700 _mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
   2701 {
   2702   return (__m128i)
   2703 	 __builtin_ia32_pbroadcastq128_gpr_mask (__A,
   2704 						 (__v2di) _mm_setzero_si128 (),
   2705 						 __M);
   2706 }
   2707 
   2708 extern __inline __m256
   2709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2710 _mm256_broadcast_f32x4 (__m128 __A)
   2711 {
   2712   return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
   2713 						          (__v8sf)_mm256_undefined_pd (),
   2714 							  (__mmask8) -1);
   2715 }
   2716 
   2717 extern __inline __m256
   2718 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2719 _mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
   2720 {
   2721   return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
   2722 							  (__v8sf) __O,
   2723 							  __M);
   2724 }
   2725 
   2726 extern __inline __m256
   2727 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2728 _mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
   2729 {
   2730   return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
   2731 							  (__v8sf)
   2732 							  _mm256_setzero_ps (),
   2733 							  __M);
   2734 }
   2735 
   2736 extern __inline __m256i
   2737 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2738 _mm256_broadcast_i32x4 (__m128i __A)
   2739 {
   2740   return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
   2741 							   __A,
   2742 						           (__v8si)_mm256_undefined_si256 (),
   2743 							   (__mmask8) -1);
   2744 }
   2745 
   2746 extern __inline __m256i
   2747 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2748 _mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
   2749 {
   2750   return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
   2751 							   __A,
   2752 							   (__v8si)
   2753 							   __O, __M);
   2754 }
   2755 
   2756 extern __inline __m256i
   2757 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2758 _mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
   2759 {
   2760   return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
   2761 							   __A,
   2762 							   (__v8si)
   2763 							   _mm256_setzero_si256 (),
   2764 							   __M);
   2765 }
   2766 
   2767 extern __inline __m256i
   2768 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2769 _mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
   2770 {
   2771   return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
   2772 						    (__v8si) __W,
   2773 						    (__mmask8) __U);
   2774 }
   2775 
   2776 extern __inline __m256i
   2777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2778 _mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
   2779 {
   2780   return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A,
   2781 						    (__v8si)
   2782 						    _mm256_setzero_si256 (),
   2783 						    (__mmask8) __U);
   2784 }
   2785 
   2786 extern __inline __m128i
   2787 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2788 _mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   2789 {
   2790   return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
   2791 						    (__v4si) __W,
   2792 						    (__mmask8) __U);
   2793 }
   2794 
   2795 extern __inline __m128i
   2796 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2797 _mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
   2798 {
   2799   return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A,
   2800 						    (__v4si)
   2801 						    _mm_setzero_si128 (),
   2802 						    (__mmask8) __U);
   2803 }
   2804 
   2805 extern __inline __m256i
   2806 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2807 _mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
   2808 {
   2809   return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
   2810 						    (__v4di) __W,
   2811 						    (__mmask8) __U);
   2812 }
   2813 
   2814 extern __inline __m256i
   2815 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2816 _mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
   2817 {
   2818   return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A,
   2819 						    (__v4di)
   2820 						    _mm256_setzero_si256 (),
   2821 						    (__mmask8) __U);
   2822 }
   2823 
   2824 extern __inline __m128i
   2825 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2826 _mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   2827 {
   2828   return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
   2829 						    (__v2di) __W,
   2830 						    (__mmask8) __U);
   2831 }
   2832 
   2833 extern __inline __m128i
   2834 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2835 _mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
   2836 {
   2837   return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A,
   2838 						    (__v2di)
   2839 						    _mm_setzero_si128 (),
   2840 						    (__mmask8) __U);
   2841 }
   2842 
   2843 extern __inline __m256i
   2844 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2845 _mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
   2846 {
   2847   return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
   2848 						    (__v8si) __W,
   2849 						    (__mmask8) __U);
   2850 }
   2851 
   2852 extern __inline __m256i
   2853 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2854 _mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
   2855 {
   2856   return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A,
   2857 						    (__v8si)
   2858 						    _mm256_setzero_si256 (),
   2859 						    (__mmask8) __U);
   2860 }
   2861 
   2862 extern __inline __m128i
   2863 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2864 _mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   2865 {
   2866   return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
   2867 						    (__v4si) __W,
   2868 						    (__mmask8) __U);
   2869 }
   2870 
   2871 extern __inline __m128i
   2872 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2873 _mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
   2874 {
   2875   return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A,
   2876 						    (__v4si)
   2877 						    _mm_setzero_si128 (),
   2878 						    (__mmask8) __U);
   2879 }
   2880 
   2881 extern __inline __m256i
   2882 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2883 _mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
   2884 {
   2885   return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
   2886 						    (__v4di) __W,
   2887 						    (__mmask8) __U);
   2888 }
   2889 
   2890 extern __inline __m256i
   2891 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2892 _mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
   2893 {
   2894   return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A,
   2895 						    (__v4di)
   2896 						    _mm256_setzero_si256 (),
   2897 						    (__mmask8) __U);
   2898 }
   2899 
   2900 extern __inline __m128i
   2901 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2902 _mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   2903 {
   2904   return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
   2905 						    (__v2di) __W,
   2906 						    (__mmask8) __U);
   2907 }
   2908 
   2909 extern __inline __m128i
   2910 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2911 _mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
   2912 {
   2913   return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A,
   2914 						    (__v2di)
   2915 						    _mm_setzero_si128 (),
   2916 						    (__mmask8) __U);
   2917 }
   2918 
   2919 extern __inline __m256i
   2920 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2921 _mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
   2922 {
   2923   return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
   2924 						    (__v4di) __W,
   2925 						    (__mmask8) __U);
   2926 }
   2927 
   2928 extern __inline __m256i
   2929 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2930 _mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
   2931 {
   2932   return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X,
   2933 						    (__v4di)
   2934 						    _mm256_setzero_si256 (),
   2935 						    (__mmask8) __U);
   2936 }
   2937 
   2938 extern __inline __m128i
   2939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2940 _mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
   2941 {
   2942   return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
   2943 						    (__v2di) __W,
   2944 						    (__mmask8) __U);
   2945 }
   2946 
   2947 extern __inline __m128i
   2948 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2949 _mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X)
   2950 {
   2951   return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X,
   2952 						    (__v2di)
   2953 						    _mm_setzero_si128 (),
   2954 						    (__mmask8) __U);
   2955 }
   2956 
   2957 extern __inline __m256i
   2958 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2959 _mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
   2960 {
   2961   return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
   2962 						    (__v8si) __W,
   2963 						    (__mmask8) __U);
   2964 }
   2965 
   2966 extern __inline __m256i
   2967 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2968 _mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
   2969 {
   2970   return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A,
   2971 						    (__v8si)
   2972 						    _mm256_setzero_si256 (),
   2973 						    (__mmask8) __U);
   2974 }
   2975 
   2976 extern __inline __m128i
   2977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2978 _mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   2979 {
   2980   return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
   2981 						    (__v4si) __W,
   2982 						    (__mmask8) __U);
   2983 }
   2984 
   2985 extern __inline __m128i
   2986 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2987 _mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A)
   2988 {
   2989   return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A,
   2990 						    (__v4si)
   2991 						    _mm_setzero_si128 (),
   2992 						    (__mmask8) __U);
   2993 }
   2994 
   2995 extern __inline __m256i
   2996 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   2997 _mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
   2998 {
   2999   return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
   3000 						    (__v4di) __W,
   3001 						    (__mmask8) __U);
   3002 }
   3003 
   3004 extern __inline __m256i
   3005 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3006 _mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
   3007 {
   3008   return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A,
   3009 						    (__v4di)
   3010 						    _mm256_setzero_si256 (),
   3011 						    (__mmask8) __U);
   3012 }
   3013 
   3014 extern __inline __m128i
   3015 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3016 _mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   3017 {
   3018   return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
   3019 						    (__v2di) __W,
   3020 						    (__mmask8) __U);
   3021 }
   3022 
   3023 extern __inline __m128i
   3024 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3025 _mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
   3026 {
   3027   return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A,
   3028 						    (__v2di)
   3029 						    _mm_setzero_si128 (),
   3030 						    (__mmask8) __U);
   3031 }
   3032 
   3033 extern __inline __m256i
   3034 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3035 _mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
   3036 {
   3037   return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
   3038 						    (__v8si) __W,
   3039 						    (__mmask8) __U);
   3040 }
   3041 
   3042 extern __inline __m256i
   3043 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3044 _mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
   3045 {
   3046   return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A,
   3047 						    (__v8si)
   3048 						    _mm256_setzero_si256 (),
   3049 						    (__mmask8) __U);
   3050 }
   3051 
   3052 extern __inline __m128i
   3053 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3054 _mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   3055 {
   3056   return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
   3057 						    (__v4si) __W,
   3058 						    (__mmask8) __U);
   3059 }
   3060 
   3061 extern __inline __m128i
   3062 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3063 _mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A)
   3064 {
   3065   return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A,
   3066 						    (__v4si)
   3067 						    _mm_setzero_si128 (),
   3068 						    (__mmask8) __U);
   3069 }
   3070 
   3071 extern __inline __m256i
   3072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3073 _mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A)
   3074 {
   3075   return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
   3076 						    (__v4di) __W,
   3077 						    (__mmask8) __U);
   3078 }
   3079 
   3080 extern __inline __m256i
   3081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3082 _mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
   3083 {
   3084   return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A,
   3085 						    (__v4di)
   3086 						    _mm256_setzero_si256 (),
   3087 						    (__mmask8) __U);
   3088 }
   3089 
   3090 extern __inline __m128i
   3091 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3092 _mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   3093 {
   3094   return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
   3095 						    (__v2di) __W,
   3096 						    (__mmask8) __U);
   3097 }
   3098 
   3099 extern __inline __m128i
   3100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3101 _mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
   3102 {
   3103   return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A,
   3104 						    (__v2di)
   3105 						    _mm_setzero_si128 (),
   3106 						    (__mmask8) __U);
   3107 }
   3108 
   3109 extern __inline __m256i
   3110 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3111 _mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X)
   3112 {
   3113   return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
   3114 						    (__v4di) __W,
   3115 						    (__mmask8) __U);
   3116 }
   3117 
   3118 extern __inline __m256i
   3119 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3120 _mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
   3121 {
   3122   return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X,
   3123 						    (__v4di)
   3124 						    _mm256_setzero_si256 (),
   3125 						    (__mmask8) __U);
   3126 }
   3127 
   3128 extern __inline __m128i
   3129 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3130 _mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X)
   3131 {
   3132   return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
   3133 						    (__v2di) __W,
   3134 						    (__mmask8) __U);
   3135 }
   3136 
   3137 extern __inline __m128i
   3138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3139 _mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X)
   3140 {
   3141   return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X,
   3142 						    (__v2di)
   3143 						    _mm_setzero_si128 (),
   3144 						    (__mmask8) __U);
   3145 }
   3146 
   3147 extern __inline __m256d
   3148 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3149 _mm256_rcp14_pd (__m256d __A)
   3150 {
   3151   return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
   3152 					      (__v4df)
   3153 					      _mm256_setzero_pd (),
   3154 					      (__mmask8) -1);
   3155 }
   3156 
   3157 extern __inline __m256d
   3158 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3159 _mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
   3160 {
   3161   return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
   3162 					      (__v4df) __W,
   3163 					      (__mmask8) __U);
   3164 }
   3165 
   3166 extern __inline __m256d
   3167 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3168 _mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
   3169 {
   3170   return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
   3171 					      (__v4df)
   3172 					      _mm256_setzero_pd (),
   3173 					      (__mmask8) __U);
   3174 }
   3175 
   3176 extern __inline __m128d
   3177 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3178 _mm_rcp14_pd (__m128d __A)
   3179 {
   3180   return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
   3181 					      (__v2df)
   3182 					      _mm_setzero_pd (),
   3183 					      (__mmask8) -1);
   3184 }
   3185 
   3186 extern __inline __m128d
   3187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3188 _mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
   3189 {
   3190   return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
   3191 					      (__v2df) __W,
   3192 					      (__mmask8) __U);
   3193 }
   3194 
   3195 extern __inline __m128d
   3196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3197 _mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
   3198 {
   3199   return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
   3200 					      (__v2df)
   3201 					      _mm_setzero_pd (),
   3202 					      (__mmask8) __U);
   3203 }
   3204 
   3205 extern __inline __m256
   3206 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3207 _mm256_rcp14_ps (__m256 __A)
   3208 {
   3209   return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
   3210 					     (__v8sf)
   3211 					     _mm256_setzero_ps (),
   3212 					     (__mmask8) -1);
   3213 }
   3214 
   3215 extern __inline __m256
   3216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3217 _mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
   3218 {
   3219   return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
   3220 					     (__v8sf) __W,
   3221 					     (__mmask8) __U);
   3222 }
   3223 
   3224 extern __inline __m256
   3225 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3226 _mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
   3227 {
   3228   return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
   3229 					     (__v8sf)
   3230 					     _mm256_setzero_ps (),
   3231 					     (__mmask8) __U);
   3232 }
   3233 
   3234 extern __inline __m128
   3235 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3236 _mm_rcp14_ps (__m128 __A)
   3237 {
   3238   return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
   3239 					     (__v4sf)
   3240 					     _mm_setzero_ps (),
   3241 					     (__mmask8) -1);
   3242 }
   3243 
   3244 extern __inline __m128
   3245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3246 _mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
   3247 {
   3248   return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
   3249 					     (__v4sf) __W,
   3250 					     (__mmask8) __U);
   3251 }
   3252 
   3253 extern __inline __m128
   3254 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3255 _mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
   3256 {
   3257   return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
   3258 					     (__v4sf)
   3259 					     _mm_setzero_ps (),
   3260 					     (__mmask8) __U);
   3261 }
   3262 
   3263 extern __inline __m256d
   3264 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3265 _mm256_rsqrt14_pd (__m256d __A)
   3266 {
   3267   return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
   3268 						     (__v4df)
   3269 						     _mm256_setzero_pd (),
   3270 						     (__mmask8) -1);
   3271 }
   3272 
   3273 extern __inline __m256d
   3274 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3275 _mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
   3276 {
   3277   return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
   3278 						     (__v4df) __W,
   3279 						     (__mmask8) __U);
   3280 }
   3281 
   3282 extern __inline __m256d
   3283 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3284 _mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
   3285 {
   3286   return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
   3287 						     (__v4df)
   3288 						     _mm256_setzero_pd (),
   3289 						     (__mmask8) __U);
   3290 }
   3291 
   3292 extern __inline __m128d
   3293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3294 _mm_rsqrt14_pd (__m128d __A)
   3295 {
   3296   return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
   3297 						     (__v2df)
   3298 						     _mm_setzero_pd (),
   3299 						     (__mmask8) -1);
   3300 }
   3301 
   3302 extern __inline __m128d
   3303 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3304 _mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
   3305 {
   3306   return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
   3307 						     (__v2df) __W,
   3308 						     (__mmask8) __U);
   3309 }
   3310 
   3311 extern __inline __m128d
   3312 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3313 _mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
   3314 {
   3315   return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
   3316 						     (__v2df)
   3317 						     _mm_setzero_pd (),
   3318 						     (__mmask8) __U);
   3319 }
   3320 
   3321 extern __inline __m256
   3322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3323 _mm256_rsqrt14_ps (__m256 __A)
   3324 {
   3325   return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
   3326 						    (__v8sf)
   3327 						    _mm256_setzero_ps (),
   3328 						    (__mmask8) -1);
   3329 }
   3330 
   3331 extern __inline __m256
   3332 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3333 _mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
   3334 {
   3335   return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
   3336 						    (__v8sf) __W,
   3337 						    (__mmask8) __U);
   3338 }
   3339 
   3340 extern __inline __m256
   3341 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3342 _mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
   3343 {
   3344   return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
   3345 						    (__v8sf)
   3346 						    _mm256_setzero_ps (),
   3347 						    (__mmask8) __U);
   3348 }
   3349 
   3350 extern __inline __m128
   3351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3352 _mm_rsqrt14_ps (__m128 __A)
   3353 {
   3354   return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
   3355 						    (__v4sf)
   3356 						    _mm_setzero_ps (),
   3357 						    (__mmask8) -1);
   3358 }
   3359 
   3360 extern __inline __m128
   3361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3362 _mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
   3363 {
   3364   return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
   3365 						    (__v4sf) __W,
   3366 						    (__mmask8) __U);
   3367 }
   3368 
   3369 extern __inline __m128
   3370 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3371 _mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
   3372 {
   3373   return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
   3374 						    (__v4sf)
   3375 						    _mm_setzero_ps (),
   3376 						    (__mmask8) __U);
   3377 }
   3378 
   3379 extern __inline __m256d
   3380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3381 _mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A)
   3382 {
   3383   return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
   3384 						  (__v4df) __W,
   3385 						  (__mmask8) __U);
   3386 }
   3387 
   3388 extern __inline __m256d
   3389 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3390 _mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A)
   3391 {
   3392   return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A,
   3393 						  (__v4df)
   3394 						  _mm256_setzero_pd (),
   3395 						  (__mmask8) __U);
   3396 }
   3397 
   3398 extern __inline __m128d
   3399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3400 _mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A)
   3401 {
   3402   return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
   3403 						  (__v2df) __W,
   3404 						  (__mmask8) __U);
   3405 }
   3406 
   3407 extern __inline __m128d
   3408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3409 _mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A)
   3410 {
   3411   return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A,
   3412 						  (__v2df)
   3413 						  _mm_setzero_pd (),
   3414 						  (__mmask8) __U);
   3415 }
   3416 
   3417 extern __inline __m256
   3418 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3419 _mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A)
   3420 {
   3421   return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
   3422 						 (__v8sf) __W,
   3423 						 (__mmask8) __U);
   3424 }
   3425 
   3426 extern __inline __m256
   3427 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3428 _mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A)
   3429 {
   3430   return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A,
   3431 						 (__v8sf)
   3432 						 _mm256_setzero_ps (),
   3433 						 (__mmask8) __U);
   3434 }
   3435 
   3436 extern __inline __m128
   3437 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3438 _mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A)
   3439 {
   3440   return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
   3441 						 (__v4sf) __W,
   3442 						 (__mmask8) __U);
   3443 }
   3444 
   3445 extern __inline __m128
   3446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3447 _mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A)
   3448 {
   3449   return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A,
   3450 						 (__v4sf)
   3451 						 _mm_setzero_ps (),
   3452 						 (__mmask8) __U);
   3453 }
   3454 
   3455 extern __inline __m256i
   3456 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3457 _mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   3458 		       __m256i __B)
   3459 {
   3460   return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
   3461 						 (__v8si) __B,
   3462 						 (__v8si) __W,
   3463 						 (__mmask8) __U);
   3464 }
   3465 
   3466 extern __inline __m256i
   3467 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3468 _mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   3469 {
   3470   return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A,
   3471 						 (__v8si) __B,
   3472 						 (__v8si)
   3473 						 _mm256_setzero_si256 (),
   3474 						 (__mmask8) __U);
   3475 }
   3476 
   3477 extern __inline __m256i
   3478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3479 _mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   3480 		       __m256i __B)
   3481 {
   3482   return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
   3483 						 (__v4di) __B,
   3484 						 (__v4di) __W,
   3485 						 (__mmask8) __U);
   3486 }
   3487 
   3488 extern __inline __m256i
   3489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3490 _mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   3491 {
   3492   return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A,
   3493 						 (__v4di) __B,
   3494 						 (__v4di)
   3495 						 _mm256_setzero_si256 (),
   3496 						 (__mmask8) __U);
   3497 }
   3498 
   3499 extern __inline __m256i
   3500 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3501 _mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   3502 		       __m256i __B)
   3503 {
   3504   return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
   3505 						 (__v8si) __B,
   3506 						 (__v8si) __W,
   3507 						 (__mmask8) __U);
   3508 }
   3509 
   3510 extern __inline __m256i
   3511 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3512 _mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   3513 {
   3514   return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A,
   3515 						 (__v8si) __B,
   3516 						 (__v8si)
   3517 						 _mm256_setzero_si256 (),
   3518 						 (__mmask8) __U);
   3519 }
   3520 
   3521 extern __inline __m256i
   3522 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3523 _mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   3524 		       __m256i __B)
   3525 {
   3526   return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
   3527 						 (__v4di) __B,
   3528 						 (__v4di) __W,
   3529 						 (__mmask8) __U);
   3530 }
   3531 
   3532 extern __inline __m256i
   3533 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3534 _mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   3535 {
   3536   return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A,
   3537 						 (__v4di) __B,
   3538 						 (__v4di)
   3539 						 _mm256_setzero_si256 (),
   3540 						 (__mmask8) __U);
   3541 }
   3542 
   3543 extern __inline __m128i
   3544 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3545 _mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   3546 		    __m128i __B)
   3547 {
   3548   return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
   3549 						 (__v4si) __B,
   3550 						 (__v4si) __W,
   3551 						 (__mmask8) __U);
   3552 }
   3553 
   3554 extern __inline __m128i
   3555 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3556 _mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   3557 {
   3558   return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A,
   3559 						 (__v4si) __B,
   3560 						 (__v4si)
   3561 						 _mm_setzero_si128 (),
   3562 						 (__mmask8) __U);
   3563 }
   3564 
   3565 extern __inline __m128i
   3566 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3567 _mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   3568 		    __m128i __B)
   3569 {
   3570   return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
   3571 						 (__v2di) __B,
   3572 						 (__v2di) __W,
   3573 						 (__mmask8) __U);
   3574 }
   3575 
   3576 extern __inline __m128i
   3577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3578 _mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   3579 {
   3580   return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A,
   3581 						 (__v2di) __B,
   3582 						 (__v2di)
   3583 						 _mm_setzero_si128 (),
   3584 						 (__mmask8) __U);
   3585 }
   3586 
   3587 extern __inline __m128i
   3588 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3589 _mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   3590 		    __m128i __B)
   3591 {
   3592   return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
   3593 						 (__v4si) __B,
   3594 						 (__v4si) __W,
   3595 						 (__mmask8) __U);
   3596 }
   3597 
   3598 extern __inline __m128i
   3599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3600 _mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   3601 {
   3602   return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A,
   3603 						 (__v4si) __B,
   3604 						 (__v4si)
   3605 						 _mm_setzero_si128 (),
   3606 						 (__mmask8) __U);
   3607 }
   3608 
   3609 extern __inline __m128i
   3610 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3611 _mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   3612 		    __m128i __B)
   3613 {
   3614   return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
   3615 						 (__v2di) __B,
   3616 						 (__v2di) __W,
   3617 						 (__mmask8) __U);
   3618 }
   3619 
   3620 extern __inline __m128i
   3621 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3622 _mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   3623 {
   3624   return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A,
   3625 						 (__v2di) __B,
   3626 						 (__v2di)
   3627 						 _mm_setzero_si128 (),
   3628 						 (__mmask8) __U);
   3629 }
   3630 
   3631 extern __inline __m256
   3632 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3633 _mm256_getexp_ps (__m256 __A)
   3634 {
   3635   return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
   3636 						   (__v8sf)
   3637 						   _mm256_setzero_ps (),
   3638 						   (__mmask8) -1);
   3639 }
   3640 
   3641 extern __inline __m256
   3642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3643 _mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A)
   3644 {
   3645   return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
   3646 						   (__v8sf) __W,
   3647 						   (__mmask8) __U);
   3648 }
   3649 
   3650 extern __inline __m256
   3651 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3652 _mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A)
   3653 {
   3654   return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
   3655 						   (__v8sf)
   3656 						   _mm256_setzero_ps (),
   3657 						   (__mmask8) __U);
   3658 }
   3659 
   3660 extern __inline __m256d
   3661 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3662 _mm256_getexp_pd (__m256d __A)
   3663 {
   3664   return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
   3665 						    (__v4df)
   3666 						    _mm256_setzero_pd (),
   3667 						    (__mmask8) -1);
   3668 }
   3669 
   3670 extern __inline __m256d
   3671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3672 _mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A)
   3673 {
   3674   return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
   3675 						    (__v4df) __W,
   3676 						    (__mmask8) __U);
   3677 }
   3678 
   3679 extern __inline __m256d
   3680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3681 _mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A)
   3682 {
   3683   return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
   3684 						    (__v4df)
   3685 						    _mm256_setzero_pd (),
   3686 						    (__mmask8) __U);
   3687 }
   3688 
   3689 extern __inline __m128
   3690 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3691 _mm_getexp_ps (__m128 __A)
   3692 {
   3693   return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
   3694 						   (__v4sf)
   3695 						   _mm_setzero_ps (),
   3696 						   (__mmask8) -1);
   3697 }
   3698 
   3699 extern __inline __m128
   3700 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3701 _mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A)
   3702 {
   3703   return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
   3704 						   (__v4sf) __W,
   3705 						   (__mmask8) __U);
   3706 }
   3707 
   3708 extern __inline __m128
   3709 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3710 _mm_maskz_getexp_ps (__mmask8 __U, __m128 __A)
   3711 {
   3712   return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
   3713 						   (__v4sf)
   3714 						   _mm_setzero_ps (),
   3715 						   (__mmask8) __U);
   3716 }
   3717 
   3718 extern __inline __m128d
   3719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3720 _mm_getexp_pd (__m128d __A)
   3721 {
   3722   return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
   3723 						    (__v2df)
   3724 						    _mm_setzero_pd (),
   3725 						    (__mmask8) -1);
   3726 }
   3727 
   3728 extern __inline __m128d
   3729 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3730 _mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A)
   3731 {
   3732   return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
   3733 						    (__v2df) __W,
   3734 						    (__mmask8) __U);
   3735 }
   3736 
   3737 extern __inline __m128d
   3738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3739 _mm_maskz_getexp_pd (__mmask8 __U, __m128d __A)
   3740 {
   3741   return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
   3742 						    (__v2df)
   3743 						    _mm_setzero_pd (),
   3744 						    (__mmask8) __U);
   3745 }
   3746 
   3747 extern __inline __m256i
   3748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3749 _mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   3750 		       __m128i __B)
   3751 {
   3752   return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
   3753 						 (__v4si) __B,
   3754 						 (__v8si) __W,
   3755 						 (__mmask8) __U);
   3756 }
   3757 
   3758 extern __inline __m256i
   3759 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3760 _mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
   3761 {
   3762   return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A,
   3763 						 (__v4si) __B,
   3764 						 (__v8si)
   3765 						 _mm256_setzero_si256 (),
   3766 						 (__mmask8) __U);
   3767 }
   3768 
   3769 extern __inline __m128i
   3770 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3771 _mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   3772 		    __m128i __B)
   3773 {
   3774   return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
   3775 						 (__v4si) __B,
   3776 						 (__v4si) __W,
   3777 						 (__mmask8) __U);
   3778 }
   3779 
   3780 extern __inline __m128i
   3781 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3782 _mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   3783 {
   3784   return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A,
   3785 						 (__v4si) __B,
   3786 						 (__v4si)
   3787 						 _mm_setzero_si128 (),
   3788 						 (__mmask8) __U);
   3789 }
   3790 
   3791 extern __inline __m256i
   3792 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3793 _mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   3794 		       __m128i __B)
   3795 {
   3796   return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
   3797 						 (__v2di) __B,
   3798 						 (__v4di) __W,
   3799 						 (__mmask8) __U);
   3800 }
   3801 
   3802 extern __inline __m256i
   3803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3804 _mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
   3805 {
   3806   return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A,
   3807 						 (__v2di) __B,
   3808 						 (__v4di)
   3809 						 _mm256_setzero_si256 (),
   3810 						 (__mmask8) __U);
   3811 }
   3812 
   3813 extern __inline __m128i
   3814 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3815 _mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   3816 		    __m128i __B)
   3817 {
   3818   return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
   3819 						 (__v2di) __B,
   3820 						 (__v2di) __W,
   3821 						 (__mmask8) __U);
   3822 }
   3823 
   3824 extern __inline __m128i
   3825 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3826 _mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   3827 {
   3828   return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A,
   3829 						 (__v2di) __B,
   3830 						 (__v2di)
   3831 						 _mm_setzero_si128 (),
   3832 						 (__mmask8) __U);
   3833 }
   3834 
   3835 extern __inline __m256i
   3836 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3837 _mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   3838 		       __m256i __B)
   3839 {
   3840   return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
   3841 						 (__v8si) __B,
   3842 						 (__v8si) __W,
   3843 						 (__mmask8) __U);
   3844 }
   3845 
   3846 extern __inline __m256i
   3847 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3848 _mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   3849 {
   3850   return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A,
   3851 						 (__v8si) __B,
   3852 						 (__v8si)
   3853 						 _mm256_setzero_si256 (),
   3854 						 (__mmask8) __U);
   3855 }
   3856 
   3857 extern __inline __m256d
   3858 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3859 _mm256_scalef_pd (__m256d __A, __m256d __B)
   3860 {
   3861   return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
   3862 						    (__v4df) __B,
   3863 						    (__v4df)
   3864 						    _mm256_setzero_pd (),
   3865 						    (__mmask8) -1);
   3866 }
   3867 
   3868 extern __inline __m256d
   3869 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3870 _mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
   3871 		       __m256d __B)
   3872 {
   3873   return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
   3874 						    (__v4df) __B,
   3875 						    (__v4df) __W,
   3876 						    (__mmask8) __U);
   3877 }
   3878 
   3879 extern __inline __m256d
   3880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3881 _mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B)
   3882 {
   3883   return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
   3884 						    (__v4df) __B,
   3885 						    (__v4df)
   3886 						    _mm256_setzero_pd (),
   3887 						    (__mmask8) __U);
   3888 }
   3889 
   3890 extern __inline __m256
   3891 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3892 _mm256_scalef_ps (__m256 __A, __m256 __B)
   3893 {
   3894   return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
   3895 						   (__v8sf) __B,
   3896 						   (__v8sf)
   3897 						   _mm256_setzero_ps (),
   3898 						   (__mmask8) -1);
   3899 }
   3900 
   3901 extern __inline __m256
   3902 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3903 _mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
   3904 		       __m256 __B)
   3905 {
   3906   return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
   3907 						   (__v8sf) __B,
   3908 						   (__v8sf) __W,
   3909 						   (__mmask8) __U);
   3910 }
   3911 
   3912 extern __inline __m256
   3913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3914 _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B)
   3915 {
   3916   return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
   3917 						   (__v8sf) __B,
   3918 						   (__v8sf)
   3919 						   _mm256_setzero_ps (),
   3920 						   (__mmask8) __U);
   3921 }
   3922 
   3923 extern __inline __m128d
   3924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3925 _mm_scalef_pd (__m128d __A, __m128d __B)
   3926 {
   3927   return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
   3928 						    (__v2df) __B,
   3929 						    (__v2df)
   3930 						    _mm_setzero_pd (),
   3931 						    (__mmask8) -1);
   3932 }
   3933 
   3934 extern __inline __m128d
   3935 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3936 _mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
   3937 		    __m128d __B)
   3938 {
   3939   return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
   3940 						    (__v2df) __B,
   3941 						    (__v2df) __W,
   3942 						    (__mmask8) __U);
   3943 }
   3944 
   3945 extern __inline __m128d
   3946 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3947 _mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B)
   3948 {
   3949   return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
   3950 						    (__v2df) __B,
   3951 						    (__v2df)
   3952 						    _mm_setzero_pd (),
   3953 						    (__mmask8) __U);
   3954 }
   3955 
   3956 extern __inline __m128
   3957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3958 _mm_scalef_ps (__m128 __A, __m128 __B)
   3959 {
   3960   return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
   3961 						   (__v4sf) __B,
   3962 						   (__v4sf)
   3963 						   _mm_setzero_ps (),
   3964 						   (__mmask8) -1);
   3965 }
   3966 
   3967 extern __inline __m128
   3968 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3969 _mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   3970 {
   3971   return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
   3972 						   (__v4sf) __B,
   3973 						   (__v4sf) __W,
   3974 						   (__mmask8) __U);
   3975 }
   3976 
   3977 extern __inline __m128
   3978 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3979 _mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B)
   3980 {
   3981   return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
   3982 						   (__v4sf) __B,
   3983 						   (__v4sf)
   3984 						   _mm_setzero_ps (),
   3985 						   (__mmask8) __U);
   3986 }
   3987 
   3988 extern __inline __m256d
   3989 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   3990 _mm256_mask_fmadd_pd (__m256d __A, __mmask8 __U, __m256d __B,
   3991 		      __m256d __C)
   3992 {
   3993   return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
   3994 						    (__v4df) __B,
   3995 						    (__v4df) __C,
   3996 						    (__mmask8) __U);
   3997 }
   3998 
   3999 extern __inline __m256d
   4000 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4001 _mm256_mask3_fmadd_pd (__m256d __A, __m256d __B, __m256d __C,
   4002 		       __mmask8 __U)
   4003 {
   4004   return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A,
   4005 						     (__v4df) __B,
   4006 						     (__v4df) __C,
   4007 						     (__mmask8) __U);
   4008 }
   4009 
   4010 extern __inline __m256d
   4011 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4012 _mm256_maskz_fmadd_pd (__mmask8 __U, __m256d __A, __m256d __B,
   4013 		       __m256d __C)
   4014 {
   4015   return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
   4016 						     (__v4df) __B,
   4017 						     (__v4df) __C,
   4018 						     (__mmask8) __U);
   4019 }
   4020 
   4021 extern __inline __m128d
   4022 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4023 _mm_mask_fmadd_pd (__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
   4024 {
   4025   return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
   4026 						    (__v2df) __B,
   4027 						    (__v2df) __C,
   4028 						    (__mmask8) __U);
   4029 }
   4030 
   4031 extern __inline __m128d
   4032 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4033 _mm_mask3_fmadd_pd (__m128d __A, __m128d __B, __m128d __C,
   4034 		    __mmask8 __U)
   4035 {
   4036   return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A,
   4037 						     (__v2df) __B,
   4038 						     (__v2df) __C,
   4039 						     (__mmask8) __U);
   4040 }
   4041 
   4042 extern __inline __m128d
   4043 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4044 _mm_maskz_fmadd_pd (__mmask8 __U, __m128d __A, __m128d __B,
   4045 		    __m128d __C)
   4046 {
   4047   return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
   4048 						     (__v2df) __B,
   4049 						     (__v2df) __C,
   4050 						     (__mmask8) __U);
   4051 }
   4052 
   4053 extern __inline __m256
   4054 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4055 _mm256_mask_fmadd_ps (__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
   4056 {
   4057   return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
   4058 						   (__v8sf) __B,
   4059 						   (__v8sf) __C,
   4060 						   (__mmask8) __U);
   4061 }
   4062 
   4063 extern __inline __m256
   4064 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4065 _mm256_mask3_fmadd_ps (__m256 __A, __m256 __B, __m256 __C,
   4066 		       __mmask8 __U)
   4067 {
   4068   return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A,
   4069 						    (__v8sf) __B,
   4070 						    (__v8sf) __C,
   4071 						    (__mmask8) __U);
   4072 }
   4073 
   4074 extern __inline __m256
   4075 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4076 _mm256_maskz_fmadd_ps (__mmask8 __U, __m256 __A, __m256 __B,
   4077 		       __m256 __C)
   4078 {
   4079   return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
   4080 						    (__v8sf) __B,
   4081 						    (__v8sf) __C,
   4082 						    (__mmask8) __U);
   4083 }
   4084 
   4085 extern __inline __m128
   4086 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4087 _mm_mask_fmadd_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
   4088 {
   4089   return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
   4090 						   (__v4sf) __B,
   4091 						   (__v4sf) __C,
   4092 						   (__mmask8) __U);
   4093 }
   4094 
   4095 extern __inline __m128
   4096 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4097 _mm_mask3_fmadd_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
   4098 {
   4099   return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A,
   4100 						    (__v4sf) __B,
   4101 						    (__v4sf) __C,
   4102 						    (__mmask8) __U);
   4103 }
   4104 
   4105 extern __inline __m128
   4106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4107 _mm_maskz_fmadd_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
   4108 {
   4109   return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
   4110 						    (__v4sf) __B,
   4111 						    (__v4sf) __C,
   4112 						    (__mmask8) __U);
   4113 }
   4114 
   4115 extern __inline __m256d
   4116 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4117 _mm256_mask_fmsub_pd (__m256d __A, __mmask8 __U, __m256d __B,
   4118 		      __m256d __C)
   4119 {
   4120   return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A,
   4121 						    (__v4df) __B,
   4122 						    -(__v4df) __C,
   4123 						    (__mmask8) __U);
   4124 }
   4125 
   4126 extern __inline __m256d
   4127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4128 _mm256_mask3_fmsub_pd (__m256d __A, __m256d __B, __m256d __C,
   4129 		       __mmask8 __U)
   4130 {
   4131   return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A,
   4132 						     (__v4df) __B,
   4133 						     (__v4df) __C,
   4134 						     (__mmask8) __U);
   4135 }
   4136 
   4137 extern __inline __m256d
   4138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4139 _mm256_maskz_fmsub_pd (__mmask8 __U, __m256d __A, __m256d __B,
   4140 		       __m256d __C)
   4141 {
   4142   return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A,
   4143 						     (__v4df) __B,
   4144 						     -(__v4df) __C,
   4145 						     (__mmask8) __U);
   4146 }
   4147 
   4148 extern __inline __m128d
   4149 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4150 _mm_mask_fmsub_pd (__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
   4151 {
   4152   return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A,
   4153 						    (__v2df) __B,
   4154 						    -(__v2df) __C,
   4155 						    (__mmask8) __U);
   4156 }
   4157 
   4158 extern __inline __m128d
   4159 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4160 _mm_mask3_fmsub_pd (__m128d __A, __m128d __B, __m128d __C,
   4161 		    __mmask8 __U)
   4162 {
   4163   return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A,
   4164 						     (__v2df) __B,
   4165 						     (__v2df) __C,
   4166 						     (__mmask8) __U);
   4167 }
   4168 
   4169 extern __inline __m128d
   4170 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4171 _mm_maskz_fmsub_pd (__mmask8 __U, __m128d __A, __m128d __B,
   4172 		    __m128d __C)
   4173 {
   4174   return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A,
   4175 						     (__v2df) __B,
   4176 						     -(__v2df) __C,
   4177 						     (__mmask8) __U);
   4178 }
   4179 
   4180 extern __inline __m256
   4181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4182 _mm256_mask_fmsub_ps (__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
   4183 {
   4184   return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A,
   4185 						   (__v8sf) __B,
   4186 						   -(__v8sf) __C,
   4187 						   (__mmask8) __U);
   4188 }
   4189 
   4190 extern __inline __m256
   4191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4192 _mm256_mask3_fmsub_ps (__m256 __A, __m256 __B, __m256 __C,
   4193 		       __mmask8 __U)
   4194 {
   4195   return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A,
   4196 						    (__v8sf) __B,
   4197 						    (__v8sf) __C,
   4198 						    (__mmask8) __U);
   4199 }
   4200 
   4201 extern __inline __m256
   4202 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4203 _mm256_maskz_fmsub_ps (__mmask8 __U, __m256 __A, __m256 __B,
   4204 		       __m256 __C)
   4205 {
   4206   return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A,
   4207 						    (__v8sf) __B,
   4208 						    -(__v8sf) __C,
   4209 						    (__mmask8) __U);
   4210 }
   4211 
   4212 extern __inline __m128
   4213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4214 _mm_mask_fmsub_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
   4215 {
   4216   return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A,
   4217 						   (__v4sf) __B,
   4218 						   -(__v4sf) __C,
   4219 						   (__mmask8) __U);
   4220 }
   4221 
   4222 extern __inline __m128
   4223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4224 _mm_mask3_fmsub_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
   4225 {
   4226   return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A,
   4227 						    (__v4sf) __B,
   4228 						    (__v4sf) __C,
   4229 						    (__mmask8) __U);
   4230 }
   4231 
   4232 extern __inline __m128
   4233 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4234 _mm_maskz_fmsub_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
   4235 {
   4236   return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A,
   4237 						    (__v4sf) __B,
   4238 						    -(__v4sf) __C,
   4239 						    (__mmask8) __U);
   4240 }
   4241 
   4242 extern __inline __m256d
   4243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4244 _mm256_mask_fmaddsub_pd (__m256d __A, __mmask8 __U, __m256d __B,
   4245 			 __m256d __C)
   4246 {
   4247   return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
   4248 						       (__v4df) __B,
   4249 						       (__v4df) __C,
   4250 						       (__mmask8) __U);
   4251 }
   4252 
   4253 extern __inline __m256d
   4254 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4255 _mm256_mask3_fmaddsub_pd (__m256d __A, __m256d __B, __m256d __C,
   4256 			  __mmask8 __U)
   4257 {
   4258   return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A,
   4259 							(__v4df) __B,
   4260 							(__v4df) __C,
   4261 							(__mmask8)
   4262 							__U);
   4263 }
   4264 
   4265 extern __inline __m256d
   4266 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4267 _mm256_maskz_fmaddsub_pd (__mmask8 __U, __m256d __A, __m256d __B,
   4268 			  __m256d __C)
   4269 {
   4270   return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
   4271 							(__v4df) __B,
   4272 							(__v4df) __C,
   4273 							(__mmask8)
   4274 							__U);
   4275 }
   4276 
   4277 extern __inline __m128d
   4278 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4279 _mm_mask_fmaddsub_pd (__m128d __A, __mmask8 __U, __m128d __B,
   4280 		      __m128d __C)
   4281 {
   4282   return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
   4283 						       (__v2df) __B,
   4284 						       (__v2df) __C,
   4285 						       (__mmask8) __U);
   4286 }
   4287 
   4288 extern __inline __m128d
   4289 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4290 _mm_mask3_fmaddsub_pd (__m128d __A, __m128d __B, __m128d __C,
   4291 		       __mmask8 __U)
   4292 {
   4293   return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A,
   4294 							(__v2df) __B,
   4295 							(__v2df) __C,
   4296 							(__mmask8)
   4297 							__U);
   4298 }
   4299 
   4300 extern __inline __m128d
   4301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4302 _mm_maskz_fmaddsub_pd (__mmask8 __U, __m128d __A, __m128d __B,
   4303 		       __m128d __C)
   4304 {
   4305   return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
   4306 							(__v2df) __B,
   4307 							(__v2df) __C,
   4308 							(__mmask8)
   4309 							__U);
   4310 }
   4311 
   4312 extern __inline __m256
   4313 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4314 _mm256_mask_fmaddsub_ps (__m256 __A, __mmask8 __U, __m256 __B,
   4315 			 __m256 __C)
   4316 {
   4317   return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
   4318 						      (__v8sf) __B,
   4319 						      (__v8sf) __C,
   4320 						      (__mmask8) __U);
   4321 }
   4322 
   4323 extern __inline __m256
   4324 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4325 _mm256_mask3_fmaddsub_ps (__m256 __A, __m256 __B, __m256 __C,
   4326 			  __mmask8 __U)
   4327 {
   4328   return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A,
   4329 						       (__v8sf) __B,
   4330 						       (__v8sf) __C,
   4331 						       (__mmask8) __U);
   4332 }
   4333 
   4334 extern __inline __m256
   4335 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4336 _mm256_maskz_fmaddsub_ps (__mmask8 __U, __m256 __A, __m256 __B,
   4337 			  __m256 __C)
   4338 {
   4339   return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
   4340 						       (__v8sf) __B,
   4341 						       (__v8sf) __C,
   4342 						       (__mmask8) __U);
   4343 }
   4344 
   4345 extern __inline __m128
   4346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4347 _mm_mask_fmaddsub_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
   4348 {
   4349   return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
   4350 						      (__v4sf) __B,
   4351 						      (__v4sf) __C,
   4352 						      (__mmask8) __U);
   4353 }
   4354 
   4355 extern __inline __m128
   4356 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4357 _mm_mask3_fmaddsub_ps (__m128 __A, __m128 __B, __m128 __C,
   4358 		       __mmask8 __U)
   4359 {
   4360   return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A,
   4361 						       (__v4sf) __B,
   4362 						       (__v4sf) __C,
   4363 						       (__mmask8) __U);
   4364 }
   4365 
   4366 extern __inline __m128
   4367 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4368 _mm_maskz_fmaddsub_ps (__mmask8 __U, __m128 __A, __m128 __B,
   4369 		       __m128 __C)
   4370 {
   4371   return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
   4372 						       (__v4sf) __B,
   4373 						       (__v4sf) __C,
   4374 						       (__mmask8) __U);
   4375 }
   4376 
   4377 extern __inline __m256d
   4378 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4379 _mm256_mask_fmsubadd_pd (__m256d __A, __mmask8 __U, __m256d __B,
   4380 			 __m256d __C)
   4381 {
   4382   return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A,
   4383 						       (__v4df) __B,
   4384 						       -(__v4df) __C,
   4385 						       (__mmask8) __U);
   4386 }
   4387 
   4388 extern __inline __m256d
   4389 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4390 _mm256_mask3_fmsubadd_pd (__m256d __A, __m256d __B, __m256d __C,
   4391 			  __mmask8 __U)
   4392 {
   4393   return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A,
   4394 							(__v4df) __B,
   4395 							(__v4df) __C,
   4396 							(__mmask8)
   4397 							__U);
   4398 }
   4399 
   4400 extern __inline __m256d
   4401 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4402 _mm256_maskz_fmsubadd_pd (__mmask8 __U, __m256d __A, __m256d __B,
   4403 			  __m256d __C)
   4404 {
   4405   return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A,
   4406 							(__v4df) __B,
   4407 							-(__v4df) __C,
   4408 							(__mmask8)
   4409 							__U);
   4410 }
   4411 
   4412 extern __inline __m128d
   4413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4414 _mm_mask_fmsubadd_pd (__m128d __A, __mmask8 __U, __m128d __B,
   4415 		      __m128d __C)
   4416 {
   4417   return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A,
   4418 						       (__v2df) __B,
   4419 						       -(__v2df) __C,
   4420 						       (__mmask8) __U);
   4421 }
   4422 
   4423 extern __inline __m128d
   4424 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4425 _mm_mask3_fmsubadd_pd (__m128d __A, __m128d __B, __m128d __C,
   4426 		       __mmask8 __U)
   4427 {
   4428   return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A,
   4429 							(__v2df) __B,
   4430 							(__v2df) __C,
   4431 							(__mmask8)
   4432 							__U);
   4433 }
   4434 
   4435 extern __inline __m128d
   4436 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4437 _mm_maskz_fmsubadd_pd (__mmask8 __U, __m128d __A, __m128d __B,
   4438 		       __m128d __C)
   4439 {
   4440   return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A,
   4441 							(__v2df) __B,
   4442 							-(__v2df) __C,
   4443 							(__mmask8)
   4444 							__U);
   4445 }
   4446 
   4447 extern __inline __m256
   4448 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4449 _mm256_mask_fmsubadd_ps (__m256 __A, __mmask8 __U, __m256 __B,
   4450 			 __m256 __C)
   4451 {
   4452   return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A,
   4453 						      (__v8sf) __B,
   4454 						      -(__v8sf) __C,
   4455 						      (__mmask8) __U);
   4456 }
   4457 
   4458 extern __inline __m256
   4459 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4460 _mm256_mask3_fmsubadd_ps (__m256 __A, __m256 __B, __m256 __C,
   4461 			  __mmask8 __U)
   4462 {
   4463   return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A,
   4464 						       (__v8sf) __B,
   4465 						       (__v8sf) __C,
   4466 						       (__mmask8) __U);
   4467 }
   4468 
   4469 extern __inline __m256
   4470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4471 _mm256_maskz_fmsubadd_ps (__mmask8 __U, __m256 __A, __m256 __B,
   4472 			  __m256 __C)
   4473 {
   4474   return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A,
   4475 						       (__v8sf) __B,
   4476 						       -(__v8sf) __C,
   4477 						       (__mmask8) __U);
   4478 }
   4479 
   4480 extern __inline __m128
   4481 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4482 _mm_mask_fmsubadd_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
   4483 {
   4484   return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A,
   4485 						      (__v4sf) __B,
   4486 						      -(__v4sf) __C,
   4487 						      (__mmask8) __U);
   4488 }
   4489 
   4490 extern __inline __m128
   4491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4492 _mm_mask3_fmsubadd_ps (__m128 __A, __m128 __B, __m128 __C,
   4493 		       __mmask8 __U)
   4494 {
   4495   return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A,
   4496 						       (__v4sf) __B,
   4497 						       (__v4sf) __C,
   4498 						       (__mmask8) __U);
   4499 }
   4500 
   4501 extern __inline __m128
   4502 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4503 _mm_maskz_fmsubadd_ps (__mmask8 __U, __m128 __A, __m128 __B,
   4504 		       __m128 __C)
   4505 {
   4506   return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A,
   4507 						       (__v4sf) __B,
   4508 						       -(__v4sf) __C,
   4509 						       (__mmask8) __U);
   4510 }
   4511 
   4512 extern __inline __m256d
   4513 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4514 _mm256_mask_fnmadd_pd (__m256d __A, __mmask8 __U, __m256d __B,
   4515 		       __m256d __C)
   4516 {
   4517   return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A,
   4518 						     (__v4df) __B,
   4519 						     (__v4df) __C,
   4520 						     (__mmask8) __U);
   4521 }
   4522 
   4523 extern __inline __m256d
   4524 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4525 _mm256_mask3_fnmadd_pd (__m256d __A, __m256d __B, __m256d __C,
   4526 			__mmask8 __U)
   4527 {
   4528   return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A,
   4529 						     (__v4df) __B,
   4530 						     (__v4df) __C,
   4531 						     (__mmask8) __U);
   4532 }
   4533 
   4534 extern __inline __m256d
   4535 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4536 _mm256_maskz_fnmadd_pd (__mmask8 __U, __m256d __A, __m256d __B,
   4537 			__m256d __C)
   4538 {
   4539   return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
   4540 						     (__v4df) __B,
   4541 						     (__v4df) __C,
   4542 						     (__mmask8) __U);
   4543 }
   4544 
   4545 extern __inline __m128d
   4546 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4547 _mm_mask_fnmadd_pd (__m128d __A, __mmask8 __U, __m128d __B,
   4548 		    __m128d __C)
   4549 {
   4550   return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A,
   4551 						     (__v2df) __B,
   4552 						     (__v2df) __C,
   4553 						     (__mmask8) __U);
   4554 }
   4555 
   4556 extern __inline __m128d
   4557 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4558 _mm_mask3_fnmadd_pd (__m128d __A, __m128d __B, __m128d __C,
   4559 		     __mmask8 __U)
   4560 {
   4561   return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A,
   4562 						     (__v2df) __B,
   4563 						     (__v2df) __C,
   4564 						     (__mmask8) __U);
   4565 }
   4566 
   4567 extern __inline __m128d
   4568 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4569 _mm_maskz_fnmadd_pd (__mmask8 __U, __m128d __A, __m128d __B,
   4570 		     __m128d __C)
   4571 {
   4572   return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
   4573 						     (__v2df) __B,
   4574 						     (__v2df) __C,
   4575 						     (__mmask8) __U);
   4576 }
   4577 
   4578 extern __inline __m256
   4579 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4580 _mm256_mask_fnmadd_ps (__m256 __A, __mmask8 __U, __m256 __B,
   4581 		       __m256 __C)
   4582 {
   4583   return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A,
   4584 						    (__v8sf) __B,
   4585 						    (__v8sf) __C,
   4586 						    (__mmask8) __U);
   4587 }
   4588 
   4589 extern __inline __m256
   4590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4591 _mm256_mask3_fnmadd_ps (__m256 __A, __m256 __B, __m256 __C,
   4592 			__mmask8 __U)
   4593 {
   4594   return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A,
   4595 						    (__v8sf) __B,
   4596 						    (__v8sf) __C,
   4597 						    (__mmask8) __U);
   4598 }
   4599 
   4600 extern __inline __m256
   4601 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4602 _mm256_maskz_fnmadd_ps (__mmask8 __U, __m256 __A, __m256 __B,
   4603 			__m256 __C)
   4604 {
   4605   return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
   4606 						    (__v8sf) __B,
   4607 						    (__v8sf) __C,
   4608 						    (__mmask8) __U);
   4609 }
   4610 
   4611 extern __inline __m128
   4612 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4613 _mm_mask_fnmadd_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
   4614 {
   4615   return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A,
   4616 						    (__v4sf) __B,
   4617 						    (__v4sf) __C,
   4618 						    (__mmask8) __U);
   4619 }
   4620 
   4621 extern __inline __m128
   4622 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4623 _mm_mask3_fnmadd_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
   4624 {
   4625   return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A,
   4626 						    (__v4sf) __B,
   4627 						    (__v4sf) __C,
   4628 						    (__mmask8) __U);
   4629 }
   4630 
   4631 extern __inline __m128
   4632 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4633 _mm_maskz_fnmadd_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
   4634 {
   4635   return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
   4636 						    (__v4sf) __B,
   4637 						    (__v4sf) __C,
   4638 						    (__mmask8) __U);
   4639 }
   4640 
   4641 extern __inline __m256d
   4642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4643 _mm256_mask_fnmsub_pd (__m256d __A, __mmask8 __U, __m256d __B,
   4644 		       __m256d __C)
   4645 {
   4646   return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A,
   4647 						     (__v4df) __B,
   4648 						     (__v4df) __C,
   4649 						     (__mmask8) __U);
   4650 }
   4651 
   4652 extern __inline __m256d
   4653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4654 _mm256_mask3_fnmsub_pd (__m256d __A, __m256d __B, __m256d __C,
   4655 			__mmask8 __U)
   4656 {
   4657   return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A,
   4658 						      (__v4df) __B,
   4659 						      (__v4df) __C,
   4660 						      (__mmask8) __U);
   4661 }
   4662 
   4663 extern __inline __m256d
   4664 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4665 _mm256_maskz_fnmsub_pd (__mmask8 __U, __m256d __A, __m256d __B,
   4666 			__m256d __C)
   4667 {
   4668   return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A,
   4669 						     (__v4df) __B,
   4670 						     -(__v4df) __C,
   4671 						     (__mmask8) __U);
   4672 }
   4673 
   4674 extern __inline __m128d
   4675 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4676 _mm_mask_fnmsub_pd (__m128d __A, __mmask8 __U, __m128d __B,
   4677 		    __m128d __C)
   4678 {
   4679   return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A,
   4680 						     (__v2df) __B,
   4681 						     (__v2df) __C,
   4682 						     (__mmask8) __U);
   4683 }
   4684 
   4685 extern __inline __m128d
   4686 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4687 _mm_mask3_fnmsub_pd (__m128d __A, __m128d __B, __m128d __C,
   4688 		     __mmask8 __U)
   4689 {
   4690   return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A,
   4691 						      (__v2df) __B,
   4692 						      (__v2df) __C,
   4693 						      (__mmask8) __U);
   4694 }
   4695 
   4696 extern __inline __m128d
   4697 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4698 _mm_maskz_fnmsub_pd (__mmask8 __U, __m128d __A, __m128d __B,
   4699 		     __m128d __C)
   4700 {
   4701   return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A,
   4702 						     (__v2df) __B,
   4703 						     -(__v2df) __C,
   4704 						     (__mmask8) __U);
   4705 }
   4706 
   4707 extern __inline __m256
   4708 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4709 _mm256_mask_fnmsub_ps (__m256 __A, __mmask8 __U, __m256 __B,
   4710 		       __m256 __C)
   4711 {
   4712   return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A,
   4713 						    (__v8sf) __B,
   4714 						    (__v8sf) __C,
   4715 						    (__mmask8) __U);
   4716 }
   4717 
   4718 extern __inline __m256
   4719 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4720 _mm256_mask3_fnmsub_ps (__m256 __A, __m256 __B, __m256 __C,
   4721 			__mmask8 __U)
   4722 {
   4723   return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A,
   4724 						     (__v8sf) __B,
   4725 						     (__v8sf) __C,
   4726 						     (__mmask8) __U);
   4727 }
   4728 
   4729 extern __inline __m256
   4730 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4731 _mm256_maskz_fnmsub_ps (__mmask8 __U, __m256 __A, __m256 __B,
   4732 			__m256 __C)
   4733 {
   4734   return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A,
   4735 						    (__v8sf) __B,
   4736 						    -(__v8sf) __C,
   4737 						    (__mmask8) __U);
   4738 }
   4739 
   4740 extern __inline __m128
   4741 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4742 _mm_mask_fnmsub_ps (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
   4743 {
   4744   return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A,
   4745 						    (__v4sf) __B,
   4746 						    (__v4sf) __C,
   4747 						    (__mmask8) __U);
   4748 }
   4749 
   4750 extern __inline __m128
   4751 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4752 _mm_mask3_fnmsub_ps (__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
   4753 {
   4754   return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A,
   4755 						     (__v4sf) __B,
   4756 						     (__v4sf) __C,
   4757 						     (__mmask8) __U);
   4758 }
   4759 
   4760 extern __inline __m128
   4761 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4762 _mm_maskz_fnmsub_ps (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
   4763 {
   4764   return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A,
   4765 						    (__v4sf) __B,
   4766 						    -(__v4sf) __C,
   4767 						    (__mmask8) __U);
   4768 }
   4769 
   4770 extern __inline __m128i
   4771 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4772 _mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   4773 		    __m128i __B)
   4774 {
   4775   return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
   4776 						 (__v4si) __B,
   4777 						 (__v4si) __W,
   4778 						 (__mmask8) __U);
   4779 }
   4780 
   4781 extern __inline __m128i
   4782 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4783 _mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   4784 {
   4785   return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A,
   4786 						 (__v4si) __B,
   4787 						 (__v4si)
   4788 						 _mm_setzero_si128 (),
   4789 						 (__mmask8) __U);
   4790 }
   4791 
   4792 extern __inline __m256i
   4793 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4794 _mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   4795 			  __m256i __B)
   4796 {
   4797   return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
   4798 						  (__v8si) __B,
   4799 						  (__v8si) __W,
   4800 						  (__mmask8) __U);
   4801 }
   4802 
   4803 extern __inline __m256i
   4804 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4805 _mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   4806 {
   4807   return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A,
   4808 						  (__v8si) __B,
   4809 						  (__v8si)
   4810 						  _mm256_setzero_si256 (),
   4811 						  (__mmask8) __U);
   4812 }
   4813 
   4814 extern __inline __m128i
   4815 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4816 _mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   4817 		       __m128i __B)
   4818 {
   4819   return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
   4820 						  (__v4si) __B,
   4821 						  (__v4si) __W,
   4822 						  (__mmask8) __U);
   4823 }
   4824 
   4825 extern __inline __m128i
   4826 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4827 _mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   4828 {
   4829   return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A,
   4830 						  (__v4si) __B,
   4831 						  (__v4si)
   4832 						  _mm_setzero_si128 (),
   4833 						  (__mmask8) __U);
   4834 }
   4835 
   4836 extern __inline __m256i
   4837 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4838 _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   4839 		      __m256i __B)
   4840 {
   4841   return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
   4842 						(__v8si) __B,
   4843 						(__v8si) __W,
   4844 						(__mmask8) __U);
   4845 }
   4846 
   4847 extern __inline __m256i
   4848 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4849 _mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   4850 {
   4851   return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A,
   4852 						(__v8si) __B,
   4853 						(__v8si)
   4854 						_mm256_setzero_si256 (),
   4855 						(__mmask8) __U);
   4856 }
   4857 
   4858 extern __inline __m128i
   4859 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4860 _mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   4861 {
   4862   return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
   4863 						(__v4si) __B,
   4864 						(__v4si) __W,
   4865 						(__mmask8) __U);
   4866 }
   4867 
   4868 extern __inline __m128i
   4869 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4870 _mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   4871 {
   4872   return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A,
   4873 						(__v4si) __B,
   4874 						(__v4si)
   4875 						_mm_setzero_si128 (),
   4876 						(__mmask8) __U);
   4877 }
   4878 
   4879 extern __inline __m256i
   4880 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4881 _mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   4882 		       __m256i __B)
   4883 {
   4884   return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
   4885 						 (__v8si) __B,
   4886 						 (__v8si) __W,
   4887 						 (__mmask8) __U);
   4888 }
   4889 
   4890 extern __inline __m256i
   4891 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4892 _mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   4893 {
   4894   return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A,
   4895 						 (__v8si) __B,
   4896 						 (__v8si)
   4897 						 _mm256_setzero_si256 (),
   4898 						 (__mmask8) __U);
   4899 }
   4900 
   4901 extern __inline __m128i
   4902 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4903 _mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   4904 		    __m128i __B)
   4905 {
   4906   return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
   4907 						 (__v4si) __B,
   4908 						 (__v4si) __W,
   4909 						 (__mmask8) __U);
   4910 }
   4911 
   4912 extern __inline __m128i
   4913 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4914 _mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   4915 {
   4916   return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A,
   4917 						 (__v4si) __B,
   4918 						 (__v4si)
   4919 						 _mm_setzero_si128 (),
   4920 						 (__mmask8) __U);
   4921 }
   4922 
   4923 extern __inline __m128
   4924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4925 _mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A)
   4926 {
   4927   return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
   4928 						(__v4sf) __W,
   4929 						(__mmask8) __U);
   4930 }
   4931 
   4932 extern __inline __m128
   4933 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4934 _mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A)
   4935 {
   4936   return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
   4937 						(__v4sf)
   4938 						_mm_setzero_ps (),
   4939 						(__mmask8) __U);
   4940 }
   4941 
   4942 extern __inline __m128
   4943 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4944 _mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A)
   4945 {
   4946   return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
   4947 						   (__v4sf) __W,
   4948 						   (__mmask8) __U);
   4949 }
   4950 
   4951 extern __inline __m128
   4952 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4953 _mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A)
   4954 {
   4955   return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A,
   4956 						   (__v4sf)
   4957 						   _mm_setzero_ps (),
   4958 						   (__mmask8) __U);
   4959 }
   4960 
   4961 extern __inline __m256i
   4962 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4963 _mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A)
   4964 {
   4965   return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
   4966 						    (__v8si) __W,
   4967 						    (__mmask8) __U);
   4968 }
   4969 
   4970 extern __inline __m256i
   4971 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4972 _mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A)
   4973 {
   4974   return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A,
   4975 						    (__v8si)
   4976 						    _mm256_setzero_si256 (),
   4977 						    (__mmask8) __U);
   4978 }
   4979 
   4980 extern __inline __m128i
   4981 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4982 _mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A)
   4983 {
   4984   return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
   4985 						    (__v4si) __W,
   4986 						    (__mmask8) __U);
   4987 }
   4988 
   4989 extern __inline __m128i
   4990 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   4991 _mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A)
   4992 {
   4993   return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A,
   4994 						    (__v4si)
   4995 						    _mm_setzero_si128 (),
   4996 						    (__mmask8) __U);
   4997 }
   4998 
   4999 extern __inline __m256i
   5000 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5001 _mm256_cvtps_epu32 (__m256 __A)
   5002 {
   5003   return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
   5004 						     (__v8si)
   5005 						     _mm256_setzero_si256 (),
   5006 						     (__mmask8) -1);
   5007 }
   5008 
   5009 extern __inline __m256i
   5010 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5011 _mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A)
   5012 {
   5013   return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
   5014 						     (__v8si) __W,
   5015 						     (__mmask8) __U);
   5016 }
   5017 
   5018 extern __inline __m256i
   5019 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5020 _mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A)
   5021 {
   5022   return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
   5023 						     (__v8si)
   5024 						     _mm256_setzero_si256 (),
   5025 						     (__mmask8) __U);
   5026 }
   5027 
   5028 extern __inline __m128i
   5029 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5030 _mm_cvtps_epu32 (__m128 __A)
   5031 {
   5032   return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
   5033 						     (__v4si)
   5034 						     _mm_setzero_si128 (),
   5035 						     (__mmask8) -1);
   5036 }
   5037 
   5038 extern __inline __m128i
   5039 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5040 _mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A)
   5041 {
   5042   return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
   5043 						     (__v4si) __W,
   5044 						     (__mmask8) __U);
   5045 }
   5046 
   5047 extern __inline __m128i
   5048 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5049 _mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A)
   5050 {
   5051   return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
   5052 						     (__v4si)
   5053 						     _mm_setzero_si128 (),
   5054 						     (__mmask8) __U);
   5055 }
   5056 
   5057 extern __inline __m256d
   5058 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5059 _mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
   5060 {
   5061   return (__m256d) __builtin_ia32_movddup256_mask ((__v4df) __A,
   5062 						   (__v4df) __W,
   5063 						   (__mmask8) __U);
   5064 }
   5065 
   5066 extern __inline __m256d
   5067 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5068 _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
   5069 {
   5070   return (__m256d) __builtin_ia32_movddup256_mask ((__v4df) __A,
   5071 						   (__v4df)
   5072 						   _mm256_setzero_pd (),
   5073 						   (__mmask8) __U);
   5074 }
   5075 
   5076 extern __inline __m128d
   5077 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5078 _mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
   5079 {
   5080   return (__m128d) __builtin_ia32_movddup128_mask ((__v2df) __A,
   5081 						   (__v2df) __W,
   5082 						   (__mmask8) __U);
   5083 }
   5084 
   5085 extern __inline __m128d
   5086 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5087 _mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
   5088 {
   5089   return (__m128d) __builtin_ia32_movddup128_mask ((__v2df) __A,
   5090 						   (__v2df)
   5091 						   _mm_setzero_pd (),
   5092 						   (__mmask8) __U);
   5093 }
   5094 
   5095 extern __inline __m256
   5096 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5097 _mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
   5098 {
   5099   return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A,
   5100 						   (__v8sf) __W,
   5101 						   (__mmask8) __U);
   5102 }
   5103 
   5104 extern __inline __m256
   5105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5106 _mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
   5107 {
   5108   return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A,
   5109 						   (__v8sf)
   5110 						   _mm256_setzero_ps (),
   5111 						   (__mmask8) __U);
   5112 }
   5113 
   5114 extern __inline __m128
   5115 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5116 _mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
   5117 {
   5118   return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A,
   5119 						   (__v4sf) __W,
   5120 						   (__mmask8) __U);
   5121 }
   5122 
   5123 extern __inline __m128
   5124 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5125 _mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
   5126 {
   5127   return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A,
   5128 						   (__v4sf)
   5129 						   _mm_setzero_ps (),
   5130 						   (__mmask8) __U);
   5131 }
   5132 
   5133 extern __inline __m256
   5134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5135 _mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
   5136 {
   5137   return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A,
   5138 						   (__v8sf) __W,
   5139 						   (__mmask8) __U);
   5140 }
   5141 
   5142 extern __inline __m256
   5143 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5144 _mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
   5145 {
   5146   return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A,
   5147 						   (__v8sf)
   5148 						   _mm256_setzero_ps (),
   5149 						   (__mmask8) __U);
   5150 }
   5151 
   5152 extern __inline __m128
   5153 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5154 _mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
   5155 {
   5156   return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A,
   5157 						   (__v4sf) __W,
   5158 						   (__mmask8) __U);
   5159 }
   5160 
   5161 extern __inline __m128
   5162 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5163 _mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
   5164 {
   5165   return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A,
   5166 						   (__v4sf)
   5167 						   _mm_setzero_ps (),
   5168 						   (__mmask8) __U);
   5169 }
   5170 
   5171 extern __inline __m128i
   5172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5173 _mm_mask_unpackhi_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   5174 			 __m128i __B)
   5175 {
   5176   return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A,
   5177 						     (__v4si) __B,
   5178 						     (__v4si) __W,
   5179 						     (__mmask8) __U);
   5180 }
   5181 
   5182 extern __inline __m128i
   5183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5184 _mm_maskz_unpackhi_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   5185 {
   5186   return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A,
   5187 						     (__v4si) __B,
   5188 						     (__v4si)
   5189 						     _mm_setzero_si128 (),
   5190 						     (__mmask8) __U);
   5191 }
   5192 
   5193 extern __inline __m256i
   5194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5195 _mm256_mask_unpackhi_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   5196 			    __m256i __B)
   5197 {
   5198   return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A,
   5199 						     (__v8si) __B,
   5200 						     (__v8si) __W,
   5201 						     (__mmask8) __U);
   5202 }
   5203 
   5204 extern __inline __m256i
   5205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5206 _mm256_maskz_unpackhi_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   5207 {
   5208   return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A,
   5209 						     (__v8si) __B,
   5210 						     (__v8si)
   5211 						     _mm256_setzero_si256 (),
   5212 						     (__mmask8) __U);
   5213 }
   5214 
   5215 extern __inline __m128i
   5216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5217 _mm_mask_unpackhi_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   5218 			 __m128i __B)
   5219 {
   5220   return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A,
   5221 						      (__v2di) __B,
   5222 						      (__v2di) __W,
   5223 						      (__mmask8) __U);
   5224 }
   5225 
   5226 extern __inline __m128i
   5227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5228 _mm_maskz_unpackhi_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   5229 {
   5230   return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A,
   5231 						      (__v2di) __B,
   5232 						      (__v2di)
   5233 						      _mm_setzero_si128 (),
   5234 						      (__mmask8) __U);
   5235 }
   5236 
   5237 extern __inline __m256i
   5238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5239 _mm256_mask_unpackhi_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   5240 			    __m256i __B)
   5241 {
   5242   return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A,
   5243 						      (__v4di) __B,
   5244 						      (__v4di) __W,
   5245 						      (__mmask8) __U);
   5246 }
   5247 
   5248 extern __inline __m256i
   5249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5250 _mm256_maskz_unpackhi_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   5251 {
   5252   return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A,
   5253 						      (__v4di) __B,
   5254 						      (__v4di)
   5255 						      _mm256_setzero_si256 (),
   5256 						      (__mmask8) __U);
   5257 }
   5258 
   5259 extern __inline __m128i
   5260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5261 _mm_mask_unpacklo_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   5262 			 __m128i __B)
   5263 {
   5264   return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A,
   5265 						     (__v4si) __B,
   5266 						     (__v4si) __W,
   5267 						     (__mmask8) __U);
   5268 }
   5269 
   5270 extern __inline __m128i
   5271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5272 _mm_maskz_unpacklo_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   5273 {
   5274   return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A,
   5275 						     (__v4si) __B,
   5276 						     (__v4si)
   5277 						     _mm_setzero_si128 (),
   5278 						     (__mmask8) __U);
   5279 }
   5280 
   5281 extern __inline __m256i
   5282 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5283 _mm256_mask_unpacklo_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   5284 			    __m256i __B)
   5285 {
   5286   return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A,
   5287 						     (__v8si) __B,
   5288 						     (__v8si) __W,
   5289 						     (__mmask8) __U);
   5290 }
   5291 
   5292 extern __inline __m256i
   5293 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5294 _mm256_maskz_unpacklo_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   5295 {
   5296   return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A,
   5297 						     (__v8si) __B,
   5298 						     (__v8si)
   5299 						     _mm256_setzero_si256 (),
   5300 						     (__mmask8) __U);
   5301 }
   5302 
   5303 extern __inline __m128i
   5304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5305 _mm_mask_unpacklo_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   5306 			 __m128i __B)
   5307 {
   5308   return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A,
   5309 						      (__v2di) __B,
   5310 						      (__v2di) __W,
   5311 						      (__mmask8) __U);
   5312 }
   5313 
   5314 extern __inline __m128i
   5315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5316 _mm_maskz_unpacklo_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   5317 {
   5318   return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A,
   5319 						      (__v2di) __B,
   5320 						      (__v2di)
   5321 						      _mm_setzero_si128 (),
   5322 						      (__mmask8) __U);
   5323 }
   5324 
   5325 extern __inline __m256i
   5326 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5327 _mm256_mask_unpacklo_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   5328 			    __m256i __B)
   5329 {
   5330   return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A,
   5331 						      (__v4di) __B,
   5332 						      (__v4di) __W,
   5333 						      (__mmask8) __U);
   5334 }
   5335 
   5336 extern __inline __m256i
   5337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5338 _mm256_maskz_unpacklo_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   5339 {
   5340   return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A,
   5341 						      (__v4di) __B,
   5342 						      (__v4di)
   5343 						      _mm256_setzero_si256 (),
   5344 						      (__mmask8) __U);
   5345 }
   5346 
   5347 extern __inline __mmask8
   5348 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5349 _mm_cmpeq_epu32_mask (__m128i __A, __m128i __B)
   5350 {
   5351   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A,
   5352 						   (__v4si) __B, 0,
   5353 						   (__mmask8) -1);
   5354 }
   5355 
   5356 extern __inline __mmask8
   5357 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5358 _mm_cmpeq_epi32_mask (__m128i __A, __m128i __B)
   5359 {
   5360   return (__mmask8) __builtin_ia32_pcmpeqd128_mask ((__v4si) __A,
   5361 						    (__v4si) __B,
   5362 						    (__mmask8) -1);
   5363 }
   5364 
   5365 extern __inline __mmask8
   5366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5367 _mm_mask_cmpeq_epu32_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5368 {
   5369   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A,
   5370 						   (__v4si) __B, 0, __U);
   5371 }
   5372 
   5373 extern __inline __mmask8
   5374 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5375 _mm_mask_cmpeq_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5376 {
   5377   return (__mmask8) __builtin_ia32_pcmpeqd128_mask ((__v4si) __A,
   5378 						    (__v4si) __B, __U);
   5379 }
   5380 
   5381 extern __inline __mmask8
   5382 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5383 _mm256_cmpeq_epu32_mask (__m256i __A, __m256i __B)
   5384 {
   5385   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A,
   5386 						   (__v8si) __B, 0,
   5387 						   (__mmask8) -1);
   5388 }
   5389 
   5390 extern __inline __mmask8
   5391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5392 _mm256_cmpeq_epi32_mask (__m256i __A, __m256i __B)
   5393 {
   5394   return (__mmask8) __builtin_ia32_pcmpeqd256_mask ((__v8si) __A,
   5395 						    (__v8si) __B,
   5396 						    (__mmask8) -1);
   5397 }
   5398 
   5399 extern __inline __mmask8
   5400 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5401 _mm256_mask_cmpeq_epu32_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5402 {
   5403   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A,
   5404 						   (__v8si) __B, 0, __U);
   5405 }
   5406 
   5407 extern __inline __mmask8
   5408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5409 _mm256_mask_cmpeq_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5410 {
   5411   return (__mmask8) __builtin_ia32_pcmpeqd256_mask ((__v8si) __A,
   5412 						    (__v8si) __B, __U);
   5413 }
   5414 
   5415 extern __inline __mmask8
   5416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5417 _mm_cmpeq_epu64_mask (__m128i __A, __m128i __B)
   5418 {
   5419   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A,
   5420 						   (__v2di) __B, 0,
   5421 						   (__mmask8) -1);
   5422 }
   5423 
   5424 extern __inline __mmask8
   5425 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5426 _mm_cmpeq_epi64_mask (__m128i __A, __m128i __B)
   5427 {
   5428   return (__mmask8) __builtin_ia32_pcmpeqq128_mask ((__v2di) __A,
   5429 						    (__v2di) __B,
   5430 						    (__mmask8) -1);
   5431 }
   5432 
   5433 extern __inline __mmask8
   5434 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5435 _mm_mask_cmpeq_epu64_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5436 {
   5437   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A,
   5438 						   (__v2di) __B, 0, __U);
   5439 }
   5440 
   5441 extern __inline __mmask8
   5442 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5443 _mm_mask_cmpeq_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5444 {
   5445   return (__mmask8) __builtin_ia32_pcmpeqq128_mask ((__v2di) __A,
   5446 						    (__v2di) __B, __U);
   5447 }
   5448 
   5449 extern __inline __mmask8
   5450 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5451 _mm256_cmpeq_epu64_mask (__m256i __A, __m256i __B)
   5452 {
   5453   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A,
   5454 						   (__v4di) __B, 0,
   5455 						   (__mmask8) -1);
   5456 }
   5457 
   5458 extern __inline __mmask8
   5459 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5460 _mm256_cmpeq_epi64_mask (__m256i __A, __m256i __B)
   5461 {
   5462   return (__mmask8) __builtin_ia32_pcmpeqq256_mask ((__v4di) __A,
   5463 						    (__v4di) __B,
   5464 						    (__mmask8) -1);
   5465 }
   5466 
   5467 extern __inline __mmask8
   5468 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5469 _mm256_mask_cmpeq_epu64_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5470 {
   5471   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A,
   5472 						   (__v4di) __B, 0, __U);
   5473 }
   5474 
   5475 extern __inline __mmask8
   5476 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5477 _mm256_mask_cmpeq_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5478 {
   5479   return (__mmask8) __builtin_ia32_pcmpeqq256_mask ((__v4di) __A,
   5480 						    (__v4di) __B, __U);
   5481 }
   5482 
   5483 extern __inline __mmask8
   5484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5485 _mm_cmpgt_epu32_mask (__m128i __A, __m128i __B)
   5486 {
   5487   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A,
   5488 						   (__v4si) __B, 6,
   5489 						   (__mmask8) -1);
   5490 }
   5491 
   5492 extern __inline __mmask8
   5493 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5494 _mm_cmpgt_epi32_mask (__m128i __A, __m128i __B)
   5495 {
   5496   return (__mmask8) __builtin_ia32_pcmpgtd128_mask ((__v4si) __A,
   5497 						    (__v4si) __B,
   5498 						    (__mmask8) -1);
   5499 }
   5500 
   5501 extern __inline __mmask8
   5502 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5503 _mm_mask_cmpgt_epu32_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5504 {
   5505   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __A,
   5506 						   (__v4si) __B, 6, __U);
   5507 }
   5508 
   5509 extern __inline __mmask8
   5510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5511 _mm_mask_cmpgt_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5512 {
   5513   return (__mmask8) __builtin_ia32_pcmpgtd128_mask ((__v4si) __A,
   5514 						    (__v4si) __B, __U);
   5515 }
   5516 
   5517 extern __inline __mmask8
   5518 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5519 _mm256_cmpgt_epu32_mask (__m256i __A, __m256i __B)
   5520 {
   5521   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A,
   5522 						   (__v8si) __B, 6,
   5523 						   (__mmask8) -1);
   5524 }
   5525 
   5526 extern __inline __mmask8
   5527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5528 _mm256_cmpgt_epi32_mask (__m256i __A, __m256i __B)
   5529 {
   5530   return (__mmask8) __builtin_ia32_pcmpgtd256_mask ((__v8si) __A,
   5531 						    (__v8si) __B,
   5532 						    (__mmask8) -1);
   5533 }
   5534 
   5535 extern __inline __mmask8
   5536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5537 _mm256_mask_cmpgt_epu32_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5538 {
   5539   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __A,
   5540 						   (__v8si) __B, 6, __U);
   5541 }
   5542 
   5543 extern __inline __mmask8
   5544 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5545 _mm256_mask_cmpgt_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5546 {
   5547   return (__mmask8) __builtin_ia32_pcmpgtd256_mask ((__v8si) __A,
   5548 						    (__v8si) __B, __U);
   5549 }
   5550 
   5551 extern __inline __mmask8
   5552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5553 _mm_cmpgt_epu64_mask (__m128i __A, __m128i __B)
   5554 {
   5555   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A,
   5556 						   (__v2di) __B, 6,
   5557 						   (__mmask8) -1);
   5558 }
   5559 
   5560 extern __inline __mmask8
   5561 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5562 _mm_cmpgt_epi64_mask (__m128i __A, __m128i __B)
   5563 {
   5564   return (__mmask8) __builtin_ia32_pcmpgtq128_mask ((__v2di) __A,
   5565 						    (__v2di) __B,
   5566 						    (__mmask8) -1);
   5567 }
   5568 
   5569 extern __inline __mmask8
   5570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5571 _mm_mask_cmpgt_epu64_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5572 {
   5573   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __A,
   5574 						   (__v2di) __B, 6, __U);
   5575 }
   5576 
   5577 extern __inline __mmask8
   5578 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5579 _mm_mask_cmpgt_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5580 {
   5581   return (__mmask8) __builtin_ia32_pcmpgtq128_mask ((__v2di) __A,
   5582 						    (__v2di) __B, __U);
   5583 }
   5584 
   5585 extern __inline __mmask8
   5586 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5587 _mm256_cmpgt_epu64_mask (__m256i __A, __m256i __B)
   5588 {
   5589   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A,
   5590 						   (__v4di) __B, 6,
   5591 						   (__mmask8) -1);
   5592 }
   5593 
   5594 extern __inline __mmask8
   5595 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5596 _mm256_cmpgt_epi64_mask (__m256i __A, __m256i __B)
   5597 {
   5598   return (__mmask8) __builtin_ia32_pcmpgtq256_mask ((__v4di) __A,
   5599 						    (__v4di) __B,
   5600 						    (__mmask8) -1);
   5601 }
   5602 
   5603 extern __inline __mmask8
   5604 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5605 _mm256_mask_cmpgt_epu64_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5606 {
   5607   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __A,
   5608 						   (__v4di) __B, 6, __U);
   5609 }
   5610 
   5611 extern __inline __mmask8
   5612 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5613 _mm256_mask_cmpgt_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5614 {
   5615   return (__mmask8) __builtin_ia32_pcmpgtq256_mask ((__v4di) __A,
   5616 						    (__v4di) __B, __U);
   5617 }
   5618 
   5619 extern __inline __mmask8
   5620 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5621 _mm_test_epi32_mask (__m128i __A, __m128i __B)
   5622 {
   5623   return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
   5624 					       (__v4si) __B,
   5625 					       (__mmask8) -1);
   5626 }
   5627 
   5628 extern __inline __mmask8
   5629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5630 _mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5631 {
   5632   return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
   5633 					       (__v4si) __B, __U);
   5634 }
   5635 
   5636 extern __inline __mmask8
   5637 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5638 _mm256_test_epi32_mask (__m256i __A, __m256i __B)
   5639 {
   5640   return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
   5641 					       (__v8si) __B,
   5642 					       (__mmask8) -1);
   5643 }
   5644 
   5645 extern __inline __mmask8
   5646 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5647 _mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5648 {
   5649   return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
   5650 					       (__v8si) __B, __U);
   5651 }
   5652 
   5653 extern __inline __mmask8
   5654 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5655 _mm_test_epi64_mask (__m128i __A, __m128i __B)
   5656 {
   5657   return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
   5658 					       (__v2di) __B,
   5659 					       (__mmask8) -1);
   5660 }
   5661 
   5662 extern __inline __mmask8
   5663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5664 _mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5665 {
   5666   return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
   5667 					       (__v2di) __B, __U);
   5668 }
   5669 
   5670 extern __inline __mmask8
   5671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5672 _mm256_test_epi64_mask (__m256i __A, __m256i __B)
   5673 {
   5674   return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
   5675 					       (__v4di) __B,
   5676 					       (__mmask8) -1);
   5677 }
   5678 
   5679 extern __inline __mmask8
   5680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5681 _mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5682 {
   5683   return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
   5684 					       (__v4di) __B, __U);
   5685 }
   5686 
   5687 extern __inline __mmask8
   5688 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5689 _mm_testn_epi32_mask (__m128i __A, __m128i __B)
   5690 {
   5691   return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
   5692 						(__v4si) __B,
   5693 						(__mmask8) -1);
   5694 }
   5695 
   5696 extern __inline __mmask8
   5697 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5698 _mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5699 {
   5700   return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
   5701 						(__v4si) __B, __U);
   5702 }
   5703 
   5704 extern __inline __mmask8
   5705 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5706 _mm256_testn_epi32_mask (__m256i __A, __m256i __B)
   5707 {
   5708   return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
   5709 						(__v8si) __B,
   5710 						(__mmask8) -1);
   5711 }
   5712 
   5713 extern __inline __mmask8
   5714 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5715 _mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5716 {
   5717   return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
   5718 						(__v8si) __B, __U);
   5719 }
   5720 
   5721 extern __inline __mmask8
   5722 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5723 _mm_testn_epi64_mask (__m128i __A, __m128i __B)
   5724 {
   5725   return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
   5726 						(__v2di) __B,
   5727 						(__mmask8) -1);
   5728 }
   5729 
   5730 extern __inline __mmask8
   5731 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5732 _mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
   5733 {
   5734   return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
   5735 						(__v2di) __B, __U);
   5736 }
   5737 
   5738 extern __inline __mmask8
   5739 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5740 _mm256_testn_epi64_mask (__m256i __A, __m256i __B)
   5741 {
   5742   return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
   5743 						(__v4di) __B,
   5744 						(__mmask8) -1);
   5745 }
   5746 
   5747 extern __inline __mmask8
   5748 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5749 _mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
   5750 {
   5751   return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
   5752 						(__v4di) __B, __U);
   5753 }
   5754 
   5755 extern __inline __m256d
   5756 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5757 _mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A)
   5758 {
   5759   return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
   5760 						      (__v4df) __W,
   5761 						      (__mmask8) __U);
   5762 }
   5763 
   5764 extern __inline __m256d
   5765 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5766 _mm256_maskz_compress_pd (__mmask8 __U, __m256d __A)
   5767 {
   5768   return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
   5769 						      (__v4df)
   5770 						      _mm256_setzero_pd (),
   5771 						      (__mmask8) __U);
   5772 }
   5773 
   5774 extern __inline void
   5775 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5776 _mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A)
   5777 {
   5778   __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
   5779 					  (__v4df) __A,
   5780 					  (__mmask8) __U);
   5781 }
   5782 
   5783 extern __inline __m128d
   5784 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5785 _mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A)
   5786 {
   5787   return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
   5788 						      (__v2df) __W,
   5789 						      (__mmask8) __U);
   5790 }
   5791 
   5792 extern __inline __m128d
   5793 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5794 _mm_maskz_compress_pd (__mmask8 __U, __m128d __A)
   5795 {
   5796   return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
   5797 						      (__v2df)
   5798 						      _mm_setzero_pd (),
   5799 						      (__mmask8) __U);
   5800 }
   5801 
   5802 extern __inline void
   5803 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5804 _mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A)
   5805 {
   5806   __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
   5807 					  (__v2df) __A,
   5808 					  (__mmask8) __U);
   5809 }
   5810 
   5811 extern __inline __m256
   5812 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5813 _mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A)
   5814 {
   5815   return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
   5816 						     (__v8sf) __W,
   5817 						     (__mmask8) __U);
   5818 }
   5819 
   5820 extern __inline __m256
   5821 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5822 _mm256_maskz_compress_ps (__mmask8 __U, __m256 __A)
   5823 {
   5824   return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
   5825 						     (__v8sf)
   5826 						     _mm256_setzero_ps (),
   5827 						     (__mmask8) __U);
   5828 }
   5829 
   5830 extern __inline void
   5831 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5832 _mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A)
   5833 {
   5834   __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
   5835 					  (__v8sf) __A,
   5836 					  (__mmask8) __U);
   5837 }
   5838 
   5839 extern __inline __m128
   5840 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5841 _mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A)
   5842 {
   5843   return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
   5844 						     (__v4sf) __W,
   5845 						     (__mmask8) __U);
   5846 }
   5847 
   5848 extern __inline __m128
   5849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5850 _mm_maskz_compress_ps (__mmask8 __U, __m128 __A)
   5851 {
   5852   return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
   5853 						     (__v4sf)
   5854 						     _mm_setzero_ps (),
   5855 						     (__mmask8) __U);
   5856 }
   5857 
   5858 extern __inline void
   5859 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5860 _mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A)
   5861 {
   5862   __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
   5863 					  (__v4sf) __A,
   5864 					  (__mmask8) __U);
   5865 }
   5866 
   5867 extern __inline __m256i
   5868 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5869 _mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
   5870 {
   5871   return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
   5872 						      (__v4di) __W,
   5873 						      (__mmask8) __U);
   5874 }
   5875 
   5876 extern __inline __m256i
   5877 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5878 _mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A)
   5879 {
   5880   return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
   5881 						      (__v4di)
   5882 						      _mm256_setzero_si256 (),
   5883 						      (__mmask8) __U);
   5884 }
   5885 
   5886 extern __inline void
   5887 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5888 _mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A)
   5889 {
   5890   __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
   5891 					  (__v4di) __A,
   5892 					  (__mmask8) __U);
   5893 }
   5894 
   5895 extern __inline __m128i
   5896 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5897 _mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   5898 {
   5899   return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
   5900 						      (__v2di) __W,
   5901 						      (__mmask8) __U);
   5902 }
   5903 
   5904 extern __inline __m128i
   5905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5906 _mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A)
   5907 {
   5908   return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
   5909 						      (__v2di)
   5910 						      _mm_setzero_si128 (),
   5911 						      (__mmask8) __U);
   5912 }
   5913 
   5914 extern __inline void
   5915 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5916 _mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A)
   5917 {
   5918   __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
   5919 					  (__v2di) __A,
   5920 					  (__mmask8) __U);
   5921 }
   5922 
   5923 extern __inline __m256i
   5924 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5925 _mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
   5926 {
   5927   return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
   5928 						      (__v8si) __W,
   5929 						      (__mmask8) __U);
   5930 }
   5931 
   5932 extern __inline __m256i
   5933 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5934 _mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A)
   5935 {
   5936   return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
   5937 						      (__v8si)
   5938 						      _mm256_setzero_si256 (),
   5939 						      (__mmask8) __U);
   5940 }
   5941 
   5942 extern __inline void
   5943 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5944 _mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A)
   5945 {
   5946   __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
   5947 					  (__v8si) __A,
   5948 					  (__mmask8) __U);
   5949 }
   5950 
   5951 extern __inline __m128i
   5952 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5953 _mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   5954 {
   5955   return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
   5956 						      (__v4si) __W,
   5957 						      (__mmask8) __U);
   5958 }
   5959 
   5960 extern __inline __m128i
   5961 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5962 _mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A)
   5963 {
   5964   return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
   5965 						      (__v4si)
   5966 						      _mm_setzero_si128 (),
   5967 						      (__mmask8) __U);
   5968 }
   5969 
   5970 extern __inline void
   5971 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5972 _mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A)
   5973 {
   5974   __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
   5975 					  (__v4si) __A,
   5976 					  (__mmask8) __U);
   5977 }
   5978 
   5979 extern __inline __m256d
   5980 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5981 _mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A)
   5982 {
   5983   return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
   5984 						    (__v4df) __W,
   5985 						    (__mmask8) __U);
   5986 }
   5987 
   5988 extern __inline __m256d
   5989 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   5990 _mm256_maskz_expand_pd (__mmask8 __U, __m256d __A)
   5991 {
   5992   return (__m256d) __builtin_ia32_expanddf256_maskz ((__v4df) __A,
   5993 						     (__v4df)
   5994 						     _mm256_setzero_pd (),
   5995 						     (__mmask8) __U);
   5996 }
   5997 
   5998 extern __inline __m256d
   5999 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6000 _mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P)
   6001 {
   6002   return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P,
   6003 							(__v4df) __W,
   6004 							(__mmask8)
   6005 							__U);
   6006 }
   6007 
   6008 extern __inline __m256d
   6009 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6010 _mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P)
   6011 {
   6012   return (__m256d) __builtin_ia32_expandloaddf256_maskz ((__v4df *) __P,
   6013 							 (__v4df)
   6014 							 _mm256_setzero_pd (),
   6015 							 (__mmask8)
   6016 							 __U);
   6017 }
   6018 
   6019 extern __inline __m128d
   6020 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6021 _mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A)
   6022 {
   6023   return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
   6024 						    (__v2df) __W,
   6025 						    (__mmask8) __U);
   6026 }
   6027 
   6028 extern __inline __m128d
   6029 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6030 _mm_maskz_expand_pd (__mmask8 __U, __m128d __A)
   6031 {
   6032   return (__m128d) __builtin_ia32_expanddf128_maskz ((__v2df) __A,
   6033 						     (__v2df)
   6034 						     _mm_setzero_pd (),
   6035 						     (__mmask8) __U);
   6036 }
   6037 
   6038 extern __inline __m128d
   6039 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6040 _mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P)
   6041 {
   6042   return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P,
   6043 							(__v2df) __W,
   6044 							(__mmask8)
   6045 							__U);
   6046 }
   6047 
   6048 extern __inline __m128d
   6049 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6050 _mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P)
   6051 {
   6052   return (__m128d) __builtin_ia32_expandloaddf128_maskz ((__v2df *) __P,
   6053 							 (__v2df)
   6054 							 _mm_setzero_pd (),
   6055 							 (__mmask8)
   6056 							 __U);
   6057 }
   6058 
   6059 extern __inline __m256
   6060 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6061 _mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A)
   6062 {
   6063   return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
   6064 						   (__v8sf) __W,
   6065 						   (__mmask8) __U);
   6066 }
   6067 
   6068 extern __inline __m256
   6069 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6070 _mm256_maskz_expand_ps (__mmask8 __U, __m256 __A)
   6071 {
   6072   return (__m256) __builtin_ia32_expandsf256_maskz ((__v8sf) __A,
   6073 						    (__v8sf)
   6074 						    _mm256_setzero_ps (),
   6075 						    (__mmask8) __U);
   6076 }
   6077 
   6078 extern __inline __m256
   6079 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6080 _mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P)
   6081 {
   6082   return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P,
   6083 						       (__v8sf) __W,
   6084 						       (__mmask8) __U);
   6085 }
   6086 
   6087 extern __inline __m256
   6088 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6089 _mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P)
   6090 {
   6091   return (__m256) __builtin_ia32_expandloadsf256_maskz ((__v8sf *) __P,
   6092 							(__v8sf)
   6093 							_mm256_setzero_ps (),
   6094 							(__mmask8)
   6095 							__U);
   6096 }
   6097 
   6098 extern __inline __m128
   6099 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6100 _mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A)
   6101 {
   6102   return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
   6103 						   (__v4sf) __W,
   6104 						   (__mmask8) __U);
   6105 }
   6106 
   6107 extern __inline __m128
   6108 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6109 _mm_maskz_expand_ps (__mmask8 __U, __m128 __A)
   6110 {
   6111   return (__m128) __builtin_ia32_expandsf128_maskz ((__v4sf) __A,
   6112 						    (__v4sf)
   6113 						    _mm_setzero_ps (),
   6114 						    (__mmask8) __U);
   6115 }
   6116 
   6117 extern __inline __m128
   6118 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6119 _mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P)
   6120 {
   6121   return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P,
   6122 						       (__v4sf) __W,
   6123 						       (__mmask8) __U);
   6124 }
   6125 
   6126 extern __inline __m128
   6127 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6128 _mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P)
   6129 {
   6130   return (__m128) __builtin_ia32_expandloadsf128_maskz ((__v4sf *) __P,
   6131 							(__v4sf)
   6132 							_mm_setzero_ps (),
   6133 							(__mmask8)
   6134 							__U);
   6135 }
   6136 
   6137 extern __inline __m256i
   6138 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6139 _mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
   6140 {
   6141   return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
   6142 						    (__v4di) __W,
   6143 						    (__mmask8) __U);
   6144 }
   6145 
   6146 extern __inline __m256i
   6147 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6148 _mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A)
   6149 {
   6150   return (__m256i) __builtin_ia32_expanddi256_maskz ((__v4di) __A,
   6151 						     (__v4di)
   6152 						     _mm256_setzero_si256 (),
   6153 						     (__mmask8) __U);
   6154 }
   6155 
   6156 extern __inline __m256i
   6157 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6158 _mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
   6159 			       void const *__P)
   6160 {
   6161   return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P,
   6162 							(__v4di) __W,
   6163 							(__mmask8)
   6164 							__U);
   6165 }
   6166 
   6167 extern __inline __m256i
   6168 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6169 _mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P)
   6170 {
   6171   return (__m256i) __builtin_ia32_expandloaddi256_maskz ((__v4di *) __P,
   6172 							 (__v4di)
   6173 							 _mm256_setzero_si256 (),
   6174 							 (__mmask8)
   6175 							 __U);
   6176 }
   6177 
   6178 extern __inline __m128i
   6179 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6180 _mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   6181 {
   6182   return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
   6183 						    (__v2di) __W,
   6184 						    (__mmask8) __U);
   6185 }
   6186 
   6187 extern __inline __m128i
   6188 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6189 _mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A)
   6190 {
   6191   return (__m128i) __builtin_ia32_expanddi128_maskz ((__v2di) __A,
   6192 						     (__v2di)
   6193 						     _mm_setzero_si128 (),
   6194 						     (__mmask8) __U);
   6195 }
   6196 
   6197 extern __inline __m128i
   6198 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6199 _mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
   6200 {
   6201   return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P,
   6202 							(__v2di) __W,
   6203 							(__mmask8)
   6204 							__U);
   6205 }
   6206 
   6207 extern __inline __m128i
   6208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6209 _mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P)
   6210 {
   6211   return (__m128i) __builtin_ia32_expandloaddi128_maskz ((__v2di *) __P,
   6212 							 (__v2di)
   6213 							 _mm_setzero_si128 (),
   6214 							 (__mmask8)
   6215 							 __U);
   6216 }
   6217 
   6218 extern __inline __m256i
   6219 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6220 _mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
   6221 {
   6222   return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
   6223 						    (__v8si) __W,
   6224 						    (__mmask8) __U);
   6225 }
   6226 
   6227 extern __inline __m256i
   6228 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6229 _mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A)
   6230 {
   6231   return (__m256i) __builtin_ia32_expandsi256_maskz ((__v8si) __A,
   6232 						     (__v8si)
   6233 						     _mm256_setzero_si256 (),
   6234 						     (__mmask8) __U);
   6235 }
   6236 
   6237 extern __inline __m256i
   6238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6239 _mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
   6240 			       void const *__P)
   6241 {
   6242   return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P,
   6243 							(__v8si) __W,
   6244 							(__mmask8)
   6245 							__U);
   6246 }
   6247 
   6248 extern __inline __m256i
   6249 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6250 _mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P)
   6251 {
   6252   return (__m256i) __builtin_ia32_expandloadsi256_maskz ((__v8si *) __P,
   6253 							 (__v8si)
   6254 							 _mm256_setzero_si256 (),
   6255 							 (__mmask8)
   6256 							 __U);
   6257 }
   6258 
   6259 extern __inline __m128i
   6260 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6261 _mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   6262 {
   6263   return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
   6264 						    (__v4si) __W,
   6265 						    (__mmask8) __U);
   6266 }
   6267 
   6268 extern __inline __m128i
   6269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6270 _mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A)
   6271 {
   6272   return (__m128i) __builtin_ia32_expandsi128_maskz ((__v4si) __A,
   6273 						     (__v4si)
   6274 						     _mm_setzero_si128 (),
   6275 						     (__mmask8) __U);
   6276 }
   6277 
   6278 extern __inline __m128i
   6279 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6280 _mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
   6281 {
   6282   return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P,
   6283 							(__v4si) __W,
   6284 							(__mmask8)
   6285 							__U);
   6286 }
   6287 
   6288 extern __inline __m128i
   6289 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6290 _mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P)
   6291 {
   6292   return (__m128i) __builtin_ia32_expandloadsi128_maskz ((__v4si *) __P,
   6293 							 (__v4si)
   6294 							 _mm_setzero_si128 (),
   6295 							 (__mmask8)
   6296 							 __U);
   6297 }
   6298 
   6299 extern __inline __m256d
   6300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6301 _mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B)
   6302 {
   6303   return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
   6304 							/* idx */ ,
   6305 							(__v4df) __A,
   6306 							(__v4df) __B,
   6307 							(__mmask8) -1);
   6308 }
   6309 
   6310 extern __inline __m256d
   6311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6312 _mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I,
   6313 			     __m256d __B)
   6314 {
   6315   return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I
   6316 							/* idx */ ,
   6317 							(__v4df) __A,
   6318 							(__v4df) __B,
   6319 							(__mmask8)
   6320 							__U);
   6321 }
   6322 
   6323 extern __inline __m256d
   6324 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6325 _mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U,
   6326 			      __m256d __B)
   6327 {
   6328   return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A,
   6329 							(__v4di) __I
   6330 							/* idx */ ,
   6331 							(__v4df) __B,
   6332 							(__mmask8)
   6333 							__U);
   6334 }
   6335 
   6336 extern __inline __m256d
   6337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6338 _mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I,
   6339 			      __m256d __B)
   6340 {
   6341   return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I
   6342 							 /* idx */ ,
   6343 							 (__v4df) __A,
   6344 							 (__v4df) __B,
   6345 							 (__mmask8)
   6346 							 __U);
   6347 }
   6348 
   6349 extern __inline __m256
   6350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6351 _mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B)
   6352 {
   6353   return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
   6354 						       /* idx */ ,
   6355 						       (__v8sf) __A,
   6356 						       (__v8sf) __B,
   6357 						       (__mmask8) -1);
   6358 }
   6359 
   6360 extern __inline __m256
   6361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6362 _mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I,
   6363 			     __m256 __B)
   6364 {
   6365   return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I
   6366 						       /* idx */ ,
   6367 						       (__v8sf) __A,
   6368 						       (__v8sf) __B,
   6369 						       (__mmask8) __U);
   6370 }
   6371 
   6372 extern __inline __m256
   6373 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6374 _mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U,
   6375 			      __m256 __B)
   6376 {
   6377   return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A,
   6378 						       (__v8si) __I
   6379 						       /* idx */ ,
   6380 						       (__v8sf) __B,
   6381 						       (__mmask8) __U);
   6382 }
   6383 
   6384 extern __inline __m256
   6385 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6386 _mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I,
   6387 			      __m256 __B)
   6388 {
   6389   return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I
   6390 							/* idx */ ,
   6391 							(__v8sf) __A,
   6392 							(__v8sf) __B,
   6393 							(__mmask8)
   6394 							__U);
   6395 }
   6396 
   6397 extern __inline __m128i
   6398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6399 _mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B)
   6400 {
   6401   return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
   6402 						       /* idx */ ,
   6403 						       (__v2di) __A,
   6404 						       (__v2di) __B,
   6405 						       (__mmask8) -1);
   6406 }
   6407 
   6408 extern __inline __m128i
   6409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6410 _mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I,
   6411 			     __m128i __B)
   6412 {
   6413   return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I
   6414 						       /* idx */ ,
   6415 						       (__v2di) __A,
   6416 						       (__v2di) __B,
   6417 						       (__mmask8) __U);
   6418 }
   6419 
   6420 extern __inline __m128i
   6421 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6422 _mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U,
   6423 			      __m128i __B)
   6424 {
   6425   return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A,
   6426 						       (__v2di) __I
   6427 						       /* idx */ ,
   6428 						       (__v2di) __B,
   6429 						       (__mmask8) __U);
   6430 }
   6431 
   6432 extern __inline __m128i
   6433 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6434 _mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I,
   6435 			      __m128i __B)
   6436 {
   6437   return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I
   6438 							/* idx */ ,
   6439 							(__v2di) __A,
   6440 							(__v2di) __B,
   6441 							(__mmask8)
   6442 							__U);
   6443 }
   6444 
   6445 extern __inline __m128i
   6446 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6447 _mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B)
   6448 {
   6449   return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
   6450 						       /* idx */ ,
   6451 						       (__v4si) __A,
   6452 						       (__v4si) __B,
   6453 						       (__mmask8) -1);
   6454 }
   6455 
   6456 extern __inline __m128i
   6457 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6458 _mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I,
   6459 			     __m128i __B)
   6460 {
   6461   return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I
   6462 						       /* idx */ ,
   6463 						       (__v4si) __A,
   6464 						       (__v4si) __B,
   6465 						       (__mmask8) __U);
   6466 }
   6467 
   6468 extern __inline __m128i
   6469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6470 _mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U,
   6471 			      __m128i __B)
   6472 {
   6473   return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A,
   6474 						       (__v4si) __I
   6475 						       /* idx */ ,
   6476 						       (__v4si) __B,
   6477 						       (__mmask8) __U);
   6478 }
   6479 
   6480 extern __inline __m128i
   6481 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6482 _mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I,
   6483 			      __m128i __B)
   6484 {
   6485   return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I
   6486 							/* idx */ ,
   6487 							(__v4si) __A,
   6488 							(__v4si) __B,
   6489 							(__mmask8)
   6490 							__U);
   6491 }
   6492 
   6493 extern __inline __m256i
   6494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6495 _mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B)
   6496 {
   6497   return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
   6498 						       /* idx */ ,
   6499 						       (__v4di) __A,
   6500 						       (__v4di) __B,
   6501 						       (__mmask8) -1);
   6502 }
   6503 
   6504 extern __inline __m256i
   6505 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6506 _mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I,
   6507 				__m256i __B)
   6508 {
   6509   return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I
   6510 						       /* idx */ ,
   6511 						       (__v4di) __A,
   6512 						       (__v4di) __B,
   6513 						       (__mmask8) __U);
   6514 }
   6515 
   6516 extern __inline __m256i
   6517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6518 _mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I,
   6519 				 __mmask8 __U, __m256i __B)
   6520 {
   6521   return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A,
   6522 						       (__v4di) __I
   6523 						       /* idx */ ,
   6524 						       (__v4di) __B,
   6525 						       (__mmask8) __U);
   6526 }
   6527 
   6528 extern __inline __m256i
   6529 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6530 _mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A,
   6531 				 __m256i __I, __m256i __B)
   6532 {
   6533   return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I
   6534 							/* idx */ ,
   6535 							(__v4di) __A,
   6536 							(__v4di) __B,
   6537 							(__mmask8)
   6538 							__U);
   6539 }
   6540 
   6541 extern __inline __m256i
   6542 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6543 _mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B)
   6544 {
   6545   return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
   6546 						       /* idx */ ,
   6547 						       (__v8si) __A,
   6548 						       (__v8si) __B,
   6549 						       (__mmask8) -1);
   6550 }
   6551 
   6552 extern __inline __m256i
   6553 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6554 _mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I,
   6555 				__m256i __B)
   6556 {
   6557   return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I
   6558 						       /* idx */ ,
   6559 						       (__v8si) __A,
   6560 						       (__v8si) __B,
   6561 						       (__mmask8) __U);
   6562 }
   6563 
   6564 extern __inline __m256i
   6565 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6566 _mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I,
   6567 				 __mmask8 __U, __m256i __B)
   6568 {
   6569   return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A,
   6570 						       (__v8si) __I
   6571 						       /* idx */ ,
   6572 						       (__v8si) __B,
   6573 						       (__mmask8) __U);
   6574 }
   6575 
   6576 extern __inline __m256i
   6577 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6578 _mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A,
   6579 				 __m256i __I, __m256i __B)
   6580 {
   6581   return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I
   6582 							/* idx */ ,
   6583 							(__v8si) __A,
   6584 							(__v8si) __B,
   6585 							(__mmask8)
   6586 							__U);
   6587 }
   6588 
   6589 extern __inline __m128d
   6590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6591 _mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B)
   6592 {
   6593   return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
   6594 							/* idx */ ,
   6595 							(__v2df) __A,
   6596 							(__v2df) __B,
   6597 							(__mmask8) -1);
   6598 }
   6599 
   6600 extern __inline __m128d
   6601 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6602 _mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I,
   6603 			  __m128d __B)
   6604 {
   6605   return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I
   6606 							/* idx */ ,
   6607 							(__v2df) __A,
   6608 							(__v2df) __B,
   6609 							(__mmask8)
   6610 							__U);
   6611 }
   6612 
   6613 extern __inline __m128d
   6614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6615 _mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U,
   6616 			   __m128d __B)
   6617 {
   6618   return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A,
   6619 							(__v2di) __I
   6620 							/* idx */ ,
   6621 							(__v2df) __B,
   6622 							(__mmask8)
   6623 							__U);
   6624 }
   6625 
   6626 extern __inline __m128d
   6627 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6628 _mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I,
   6629 			   __m128d __B)
   6630 {
   6631   return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I
   6632 							 /* idx */ ,
   6633 							 (__v2df) __A,
   6634 							 (__v2df) __B,
   6635 							 (__mmask8)
   6636 							 __U);
   6637 }
   6638 
   6639 extern __inline __m128
   6640 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6641 _mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B)
   6642 {
   6643   return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
   6644 						       /* idx */ ,
   6645 						       (__v4sf) __A,
   6646 						       (__v4sf) __B,
   6647 						       (__mmask8) -1);
   6648 }
   6649 
   6650 extern __inline __m128
   6651 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6652 _mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I,
   6653 			  __m128 __B)
   6654 {
   6655   return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I
   6656 						       /* idx */ ,
   6657 						       (__v4sf) __A,
   6658 						       (__v4sf) __B,
   6659 						       (__mmask8) __U);
   6660 }
   6661 
   6662 extern __inline __m128
   6663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6664 _mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U,
   6665 			   __m128 __B)
   6666 {
   6667   return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A,
   6668 						       (__v4si) __I
   6669 						       /* idx */ ,
   6670 						       (__v4sf) __B,
   6671 						       (__mmask8) __U);
   6672 }
   6673 
   6674 extern __inline __m128
   6675 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6676 _mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I,
   6677 			   __m128 __B)
   6678 {
   6679   return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I
   6680 							/* idx */ ,
   6681 							(__v4sf) __A,
   6682 							(__v4sf) __B,
   6683 							(__mmask8)
   6684 							__U);
   6685 }
   6686 
   6687 extern __inline __m128i
   6688 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6689 _mm_srav_epi64 (__m128i __X, __m128i __Y)
   6690 {
   6691   return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
   6692 						  (__v2di) __Y,
   6693 						  (__v2di)
   6694 						  _mm_setzero_si128 (),
   6695 						  (__mmask8) -1);
   6696 }
   6697 
   6698 extern __inline __m128i
   6699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6700 _mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
   6701 		     __m128i __Y)
   6702 {
   6703   return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
   6704 						  (__v2di) __Y,
   6705 						  (__v2di) __W,
   6706 						  (__mmask8) __U);
   6707 }
   6708 
   6709 extern __inline __m128i
   6710 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6711 _mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
   6712 {
   6713   return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X,
   6714 						  (__v2di) __Y,
   6715 						  (__v2di)
   6716 						  _mm_setzero_si128 (),
   6717 						  (__mmask8) __U);
   6718 }
   6719 
   6720 extern __inline __m256i
   6721 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6722 _mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
   6723 			__m256i __Y)
   6724 {
   6725   return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
   6726 						 (__v8si) __Y,
   6727 						 (__v8si) __W,
   6728 						 (__mmask8) __U);
   6729 }
   6730 
   6731 extern __inline __m256i
   6732 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6733 _mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
   6734 {
   6735   return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X,
   6736 						 (__v8si) __Y,
   6737 						 (__v8si)
   6738 						 _mm256_setzero_si256 (),
   6739 						 (__mmask8) __U);
   6740 }
   6741 
   6742 extern __inline __m128i
   6743 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6744 _mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
   6745 		     __m128i __Y)
   6746 {
   6747   return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
   6748 						 (__v4si) __Y,
   6749 						 (__v4si) __W,
   6750 						 (__mmask8) __U);
   6751 }
   6752 
   6753 extern __inline __m128i
   6754 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6755 _mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
   6756 {
   6757   return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X,
   6758 						 (__v4si) __Y,
   6759 						 (__v4si)
   6760 						 _mm_setzero_si128 (),
   6761 						 (__mmask8) __U);
   6762 }
   6763 
   6764 extern __inline __m256i
   6765 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6766 _mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
   6767 			__m256i __Y)
   6768 {
   6769   return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
   6770 						 (__v4di) __Y,
   6771 						 (__v4di) __W,
   6772 						 (__mmask8) __U);
   6773 }
   6774 
   6775 extern __inline __m256i
   6776 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6777 _mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
   6778 {
   6779   return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X,
   6780 						 (__v4di) __Y,
   6781 						 (__v4di)
   6782 						 _mm256_setzero_si256 (),
   6783 						 (__mmask8) __U);
   6784 }
   6785 
   6786 extern __inline __m128i
   6787 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6788 _mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
   6789 		     __m128i __Y)
   6790 {
   6791   return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
   6792 						 (__v2di) __Y,
   6793 						 (__v2di) __W,
   6794 						 (__mmask8) __U);
   6795 }
   6796 
   6797 extern __inline __m128i
   6798 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6799 _mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
   6800 {
   6801   return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X,
   6802 						 (__v2di) __Y,
   6803 						 (__v2di)
   6804 						 _mm_setzero_si128 (),
   6805 						 (__mmask8) __U);
   6806 }
   6807 
   6808 extern __inline __m256i
   6809 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6810 _mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
   6811 			__m256i __Y)
   6812 {
   6813   return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
   6814 						 (__v8si) __Y,
   6815 						 (__v8si) __W,
   6816 						 (__mmask8) __U);
   6817 }
   6818 
   6819 extern __inline __m256i
   6820 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6821 _mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
   6822 {
   6823   return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X,
   6824 						 (__v8si) __Y,
   6825 						 (__v8si)
   6826 						 _mm256_setzero_si256 (),
   6827 						 (__mmask8) __U);
   6828 }
   6829 
   6830 extern __inline __m128i
   6831 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6832 _mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
   6833 		     __m128i __Y)
   6834 {
   6835   return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
   6836 						 (__v4si) __Y,
   6837 						 (__v4si) __W,
   6838 						 (__mmask8) __U);
   6839 }
   6840 
   6841 extern __inline __m128i
   6842 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6843 _mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
   6844 {
   6845   return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X,
   6846 						 (__v4si) __Y,
   6847 						 (__v4si)
   6848 						 _mm_setzero_si128 (),
   6849 						 (__mmask8) __U);
   6850 }
   6851 
   6852 extern __inline __m256i
   6853 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6854 _mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X,
   6855 			__m256i __Y)
   6856 {
   6857   return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
   6858 						 (__v8si) __Y,
   6859 						 (__v8si) __W,
   6860 						 (__mmask8) __U);
   6861 }
   6862 
   6863 extern __inline __m256i
   6864 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6865 _mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y)
   6866 {
   6867   return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X,
   6868 						 (__v8si) __Y,
   6869 						 (__v8si)
   6870 						 _mm256_setzero_si256 (),
   6871 						 (__mmask8) __U);
   6872 }
   6873 
   6874 extern __inline __m128i
   6875 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6876 _mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X,
   6877 		     __m128i __Y)
   6878 {
   6879   return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
   6880 						 (__v4si) __Y,
   6881 						 (__v4si) __W,
   6882 						 (__mmask8) __U);
   6883 }
   6884 
   6885 extern __inline __m128i
   6886 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6887 _mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y)
   6888 {
   6889   return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X,
   6890 						 (__v4si) __Y,
   6891 						 (__v4si)
   6892 						 _mm_setzero_si128 (),
   6893 						 (__mmask8) __U);
   6894 }
   6895 
   6896 extern __inline __m256i
   6897 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6898 _mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
   6899 			__m256i __Y)
   6900 {
   6901   return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
   6902 						 (__v4di) __Y,
   6903 						 (__v4di) __W,
   6904 						 (__mmask8) __U);
   6905 }
   6906 
   6907 extern __inline __m256i
   6908 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6909 _mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
   6910 {
   6911   return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X,
   6912 						 (__v4di) __Y,
   6913 						 (__v4di)
   6914 						 _mm256_setzero_si256 (),
   6915 						 (__mmask8) __U);
   6916 }
   6917 
   6918 extern __inline __m128i
   6919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6920 _mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X,
   6921 		     __m128i __Y)
   6922 {
   6923   return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
   6924 						 (__v2di) __Y,
   6925 						 (__v2di) __W,
   6926 						 (__mmask8) __U);
   6927 }
   6928 
   6929 extern __inline __m128i
   6930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6931 _mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y)
   6932 {
   6933   return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X,
   6934 						 (__v2di) __Y,
   6935 						 (__v2di)
   6936 						 _mm_setzero_si128 (),
   6937 						 (__mmask8) __U);
   6938 }
   6939 
   6940 extern __inline __m256i
   6941 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6942 _mm256_rolv_epi32 (__m256i __A, __m256i __B)
   6943 {
   6944   return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
   6945 						  (__v8si) __B,
   6946 						  (__v8si)
   6947 						  _mm256_setzero_si256 (),
   6948 						  (__mmask8) -1);
   6949 }
   6950 
   6951 extern __inline __m256i
   6952 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6953 _mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   6954 			__m256i __B)
   6955 {
   6956   return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
   6957 						  (__v8si) __B,
   6958 						  (__v8si) __W,
   6959 						  (__mmask8) __U);
   6960 }
   6961 
   6962 extern __inline __m256i
   6963 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6964 _mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   6965 {
   6966   return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A,
   6967 						  (__v8si) __B,
   6968 						  (__v8si)
   6969 						  _mm256_setzero_si256 (),
   6970 						  (__mmask8) __U);
   6971 }
   6972 
   6973 extern __inline __m128i
   6974 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6975 _mm_rolv_epi32 (__m128i __A, __m128i __B)
   6976 {
   6977   return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
   6978 						  (__v4si) __B,
   6979 						  (__v4si)
   6980 						  _mm_setzero_si128 (),
   6981 						  (__mmask8) -1);
   6982 }
   6983 
   6984 extern __inline __m128i
   6985 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6986 _mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   6987 		     __m128i __B)
   6988 {
   6989   return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
   6990 						  (__v4si) __B,
   6991 						  (__v4si) __W,
   6992 						  (__mmask8) __U);
   6993 }
   6994 
   6995 extern __inline __m128i
   6996 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   6997 _mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   6998 {
   6999   return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A,
   7000 						  (__v4si) __B,
   7001 						  (__v4si)
   7002 						  _mm_setzero_si128 (),
   7003 						  (__mmask8) __U);
   7004 }
   7005 
   7006 extern __inline __m256i
   7007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7008 _mm256_rorv_epi32 (__m256i __A, __m256i __B)
   7009 {
   7010   return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
   7011 						  (__v8si) __B,
   7012 						  (__v8si)
   7013 						  _mm256_setzero_si256 (),
   7014 						  (__mmask8) -1);
   7015 }
   7016 
   7017 extern __inline __m256i
   7018 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7019 _mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   7020 			__m256i __B)
   7021 {
   7022   return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
   7023 						  (__v8si) __B,
   7024 						  (__v8si) __W,
   7025 						  (__mmask8) __U);
   7026 }
   7027 
   7028 extern __inline __m256i
   7029 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7030 _mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
   7031 {
   7032   return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A,
   7033 						  (__v8si) __B,
   7034 						  (__v8si)
   7035 						  _mm256_setzero_si256 (),
   7036 						  (__mmask8) __U);
   7037 }
   7038 
   7039 extern __inline __m128i
   7040 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7041 _mm_rorv_epi32 (__m128i __A, __m128i __B)
   7042 {
   7043   return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
   7044 						  (__v4si) __B,
   7045 						  (__v4si)
   7046 						  _mm_setzero_si128 (),
   7047 						  (__mmask8) -1);
   7048 }
   7049 
   7050 extern __inline __m128i
   7051 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7052 _mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   7053 		     __m128i __B)
   7054 {
   7055   return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
   7056 						  (__v4si) __B,
   7057 						  (__v4si) __W,
   7058 						  (__mmask8) __U);
   7059 }
   7060 
   7061 extern __inline __m128i
   7062 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7063 _mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   7064 {
   7065   return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A,
   7066 						  (__v4si) __B,
   7067 						  (__v4si)
   7068 						  _mm_setzero_si128 (),
   7069 						  (__mmask8) __U);
   7070 }
   7071 
   7072 extern __inline __m256i
   7073 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7074 _mm256_rolv_epi64 (__m256i __A, __m256i __B)
   7075 {
   7076   return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
   7077 						  (__v4di) __B,
   7078 						  (__v4di)
   7079 						  _mm256_setzero_si256 (),
   7080 						  (__mmask8) -1);
   7081 }
   7082 
   7083 extern __inline __m256i
   7084 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7085 _mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   7086 			__m256i __B)
   7087 {
   7088   return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
   7089 						  (__v4di) __B,
   7090 						  (__v4di) __W,
   7091 						  (__mmask8) __U);
   7092 }
   7093 
   7094 extern __inline __m256i
   7095 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7096 _mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   7097 {
   7098   return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A,
   7099 						  (__v4di) __B,
   7100 						  (__v4di)
   7101 						  _mm256_setzero_si256 (),
   7102 						  (__mmask8) __U);
   7103 }
   7104 
   7105 extern __inline __m128i
   7106 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7107 _mm_rolv_epi64 (__m128i __A, __m128i __B)
   7108 {
   7109   return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
   7110 						  (__v2di) __B,
   7111 						  (__v2di)
   7112 						  _mm_setzero_si128 (),
   7113 						  (__mmask8) -1);
   7114 }
   7115 
   7116 extern __inline __m128i
   7117 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7118 _mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   7119 		     __m128i __B)
   7120 {
   7121   return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
   7122 						  (__v2di) __B,
   7123 						  (__v2di) __W,
   7124 						  (__mmask8) __U);
   7125 }
   7126 
   7127 extern __inline __m128i
   7128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7129 _mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   7130 {
   7131   return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A,
   7132 						  (__v2di) __B,
   7133 						  (__v2di)
   7134 						  _mm_setzero_si128 (),
   7135 						  (__mmask8) __U);
   7136 }
   7137 
   7138 extern __inline __m256i
   7139 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7140 _mm256_rorv_epi64 (__m256i __A, __m256i __B)
   7141 {
   7142   return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
   7143 						  (__v4di) __B,
   7144 						  (__v4di)
   7145 						  _mm256_setzero_si256 (),
   7146 						  (__mmask8) -1);
   7147 }
   7148 
   7149 extern __inline __m256i
   7150 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7151 _mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   7152 			__m256i __B)
   7153 {
   7154   return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
   7155 						  (__v4di) __B,
   7156 						  (__v4di) __W,
   7157 						  (__mmask8) __U);
   7158 }
   7159 
   7160 extern __inline __m256i
   7161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7162 _mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   7163 {
   7164   return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A,
   7165 						  (__v4di) __B,
   7166 						  (__v4di)
   7167 						  _mm256_setzero_si256 (),
   7168 						  (__mmask8) __U);
   7169 }
   7170 
   7171 extern __inline __m128i
   7172 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7173 _mm_rorv_epi64 (__m128i __A, __m128i __B)
   7174 {
   7175   return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
   7176 						  (__v2di) __B,
   7177 						  (__v2di)
   7178 						  _mm_setzero_si128 (),
   7179 						  (__mmask8) -1);
   7180 }
   7181 
   7182 extern __inline __m128i
   7183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7184 _mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   7185 		     __m128i __B)
   7186 {
   7187   return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
   7188 						  (__v2di) __B,
   7189 						  (__v2di) __W,
   7190 						  (__mmask8) __U);
   7191 }
   7192 
   7193 extern __inline __m128i
   7194 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7195 _mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   7196 {
   7197   return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A,
   7198 						  (__v2di) __B,
   7199 						  (__v2di)
   7200 						  _mm_setzero_si128 (),
   7201 						  (__mmask8) __U);
   7202 }
   7203 
   7204 extern __inline __m256i
   7205 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7206 _mm256_srav_epi64 (__m256i __X, __m256i __Y)
   7207 {
   7208   return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
   7209 						  (__v4di) __Y,
   7210 						  (__v4di)
   7211 						  _mm256_setzero_si256 (),
   7212 						  (__mmask8) -1);
   7213 }
   7214 
   7215 extern __inline __m256i
   7216 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7217 _mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X,
   7218 			__m256i __Y)
   7219 {
   7220   return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
   7221 						  (__v4di) __Y,
   7222 						  (__v4di) __W,
   7223 						  (__mmask8) __U);
   7224 }
   7225 
   7226 extern __inline __m256i
   7227 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7228 _mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
   7229 {
   7230   return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X,
   7231 						  (__v4di) __Y,
   7232 						  (__v4di)
   7233 						  _mm256_setzero_si256 (),
   7234 						  (__mmask8) __U);
   7235 }
   7236 
   7237 extern __inline __m256i
   7238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7239 _mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   7240 		       __m256i __B)
   7241 {
   7242   return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
   7243 						 (__v4di) __B,
   7244 						 (__v4di) __W, __U);
   7245 }
   7246 
   7247 extern __inline __m256i
   7248 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7249 _mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   7250 {
   7251   return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A,
   7252 						 (__v4di) __B,
   7253 						 (__v4di)
   7254 						 _mm256_setzero_pd (),
   7255 						 __U);
   7256 }
   7257 
   7258 extern __inline __m128i
   7259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7260 _mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   7261 		    __m128i __B)
   7262 {
   7263   return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
   7264 						 (__v2di) __B,
   7265 						 (__v2di) __W, __U);
   7266 }
   7267 
   7268 extern __inline __m128i
   7269 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7270 _mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   7271 {
   7272   return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A,
   7273 						 (__v2di) __B,
   7274 						 (__v2di)
   7275 						 _mm_setzero_pd (),
   7276 						 __U);
   7277 }
   7278 
   7279 extern __inline __m256i
   7280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7281 _mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   7282 			  __m256i __B)
   7283 {
   7284   return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
   7285 						  (__v4di) __B,
   7286 						  (__v4di) __W, __U);
   7287 }
   7288 
   7289 extern __inline __m256i
   7290 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7291 _mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   7292 {
   7293   return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A,
   7294 						  (__v4di) __B,
   7295 						  (__v4di)
   7296 						  _mm256_setzero_pd (),
   7297 						  __U);
   7298 }
   7299 
   7300 extern __inline __m128i
   7301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7302 _mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   7303 		       __m128i __B)
   7304 {
   7305   return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
   7306 						  (__v2di) __B,
   7307 						  (__v2di) __W, __U);
   7308 }
   7309 
   7310 extern __inline __m128i
   7311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7312 _mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   7313 {
   7314   return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A,
   7315 						  (__v2di) __B,
   7316 						  (__v2di)
   7317 						  _mm_setzero_pd (),
   7318 						  __U);
   7319 }
   7320 
   7321 extern __inline __m256i
   7322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7323 _mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   7324 		      __m256i __B)
   7325 {
   7326   return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
   7327 						(__v4di) __B,
   7328 						(__v4di) __W,
   7329 						(__mmask8) __U);
   7330 }
   7331 
   7332 extern __inline __m256i
   7333 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7334 _mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   7335 {
   7336   return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A,
   7337 						(__v4di) __B,
   7338 						(__v4di)
   7339 						_mm256_setzero_si256 (),
   7340 						(__mmask8) __U);
   7341 }
   7342 
   7343 extern __inline __m128i
   7344 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7345 _mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
   7346 {
   7347   return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
   7348 						(__v2di) __B,
   7349 						(__v2di) __W,
   7350 						(__mmask8) __U);
   7351 }
   7352 
   7353 extern __inline __m128i
   7354 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7355 _mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   7356 {
   7357   return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A,
   7358 						(__v2di) __B,
   7359 						(__v2di)
   7360 						_mm_setzero_si128 (),
   7361 						(__mmask8) __U);
   7362 }
   7363 
   7364 extern __inline __m256i
   7365 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7366 _mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   7367 		       __m256i __B)
   7368 {
   7369   return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
   7370 						 (__v4di) __B,
   7371 						 (__v4di) __W,
   7372 						 (__mmask8) __U);
   7373 }
   7374 
   7375 extern __inline __m256i
   7376 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7377 _mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
   7378 {
   7379   return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A,
   7380 						 (__v4di) __B,
   7381 						 (__v4di)
   7382 						 _mm256_setzero_si256 (),
   7383 						 (__mmask8) __U);
   7384 }
   7385 
   7386 extern __inline __m128i
   7387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7388 _mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   7389 		    __m128i __B)
   7390 {
   7391   return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
   7392 						 (__v2di) __B,
   7393 						 (__v2di) __W,
   7394 						 (__mmask8) __U);
   7395 }
   7396 
   7397 extern __inline __m128i
   7398 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7399 _mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   7400 {
   7401   return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A,
   7402 						 (__v2di) __B,
   7403 						 (__v2di)
   7404 						 _mm_setzero_si128 (),
   7405 						 (__mmask8) __U);
   7406 }
   7407 
   7408 extern __inline __m256d
   7409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7410 _mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A,
   7411 		    __m256d __B)
   7412 {
   7413   return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
   7414 						 (__v4df) __B,
   7415 						 (__v4df) __W,
   7416 						 (__mmask8) __U);
   7417 }
   7418 
   7419 extern __inline __m256d
   7420 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7421 _mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B)
   7422 {
   7423   return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A,
   7424 						 (__v4df) __B,
   7425 						 (__v4df)
   7426 						 _mm256_setzero_pd (),
   7427 						 (__mmask8) __U);
   7428 }
   7429 
   7430 extern __inline __m256
   7431 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7432 _mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
   7433 {
   7434   return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
   7435 						(__v8sf) __B,
   7436 						(__v8sf) __W,
   7437 						(__mmask8) __U);
   7438 }
   7439 
   7440 extern __inline __m256
   7441 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7442 _mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B)
   7443 {
   7444   return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A,
   7445 						(__v8sf) __B,
   7446 						(__v8sf)
   7447 						_mm256_setzero_ps (),
   7448 						(__mmask8) __U);
   7449 }
   7450 
   7451 extern __inline __m128
   7452 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7453 _mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   7454 {
   7455   return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
   7456 					     (__v4sf) __B,
   7457 					     (__v4sf) __W,
   7458 					     (__mmask8) __U);
   7459 }
   7460 
   7461 extern __inline __m128
   7462 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7463 _mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B)
   7464 {
   7465   return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A,
   7466 					     (__v4sf) __B,
   7467 					     (__v4sf)
   7468 					     _mm_setzero_ps (),
   7469 					     (__mmask8) __U);
   7470 }
   7471 
   7472 extern __inline __m128d
   7473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7474 _mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
   7475 {
   7476   return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
   7477 					      (__v2df) __B,
   7478 					      (__v2df) __W,
   7479 					      (__mmask8) __U);
   7480 }
   7481 
   7482 extern __inline __m128d
   7483 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7484 _mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B)
   7485 {
   7486   return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A,
   7487 					      (__v2df) __B,
   7488 					      (__v2df)
   7489 					      _mm_setzero_pd (),
   7490 					      (__mmask8) __U);
   7491 }
   7492 
   7493 extern __inline __m256d
   7494 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7495 _mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A,
   7496 		    __m256d __B)
   7497 {
   7498   return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
   7499 						 (__v4df) __B,
   7500 						 (__v4df) __W,
   7501 						 (__mmask8) __U);
   7502 }
   7503 
   7504 extern __inline __m256d
   7505 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7506 _mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A,
   7507 		    __m256d __B)
   7508 {
   7509   return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
   7510 						 (__v4df) __B,
   7511 						 (__v4df) __W,
   7512 						 (__mmask8) __U);
   7513 }
   7514 
   7515 extern __inline __m256d
   7516 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7517 _mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B)
   7518 {
   7519   return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A,
   7520 						 (__v4df) __B,
   7521 						 (__v4df)
   7522 						 _mm256_setzero_pd (),
   7523 						 (__mmask8) __U);
   7524 }
   7525 
   7526 extern __inline __m256
   7527 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7528 _mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
   7529 {
   7530   return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
   7531 						(__v8sf) __B,
   7532 						(__v8sf) __W,
   7533 						(__mmask8) __U);
   7534 }
   7535 
   7536 extern __inline __m256d
   7537 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7538 _mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B)
   7539 {
   7540   return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A,
   7541 						 (__v4df) __B,
   7542 						 (__v4df)
   7543 						 _mm256_setzero_pd (),
   7544 						 (__mmask8) __U);
   7545 }
   7546 
   7547 extern __inline __m256
   7548 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7549 _mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
   7550 {
   7551   return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
   7552 						(__v8sf) __B,
   7553 						(__v8sf) __W,
   7554 						(__mmask8) __U);
   7555 }
   7556 
   7557 extern __inline __m256
   7558 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7559 _mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B)
   7560 {
   7561   return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A,
   7562 						(__v8sf) __B,
   7563 						(__v8sf)
   7564 						_mm256_setzero_ps (),
   7565 						(__mmask8) __U);
   7566 }
   7567 
   7568 extern __inline __m256
   7569 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7570 _mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B)
   7571 {
   7572   return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A,
   7573 						(__v8sf) __B,
   7574 						(__v8sf)
   7575 						_mm256_setzero_ps (),
   7576 						(__mmask8) __U);
   7577 }
   7578 
   7579 extern __inline __m128
   7580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7581 _mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   7582 {
   7583   return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
   7584 					     (__v4sf) __B,
   7585 					     (__v4sf) __W,
   7586 					     (__mmask8) __U);
   7587 }
   7588 
   7589 extern __inline __m128
   7590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7591 _mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   7592 {
   7593   return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
   7594 					     (__v4sf) __B,
   7595 					     (__v4sf) __W,
   7596 					     (__mmask8) __U);
   7597 }
   7598 
   7599 extern __inline __m128
   7600 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7601 _mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B)
   7602 {
   7603   return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A,
   7604 					     (__v4sf) __B,
   7605 					     (__v4sf)
   7606 					     _mm_setzero_ps (),
   7607 					     (__mmask8) __U);
   7608 }
   7609 
   7610 extern __inline __m128
   7611 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7612 _mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B)
   7613 {
   7614   return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A,
   7615 					     (__v4sf) __B,
   7616 					     (__v4sf)
   7617 					     _mm_setzero_ps (),
   7618 					     (__mmask8) __U);
   7619 }
   7620 
   7621 extern __inline __m128
   7622 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7623 _mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   7624 {
   7625   return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
   7626 					     (__v4sf) __B,
   7627 					     (__v4sf) __W,
   7628 					     (__mmask8) __U);
   7629 }
   7630 
   7631 extern __inline __m128
   7632 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7633 _mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B)
   7634 {
   7635   return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A,
   7636 					     (__v4sf) __B,
   7637 					     (__v4sf)
   7638 					     _mm_setzero_ps (),
   7639 					     (__mmask8) __U);
   7640 }
   7641 
   7642 extern __inline __m128d
   7643 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7644 _mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
   7645 {
   7646   return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
   7647 					      (__v2df) __B,
   7648 					      (__v2df) __W,
   7649 					      (__mmask8) __U);
   7650 }
   7651 
   7652 extern __inline __m128d
   7653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7654 _mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B)
   7655 {
   7656   return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A,
   7657 					      (__v2df) __B,
   7658 					      (__v2df)
   7659 					      _mm_setzero_pd (),
   7660 					      (__mmask8) __U);
   7661 }
   7662 
   7663 extern __inline __m128d
   7664 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7665 _mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
   7666 {
   7667   return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
   7668 					      (__v2df) __B,
   7669 					      (__v2df) __W,
   7670 					      (__mmask8) __U);
   7671 }
   7672 
   7673 extern __inline __m128d
   7674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7675 _mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B)
   7676 {
   7677   return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A,
   7678 					      (__v2df) __B,
   7679 					      (__v2df)
   7680 					      _mm_setzero_pd (),
   7681 					      (__mmask8) __U);
   7682 }
   7683 
   7684 extern __inline __m128d
   7685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7686 _mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
   7687 {
   7688   return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
   7689 					      (__v2df) __B,
   7690 					      (__v2df) __W,
   7691 					      (__mmask8) __U);
   7692 }
   7693 
   7694 extern __inline __m128d
   7695 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7696 _mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B)
   7697 {
   7698   return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A,
   7699 					      (__v2df) __B,
   7700 					      (__v2df)
   7701 					      _mm_setzero_pd (),
   7702 					      (__mmask8) __U);
   7703 }
   7704 
   7705 extern __inline __m256
   7706 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7707 _mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
   7708 {
   7709   return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
   7710 						(__v8sf) __B,
   7711 						(__v8sf) __W,
   7712 						(__mmask8) __U);
   7713 }
   7714 
   7715 extern __inline __m256
   7716 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7717 _mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B)
   7718 {
   7719   return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A,
   7720 						(__v8sf) __B,
   7721 						(__v8sf)
   7722 						_mm256_setzero_ps (),
   7723 						(__mmask8) __U);
   7724 }
   7725 
   7726 extern __inline __m256d
   7727 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7728 _mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A,
   7729 		    __m256d __B)
   7730 {
   7731   return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
   7732 						 (__v4df) __B,
   7733 						 (__v4df) __W,
   7734 						 (__mmask8) __U);
   7735 }
   7736 
   7737 extern __inline __m256d
   7738 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7739 _mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B)
   7740 {
   7741   return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A,
   7742 						 (__v4df) __B,
   7743 						 (__v4df)
   7744 						 _mm256_setzero_pd (),
   7745 						 (__mmask8) __U);
   7746 }
   7747 
   7748 extern __inline __m256i
   7749 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7750 _mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B)
   7751 {
   7752   return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
   7753 						  (__v4di) __B,
   7754 						  (__v4di)
   7755 						  _mm256_setzero_si256 (),
   7756 						  __M);
   7757 }
   7758 
   7759 extern __inline __m256i
   7760 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7761 _mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
   7762 		       __m256i __B)
   7763 {
   7764   return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
   7765 						  (__v4di) __B,
   7766 						  (__v4di) __W, __M);
   7767 }
   7768 
   7769 extern __inline __m256i
   7770 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7771 _mm256_min_epi64 (__m256i __A, __m256i __B)
   7772 {
   7773   return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
   7774 						  (__v4di) __B,
   7775 						  (__v4di)
   7776 						  _mm256_setzero_si256 (),
   7777 						  (__mmask8) -1);
   7778 }
   7779 
   7780 extern __inline __m256i
   7781 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7782 _mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A,
   7783 		       __m256i __B)
   7784 {
   7785   return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
   7786 						  (__v4di) __B,
   7787 						  (__v4di) __W, __M);
   7788 }
   7789 
   7790 extern __inline __m256i
   7791 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7792 _mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B)
   7793 {
   7794   return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A,
   7795 						  (__v4di) __B,
   7796 						  (__v4di)
   7797 						  _mm256_setzero_si256 (),
   7798 						  __M);
   7799 }
   7800 
   7801 extern __inline __m256i
   7802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7803 _mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B)
   7804 {
   7805   return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
   7806 						  (__v4di) __B,
   7807 						  (__v4di)
   7808 						  _mm256_setzero_si256 (),
   7809 						  __M);
   7810 }
   7811 
   7812 extern __inline __m256i
   7813 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7814 _mm256_max_epi64 (__m256i __A, __m256i __B)
   7815 {
   7816   return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A,
   7817 						  (__v4di) __B,
   7818 						  (__v4di)
   7819 						  _mm256_setzero_si256 (),
   7820 						  (__mmask8) -1);
   7821 }
   7822 
   7823 extern __inline __m256i
   7824 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7825 _mm256_max_epu64 (__m256i __A, __m256i __B)
   7826 {
   7827   return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
   7828 						  (__v4di) __B,
   7829 						  (__v4di)
   7830 						  _mm256_setzero_si256 (),
   7831 						  (__mmask8) -1);
   7832 }
   7833 
   7834 extern __inline __m256i
   7835 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7836 _mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
   7837 		       __m256i __B)
   7838 {
   7839   return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A,
   7840 						  (__v4di) __B,
   7841 						  (__v4di) __W, __M);
   7842 }
   7843 
   7844 extern __inline __m256i
   7845 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7846 _mm256_min_epu64 (__m256i __A, __m256i __B)
   7847 {
   7848   return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
   7849 						  (__v4di) __B,
   7850 						  (__v4di)
   7851 						  _mm256_setzero_si256 (),
   7852 						  (__mmask8) -1);
   7853 }
   7854 
   7855 extern __inline __m256i
   7856 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7857 _mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A,
   7858 		       __m256i __B)
   7859 {
   7860   return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
   7861 						  (__v4di) __B,
   7862 						  (__v4di) __W, __M);
   7863 }
   7864 
   7865 extern __inline __m256i
   7866 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7867 _mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B)
   7868 {
   7869   return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A,
   7870 						  (__v4di) __B,
   7871 						  (__v4di)
   7872 						  _mm256_setzero_si256 (),
   7873 						  __M);
   7874 }
   7875 
   7876 extern __inline __m256i
   7877 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7878 _mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
   7879 {
   7880   return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
   7881 						  (__v8si) __B,
   7882 						  (__v8si)
   7883 						  _mm256_setzero_si256 (),
   7884 						  __M);
   7885 }
   7886 
   7887 extern __inline __m256i
   7888 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7889 _mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
   7890 		       __m256i __B)
   7891 {
   7892   return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A,
   7893 						  (__v8si) __B,
   7894 						  (__v8si) __W, __M);
   7895 }
   7896 
   7897 extern __inline __m256i
   7898 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7899 _mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
   7900 {
   7901   return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
   7902 						  (__v8si) __B,
   7903 						  (__v8si)
   7904 						  _mm256_setzero_si256 (),
   7905 						  __M);
   7906 }
   7907 
   7908 extern __inline __m256i
   7909 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7910 _mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
   7911 		       __m256i __B)
   7912 {
   7913   return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A,
   7914 						  (__v8si) __B,
   7915 						  (__v8si) __W, __M);
   7916 }
   7917 
   7918 extern __inline __m256i
   7919 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7920 _mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B)
   7921 {
   7922   return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
   7923 						  (__v8si) __B,
   7924 						  (__v8si)
   7925 						  _mm256_setzero_si256 (),
   7926 						  __M);
   7927 }
   7928 
   7929 extern __inline __m256i
   7930 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7931 _mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
   7932 		       __m256i __B)
   7933 {
   7934   return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A,
   7935 						  (__v8si) __B,
   7936 						  (__v8si) __W, __M);
   7937 }
   7938 
   7939 extern __inline __m256i
   7940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7941 _mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B)
   7942 {
   7943   return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
   7944 						  (__v8si) __B,
   7945 						  (__v8si)
   7946 						  _mm256_setzero_si256 (),
   7947 						  __M);
   7948 }
   7949 
   7950 extern __inline __m256i
   7951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7952 _mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A,
   7953 		       __m256i __B)
   7954 {
   7955   return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A,
   7956 						  (__v8si) __B,
   7957 						  (__v8si) __W, __M);
   7958 }
   7959 
   7960 extern __inline __m128i
   7961 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7962 _mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B)
   7963 {
   7964   return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
   7965 						  (__v2di) __B,
   7966 						  (__v2di)
   7967 						  _mm_setzero_si128 (),
   7968 						  __M);
   7969 }
   7970 
   7971 extern __inline __m128i
   7972 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7973 _mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
   7974 		    __m128i __B)
   7975 {
   7976   return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
   7977 						  (__v2di) __B,
   7978 						  (__v2di) __W, __M);
   7979 }
   7980 
   7981 extern __inline __m128i
   7982 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7983 _mm_min_epi64 (__m128i __A, __m128i __B)
   7984 {
   7985   return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
   7986 						  (__v2di) __B,
   7987 						  (__v2di)
   7988 						  _mm_setzero_si128 (),
   7989 						  (__mmask8) -1);
   7990 }
   7991 
   7992 extern __inline __m128i
   7993 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   7994 _mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A,
   7995 		    __m128i __B)
   7996 {
   7997   return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
   7998 						  (__v2di) __B,
   7999 						  (__v2di) __W, __M);
   8000 }
   8001 
   8002 extern __inline __m128i
   8003 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8004 _mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B)
   8005 {
   8006   return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A,
   8007 						  (__v2di) __B,
   8008 						  (__v2di)
   8009 						  _mm_setzero_si128 (),
   8010 						  __M);
   8011 }
   8012 
   8013 extern __inline __m128i
   8014 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8015 _mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B)
   8016 {
   8017   return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
   8018 						  (__v2di) __B,
   8019 						  (__v2di)
   8020 						  _mm_setzero_si128 (),
   8021 						  __M);
   8022 }
   8023 
   8024 extern __inline __m128i
   8025 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8026 _mm_max_epi64 (__m128i __A, __m128i __B)
   8027 {
   8028   return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A,
   8029 						  (__v2di) __B,
   8030 						  (__v2di)
   8031 						  _mm_setzero_si128 (),
   8032 						  (__mmask8) -1);
   8033 }
   8034 
   8035 extern __inline __m128i
   8036 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8037 _mm_max_epu64 (__m128i __A, __m128i __B)
   8038 {
   8039   return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
   8040 						  (__v2di) __B,
   8041 						  (__v2di)
   8042 						  _mm_setzero_si128 (),
   8043 						  (__mmask8) -1);
   8044 }
   8045 
   8046 extern __inline __m128i
   8047 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8048 _mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
   8049 		    __m128i __B)
   8050 {
   8051   return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A,
   8052 						  (__v2di) __B,
   8053 						  (__v2di) __W, __M);
   8054 }
   8055 
   8056 extern __inline __m128i
   8057 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8058 _mm_min_epu64 (__m128i __A, __m128i __B)
   8059 {
   8060   return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
   8061 						  (__v2di) __B,
   8062 						  (__v2di)
   8063 						  _mm_setzero_si128 (),
   8064 						  (__mmask8) -1);
   8065 }
   8066 
   8067 extern __inline __m128i
   8068 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8069 _mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A,
   8070 		    __m128i __B)
   8071 {
   8072   return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
   8073 						  (__v2di) __B,
   8074 						  (__v2di) __W, __M);
   8075 }
   8076 
   8077 extern __inline __m128i
   8078 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8079 _mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B)
   8080 {
   8081   return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A,
   8082 						  (__v2di) __B,
   8083 						  (__v2di)
   8084 						  _mm_setzero_si128 (),
   8085 						  __M);
   8086 }
   8087 
   8088 extern __inline __m128i
   8089 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8090 _mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
   8091 {
   8092   return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
   8093 						  (__v4si) __B,
   8094 						  (__v4si)
   8095 						  _mm_setzero_si128 (),
   8096 						  __M);
   8097 }
   8098 
   8099 extern __inline __m128i
   8100 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8101 _mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
   8102 		    __m128i __B)
   8103 {
   8104   return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A,
   8105 						  (__v4si) __B,
   8106 						  (__v4si) __W, __M);
   8107 }
   8108 
   8109 extern __inline __m128i
   8110 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8111 _mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
   8112 {
   8113   return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
   8114 						  (__v4si) __B,
   8115 						  (__v4si)
   8116 						  _mm_setzero_si128 (),
   8117 						  __M);
   8118 }
   8119 
   8120 extern __inline __m128i
   8121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8122 _mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A,
   8123 		    __m128i __B)
   8124 {
   8125   return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A,
   8126 						  (__v4si) __B,
   8127 						  (__v4si) __W, __M);
   8128 }
   8129 
   8130 extern __inline __m128i
   8131 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8132 _mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B)
   8133 {
   8134   return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
   8135 						  (__v4si) __B,
   8136 						  (__v4si)
   8137 						  _mm_setzero_si128 (),
   8138 						  __M);
   8139 }
   8140 
   8141 extern __inline __m128i
   8142 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8143 _mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
   8144 		    __m128i __B)
   8145 {
   8146   return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A,
   8147 						  (__v4si) __B,
   8148 						  (__v4si) __W, __M);
   8149 }
   8150 
   8151 extern __inline __m128i
   8152 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8153 _mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B)
   8154 {
   8155   return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
   8156 						  (__v4si) __B,
   8157 						  (__v4si)
   8158 						  _mm_setzero_si128 (),
   8159 						  __M);
   8160 }
   8161 
   8162 extern __inline __m128i
   8163 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8164 _mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A,
   8165 		    __m128i __B)
   8166 {
   8167   return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A,
   8168 						  (__v4si) __B,
   8169 						  (__v4si) __W, __M);
   8170 }
   8171 
   8172 #ifndef __AVX512CD__
   8173 #pragma GCC push_options
   8174 #pragma GCC target("avx512vl,avx512cd")
   8175 #define __DISABLE_AVX512VLCD__
   8176 #endif
   8177 
   8178 extern __inline __m128i
   8179 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8180 _mm_broadcastmb_epi64 (__mmask8 __A)
   8181 {
   8182   return (__m128i) __builtin_ia32_broadcastmb128 (__A);
   8183 }
   8184 
   8185 extern __inline __m256i
   8186 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8187 _mm256_broadcastmb_epi64 (__mmask8 __A)
   8188 {
   8189   return (__m256i) __builtin_ia32_broadcastmb256 (__A);
   8190 }
   8191 
   8192 extern __inline __m128i
   8193 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8194 _mm_broadcastmw_epi32 (__mmask16 __A)
   8195 {
   8196   return (__m128i) __builtin_ia32_broadcastmw128 (__A);
   8197 }
   8198 
   8199 extern __inline __m256i
   8200 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8201 _mm256_broadcastmw_epi32 (__mmask16 __A)
   8202 {
   8203   return (__m256i) __builtin_ia32_broadcastmw256 (__A);
   8204 }
   8205 
   8206 extern __inline __m256i
   8207 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8208 _mm256_lzcnt_epi32 (__m256i __A)
   8209 {
   8210   return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
   8211 						     (__v8si)
   8212 						     _mm256_setzero_si256 (),
   8213 						     (__mmask8) -1);
   8214 }
   8215 
   8216 extern __inline __m256i
   8217 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8218 _mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
   8219 {
   8220   return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
   8221 						     (__v8si) __W,
   8222 						     (__mmask8) __U);
   8223 }
   8224 
   8225 extern __inline __m256i
   8226 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8227 _mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A)
   8228 {
   8229   return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
   8230 						     (__v8si)
   8231 						     _mm256_setzero_si256 (),
   8232 						     (__mmask8) __U);
   8233 }
   8234 
   8235 extern __inline __m256i
   8236 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8237 _mm256_lzcnt_epi64 (__m256i __A)
   8238 {
   8239   return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
   8240 						     (__v4di)
   8241 						     _mm256_setzero_si256 (),
   8242 						     (__mmask8) -1);
   8243 }
   8244 
   8245 extern __inline __m256i
   8246 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8247 _mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
   8248 {
   8249   return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
   8250 						     (__v4di) __W,
   8251 						     (__mmask8) __U);
   8252 }
   8253 
   8254 extern __inline __m256i
   8255 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8256 _mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A)
   8257 {
   8258   return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
   8259 						     (__v4di)
   8260 						     _mm256_setzero_si256 (),
   8261 						     (__mmask8) __U);
   8262 }
   8263 
   8264 extern __inline __m256i
   8265 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8266 _mm256_conflict_epi64 (__m256i __A)
   8267 {
   8268   return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
   8269 							 (__v4di)
   8270 							 _mm256_setzero_si256 (),
   8271 							 (__mmask8) -1);
   8272 }
   8273 
   8274 extern __inline __m256i
   8275 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8276 _mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
   8277 {
   8278   return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
   8279 							 (__v4di) __W,
   8280 							 (__mmask8)
   8281 							 __U);
   8282 }
   8283 
   8284 extern __inline __m256i
   8285 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8286 _mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A)
   8287 {
   8288   return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
   8289 							 (__v4di)
   8290 							 _mm256_setzero_si256 (),
   8291 							 (__mmask8)
   8292 							 __U);
   8293 }
   8294 
   8295 extern __inline __m256i
   8296 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8297 _mm256_conflict_epi32 (__m256i __A)
   8298 {
   8299   return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
   8300 							 (__v8si)
   8301 							 _mm256_setzero_si256 (),
   8302 							 (__mmask8) -1);
   8303 }
   8304 
   8305 extern __inline __m256i
   8306 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8307 _mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
   8308 {
   8309   return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
   8310 							 (__v8si) __W,
   8311 							 (__mmask8)
   8312 							 __U);
   8313 }
   8314 
   8315 extern __inline __m256i
   8316 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8317 _mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A)
   8318 {
   8319   return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
   8320 							 (__v8si)
   8321 							 _mm256_setzero_si256 (),
   8322 							 (__mmask8)
   8323 							 __U);
   8324 }
   8325 
   8326 extern __inline __m128i
   8327 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8328 _mm_lzcnt_epi32 (__m128i __A)
   8329 {
   8330   return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
   8331 						     (__v4si)
   8332 						     _mm_setzero_si128 (),
   8333 						     (__mmask8) -1);
   8334 }
   8335 
   8336 extern __inline __m128i
   8337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8338 _mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   8339 {
   8340   return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
   8341 						     (__v4si) __W,
   8342 						     (__mmask8) __U);
   8343 }
   8344 
   8345 extern __inline __m128i
   8346 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8347 _mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A)
   8348 {
   8349   return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
   8350 						     (__v4si)
   8351 						     _mm_setzero_si128 (),
   8352 						     (__mmask8) __U);
   8353 }
   8354 
   8355 extern __inline __m128i
   8356 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8357 _mm_lzcnt_epi64 (__m128i __A)
   8358 {
   8359   return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
   8360 						     (__v2di)
   8361 						     _mm_setzero_si128 (),
   8362 						     (__mmask8) -1);
   8363 }
   8364 
   8365 extern __inline __m128i
   8366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8367 _mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   8368 {
   8369   return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
   8370 						     (__v2di) __W,
   8371 						     (__mmask8) __U);
   8372 }
   8373 
   8374 extern __inline __m128i
   8375 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8376 _mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A)
   8377 {
   8378   return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
   8379 						     (__v2di)
   8380 						     _mm_setzero_si128 (),
   8381 						     (__mmask8) __U);
   8382 }
   8383 
   8384 extern __inline __m128i
   8385 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8386 _mm_conflict_epi64 (__m128i __A)
   8387 {
   8388   return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
   8389 							 (__v2di)
   8390 							 _mm_setzero_si128 (),
   8391 							 (__mmask8) -1);
   8392 }
   8393 
   8394 extern __inline __m128i
   8395 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8396 _mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
   8397 {
   8398   return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
   8399 							 (__v2di) __W,
   8400 							 (__mmask8)
   8401 							 __U);
   8402 }
   8403 
   8404 extern __inline __m128i
   8405 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8406 _mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A)
   8407 {
   8408   return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
   8409 							 (__v2di)
   8410 							 _mm_setzero_si128 (),
   8411 							 (__mmask8)
   8412 							 __U);
   8413 }
   8414 
   8415 extern __inline __m128i
   8416 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8417 _mm_conflict_epi32 (__m128i __A)
   8418 {
   8419   return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
   8420 							 (__v4si)
   8421 							 _mm_setzero_si128 (),
   8422 							 (__mmask8) -1);
   8423 }
   8424 
   8425 extern __inline __m128i
   8426 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8427 _mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
   8428 {
   8429   return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
   8430 							 (__v4si) __W,
   8431 							 (__mmask8)
   8432 							 __U);
   8433 }
   8434 
   8435 extern __inline __m128i
   8436 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8437 _mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A)
   8438 {
   8439   return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
   8440 							 (__v4si)
   8441 							 _mm_setzero_si128 (),
   8442 							 (__mmask8)
   8443 							 __U);
   8444 }
   8445 
   8446 #ifdef __DISABLE_AVX512VLCD__
   8447 #pragma GCC pop_options
   8448 #endif
   8449 
   8450 extern __inline __m256d
   8451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8452 _mm256_mask_unpacklo_pd (__m256d __W, __mmask8 __U, __m256d __A,
   8453 			 __m256d __B)
   8454 {
   8455   return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A,
   8456 						    (__v4df) __B,
   8457 						    (__v4df) __W,
   8458 						    (__mmask8) __U);
   8459 }
   8460 
   8461 extern __inline __m256d
   8462 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8463 _mm256_maskz_unpacklo_pd (__mmask8 __U, __m256d __A, __m256d __B)
   8464 {
   8465   return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A,
   8466 						    (__v4df) __B,
   8467 						    (__v4df)
   8468 						    _mm256_setzero_pd (),
   8469 						    (__mmask8) __U);
   8470 }
   8471 
   8472 extern __inline __m128d
   8473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8474 _mm_mask_unpacklo_pd (__m128d __W, __mmask8 __U, __m128d __A,
   8475 		      __m128d __B)
   8476 {
   8477   return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A,
   8478 						    (__v2df) __B,
   8479 						    (__v2df) __W,
   8480 						    (__mmask8) __U);
   8481 }
   8482 
   8483 extern __inline __m128d
   8484 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8485 _mm_maskz_unpacklo_pd (__mmask8 __U, __m128d __A, __m128d __B)
   8486 {
   8487   return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A,
   8488 						    (__v2df) __B,
   8489 						    (__v2df)
   8490 						    _mm_setzero_pd (),
   8491 						    (__mmask8) __U);
   8492 }
   8493 
   8494 extern __inline __m256
   8495 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8496 _mm256_mask_unpacklo_ps (__m256 __W, __mmask8 __U, __m256 __A,
   8497 			 __m256 __B)
   8498 {
   8499   return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A,
   8500 						   (__v8sf) __B,
   8501 						   (__v8sf) __W,
   8502 						   (__mmask8) __U);
   8503 }
   8504 
   8505 extern __inline __m256d
   8506 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8507 _mm256_mask_unpackhi_pd (__m256d __W, __mmask8 __U, __m256d __A,
   8508 			 __m256d __B)
   8509 {
   8510   return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A,
   8511 						    (__v4df) __B,
   8512 						    (__v4df) __W,
   8513 						    (__mmask8) __U);
   8514 }
   8515 
   8516 extern __inline __m256d
   8517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8518 _mm256_maskz_unpackhi_pd (__mmask8 __U, __m256d __A, __m256d __B)
   8519 {
   8520   return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A,
   8521 						    (__v4df) __B,
   8522 						    (__v4df)
   8523 						    _mm256_setzero_pd (),
   8524 						    (__mmask8) __U);
   8525 }
   8526 
   8527 extern __inline __m128d
   8528 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8529 _mm_mask_unpackhi_pd (__m128d __W, __mmask8 __U, __m128d __A,
   8530 		      __m128d __B)
   8531 {
   8532   return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A,
   8533 						    (__v2df) __B,
   8534 						    (__v2df) __W,
   8535 						    (__mmask8) __U);
   8536 }
   8537 
   8538 extern __inline __m128d
   8539 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8540 _mm_maskz_unpackhi_pd (__mmask8 __U, __m128d __A, __m128d __B)
   8541 {
   8542   return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A,
   8543 						    (__v2df) __B,
   8544 						    (__v2df)
   8545 						    _mm_setzero_pd (),
   8546 						    (__mmask8) __U);
   8547 }
   8548 
   8549 extern __inline __m256
   8550 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8551 _mm256_mask_unpackhi_ps (__m256 __W, __mmask8 __U, __m256 __A,
   8552 			 __m256 __B)
   8553 {
   8554   return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A,
   8555 						   (__v8sf) __B,
   8556 						   (__v8sf) __W,
   8557 						   (__mmask8) __U);
   8558 }
   8559 
   8560 extern __inline __m256
   8561 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8562 _mm256_maskz_unpackhi_ps (__mmask8 __U, __m256 __A, __m256 __B)
   8563 {
   8564   return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A,
   8565 						   (__v8sf) __B,
   8566 						   (__v8sf)
   8567 						   _mm256_setzero_ps (),
   8568 						   (__mmask8) __U);
   8569 }
   8570 
   8571 extern __inline __m128
   8572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8573 _mm_mask_unpackhi_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   8574 {
   8575   return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A,
   8576 						   (__v4sf) __B,
   8577 						   (__v4sf) __W,
   8578 						   (__mmask8) __U);
   8579 }
   8580 
   8581 extern __inline __m128
   8582 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8583 _mm_maskz_unpackhi_ps (__mmask8 __U, __m128 __A, __m128 __B)
   8584 {
   8585   return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A,
   8586 						   (__v4sf) __B,
   8587 						   (__v4sf)
   8588 						   _mm_setzero_ps (),
   8589 						   (__mmask8) __U);
   8590 }
   8591 
   8592 extern __inline __m128
   8593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8594 _mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
   8595 {
   8596   return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
   8597 						 (__v4sf) __W,
   8598 						 (__mmask8) __U);
   8599 }
   8600 
   8601 extern __inline __m128
   8602 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8603 _mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
   8604 {
   8605   return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
   8606 						 (__v4sf)
   8607 						 _mm_setzero_ps (),
   8608 						 (__mmask8) __U);
   8609 }
   8610 
   8611 extern __inline __m256
   8612 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8613 _mm256_maskz_unpacklo_ps (__mmask8 __U, __m256 __A, __m256 __B)
   8614 {
   8615   return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A,
   8616 						   (__v8sf) __B,
   8617 						   (__v8sf)
   8618 						   _mm256_setzero_ps (),
   8619 						   (__mmask8) __U);
   8620 }
   8621 
   8622 extern __inline __m256
   8623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8624 _mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
   8625 {
   8626   return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
   8627 						    (__v8sf) __W,
   8628 						    (__mmask8) __U);
   8629 }
   8630 
   8631 extern __inline __m256
   8632 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8633 _mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
   8634 {
   8635   return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
   8636 						    (__v8sf)
   8637 						    _mm256_setzero_ps (),
   8638 						    (__mmask8) __U);
   8639 }
   8640 
   8641 extern __inline __m128
   8642 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8643 _mm_mask_unpacklo_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
   8644 {
   8645   return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A,
   8646 						   (__v4sf) __B,
   8647 						   (__v4sf) __W,
   8648 						   (__mmask8) __U);
   8649 }
   8650 
   8651 extern __inline __m128
   8652 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8653 _mm_maskz_unpacklo_ps (__mmask8 __U, __m128 __A, __m128 __B)
   8654 {
   8655   return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A,
   8656 						   (__v4sf) __B,
   8657 						   (__v4sf)
   8658 						   _mm_setzero_ps (),
   8659 						   (__mmask8) __U);
   8660 }
   8661 
   8662 extern __inline __m256i
   8663 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8664 _mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   8665 		       __m128i __B)
   8666 {
   8667   return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
   8668 						 (__v4si) __B,
   8669 						 (__v8si) __W,
   8670 						 (__mmask8) __U);
   8671 }
   8672 
   8673 extern __inline __m256i
   8674 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8675 _mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
   8676 {
   8677   return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
   8678 						 (__v4si) __B,
   8679 						 (__v8si)
   8680 						 _mm256_setzero_si256 (),
   8681 						 (__mmask8) __U);
   8682 }
   8683 
   8684 extern __inline __m128i
   8685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8686 _mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   8687 		    __m128i __B)
   8688 {
   8689   return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
   8690 						 (__v4si) __B,
   8691 						 (__v4si) __W,
   8692 						 (__mmask8) __U);
   8693 }
   8694 
   8695 extern __inline __m128i
   8696 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8697 _mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   8698 {
   8699   return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
   8700 						 (__v4si) __B,
   8701 						 (__v4si)
   8702 						 _mm_setzero_si128 (),
   8703 						 (__mmask8) __U);
   8704 }
   8705 
   8706 extern __inline __m256i
   8707 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8708 _mm256_sra_epi64 (__m256i __A, __m128i __B)
   8709 {
   8710   return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
   8711 						 (__v2di) __B,
   8712 						 (__v4di)
   8713 						 _mm256_setzero_si256 (),
   8714 						 (__mmask8) -1);
   8715 }
   8716 
   8717 extern __inline __m256i
   8718 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8719 _mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   8720 		       __m128i __B)
   8721 {
   8722   return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
   8723 						 (__v2di) __B,
   8724 						 (__v4di) __W,
   8725 						 (__mmask8) __U);
   8726 }
   8727 
   8728 extern __inline __m256i
   8729 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8730 _mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
   8731 {
   8732   return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
   8733 						 (__v2di) __B,
   8734 						 (__v4di)
   8735 						 _mm256_setzero_si256 (),
   8736 						 (__mmask8) __U);
   8737 }
   8738 
   8739 extern __inline __m128i
   8740 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8741 _mm_sra_epi64 (__m128i __A, __m128i __B)
   8742 {
   8743   return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
   8744 						 (__v2di) __B,
   8745 						 (__v2di)
   8746 						 _mm_setzero_si128 (),
   8747 						 (__mmask8) -1);
   8748 }
   8749 
   8750 extern __inline __m128i
   8751 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8752 _mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   8753 		    __m128i __B)
   8754 {
   8755   return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
   8756 						 (__v2di) __B,
   8757 						 (__v2di) __W,
   8758 						 (__mmask8) __U);
   8759 }
   8760 
   8761 extern __inline __m128i
   8762 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8763 _mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   8764 {
   8765   return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
   8766 						 (__v2di) __B,
   8767 						 (__v2di)
   8768 						 _mm_setzero_si128 (),
   8769 						 (__mmask8) __U);
   8770 }
   8771 
   8772 extern __inline __m128i
   8773 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8774 _mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   8775 		    __m128i __B)
   8776 {
   8777   return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
   8778 						 (__v4si) __B,
   8779 						 (__v4si) __W,
   8780 						 (__mmask8) __U);
   8781 }
   8782 
   8783 extern __inline __m128i
   8784 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8785 _mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
   8786 {
   8787   return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A,
   8788 						 (__v4si) __B,
   8789 						 (__v4si)
   8790 						 _mm_setzero_si128 (),
   8791 						 (__mmask8) __U);
   8792 }
   8793 
   8794 extern __inline __m128i
   8795 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8796 _mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   8797 		    __m128i __B)
   8798 {
   8799   return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
   8800 						 (__v2di) __B,
   8801 						 (__v2di) __W,
   8802 						 (__mmask8) __U);
   8803 }
   8804 
   8805 extern __inline __m128i
   8806 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8807 _mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
   8808 {
   8809   return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A,
   8810 						 (__v2di) __B,
   8811 						 (__v2di)
   8812 						 _mm_setzero_si128 (),
   8813 						 (__mmask8) __U);
   8814 }
   8815 
   8816 extern __inline __m256i
   8817 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8818 _mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   8819 		       __m128i __B)
   8820 {
   8821   return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
   8822 						 (__v4si) __B,
   8823 						 (__v8si) __W,
   8824 						 (__mmask8) __U);
   8825 }
   8826 
   8827 extern __inline __m256i
   8828 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8829 _mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
   8830 {
   8831   return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A,
   8832 						 (__v4si) __B,
   8833 						 (__v8si)
   8834 						 _mm256_setzero_si256 (),
   8835 						 (__mmask8) __U);
   8836 }
   8837 
   8838 extern __inline __m256i
   8839 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8840 _mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   8841 		       __m128i __B)
   8842 {
   8843   return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
   8844 						 (__v2di) __B,
   8845 						 (__v4di) __W,
   8846 						 (__mmask8) __U);
   8847 }
   8848 
   8849 extern __inline __m256i
   8850 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8851 _mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
   8852 {
   8853   return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A,
   8854 						 (__v2di) __B,
   8855 						 (__v4di)
   8856 						 _mm256_setzero_si256 (),
   8857 						 (__mmask8) __U);
   8858 }
   8859 
   8860 extern __inline __m256
   8861 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8862 _mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
   8863 			    __m256 __Y)
   8864 {
   8865   return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
   8866 						    (__v8si) __X,
   8867 						    (__v8sf) __W,
   8868 						    (__mmask8) __U);
   8869 }
   8870 
   8871 extern __inline __m256
   8872 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8873 _mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
   8874 {
   8875   return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
   8876 						    (__v8si) __X,
   8877 						    (__v8sf)
   8878 						    _mm256_setzero_ps (),
   8879 						    (__mmask8) __U);
   8880 }
   8881 
   8882 extern __inline __m256d
   8883 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8884 _mm256_permutexvar_pd (__m256i __X, __m256d __Y)
   8885 {
   8886   return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
   8887 						     (__v4di) __X,
   8888 						     (__v4df)
   8889 						     _mm256_setzero_pd (),
   8890 						     (__mmask8) -1);
   8891 }
   8892 
   8893 extern __inline __m256d
   8894 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8895 _mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
   8896 			    __m256d __Y)
   8897 {
   8898   return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
   8899 						     (__v4di) __X,
   8900 						     (__v4df) __W,
   8901 						     (__mmask8) __U);
   8902 }
   8903 
   8904 extern __inline __m256d
   8905 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8906 _mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
   8907 {
   8908   return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
   8909 						     (__v4di) __X,
   8910 						     (__v4df)
   8911 						     _mm256_setzero_pd (),
   8912 						     (__mmask8) __U);
   8913 }
   8914 
   8915 extern __inline __m256d
   8916 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8917 _mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
   8918 			   __m256i __C)
   8919 {
   8920   return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
   8921 							(__v4di) __C,
   8922 							(__v4df) __W,
   8923 							(__mmask8)
   8924 							__U);
   8925 }
   8926 
   8927 extern __inline __m256d
   8928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8929 _mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
   8930 {
   8931   return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
   8932 							(__v4di) __C,
   8933 							(__v4df)
   8934 							_mm256_setzero_pd (),
   8935 							(__mmask8)
   8936 							__U);
   8937 }
   8938 
   8939 extern __inline __m256
   8940 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8941 _mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
   8942 			   __m256i __C)
   8943 {
   8944   return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
   8945 						       (__v8si) __C,
   8946 						       (__v8sf) __W,
   8947 						       (__mmask8) __U);
   8948 }
   8949 
   8950 extern __inline __m256
   8951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8952 _mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
   8953 {
   8954   return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
   8955 						       (__v8si) __C,
   8956 						       (__v8sf)
   8957 						       _mm256_setzero_ps (),
   8958 						       (__mmask8) __U);
   8959 }
   8960 
   8961 extern __inline __m128d
   8962 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8963 _mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
   8964 			__m128i __C)
   8965 {
   8966   return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
   8967 						     (__v2di) __C,
   8968 						     (__v2df) __W,
   8969 						     (__mmask8) __U);
   8970 }
   8971 
   8972 extern __inline __m128d
   8973 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8974 _mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
   8975 {
   8976   return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
   8977 						     (__v2di) __C,
   8978 						     (__v2df)
   8979 						     _mm_setzero_pd (),
   8980 						     (__mmask8) __U);
   8981 }
   8982 
   8983 extern __inline __m128
   8984 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8985 _mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
   8986 			__m128i __C)
   8987 {
   8988   return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
   8989 						    (__v4si) __C,
   8990 						    (__v4sf) __W,
   8991 						    (__mmask8) __U);
   8992 }
   8993 
   8994 extern __inline __m128
   8995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   8996 _mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
   8997 {
   8998   return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
   8999 						    (__v4si) __C,
   9000 						    (__v4sf)
   9001 						    _mm_setzero_ps (),
   9002 						    (__mmask8) __U);
   9003 }
   9004 
   9005 extern __inline __m256i
   9006 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9007 _mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B)
   9008 {
   9009   return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
   9010 						  (__v8si) __B,
   9011 						  (__v8si)
   9012 						  _mm256_setzero_si256 (),
   9013 						  __M);
   9014 }
   9015 
   9016 extern __inline __m256i
   9017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9018 _mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
   9019 {
   9020   return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
   9021 						     (__v4di) __X,
   9022 						     (__v4di)
   9023 						     _mm256_setzero_si256 (),
   9024 						     __M);
   9025 }
   9026 
   9027 extern __inline __m256i
   9028 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9029 _mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A,
   9030 			 __m256i __B)
   9031 {
   9032   return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A,
   9033 						  (__v8si) __B,
   9034 						  (__v8si) __W, __M);
   9035 }
   9036 
   9037 extern __inline __m128i
   9038 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9039 _mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B)
   9040 {
   9041   return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
   9042 						  (__v4si) __B,
   9043 						  (__v4si)
   9044 						  _mm_setzero_si128 (),
   9045 						  __M);
   9046 }
   9047 
   9048 extern __inline __m128i
   9049 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9050 _mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A,
   9051 		      __m128i __B)
   9052 {
   9053   return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A,
   9054 						  (__v4si) __B,
   9055 						  (__v4si) __W, __M);
   9056 }
   9057 
   9058 extern __inline __m256i
   9059 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9060 _mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
   9061 		       __m256i __Y)
   9062 {
   9063   return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
   9064 						  (__v8si) __Y,
   9065 						  (__v4di) __W, __M);
   9066 }
   9067 
   9068 extern __inline __m256i
   9069 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9070 _mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
   9071 {
   9072   return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X,
   9073 						  (__v8si) __Y,
   9074 						  (__v4di)
   9075 						  _mm256_setzero_si256 (),
   9076 						  __M);
   9077 }
   9078 
   9079 extern __inline __m128i
   9080 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9081 _mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X,
   9082 		    __m128i __Y)
   9083 {
   9084   return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
   9085 						  (__v4si) __Y,
   9086 						  (__v2di) __W, __M);
   9087 }
   9088 
   9089 extern __inline __m128i
   9090 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9091 _mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y)
   9092 {
   9093   return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X,
   9094 						  (__v4si) __Y,
   9095 						  (__v2di)
   9096 						  _mm_setzero_si128 (),
   9097 						  __M);
   9098 }
   9099 
   9100 extern __inline __m256i
   9101 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9102 _mm256_permutexvar_epi64 (__m256i __X, __m256i __Y)
   9103 {
   9104   return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
   9105 						     (__v4di) __X,
   9106 						     (__v4di)
   9107 						     _mm256_setzero_si256 (),
   9108 						     (__mmask8) -1);
   9109 }
   9110 
   9111 extern __inline __m256i
   9112 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9113 _mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
   9114 			       __m256i __Y)
   9115 {
   9116   return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
   9117 						     (__v4di) __X,
   9118 						     (__v4di) __W,
   9119 						     __M);
   9120 }
   9121 
   9122 extern __inline __m256i
   9123 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9124 _mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X,
   9125 		       __m256i __Y)
   9126 {
   9127   return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
   9128 						   (__v8si) __Y,
   9129 						   (__v4di) __W, __M);
   9130 }
   9131 
   9132 extern __inline __m256i
   9133 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9134 _mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
   9135 {
   9136   return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
   9137 						     (__v8si) __X,
   9138 						     (__v8si)
   9139 						     _mm256_setzero_si256 (),
   9140 						     __M);
   9141 }
   9142 
   9143 extern __inline __m256i
   9144 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9145 _mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y)
   9146 {
   9147   return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X,
   9148 						   (__v8si) __Y,
   9149 						   (__v4di)
   9150 						   _mm256_setzero_si256 (),
   9151 						   __M);
   9152 }
   9153 
   9154 extern __inline __m128i
   9155 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9156 _mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X,
   9157 		    __m128i __Y)
   9158 {
   9159   return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
   9160 						   (__v4si) __Y,
   9161 						   (__v2di) __W, __M);
   9162 }
   9163 
   9164 extern __inline __m128i
   9165 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9166 _mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y)
   9167 {
   9168   return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X,
   9169 						   (__v4si) __Y,
   9170 						   (__v2di)
   9171 						   _mm_setzero_si128 (),
   9172 						   __M);
   9173 }
   9174 
   9175 extern __inline __m256i
   9176 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9177 _mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
   9178 {
   9179   return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
   9180 						     (__v8si) __X,
   9181 						     (__v8si)
   9182 						     _mm256_setzero_si256 (),
   9183 						     (__mmask8) -1);
   9184 }
   9185 
   9186 extern __inline __m256i
   9187 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9188 _mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
   9189 			       __m256i __Y)
   9190 {
   9191   return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
   9192 						     (__v8si) __X,
   9193 						     (__v8si) __W,
   9194 						     __M);
   9195 }
   9196 
   9197 extern __inline __mmask8
   9198   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9199 _mm256_mask_cmpneq_epu32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9200 {
   9201   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9202 						  (__v8si) __Y, 4,
   9203 						  (__mmask8) __M);
   9204 }
   9205 
   9206 extern __inline __mmask8
   9207   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9208 _mm256_cmpneq_epu32_mask (__m256i __X, __m256i __Y)
   9209 {
   9210   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9211 						  (__v8si) __Y, 4,
   9212 						  (__mmask8) -1);
   9213 }
   9214 
   9215 extern __inline __mmask8
   9216   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9217 _mm256_mask_cmplt_epu32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9218 {
   9219   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9220 						  (__v8si) __Y, 1,
   9221 						  (__mmask8) __M);
   9222 }
   9223 
   9224 extern __inline __mmask8
   9225   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9226 _mm256_cmplt_epu32_mask (__m256i __X, __m256i __Y)
   9227 {
   9228   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9229 						  (__v8si) __Y, 1,
   9230 						  (__mmask8) -1);
   9231 }
   9232 
   9233 extern __inline __mmask8
   9234   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9235 _mm256_mask_cmpge_epu32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9236 {
   9237   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9238 						  (__v8si) __Y, 5,
   9239 						  (__mmask8) __M);
   9240 }
   9241 
   9242 extern __inline __mmask8
   9243   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9244 _mm256_cmpge_epu32_mask (__m256i __X, __m256i __Y)
   9245 {
   9246   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9247 						  (__v8si) __Y, 5,
   9248 						  (__mmask8) -1);
   9249 }
   9250 
   9251 extern __inline __mmask8
   9252   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9253 _mm256_mask_cmple_epu32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9254 {
   9255   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9256 						  (__v8si) __Y, 2,
   9257 						  (__mmask8) __M);
   9258 }
   9259 
   9260 extern __inline __mmask8
   9261   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9262 _mm256_cmple_epu32_mask (__m256i __X, __m256i __Y)
   9263 {
   9264   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   9265 						  (__v8si) __Y, 2,
   9266 						  (__mmask8) -1);
   9267 }
   9268 
   9269 extern __inline __mmask8
   9270   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9271 _mm256_mask_cmpneq_epu64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9272 {
   9273   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9274 						  (__v4di) __Y, 4,
   9275 						  (__mmask8) __M);
   9276 }
   9277 
   9278 extern __inline __mmask8
   9279   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9280 _mm256_cmpneq_epu64_mask (__m256i __X, __m256i __Y)
   9281 {
   9282   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9283 						  (__v4di) __Y, 4,
   9284 						  (__mmask8) -1);
   9285 }
   9286 
   9287 extern __inline __mmask8
   9288   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9289 _mm256_mask_cmplt_epu64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9290 {
   9291   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9292 						  (__v4di) __Y, 1,
   9293 						  (__mmask8) __M);
   9294 }
   9295 
   9296 extern __inline __mmask8
   9297   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9298 _mm256_cmplt_epu64_mask (__m256i __X, __m256i __Y)
   9299 {
   9300   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9301 						  (__v4di) __Y, 1,
   9302 						  (__mmask8) -1);
   9303 }
   9304 
   9305 extern __inline __mmask8
   9306   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9307 _mm256_mask_cmpge_epu64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9308 {
   9309   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9310 						  (__v4di) __Y, 5,
   9311 						  (__mmask8) __M);
   9312 }
   9313 
   9314 extern __inline __mmask8
   9315   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9316 _mm256_cmpge_epu64_mask (__m256i __X, __m256i __Y)
   9317 {
   9318   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9319 						  (__v4di) __Y, 5,
   9320 						  (__mmask8) -1);
   9321 }
   9322 
   9323 extern __inline __mmask8
   9324   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9325 _mm256_mask_cmple_epu64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9326 {
   9327   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9328 						  (__v4di) __Y, 2,
   9329 						  (__mmask8) __M);
   9330 }
   9331 
   9332 extern __inline __mmask8
   9333   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9334 _mm256_cmple_epu64_mask (__m256i __X, __m256i __Y)
   9335 {
   9336   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   9337 						  (__v4di) __Y, 2,
   9338 						  (__mmask8) -1);
   9339 }
   9340 
   9341 extern __inline __mmask8
   9342   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9343 _mm256_mask_cmpneq_epi32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9344 {
   9345   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9346 						 (__v8si) __Y, 4,
   9347 						 (__mmask8) __M);
   9348 }
   9349 
   9350 extern __inline __mmask8
   9351   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9352 _mm256_cmpneq_epi32_mask (__m256i __X, __m256i __Y)
   9353 {
   9354   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9355 						 (__v8si) __Y, 4,
   9356 						 (__mmask8) -1);
   9357 }
   9358 
   9359 extern __inline __mmask8
   9360   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9361 _mm256_mask_cmplt_epi32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9362 {
   9363   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9364 						 (__v8si) __Y, 1,
   9365 						 (__mmask8) __M);
   9366 }
   9367 
   9368 extern __inline __mmask8
   9369   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9370 _mm256_cmplt_epi32_mask (__m256i __X, __m256i __Y)
   9371 {
   9372   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9373 						 (__v8si) __Y, 1,
   9374 						 (__mmask8) -1);
   9375 }
   9376 
   9377 extern __inline __mmask8
   9378   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9379 _mm256_mask_cmpge_epi32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9380 {
   9381   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9382 						 (__v8si) __Y, 5,
   9383 						 (__mmask8) __M);
   9384 }
   9385 
   9386 extern __inline __mmask8
   9387   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9388 _mm256_cmpge_epi32_mask (__m256i __X, __m256i __Y)
   9389 {
   9390   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9391 						 (__v8si) __Y, 5,
   9392 						 (__mmask8) -1);
   9393 }
   9394 
   9395 extern __inline __mmask8
   9396   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9397 _mm256_mask_cmple_epi32_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9398 {
   9399   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9400 						 (__v8si) __Y, 2,
   9401 						 (__mmask8) __M);
   9402 }
   9403 
   9404 extern __inline __mmask8
   9405   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9406 _mm256_cmple_epi32_mask (__m256i __X, __m256i __Y)
   9407 {
   9408   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   9409 						 (__v8si) __Y, 2,
   9410 						 (__mmask8) -1);
   9411 }
   9412 
   9413 extern __inline __mmask8
   9414   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9415 _mm256_mask_cmpneq_epi64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9416 {
   9417   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9418 						 (__v4di) __Y, 4,
   9419 						 (__mmask8) __M);
   9420 }
   9421 
   9422 extern __inline __mmask8
   9423   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9424 _mm256_cmpneq_epi64_mask (__m256i __X, __m256i __Y)
   9425 {
   9426   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9427 						 (__v4di) __Y, 4,
   9428 						 (__mmask8) -1);
   9429 }
   9430 
   9431 extern __inline __mmask8
   9432   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9433 _mm256_mask_cmplt_epi64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9434 {
   9435   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9436 						 (__v4di) __Y, 1,
   9437 						 (__mmask8) __M);
   9438 }
   9439 
   9440 extern __inline __mmask8
   9441   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9442 _mm256_cmplt_epi64_mask (__m256i __X, __m256i __Y)
   9443 {
   9444   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9445 						 (__v4di) __Y, 1,
   9446 						 (__mmask8) -1);
   9447 }
   9448 
   9449 extern __inline __mmask8
   9450   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9451 _mm256_mask_cmpge_epi64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9452 {
   9453   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9454 						 (__v4di) __Y, 5,
   9455 						 (__mmask8) __M);
   9456 }
   9457 
   9458 extern __inline __mmask8
   9459   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9460 _mm256_cmpge_epi64_mask (__m256i __X, __m256i __Y)
   9461 {
   9462   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9463 						 (__v4di) __Y, 5,
   9464 						 (__mmask8) -1);
   9465 }
   9466 
   9467 extern __inline __mmask8
   9468   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9469 _mm256_mask_cmple_epi64_mask (__mmask8 __M, __m256i __X, __m256i __Y)
   9470 {
   9471   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9472 						 (__v4di) __Y, 2,
   9473 						 (__mmask8) __M);
   9474 }
   9475 
   9476 extern __inline __mmask8
   9477   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9478 _mm256_cmple_epi64_mask (__m256i __X, __m256i __Y)
   9479 {
   9480   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   9481 						 (__v4di) __Y, 2,
   9482 						 (__mmask8) -1);
   9483 }
   9484 
   9485 extern __inline __mmask8
   9486   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9487 _mm_mask_cmpneq_epu32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9488 {
   9489   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9490 						  (__v4si) __Y, 4,
   9491 						  (__mmask8) __M);
   9492 }
   9493 
   9494 extern __inline __mmask8
   9495   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9496 _mm_cmpneq_epu32_mask (__m128i __X, __m128i __Y)
   9497 {
   9498   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9499 						  (__v4si) __Y, 4,
   9500 						  (__mmask8) -1);
   9501 }
   9502 
   9503 extern __inline __mmask8
   9504   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9505 _mm_mask_cmplt_epu32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9506 {
   9507   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9508 						  (__v4si) __Y, 1,
   9509 						  (__mmask8) __M);
   9510 }
   9511 
   9512 extern __inline __mmask8
   9513   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9514 _mm_cmplt_epu32_mask (__m128i __X, __m128i __Y)
   9515 {
   9516   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9517 						  (__v4si) __Y, 1,
   9518 						  (__mmask8) -1);
   9519 }
   9520 
   9521 extern __inline __mmask8
   9522   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9523 _mm_mask_cmpge_epu32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9524 {
   9525   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9526 						  (__v4si) __Y, 5,
   9527 						  (__mmask8) __M);
   9528 }
   9529 
   9530 extern __inline __mmask8
   9531   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9532 _mm_cmpge_epu32_mask (__m128i __X, __m128i __Y)
   9533 {
   9534   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9535 						  (__v4si) __Y, 5,
   9536 						  (__mmask8) -1);
   9537 }
   9538 
   9539 extern __inline __mmask8
   9540   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9541 _mm_mask_cmple_epu32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9542 {
   9543   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9544 						  (__v4si) __Y, 2,
   9545 						  (__mmask8) __M);
   9546 }
   9547 
   9548 extern __inline __mmask8
   9549   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9550 _mm_cmple_epu32_mask (__m128i __X, __m128i __Y)
   9551 {
   9552   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   9553 						  (__v4si) __Y, 2,
   9554 						  (__mmask8) -1);
   9555 }
   9556 
   9557 extern __inline __mmask8
   9558   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9559 _mm_mask_cmpneq_epu64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9560 {
   9561   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9562 						  (__v2di) __Y, 4,
   9563 						  (__mmask8) __M);
   9564 }
   9565 
   9566 extern __inline __mmask8
   9567   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9568 _mm_cmpneq_epu64_mask (__m128i __X, __m128i __Y)
   9569 {
   9570   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9571 						  (__v2di) __Y, 4,
   9572 						  (__mmask8) -1);
   9573 }
   9574 
   9575 extern __inline __mmask8
   9576   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9577 _mm_mask_cmplt_epu64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9578 {
   9579   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9580 						  (__v2di) __Y, 1,
   9581 						  (__mmask8) __M);
   9582 }
   9583 
   9584 extern __inline __mmask8
   9585   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9586 _mm_cmplt_epu64_mask (__m128i __X, __m128i __Y)
   9587 {
   9588   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9589 						  (__v2di) __Y, 1,
   9590 						  (__mmask8) -1);
   9591 }
   9592 
   9593 extern __inline __mmask8
   9594   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9595 _mm_mask_cmpge_epu64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9596 {
   9597   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9598 						  (__v2di) __Y, 5,
   9599 						  (__mmask8) __M);
   9600 }
   9601 
   9602 extern __inline __mmask8
   9603   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9604 _mm_cmpge_epu64_mask (__m128i __X, __m128i __Y)
   9605 {
   9606   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9607 						  (__v2di) __Y, 5,
   9608 						  (__mmask8) -1);
   9609 }
   9610 
   9611 extern __inline __mmask8
   9612   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9613 _mm_mask_cmple_epu64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9614 {
   9615   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9616 						  (__v2di) __Y, 2,
   9617 						  (__mmask8) __M);
   9618 }
   9619 
   9620 extern __inline __mmask8
   9621   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9622 _mm_cmple_epu64_mask (__m128i __X, __m128i __Y)
   9623 {
   9624   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   9625 						  (__v2di) __Y, 2,
   9626 						  (__mmask8) -1);
   9627 }
   9628 
   9629 extern __inline __mmask8
   9630   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9631 _mm_mask_cmpneq_epi32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9632 {
   9633   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9634 						 (__v4si) __Y, 4,
   9635 						 (__mmask8) __M);
   9636 }
   9637 
   9638 extern __inline __mmask8
   9639   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9640 _mm_cmpneq_epi32_mask (__m128i __X, __m128i __Y)
   9641 {
   9642   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9643 						 (__v4si) __Y, 4,
   9644 						 (__mmask8) -1);
   9645 }
   9646 
   9647 extern __inline __mmask8
   9648   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9649 _mm_mask_cmplt_epi32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9650 {
   9651   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9652 						 (__v4si) __Y, 1,
   9653 						 (__mmask8) __M);
   9654 }
   9655 
   9656 extern __inline __mmask8
   9657   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9658 _mm_cmplt_epi32_mask (__m128i __X, __m128i __Y)
   9659 {
   9660   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9661 						 (__v4si) __Y, 1,
   9662 						 (__mmask8) -1);
   9663 }
   9664 
   9665 extern __inline __mmask8
   9666   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9667 _mm_mask_cmpge_epi32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9668 {
   9669   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9670 						 (__v4si) __Y, 5,
   9671 						 (__mmask8) __M);
   9672 }
   9673 
   9674 extern __inline __mmask8
   9675   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9676 _mm_cmpge_epi32_mask (__m128i __X, __m128i __Y)
   9677 {
   9678   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9679 						 (__v4si) __Y, 5,
   9680 						 (__mmask8) -1);
   9681 }
   9682 
   9683 extern __inline __mmask8
   9684   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9685 _mm_mask_cmple_epi32_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9686 {
   9687   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9688 						 (__v4si) __Y, 2,
   9689 						 (__mmask8) __M);
   9690 }
   9691 
   9692 extern __inline __mmask8
   9693   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9694 _mm_cmple_epi32_mask (__m128i __X, __m128i __Y)
   9695 {
   9696   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   9697 						 (__v4si) __Y, 2,
   9698 						 (__mmask8) -1);
   9699 }
   9700 
   9701 extern __inline __mmask8
   9702   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9703 _mm_mask_cmpneq_epi64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9704 {
   9705   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9706 						 (__v2di) __Y, 4,
   9707 						 (__mmask8) __M);
   9708 }
   9709 
   9710 extern __inline __mmask8
   9711   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9712 _mm_cmpneq_epi64_mask (__m128i __X, __m128i __Y)
   9713 {
   9714   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9715 						 (__v2di) __Y, 4,
   9716 						 (__mmask8) -1);
   9717 }
   9718 
   9719 extern __inline __mmask8
   9720   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9721 _mm_mask_cmplt_epi64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9722 {
   9723   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9724 						 (__v2di) __Y, 1,
   9725 						 (__mmask8) __M);
   9726 }
   9727 
   9728 extern __inline __mmask8
   9729   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9730 _mm_cmplt_epi64_mask (__m128i __X, __m128i __Y)
   9731 {
   9732   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9733 						 (__v2di) __Y, 1,
   9734 						 (__mmask8) -1);
   9735 }
   9736 
   9737 extern __inline __mmask8
   9738   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9739 _mm_mask_cmpge_epi64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9740 {
   9741   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9742 						 (__v2di) __Y, 5,
   9743 						 (__mmask8) __M);
   9744 }
   9745 
   9746 extern __inline __mmask8
   9747   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9748 _mm_cmpge_epi64_mask (__m128i __X, __m128i __Y)
   9749 {
   9750   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9751 						 (__v2di) __Y, 5,
   9752 						 (__mmask8) -1);
   9753 }
   9754 
   9755 extern __inline __mmask8
   9756   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9757 _mm_mask_cmple_epi64_mask (__mmask8 __M, __m128i __X, __m128i __Y)
   9758 {
   9759   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9760 						 (__v2di) __Y, 2,
   9761 						 (__mmask8) __M);
   9762 }
   9763 
   9764 extern __inline __mmask8
   9765   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9766 _mm_cmple_epi64_mask (__m128i __X, __m128i __Y)
   9767 {
   9768   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   9769 						 (__v2di) __Y, 2,
   9770 						 (__mmask8) -1);
   9771 }
   9772 
   9773 #ifdef __OPTIMIZE__
   9774 extern __inline __m256i
   9775 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9776 _mm256_permutex_epi64 (__m256i __X, const int __I)
   9777 {
   9778   return (__m256i) __builtin_ia32_permdi256_mask ((__v4di) __X,
   9779 					      __I,
   9780 					      (__v4di)
   9781 					      _mm256_setzero_si256(),
   9782 					      (__mmask8) -1);
   9783 }
   9784 
   9785 extern __inline __m256i
   9786 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9787 _mm256_mask_permutex_epi64 (__m256i __W, __mmask8 __M,
   9788 			    __m256i __X, const int __I)
   9789 {
   9790   return (__m256i) __builtin_ia32_permdi256_mask ((__v4di) __X,
   9791 						  __I,
   9792 						  (__v4di) __W,
   9793 						  (__mmask8) __M);
   9794 }
   9795 
   9796 extern __inline __m256i
   9797 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9798 _mm256_maskz_permutex_epi64 (__mmask8 __M, __m256i __X, const int __I)
   9799 {
   9800   return (__m256i) __builtin_ia32_permdi256_mask ((__v4di) __X,
   9801 						  __I,
   9802 						  (__v4di)
   9803 						  _mm256_setzero_si256 (),
   9804 						  (__mmask8) __M);
   9805 }
   9806 
   9807 extern __inline __m256d
   9808 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9809 _mm256_mask_shuffle_pd (__m256d __W, __mmask8 __U, __m256d __A,
   9810 			__m256d __B, const int __imm)
   9811 {
   9812   return (__m256d) __builtin_ia32_shufpd256_mask ((__v4df) __A,
   9813 						  (__v4df) __B, __imm,
   9814 						  (__v4df) __W,
   9815 						  (__mmask8) __U);
   9816 }
   9817 
   9818 extern __inline __m256d
   9819 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9820 _mm256_maskz_shuffle_pd (__mmask8 __U, __m256d __A, __m256d __B,
   9821 			 const int __imm)
   9822 {
   9823   return (__m256d) __builtin_ia32_shufpd256_mask ((__v4df) __A,
   9824 						  (__v4df) __B, __imm,
   9825 						  (__v4df)
   9826 						  _mm256_setzero_pd (),
   9827 						  (__mmask8) __U);
   9828 }
   9829 
   9830 extern __inline __m128d
   9831 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9832 _mm_mask_shuffle_pd (__m128d __W, __mmask8 __U, __m128d __A,
   9833 		     __m128d __B, const int __imm)
   9834 {
   9835   return (__m128d) __builtin_ia32_shufpd128_mask ((__v2df) __A,
   9836 						  (__v2df) __B, __imm,
   9837 						  (__v2df) __W,
   9838 						  (__mmask8) __U);
   9839 }
   9840 
   9841 extern __inline __m128d
   9842 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9843 _mm_maskz_shuffle_pd (__mmask8 __U, __m128d __A, __m128d __B,
   9844 		      const int __imm)
   9845 {
   9846   return (__m128d) __builtin_ia32_shufpd128_mask ((__v2df) __A,
   9847 						  (__v2df) __B, __imm,
   9848 						  (__v2df)
   9849 						  _mm_setzero_pd (),
   9850 						  (__mmask8) __U);
   9851 }
   9852 
   9853 extern __inline __m256
   9854 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9855 _mm256_mask_shuffle_ps (__m256 __W, __mmask8 __U, __m256 __A,
   9856 			__m256 __B, const int __imm)
   9857 {
   9858   return (__m256) __builtin_ia32_shufps256_mask ((__v8sf) __A,
   9859 						 (__v8sf) __B, __imm,
   9860 						 (__v8sf) __W,
   9861 						 (__mmask8) __U);
   9862 }
   9863 
   9864 extern __inline __m256
   9865 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9866 _mm256_maskz_shuffle_ps (__mmask8 __U, __m256 __A, __m256 __B,
   9867 			 const int __imm)
   9868 {
   9869   return (__m256) __builtin_ia32_shufps256_mask ((__v8sf) __A,
   9870 						 (__v8sf) __B, __imm,
   9871 						 (__v8sf)
   9872 						 _mm256_setzero_ps (),
   9873 						 (__mmask8) __U);
   9874 }
   9875 
   9876 extern __inline __m128
   9877 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9878 _mm_mask_shuffle_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
   9879 		     const int __imm)
   9880 {
   9881   return (__m128) __builtin_ia32_shufps128_mask ((__v4sf) __A,
   9882 						 (__v4sf) __B, __imm,
   9883 						 (__v4sf) __W,
   9884 						 (__mmask8) __U);
   9885 }
   9886 
   9887 extern __inline __m128
   9888 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9889 _mm_maskz_shuffle_ps (__mmask8 __U, __m128 __A, __m128 __B,
   9890 		      const int __imm)
   9891 {
   9892   return (__m128) __builtin_ia32_shufps128_mask ((__v4sf) __A,
   9893 						 (__v4sf) __B, __imm,
   9894 						 (__v4sf)
   9895 						 _mm_setzero_ps (),
   9896 						 (__mmask8) __U);
   9897 }
   9898 
   9899 extern __inline __m256i
   9900 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9901 _mm256_inserti32x4 (__m256i __A, __m128i __B, const int __imm)
   9902 {
   9903   return (__m256i) __builtin_ia32_inserti32x4_256_mask ((__v8si) __A,
   9904 							(__v4si) __B,
   9905 							__imm,
   9906 							(__v8si)
   9907 							_mm256_setzero_si256 (),
   9908 							(__mmask8) -1);
   9909 }
   9910 
   9911 extern __inline __m256i
   9912 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9913 _mm256_mask_inserti32x4 (__m256i __W, __mmask8 __U, __m256i __A,
   9914 			 __m128i __B, const int __imm)
   9915 {
   9916   return (__m256i) __builtin_ia32_inserti32x4_256_mask ((__v8si) __A,
   9917 							(__v4si) __B,
   9918 							__imm,
   9919 							(__v8si) __W,
   9920 							(__mmask8)
   9921 							__U);
   9922 }
   9923 
   9924 extern __inline __m256i
   9925 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9926 _mm256_maskz_inserti32x4 (__mmask8 __U, __m256i __A, __m128i __B,
   9927 			  const int __imm)
   9928 {
   9929   return (__m256i) __builtin_ia32_inserti32x4_256_mask ((__v8si) __A,
   9930 							(__v4si) __B,
   9931 							__imm,
   9932 							(__v8si)
   9933 							_mm256_setzero_si256 (),
   9934 							(__mmask8)
   9935 							__U);
   9936 }
   9937 
   9938 extern __inline __m256
   9939 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9940 _mm256_insertf32x4 (__m256 __A, __m128 __B, const int __imm)
   9941 {
   9942   return (__m256) __builtin_ia32_insertf32x4_256_mask ((__v8sf) __A,
   9943 						       (__v4sf) __B,
   9944 						       __imm,
   9945 						       (__v8sf)
   9946 						       _mm256_setzero_ps (),
   9947 						       (__mmask8) -1);
   9948 }
   9949 
   9950 extern __inline __m256
   9951 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9952 _mm256_mask_insertf32x4 (__m256 __W, __mmask8 __U, __m256 __A,
   9953 			 __m128 __B, const int __imm)
   9954 {
   9955   return (__m256) __builtin_ia32_insertf32x4_256_mask ((__v8sf) __A,
   9956 						       (__v4sf) __B,
   9957 						       __imm,
   9958 						       (__v8sf) __W,
   9959 						       (__mmask8) __U);
   9960 }
   9961 
   9962 extern __inline __m256
   9963 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9964 _mm256_maskz_insertf32x4 (__mmask8 __U, __m256 __A, __m128 __B,
   9965 			  const int __imm)
   9966 {
   9967   return (__m256) __builtin_ia32_insertf32x4_256_mask ((__v8sf) __A,
   9968 						       (__v4sf) __B,
   9969 						       __imm,
   9970 						       (__v8sf)
   9971 						       _mm256_setzero_ps (),
   9972 						       (__mmask8) __U);
   9973 }
   9974 
   9975 extern __inline __m128i
   9976 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9977 _mm256_extracti32x4_epi32 (__m256i __A, const int __imm)
   9978 {
   9979   return (__m128i) __builtin_ia32_extracti32x4_256_mask ((__v8si) __A,
   9980 							 __imm,
   9981 							 (__v4si)
   9982 							 _mm_setzero_si128 (),
   9983 							 (__mmask8) -1);
   9984 }
   9985 
   9986 extern __inline __m128i
   9987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   9988 _mm256_mask_extracti32x4_epi32 (__m128i __W, __mmask8 __U, __m256i __A,
   9989 				const int __imm)
   9990 {
   9991   return (__m128i) __builtin_ia32_extracti32x4_256_mask ((__v8si) __A,
   9992 							 __imm,
   9993 							 (__v4si) __W,
   9994 							 (__mmask8)
   9995 							 __U);
   9996 }
   9997 
   9998 extern __inline __m128i
   9999 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10000 _mm256_maskz_extracti32x4_epi32 (__mmask8 __U, __m256i __A,
   10001 				 const int __imm)
   10002 {
   10003   return (__m128i) __builtin_ia32_extracti32x4_256_mask ((__v8si) __A,
   10004 							 __imm,
   10005 							 (__v4si)
   10006 							 _mm_setzero_si128 (),
   10007 							 (__mmask8)
   10008 							 __U);
   10009 }
   10010 
   10011 extern __inline __m128
   10012 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10013 _mm256_extractf32x4_ps (__m256 __A, const int __imm)
   10014 {
   10015   return (__m128) __builtin_ia32_extractf32x4_256_mask ((__v8sf) __A,
   10016 							__imm,
   10017 							(__v4sf)
   10018 							_mm_setzero_ps (),
   10019 							(__mmask8) -1);
   10020 }
   10021 
   10022 extern __inline __m128
   10023 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10024 _mm256_mask_extractf32x4_ps (__m128 __W, __mmask8 __U, __m256 __A,
   10025 			     const int __imm)
   10026 {
   10027   return (__m128) __builtin_ia32_extractf32x4_256_mask ((__v8sf) __A,
   10028 							__imm,
   10029 							(__v4sf) __W,
   10030 							(__mmask8)
   10031 							__U);
   10032 }
   10033 
   10034 extern __inline __m128
   10035 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10036 _mm256_maskz_extractf32x4_ps (__mmask8 __U, __m256 __A,
   10037 			      const int __imm)
   10038 {
   10039   return (__m128) __builtin_ia32_extractf32x4_256_mask ((__v8sf) __A,
   10040 							__imm,
   10041 							(__v4sf)
   10042 							_mm_setzero_ps (),
   10043 							(__mmask8)
   10044 							__U);
   10045 }
   10046 
   10047 extern __inline __m256i
   10048 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10049 _mm256_shuffle_i64x2 (__m256i __A, __m256i __B, const int __imm)
   10050 {
   10051   return (__m256i) __builtin_ia32_shuf_i64x2_256_mask ((__v4di) __A,
   10052 						       (__v4di) __B,
   10053 						       __imm,
   10054 						       (__v4di)
   10055 						       _mm256_setzero_si256 (),
   10056 						       (__mmask8) -1);
   10057 }
   10058 
   10059 extern __inline __m256i
   10060 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10061 _mm256_mask_shuffle_i64x2 (__m256i __W, __mmask8 __U, __m256i __A,
   10062 			   __m256i __B, const int __imm)
   10063 {
   10064   return (__m256i) __builtin_ia32_shuf_i64x2_256_mask ((__v4di) __A,
   10065 						       (__v4di) __B,
   10066 						       __imm,
   10067 						       (__v4di) __W,
   10068 						       (__mmask8) __U);
   10069 }
   10070 
   10071 extern __inline __m256i
   10072 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10073 _mm256_maskz_shuffle_i64x2 (__mmask8 __U, __m256i __A, __m256i __B,
   10074 			    const int __imm)
   10075 {
   10076   return (__m256i) __builtin_ia32_shuf_i64x2_256_mask ((__v4di) __A,
   10077 						       (__v4di) __B,
   10078 						       __imm,
   10079 						       (__v4di)
   10080 						       _mm256_setzero_si256 (),
   10081 						       (__mmask8) __U);
   10082 }
   10083 
   10084 extern __inline __m256i
   10085 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10086 _mm256_shuffle_i32x4 (__m256i __A, __m256i __B, const int __imm)
   10087 {
   10088   return (__m256i) __builtin_ia32_shuf_i32x4_256_mask ((__v8si) __A,
   10089 						       (__v8si) __B,
   10090 						       __imm,
   10091 						       (__v8si)
   10092 						       _mm256_setzero_si256 (),
   10093 						       (__mmask8) -1);
   10094 }
   10095 
   10096 extern __inline __m256i
   10097 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10098 _mm256_mask_shuffle_i32x4 (__m256i __W, __mmask8 __U, __m256i __A,
   10099 			   __m256i __B, const int __imm)
   10100 {
   10101   return (__m256i) __builtin_ia32_shuf_i32x4_256_mask ((__v8si) __A,
   10102 						       (__v8si) __B,
   10103 						       __imm,
   10104 						       (__v8si) __W,
   10105 						       (__mmask8) __U);
   10106 }
   10107 
   10108 extern __inline __m256i
   10109 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10110 _mm256_maskz_shuffle_i32x4 (__mmask8 __U, __m256i __A, __m256i __B,
   10111 			    const int __imm)
   10112 {
   10113   return (__m256i) __builtin_ia32_shuf_i32x4_256_mask ((__v8si) __A,
   10114 						       (__v8si) __B,
   10115 						       __imm,
   10116 						       (__v8si)
   10117 						       _mm256_setzero_si256 (),
   10118 						       (__mmask8) __U);
   10119 }
   10120 
   10121 extern __inline __m256d
   10122 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10123 _mm256_shuffle_f64x2 (__m256d __A, __m256d __B, const int __imm)
   10124 {
   10125   return (__m256d) __builtin_ia32_shuf_f64x2_256_mask ((__v4df) __A,
   10126 						       (__v4df) __B,
   10127 						       __imm,
   10128 						       (__v4df)
   10129 						       _mm256_setzero_pd (),
   10130 						       (__mmask8) -1);
   10131 }
   10132 
   10133 extern __inline __m256d
   10134 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10135 _mm256_mask_shuffle_f64x2 (__m256d __W, __mmask8 __U, __m256d __A,
   10136 			   __m256d __B, const int __imm)
   10137 {
   10138   return (__m256d) __builtin_ia32_shuf_f64x2_256_mask ((__v4df) __A,
   10139 						       (__v4df) __B,
   10140 						       __imm,
   10141 						       (__v4df) __W,
   10142 						       (__mmask8) __U);
   10143 }
   10144 
   10145 extern __inline __m256d
   10146 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10147 _mm256_maskz_shuffle_f64x2 (__mmask8 __U, __m256d __A, __m256d __B,
   10148 			    const int __imm)
   10149 {
   10150   return (__m256d) __builtin_ia32_shuf_f64x2_256_mask ((__v4df) __A,
   10151 						       (__v4df) __B,
   10152 						       __imm,
   10153 						       (__v4df)
   10154 						       _mm256_setzero_pd (),
   10155 						       (__mmask8) __U);
   10156 }
   10157 
   10158 extern __inline __m256
   10159 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10160 _mm256_shuffle_f32x4 (__m256 __A, __m256 __B, const int __imm)
   10161 {
   10162   return (__m256) __builtin_ia32_shuf_f32x4_256_mask ((__v8sf) __A,
   10163 						      (__v8sf) __B,
   10164 						      __imm,
   10165 						      (__v8sf)
   10166 						      _mm256_setzero_ps (),
   10167 						      (__mmask8) -1);
   10168 }
   10169 
   10170 extern __inline __m256
   10171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10172 _mm256_mask_shuffle_f32x4 (__m256 __W, __mmask8 __U, __m256 __A,
   10173 			   __m256 __B, const int __imm)
   10174 {
   10175   return (__m256) __builtin_ia32_shuf_f32x4_256_mask ((__v8sf) __A,
   10176 						      (__v8sf) __B,
   10177 						      __imm,
   10178 						      (__v8sf) __W,
   10179 						      (__mmask8) __U);
   10180 }
   10181 
   10182 extern __inline __m256
   10183 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10184 _mm256_maskz_shuffle_f32x4 (__mmask8 __U, __m256 __A, __m256 __B,
   10185 			    const int __imm)
   10186 {
   10187   return (__m256) __builtin_ia32_shuf_f32x4_256_mask ((__v8sf) __A,
   10188 						      (__v8sf) __B,
   10189 						      __imm,
   10190 						      (__v8sf)
   10191 						      _mm256_setzero_ps (),
   10192 						      (__mmask8) __U);
   10193 }
   10194 
   10195 extern __inline __m256d
   10196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10197 _mm256_fixupimm_pd (__m256d __A, __m256d __B, __m256i __C,
   10198 		    const int __imm)
   10199 {
   10200   return (__m256d) __builtin_ia32_fixupimmpd256_mask ((__v4df) __A,
   10201 						      (__v4df) __B,
   10202 						      (__v4di) __C,
   10203 						      __imm,
   10204 						      (__mmask8) -1);
   10205 }
   10206 
   10207 extern __inline __m256d
   10208 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10209 _mm256_mask_fixupimm_pd (__m256d __A, __mmask8 __U, __m256d __B,
   10210 			 __m256i __C, const int __imm)
   10211 {
   10212   return (__m256d) __builtin_ia32_fixupimmpd256_mask ((__v4df) __A,
   10213 						      (__v4df) __B,
   10214 						      (__v4di) __C,
   10215 						      __imm,
   10216 						      (__mmask8) __U);
   10217 }
   10218 
   10219 extern __inline __m256d
   10220 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10221 _mm256_maskz_fixupimm_pd (__mmask8 __U, __m256d __A, __m256d __B,
   10222 			  __m256i __C, const int __imm)
   10223 {
   10224   return (__m256d) __builtin_ia32_fixupimmpd256_maskz ((__v4df) __A,
   10225 						       (__v4df) __B,
   10226 						       (__v4di) __C,
   10227 						       __imm,
   10228 						       (__mmask8) __U);
   10229 }
   10230 
   10231 extern __inline __m256
   10232 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10233 _mm256_fixupimm_ps (__m256 __A, __m256 __B, __m256i __C,
   10234 		    const int __imm)
   10235 {
   10236   return (__m256) __builtin_ia32_fixupimmps256_mask ((__v8sf) __A,
   10237 						     (__v8sf) __B,
   10238 						     (__v8si) __C,
   10239 						     __imm,
   10240 						     (__mmask8) -1);
   10241 }
   10242 
   10243 extern __inline __m256
   10244 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10245 _mm256_mask_fixupimm_ps (__m256 __A, __mmask8 __U, __m256 __B,
   10246 			 __m256i __C, const int __imm)
   10247 {
   10248   return (__m256) __builtin_ia32_fixupimmps256_mask ((__v8sf) __A,
   10249 						     (__v8sf) __B,
   10250 						     (__v8si) __C,
   10251 						     __imm,
   10252 						     (__mmask8) __U);
   10253 }
   10254 
   10255 extern __inline __m256
   10256 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10257 _mm256_maskz_fixupimm_ps (__mmask8 __U, __m256 __A, __m256 __B,
   10258 			  __m256i __C, const int __imm)
   10259 {
   10260   return (__m256) __builtin_ia32_fixupimmps256_maskz ((__v8sf) __A,
   10261 						      (__v8sf) __B,
   10262 						      (__v8si) __C,
   10263 						      __imm,
   10264 						      (__mmask8) __U);
   10265 }
   10266 
   10267 extern __inline __m128d
   10268 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10269 _mm_fixupimm_pd (__m128d __A, __m128d __B, __m128i __C,
   10270 		 const int __imm)
   10271 {
   10272   return (__m128d) __builtin_ia32_fixupimmpd128_mask ((__v2df) __A,
   10273 						      (__v2df) __B,
   10274 						      (__v2di) __C,
   10275 						      __imm,
   10276 						      (__mmask8) -1);
   10277 }
   10278 
   10279 extern __inline __m128d
   10280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10281 _mm_mask_fixupimm_pd (__m128d __A, __mmask8 __U, __m128d __B,
   10282 		      __m128i __C, const int __imm)
   10283 {
   10284   return (__m128d) __builtin_ia32_fixupimmpd128_mask ((__v2df) __A,
   10285 						      (__v2df) __B,
   10286 						      (__v2di) __C,
   10287 						      __imm,
   10288 						      (__mmask8) __U);
   10289 }
   10290 
   10291 extern __inline __m128d
   10292 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10293 _mm_maskz_fixupimm_pd (__mmask8 __U, __m128d __A, __m128d __B,
   10294 		       __m128i __C, const int __imm)
   10295 {
   10296   return (__m128d) __builtin_ia32_fixupimmpd128_maskz ((__v2df) __A,
   10297 						       (__v2df) __B,
   10298 						       (__v2di) __C,
   10299 						       __imm,
   10300 						       (__mmask8) __U);
   10301 }
   10302 
   10303 extern __inline __m128
   10304 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10305 _mm_fixupimm_ps (__m128 __A, __m128 __B, __m128i __C, const int __imm)
   10306 {
   10307   return (__m128) __builtin_ia32_fixupimmps128_mask ((__v4sf) __A,
   10308 						     (__v4sf) __B,
   10309 						     (__v4si) __C,
   10310 						     __imm,
   10311 						     (__mmask8) -1);
   10312 }
   10313 
   10314 extern __inline __m128
   10315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10316 _mm_mask_fixupimm_ps (__m128 __A, __mmask8 __U, __m128 __B,
   10317 		      __m128i __C, const int __imm)
   10318 {
   10319   return (__m128) __builtin_ia32_fixupimmps128_mask ((__v4sf) __A,
   10320 						     (__v4sf) __B,
   10321 						     (__v4si) __C,
   10322 						     __imm,
   10323 						     (__mmask8) __U);
   10324 }
   10325 
   10326 extern __inline __m128
   10327 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10328 _mm_maskz_fixupimm_ps (__mmask8 __U, __m128 __A, __m128 __B,
   10329 		       __m128i __C, const int __imm)
   10330 {
   10331   return (__m128) __builtin_ia32_fixupimmps128_maskz ((__v4sf) __A,
   10332 						      (__v4sf) __B,
   10333 						      (__v4si) __C,
   10334 						      __imm,
   10335 						      (__mmask8) __U);
   10336 }
   10337 
   10338 extern __inline __m256i
   10339 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10340 _mm256_mask_srli_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   10341 			const int __imm)
   10342 {
   10343   return (__m256i) __builtin_ia32_psrldi256_mask ((__v8si) __A, __imm,
   10344 						  (__v8si) __W,
   10345 						  (__mmask8) __U);
   10346 }
   10347 
   10348 extern __inline __m256i
   10349 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10350 _mm256_maskz_srli_epi32 (__mmask8 __U, __m256i __A, const int __imm)
   10351 {
   10352   return (__m256i) __builtin_ia32_psrldi256_mask ((__v8si) __A, __imm,
   10353 						  (__v8si)
   10354 						  _mm256_setzero_si256 (),
   10355 						  (__mmask8) __U);
   10356 }
   10357 
   10358 extern __inline __m128i
   10359 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10360 _mm_mask_srli_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   10361 		     const int __imm)
   10362 {
   10363   return (__m128i) __builtin_ia32_psrldi128_mask ((__v4si) __A, __imm,
   10364 						  (__v4si) __W,
   10365 						  (__mmask8) __U);
   10366 }
   10367 
   10368 extern __inline __m128i
   10369 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10370 _mm_maskz_srli_epi32 (__mmask8 __U, __m128i __A, const int __imm)
   10371 {
   10372   return (__m128i) __builtin_ia32_psrldi128_mask ((__v4si) __A, __imm,
   10373 						  (__v4si)
   10374 						  _mm_setzero_si128 (),
   10375 						  (__mmask8) __U);
   10376 }
   10377 
   10378 extern __inline __m256i
   10379 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10380 _mm256_mask_srli_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   10381 			const int __imm)
   10382 {
   10383   return (__m256i) __builtin_ia32_psrlqi256_mask ((__v4di) __A, __imm,
   10384 						  (__v4di) __W,
   10385 						  (__mmask8) __U);
   10386 }
   10387 
   10388 extern __inline __m256i
   10389 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10390 _mm256_maskz_srli_epi64 (__mmask8 __U, __m256i __A, const int __imm)
   10391 {
   10392   return (__m256i) __builtin_ia32_psrlqi256_mask ((__v4di) __A, __imm,
   10393 						  (__v4di)
   10394 						  _mm256_setzero_si256 (),
   10395 						  (__mmask8) __U);
   10396 }
   10397 
   10398 extern __inline __m128i
   10399 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10400 _mm_mask_srli_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   10401 		     const int __imm)
   10402 {
   10403   return (__m128i) __builtin_ia32_psrlqi128_mask ((__v2di) __A, __imm,
   10404 						  (__v2di) __W,
   10405 						  (__mmask8) __U);
   10406 }
   10407 
   10408 extern __inline __m128i
   10409 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10410 _mm_maskz_srli_epi64 (__mmask8 __U, __m128i __A, const int __imm)
   10411 {
   10412   return (__m128i) __builtin_ia32_psrlqi128_mask ((__v2di) __A, __imm,
   10413 						  (__v2di)
   10414 						  _mm_setzero_si128 (),
   10415 						  (__mmask8) __U);
   10416 }
   10417 
   10418 extern __inline __m256i
   10419 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10420 _mm256_ternarylogic_epi64 (__m256i __A, __m256i __B, __m256i __C,
   10421 			   const int __imm)
   10422 {
   10423   return (__m256i) __builtin_ia32_pternlogq256_mask ((__v4di) __A,
   10424 						     (__v4di) __B,
   10425 						     (__v4di) __C, __imm,
   10426 						     (__mmask8) -1);
   10427 }
   10428 
   10429 extern __inline __m256i
   10430 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10431 _mm256_mask_ternarylogic_epi64 (__m256i __A, __mmask8 __U,
   10432 				__m256i __B, __m256i __C,
   10433 				const int __imm)
   10434 {
   10435   return (__m256i) __builtin_ia32_pternlogq256_mask ((__v4di) __A,
   10436 						     (__v4di) __B,
   10437 						     (__v4di) __C, __imm,
   10438 						     (__mmask8) __U);
   10439 }
   10440 
   10441 extern __inline __m256i
   10442 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10443 _mm256_maskz_ternarylogic_epi64 (__mmask8 __U, __m256i __A,
   10444 				 __m256i __B, __m256i __C,
   10445 				 const int __imm)
   10446 {
   10447   return (__m256i) __builtin_ia32_pternlogq256_maskz ((__v4di) __A,
   10448 						      (__v4di) __B,
   10449 						      (__v4di) __C,
   10450 						      __imm,
   10451 						      (__mmask8) __U);
   10452 }
   10453 
   10454 extern __inline __m256i
   10455 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10456 _mm256_ternarylogic_epi32 (__m256i __A, __m256i __B, __m256i __C,
   10457 			   const int __imm)
   10458 {
   10459   return (__m256i) __builtin_ia32_pternlogd256_mask ((__v8si) __A,
   10460 						     (__v8si) __B,
   10461 						     (__v8si) __C, __imm,
   10462 						     (__mmask8) -1);
   10463 }
   10464 
   10465 extern __inline __m256i
   10466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10467 _mm256_mask_ternarylogic_epi32 (__m256i __A, __mmask8 __U,
   10468 				__m256i __B, __m256i __C,
   10469 				const int __imm)
   10470 {
   10471   return (__m256i) __builtin_ia32_pternlogd256_mask ((__v8si) __A,
   10472 						     (__v8si) __B,
   10473 						     (__v8si) __C, __imm,
   10474 						     (__mmask8) __U);
   10475 }
   10476 
   10477 extern __inline __m256i
   10478 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10479 _mm256_maskz_ternarylogic_epi32 (__mmask8 __U, __m256i __A,
   10480 				 __m256i __B, __m256i __C,
   10481 				 const int __imm)
   10482 {
   10483   return (__m256i) __builtin_ia32_pternlogd256_maskz ((__v8si) __A,
   10484 						      (__v8si) __B,
   10485 						      (__v8si) __C,
   10486 						      __imm,
   10487 						      (__mmask8) __U);
   10488 }
   10489 
   10490 extern __inline __m128i
   10491 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10492 _mm_ternarylogic_epi64 (__m128i __A, __m128i __B, __m128i __C,
   10493 			const int __imm)
   10494 {
   10495   return (__m128i) __builtin_ia32_pternlogq128_mask ((__v2di) __A,
   10496 						     (__v2di) __B,
   10497 						     (__v2di) __C, __imm,
   10498 						     (__mmask8) -1);
   10499 }
   10500 
   10501 extern __inline __m128i
   10502 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10503 _mm_mask_ternarylogic_epi64 (__m128i __A, __mmask8 __U,
   10504 			     __m128i __B, __m128i __C, const int __imm)
   10505 {
   10506   return (__m128i) __builtin_ia32_pternlogq128_mask ((__v2di) __A,
   10507 						     (__v2di) __B,
   10508 						     (__v2di) __C, __imm,
   10509 						     (__mmask8) __U);
   10510 }
   10511 
   10512 extern __inline __m128i
   10513 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10514 _mm_maskz_ternarylogic_epi64 (__mmask8 __U, __m128i __A,
   10515 			      __m128i __B, __m128i __C, const int __imm)
   10516 {
   10517   return (__m128i) __builtin_ia32_pternlogq128_maskz ((__v2di) __A,
   10518 						      (__v2di) __B,
   10519 						      (__v2di) __C,
   10520 						      __imm,
   10521 						      (__mmask8) __U);
   10522 }
   10523 
   10524 extern __inline __m128i
   10525 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10526 _mm_ternarylogic_epi32 (__m128i __A, __m128i __B, __m128i __C,
   10527 			const int __imm)
   10528 {
   10529   return (__m128i) __builtin_ia32_pternlogd128_mask ((__v4si) __A,
   10530 						     (__v4si) __B,
   10531 						     (__v4si) __C, __imm,
   10532 						     (__mmask8) -1);
   10533 }
   10534 
   10535 extern __inline __m128i
   10536 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10537 _mm_mask_ternarylogic_epi32 (__m128i __A, __mmask8 __U,
   10538 			     __m128i __B, __m128i __C, const int __imm)
   10539 {
   10540   return (__m128i) __builtin_ia32_pternlogd128_mask ((__v4si) __A,
   10541 						     (__v4si) __B,
   10542 						     (__v4si) __C, __imm,
   10543 						     (__mmask8) __U);
   10544 }
   10545 
   10546 extern __inline __m128i
   10547 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10548 _mm_maskz_ternarylogic_epi32 (__mmask8 __U, __m128i __A,
   10549 			      __m128i __B, __m128i __C, const int __imm)
   10550 {
   10551   return (__m128i) __builtin_ia32_pternlogd128_maskz ((__v4si) __A,
   10552 						      (__v4si) __B,
   10553 						      (__v4si) __C,
   10554 						      __imm,
   10555 						      (__mmask8) __U);
   10556 }
   10557 
   10558 extern __inline __m256
   10559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10560 _mm256_roundscale_ps (__m256 __A, const int __imm)
   10561 {
   10562   return (__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf) __A,
   10563 						      __imm,
   10564 						      (__v8sf)
   10565 						      _mm256_setzero_ps (),
   10566 						      (__mmask8) -1);
   10567 }
   10568 
   10569 extern __inline __m256
   10570 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10571 _mm256_mask_roundscale_ps (__m256 __W, __mmask8 __U, __m256 __A,
   10572 			   const int __imm)
   10573 {
   10574   return (__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf) __A,
   10575 						      __imm,
   10576 						      (__v8sf) __W,
   10577 						      (__mmask8) __U);
   10578 }
   10579 
   10580 extern __inline __m256
   10581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10582 _mm256_maskz_roundscale_ps (__mmask8 __U, __m256 __A, const int __imm)
   10583 {
   10584   return (__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf) __A,
   10585 						      __imm,
   10586 						      (__v8sf)
   10587 						      _mm256_setzero_ps (),
   10588 						      (__mmask8) __U);
   10589 }
   10590 
   10591 extern __inline __m256d
   10592 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10593 _mm256_roundscale_pd (__m256d __A, const int __imm)
   10594 {
   10595   return (__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df) __A,
   10596 						       __imm,
   10597 						       (__v4df)
   10598 						       _mm256_setzero_pd (),
   10599 						       (__mmask8) -1);
   10600 }
   10601 
   10602 extern __inline __m256d
   10603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10604 _mm256_mask_roundscale_pd (__m256d __W, __mmask8 __U, __m256d __A,
   10605 			   const int __imm)
   10606 {
   10607   return (__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df) __A,
   10608 						       __imm,
   10609 						       (__v4df) __W,
   10610 						       (__mmask8) __U);
   10611 }
   10612 
   10613 extern __inline __m256d
   10614 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10615 _mm256_maskz_roundscale_pd (__mmask8 __U, __m256d __A, const int __imm)
   10616 {
   10617   return (__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df) __A,
   10618 						       __imm,
   10619 						       (__v4df)
   10620 						       _mm256_setzero_pd (),
   10621 						       (__mmask8) __U);
   10622 }
   10623 
   10624 extern __inline __m128
   10625 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10626 _mm_roundscale_ps (__m128 __A, const int __imm)
   10627 {
   10628   return (__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf) __A,
   10629 						      __imm,
   10630 						      (__v4sf)
   10631 						      _mm_setzero_ps (),
   10632 						      (__mmask8) -1);
   10633 }
   10634 
   10635 extern __inline __m128
   10636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10637 _mm_mask_roundscale_ps (__m128 __W, __mmask8 __U, __m128 __A,
   10638 			const int __imm)
   10639 {
   10640   return (__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf) __A,
   10641 						      __imm,
   10642 						      (__v4sf) __W,
   10643 						      (__mmask8) __U);
   10644 }
   10645 
   10646 extern __inline __m128
   10647 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10648 _mm_maskz_roundscale_ps (__mmask8 __U, __m128 __A, const int __imm)
   10649 {
   10650   return (__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf) __A,
   10651 						      __imm,
   10652 						      (__v4sf)
   10653 						      _mm_setzero_ps (),
   10654 						      (__mmask8) __U);
   10655 }
   10656 
   10657 extern __inline __m128d
   10658 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10659 _mm_roundscale_pd (__m128d __A, const int __imm)
   10660 {
   10661   return (__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df) __A,
   10662 						       __imm,
   10663 						       (__v2df)
   10664 						       _mm_setzero_pd (),
   10665 						       (__mmask8) -1);
   10666 }
   10667 
   10668 extern __inline __m128d
   10669 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10670 _mm_mask_roundscale_pd (__m128d __W, __mmask8 __U, __m128d __A,
   10671 			const int __imm)
   10672 {
   10673   return (__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df) __A,
   10674 						       __imm,
   10675 						       (__v2df) __W,
   10676 						       (__mmask8) __U);
   10677 }
   10678 
   10679 extern __inline __m128d
   10680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10681 _mm_maskz_roundscale_pd (__mmask8 __U, __m128d __A, const int __imm)
   10682 {
   10683   return (__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df) __A,
   10684 						       __imm,
   10685 						       (__v2df)
   10686 						       _mm_setzero_pd (),
   10687 						       (__mmask8) __U);
   10688 }
   10689 
   10690 extern __inline __m256
   10691 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10692 _mm256_getmant_ps (__m256 __A, _MM_MANTISSA_NORM_ENUM __B,
   10693 		   _MM_MANTISSA_SIGN_ENUM __C)
   10694 {
   10695   return (__m256) __builtin_ia32_getmantps256_mask ((__v8sf) __A,
   10696 						    (__C << 2) | __B,
   10697 						    (__v8sf)
   10698 						    _mm256_setzero_ps (),
   10699 						    (__mmask8) -1);
   10700 }
   10701 
   10702 extern __inline __m256
   10703 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10704 _mm256_mask_getmant_ps (__m256 __W, __mmask8 __U, __m256 __A,
   10705 			_MM_MANTISSA_NORM_ENUM __B,
   10706 			_MM_MANTISSA_SIGN_ENUM __C)
   10707 {
   10708   return (__m256) __builtin_ia32_getmantps256_mask ((__v8sf) __A,
   10709 						    (__C << 2) | __B,
   10710 						    (__v8sf) __W,
   10711 						    (__mmask8) __U);
   10712 }
   10713 
   10714 extern __inline __m256
   10715 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10716 _mm256_maskz_getmant_ps (__mmask8 __U, __m256 __A,
   10717 			 _MM_MANTISSA_NORM_ENUM __B,
   10718 			 _MM_MANTISSA_SIGN_ENUM __C)
   10719 {
   10720   return (__m256) __builtin_ia32_getmantps256_mask ((__v8sf) __A,
   10721 						    (__C << 2) | __B,
   10722 						    (__v8sf)
   10723 						    _mm256_setzero_ps (),
   10724 						    (__mmask8) __U);
   10725 }
   10726 
   10727 extern __inline __m128
   10728 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10729 _mm_getmant_ps (__m128 __A, _MM_MANTISSA_NORM_ENUM __B,
   10730 		_MM_MANTISSA_SIGN_ENUM __C)
   10731 {
   10732   return (__m128) __builtin_ia32_getmantps128_mask ((__v4sf) __A,
   10733 						    (__C << 2) | __B,
   10734 						    (__v4sf)
   10735 						    _mm_setzero_ps (),
   10736 						    (__mmask8) -1);
   10737 }
   10738 
   10739 extern __inline __m128
   10740 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10741 _mm_mask_getmant_ps (__m128 __W, __mmask8 __U, __m128 __A,
   10742 		     _MM_MANTISSA_NORM_ENUM __B,
   10743 		     _MM_MANTISSA_SIGN_ENUM __C)
   10744 {
   10745   return (__m128) __builtin_ia32_getmantps128_mask ((__v4sf) __A,
   10746 						    (__C << 2) | __B,
   10747 						    (__v4sf) __W,
   10748 						    (__mmask8) __U);
   10749 }
   10750 
   10751 extern __inline __m128
   10752 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10753 _mm_maskz_getmant_ps (__mmask8 __U, __m128 __A,
   10754 		      _MM_MANTISSA_NORM_ENUM __B,
   10755 		      _MM_MANTISSA_SIGN_ENUM __C)
   10756 {
   10757   return (__m128) __builtin_ia32_getmantps128_mask ((__v4sf) __A,
   10758 						    (__C << 2) | __B,
   10759 						    (__v4sf)
   10760 						    _mm_setzero_ps (),
   10761 						    (__mmask8) __U);
   10762 }
   10763 
   10764 extern __inline __m256d
   10765 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10766 _mm256_getmant_pd (__m256d __A, _MM_MANTISSA_NORM_ENUM __B,
   10767 		   _MM_MANTISSA_SIGN_ENUM __C)
   10768 {
   10769   return (__m256d) __builtin_ia32_getmantpd256_mask ((__v4df) __A,
   10770 						     (__C << 2) | __B,
   10771 						     (__v4df)
   10772 						     _mm256_setzero_pd (),
   10773 						     (__mmask8) -1);
   10774 }
   10775 
   10776 extern __inline __m256d
   10777 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10778 _mm256_mask_getmant_pd (__m256d __W, __mmask8 __U, __m256d __A,
   10779 			_MM_MANTISSA_NORM_ENUM __B,
   10780 			_MM_MANTISSA_SIGN_ENUM __C)
   10781 {
   10782   return (__m256d) __builtin_ia32_getmantpd256_mask ((__v4df) __A,
   10783 						     (__C << 2) | __B,
   10784 						     (__v4df) __W,
   10785 						     (__mmask8) __U);
   10786 }
   10787 
   10788 extern __inline __m256d
   10789 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10790 _mm256_maskz_getmant_pd (__mmask8 __U, __m256d __A,
   10791 			 _MM_MANTISSA_NORM_ENUM __B,
   10792 			 _MM_MANTISSA_SIGN_ENUM __C)
   10793 {
   10794   return (__m256d) __builtin_ia32_getmantpd256_mask ((__v4df) __A,
   10795 						     (__C << 2) | __B,
   10796 						     (__v4df)
   10797 						     _mm256_setzero_pd (),
   10798 						     (__mmask8) __U);
   10799 }
   10800 
   10801 extern __inline __m128d
   10802 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10803 _mm_getmant_pd (__m128d __A, _MM_MANTISSA_NORM_ENUM __B,
   10804 		_MM_MANTISSA_SIGN_ENUM __C)
   10805 {
   10806   return (__m128d) __builtin_ia32_getmantpd128_mask ((__v2df) __A,
   10807 						     (__C << 2) | __B,
   10808 						     (__v2df)
   10809 						     _mm_setzero_pd (),
   10810 						     (__mmask8) -1);
   10811 }
   10812 
   10813 extern __inline __m128d
   10814 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10815 _mm_mask_getmant_pd (__m128d __W, __mmask8 __U, __m128d __A,
   10816 		     _MM_MANTISSA_NORM_ENUM __B,
   10817 		     _MM_MANTISSA_SIGN_ENUM __C)
   10818 {
   10819   return (__m128d) __builtin_ia32_getmantpd128_mask ((__v2df) __A,
   10820 						     (__C << 2) | __B,
   10821 						     (__v2df) __W,
   10822 						     (__mmask8) __U);
   10823 }
   10824 
   10825 extern __inline __m128d
   10826 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10827 _mm_maskz_getmant_pd (__mmask8 __U, __m128d __A,
   10828 		      _MM_MANTISSA_NORM_ENUM __B,
   10829 		      _MM_MANTISSA_SIGN_ENUM __C)
   10830 {
   10831   return (__m128d) __builtin_ia32_getmantpd128_mask ((__v2df) __A,
   10832 						     (__C << 2) | __B,
   10833 						     (__v2df)
   10834 						     _mm_setzero_pd (),
   10835 						     (__mmask8) __U);
   10836 }
   10837 
   10838 extern __inline __m256
   10839 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10840 _mm256_mmask_i32gather_ps (__m256 __v1_old, __mmask8 __mask,
   10841 			   __m256i __index, void const *__addr,
   10842 			   int __scale)
   10843 {
   10844   return (__m256) __builtin_ia32_gather3siv8sf ((__v8sf) __v1_old,
   10845 						__addr,
   10846 						(__v8si) __index,
   10847 						__mask, __scale);
   10848 }
   10849 
   10850 extern __inline __m128
   10851 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10852 _mm_mmask_i32gather_ps (__m128 __v1_old, __mmask8 __mask,
   10853 			__m128i __index, void const *__addr,
   10854 			int __scale)
   10855 {
   10856   return (__m128) __builtin_ia32_gather3siv4sf ((__v4sf) __v1_old,
   10857 						__addr,
   10858 						(__v4si) __index,
   10859 						__mask, __scale);
   10860 }
   10861 
   10862 extern __inline __m256d
   10863 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10864 _mm256_mmask_i32gather_pd (__m256d __v1_old, __mmask8 __mask,
   10865 			   __m128i __index, void const *__addr,
   10866 			   int __scale)
   10867 {
   10868   return (__m256d) __builtin_ia32_gather3siv4df ((__v4df) __v1_old,
   10869 						 __addr,
   10870 						 (__v4si) __index,
   10871 						 __mask, __scale);
   10872 }
   10873 
   10874 extern __inline __m128d
   10875 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10876 _mm_mmask_i32gather_pd (__m128d __v1_old, __mmask8 __mask,
   10877 			__m128i __index, void const *__addr,
   10878 			int __scale)
   10879 {
   10880   return (__m128d) __builtin_ia32_gather3siv2df ((__v2df) __v1_old,
   10881 						 __addr,
   10882 						 (__v4si) __index,
   10883 						 __mask, __scale);
   10884 }
   10885 
   10886 extern __inline __m128
   10887 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10888 _mm256_mmask_i64gather_ps (__m128 __v1_old, __mmask8 __mask,
   10889 			   __m256i __index, void const *__addr,
   10890 			   int __scale)
   10891 {
   10892   return (__m128) __builtin_ia32_gather3div8sf ((__v4sf) __v1_old,
   10893 						__addr,
   10894 						(__v4di) __index,
   10895 						__mask, __scale);
   10896 }
   10897 
   10898 extern __inline __m128
   10899 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10900 _mm_mmask_i64gather_ps (__m128 __v1_old, __mmask8 __mask,
   10901 			__m128i __index, void const *__addr,
   10902 			int __scale)
   10903 {
   10904   return (__m128) __builtin_ia32_gather3div4sf ((__v4sf) __v1_old,
   10905 						__addr,
   10906 						(__v2di) __index,
   10907 						__mask, __scale);
   10908 }
   10909 
   10910 extern __inline __m256d
   10911 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10912 _mm256_mmask_i64gather_pd (__m256d __v1_old, __mmask8 __mask,
   10913 			   __m256i __index, void const *__addr,
   10914 			   int __scale)
   10915 {
   10916   return (__m256d) __builtin_ia32_gather3div4df ((__v4df) __v1_old,
   10917 						 __addr,
   10918 						 (__v4di) __index,
   10919 						 __mask, __scale);
   10920 }
   10921 
   10922 extern __inline __m128d
   10923 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10924 _mm_mmask_i64gather_pd (__m128d __v1_old, __mmask8 __mask,
   10925 			__m128i __index, void const *__addr,
   10926 			int __scale)
   10927 {
   10928   return (__m128d) __builtin_ia32_gather3div2df ((__v2df) __v1_old,
   10929 						 __addr,
   10930 						 (__v2di) __index,
   10931 						 __mask, __scale);
   10932 }
   10933 
   10934 extern __inline __m256i
   10935 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10936 _mm256_mmask_i32gather_epi32 (__m256i __v1_old, __mmask8 __mask,
   10937 			      __m256i __index, void const *__addr,
   10938 			      int __scale)
   10939 {
   10940   return (__m256i) __builtin_ia32_gather3siv8si ((__v8si) __v1_old,
   10941 						 __addr,
   10942 						 (__v8si) __index,
   10943 						 __mask, __scale);
   10944 }
   10945 
   10946 extern __inline __m128i
   10947 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10948 _mm_mmask_i32gather_epi32 (__m128i __v1_old, __mmask8 __mask,
   10949 			   __m128i __index, void const *__addr,
   10950 			   int __scale)
   10951 {
   10952   return (__m128i) __builtin_ia32_gather3siv4si ((__v4si) __v1_old,
   10953 						 __addr,
   10954 						 (__v4si) __index,
   10955 						 __mask, __scale);
   10956 }
   10957 
   10958 extern __inline __m256i
   10959 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10960 _mm256_mmask_i32gather_epi64 (__m256i __v1_old, __mmask8 __mask,
   10961 			      __m128i __index, void const *__addr,
   10962 			      int __scale)
   10963 {
   10964   return (__m256i) __builtin_ia32_gather3siv4di ((__v4di) __v1_old,
   10965 						 __addr,
   10966 						 (__v4si) __index,
   10967 						 __mask, __scale);
   10968 }
   10969 
   10970 extern __inline __m128i
   10971 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10972 _mm_mmask_i32gather_epi64 (__m128i __v1_old, __mmask8 __mask,
   10973 			   __m128i __index, void const *__addr,
   10974 			   int __scale)
   10975 {
   10976   return (__m128i) __builtin_ia32_gather3siv2di ((__v2di) __v1_old,
   10977 						 __addr,
   10978 						 (__v4si) __index,
   10979 						 __mask, __scale);
   10980 }
   10981 
   10982 extern __inline __m128i
   10983 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10984 _mm256_mmask_i64gather_epi32 (__m128i __v1_old, __mmask8 __mask,
   10985 			      __m256i __index, void const *__addr,
   10986 			      int __scale)
   10987 {
   10988   return (__m128i) __builtin_ia32_gather3div8si ((__v4si) __v1_old,
   10989 						 __addr,
   10990 						 (__v4di) __index,
   10991 						 __mask, __scale);
   10992 }
   10993 
   10994 extern __inline __m128i
   10995 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   10996 _mm_mmask_i64gather_epi32 (__m128i __v1_old, __mmask8 __mask,
   10997 			   __m128i __index, void const *__addr,
   10998 			   int __scale)
   10999 {
   11000   return (__m128i) __builtin_ia32_gather3div4si ((__v4si) __v1_old,
   11001 						 __addr,
   11002 						 (__v2di) __index,
   11003 						 __mask, __scale);
   11004 }
   11005 
   11006 extern __inline __m256i
   11007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11008 _mm256_mmask_i64gather_epi64 (__m256i __v1_old, __mmask8 __mask,
   11009 			      __m256i __index, void const *__addr,
   11010 			      int __scale)
   11011 {
   11012   return (__m256i) __builtin_ia32_gather3div4di ((__v4di) __v1_old,
   11013 						 __addr,
   11014 						 (__v4di) __index,
   11015 						 __mask, __scale);
   11016 }
   11017 
   11018 extern __inline __m128i
   11019 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11020 _mm_mmask_i64gather_epi64 (__m128i __v1_old, __mmask8 __mask,
   11021 			   __m128i __index, void const *__addr,
   11022 			   int __scale)
   11023 {
   11024   return (__m128i) __builtin_ia32_gather3div2di ((__v2di) __v1_old,
   11025 						 __addr,
   11026 						 (__v2di) __index,
   11027 						 __mask, __scale);
   11028 }
   11029 
   11030 extern __inline void
   11031 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11032 _mm256_i32scatter_ps (void *__addr, __m256i __index,
   11033 		      __m256 __v1, const int __scale)
   11034 {
   11035   __builtin_ia32_scattersiv8sf (__addr, (__mmask8) 0xFF,
   11036 				(__v8si) __index, (__v8sf) __v1,
   11037 				__scale);
   11038 }
   11039 
   11040 extern __inline void
   11041 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11042 _mm256_mask_i32scatter_ps (void *__addr, __mmask8 __mask,
   11043 			   __m256i __index, __m256 __v1,
   11044 			   const int __scale)
   11045 {
   11046   __builtin_ia32_scattersiv8sf (__addr, __mask, (__v8si) __index,
   11047 				(__v8sf) __v1, __scale);
   11048 }
   11049 
   11050 extern __inline void
   11051 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11052 _mm_i32scatter_ps (void *__addr, __m128i __index, __m128 __v1,
   11053 		   const int __scale)
   11054 {
   11055   __builtin_ia32_scattersiv4sf (__addr, (__mmask8) 0xFF,
   11056 				(__v4si) __index, (__v4sf) __v1,
   11057 				__scale);
   11058 }
   11059 
   11060 extern __inline void
   11061 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11062 _mm_mask_i32scatter_ps (void *__addr, __mmask8 __mask,
   11063 			__m128i __index, __m128 __v1,
   11064 			const int __scale)
   11065 {
   11066   __builtin_ia32_scattersiv4sf (__addr, __mask, (__v4si) __index,
   11067 				(__v4sf) __v1, __scale);
   11068 }
   11069 
   11070 extern __inline void
   11071 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11072 _mm256_i32scatter_pd (void *__addr, __m128i __index,
   11073 		      __m256d __v1, const int __scale)
   11074 {
   11075   __builtin_ia32_scattersiv4df (__addr, (__mmask8) 0xFF,
   11076 				(__v4si) __index, (__v4df) __v1,
   11077 				__scale);
   11078 }
   11079 
   11080 extern __inline void
   11081 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11082 _mm256_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
   11083 			   __m128i __index, __m256d __v1,
   11084 			   const int __scale)
   11085 {
   11086   __builtin_ia32_scattersiv4df (__addr, __mask, (__v4si) __index,
   11087 				(__v4df) __v1, __scale);
   11088 }
   11089 
   11090 extern __inline void
   11091 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11092 _mm_i32scatter_pd (void *__addr, __m128i __index,
   11093 		   __m128d __v1, const int __scale)
   11094 {
   11095   __builtin_ia32_scattersiv2df (__addr, (__mmask8) 0xFF,
   11096 				(__v4si) __index, (__v2df) __v1,
   11097 				__scale);
   11098 }
   11099 
   11100 extern __inline void
   11101 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11102 _mm_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
   11103 			__m128i __index, __m128d __v1,
   11104 			const int __scale)
   11105 {
   11106   __builtin_ia32_scattersiv2df (__addr, __mask, (__v4si) __index,
   11107 				(__v2df) __v1, __scale);
   11108 }
   11109 
   11110 extern __inline void
   11111 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11112 _mm256_i64scatter_ps (void *__addr, __m256i __index,
   11113 		      __m128 __v1, const int __scale)
   11114 {
   11115   __builtin_ia32_scatterdiv8sf (__addr, (__mmask8) 0xFF,
   11116 				(__v4di) __index, (__v4sf) __v1,
   11117 				__scale);
   11118 }
   11119 
   11120 extern __inline void
   11121 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11122 _mm256_mask_i64scatter_ps (void *__addr, __mmask8 __mask,
   11123 			   __m256i __index, __m128 __v1,
   11124 			   const int __scale)
   11125 {
   11126   __builtin_ia32_scatterdiv8sf (__addr, __mask, (__v4di) __index,
   11127 				(__v4sf) __v1, __scale);
   11128 }
   11129 
   11130 extern __inline void
   11131 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11132 _mm_i64scatter_ps (void *__addr, __m128i __index, __m128 __v1,
   11133 		   const int __scale)
   11134 {
   11135   __builtin_ia32_scatterdiv4sf (__addr, (__mmask8) 0xFF,
   11136 				(__v2di) __index, (__v4sf) __v1,
   11137 				__scale);
   11138 }
   11139 
   11140 extern __inline void
   11141 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11142 _mm_mask_i64scatter_ps (void *__addr, __mmask8 __mask,
   11143 			__m128i __index, __m128 __v1,
   11144 			const int __scale)
   11145 {
   11146   __builtin_ia32_scatterdiv4sf (__addr, __mask, (__v2di) __index,
   11147 				(__v4sf) __v1, __scale);
   11148 }
   11149 
   11150 extern __inline void
   11151 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11152 _mm256_i64scatter_pd (void *__addr, __m256i __index,
   11153 		      __m256d __v1, const int __scale)
   11154 {
   11155   __builtin_ia32_scatterdiv4df (__addr, (__mmask8) 0xFF,
   11156 				(__v4di) __index, (__v4df) __v1,
   11157 				__scale);
   11158 }
   11159 
   11160 extern __inline void
   11161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11162 _mm256_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
   11163 			   __m256i __index, __m256d __v1,
   11164 			   const int __scale)
   11165 {
   11166   __builtin_ia32_scatterdiv4df (__addr, __mask, (__v4di) __index,
   11167 				(__v4df) __v1, __scale);
   11168 }
   11169 
   11170 extern __inline void
   11171 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11172 _mm_i64scatter_pd (void *__addr, __m128i __index,
   11173 		   __m128d __v1, const int __scale)
   11174 {
   11175   __builtin_ia32_scatterdiv2df (__addr, (__mmask8) 0xFF,
   11176 				(__v2di) __index, (__v2df) __v1,
   11177 				__scale);
   11178 }
   11179 
   11180 extern __inline void
   11181 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11182 _mm_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
   11183 			__m128i __index, __m128d __v1,
   11184 			const int __scale)
   11185 {
   11186   __builtin_ia32_scatterdiv2df (__addr, __mask, (__v2di) __index,
   11187 				(__v2df) __v1, __scale);
   11188 }
   11189 
   11190 extern __inline void
   11191 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11192 _mm256_i32scatter_epi32 (void *__addr, __m256i __index,
   11193 			 __m256i __v1, const int __scale)
   11194 {
   11195   __builtin_ia32_scattersiv8si (__addr, (__mmask8) 0xFF,
   11196 				(__v8si) __index, (__v8si) __v1,
   11197 				__scale);
   11198 }
   11199 
   11200 extern __inline void
   11201 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11202 _mm256_mask_i32scatter_epi32 (void *__addr, __mmask8 __mask,
   11203 			      __m256i __index, __m256i __v1,
   11204 			      const int __scale)
   11205 {
   11206   __builtin_ia32_scattersiv8si (__addr, __mask, (__v8si) __index,
   11207 				(__v8si) __v1, __scale);
   11208 }
   11209 
   11210 extern __inline void
   11211 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11212 _mm_i32scatter_epi32 (void *__addr, __m128i __index,
   11213 		      __m128i __v1, const int __scale)
   11214 {
   11215   __builtin_ia32_scattersiv4si (__addr, (__mmask8) 0xFF,
   11216 				(__v4si) __index, (__v4si) __v1,
   11217 				__scale);
   11218 }
   11219 
   11220 extern __inline void
   11221 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11222 _mm_mask_i32scatter_epi32 (void *__addr, __mmask8 __mask,
   11223 			   __m128i __index, __m128i __v1,
   11224 			   const int __scale)
   11225 {
   11226   __builtin_ia32_scattersiv4si (__addr, __mask, (__v4si) __index,
   11227 				(__v4si) __v1, __scale);
   11228 }
   11229 
   11230 extern __inline void
   11231 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11232 _mm256_i32scatter_epi64 (void *__addr, __m128i __index,
   11233 			 __m256i __v1, const int __scale)
   11234 {
   11235   __builtin_ia32_scattersiv4di (__addr, (__mmask8) 0xFF,
   11236 				(__v4si) __index, (__v4di) __v1,
   11237 				__scale);
   11238 }
   11239 
   11240 extern __inline void
   11241 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11242 _mm256_mask_i32scatter_epi64 (void *__addr, __mmask8 __mask,
   11243 			      __m128i __index, __m256i __v1,
   11244 			      const int __scale)
   11245 {
   11246   __builtin_ia32_scattersiv4di (__addr, __mask, (__v4si) __index,
   11247 				(__v4di) __v1, __scale);
   11248 }
   11249 
   11250 extern __inline void
   11251 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11252 _mm_i32scatter_epi64 (void *__addr, __m128i __index,
   11253 		      __m128i __v1, const int __scale)
   11254 {
   11255   __builtin_ia32_scattersiv2di (__addr, (__mmask8) 0xFF,
   11256 				(__v4si) __index, (__v2di) __v1,
   11257 				__scale);
   11258 }
   11259 
   11260 extern __inline void
   11261 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11262 _mm_mask_i32scatter_epi64 (void *__addr, __mmask8 __mask,
   11263 			   __m128i __index, __m128i __v1,
   11264 			   const int __scale)
   11265 {
   11266   __builtin_ia32_scattersiv2di (__addr, __mask, (__v4si) __index,
   11267 				(__v2di) __v1, __scale);
   11268 }
   11269 
   11270 extern __inline void
   11271 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11272 _mm256_i64scatter_epi32 (void *__addr, __m256i __index,
   11273 			 __m128i __v1, const int __scale)
   11274 {
   11275   __builtin_ia32_scatterdiv8si (__addr, (__mmask8) 0xFF,
   11276 				(__v4di) __index, (__v4si) __v1,
   11277 				__scale);
   11278 }
   11279 
   11280 extern __inline void
   11281 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11282 _mm256_mask_i64scatter_epi32 (void *__addr, __mmask8 __mask,
   11283 			      __m256i __index, __m128i __v1,
   11284 			      const int __scale)
   11285 {
   11286   __builtin_ia32_scatterdiv8si (__addr, __mask, (__v4di) __index,
   11287 				(__v4si) __v1, __scale);
   11288 }
   11289 
   11290 extern __inline void
   11291 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11292 _mm_i64scatter_epi32 (void *__addr, __m128i __index,
   11293 		      __m128i __v1, const int __scale)
   11294 {
   11295   __builtin_ia32_scatterdiv4si (__addr, (__mmask8) 0xFF,
   11296 				(__v2di) __index, (__v4si) __v1,
   11297 				__scale);
   11298 }
   11299 
   11300 extern __inline void
   11301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11302 _mm_mask_i64scatter_epi32 (void *__addr, __mmask8 __mask,
   11303 			   __m128i __index, __m128i __v1,
   11304 			   const int __scale)
   11305 {
   11306   __builtin_ia32_scatterdiv4si (__addr, __mask, (__v2di) __index,
   11307 				(__v4si) __v1, __scale);
   11308 }
   11309 
   11310 extern __inline void
   11311 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11312 _mm256_i64scatter_epi64 (void *__addr, __m256i __index,
   11313 			 __m256i __v1, const int __scale)
   11314 {
   11315   __builtin_ia32_scatterdiv4di (__addr, (__mmask8) 0xFF,
   11316 				(__v4di) __index, (__v4di) __v1,
   11317 				__scale);
   11318 }
   11319 
   11320 extern __inline void
   11321 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11322 _mm256_mask_i64scatter_epi64 (void *__addr, __mmask8 __mask,
   11323 			      __m256i __index, __m256i __v1,
   11324 			      const int __scale)
   11325 {
   11326   __builtin_ia32_scatterdiv4di (__addr, __mask, (__v4di) __index,
   11327 				(__v4di) __v1, __scale);
   11328 }
   11329 
   11330 extern __inline void
   11331 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11332 _mm_i64scatter_epi64 (void *__addr, __m128i __index,
   11333 		      __m128i __v1, const int __scale)
   11334 {
   11335   __builtin_ia32_scatterdiv2di (__addr, (__mmask8) 0xFF,
   11336 				(__v2di) __index, (__v2di) __v1,
   11337 				__scale);
   11338 }
   11339 
   11340 extern __inline void
   11341 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11342 _mm_mask_i64scatter_epi64 (void *__addr, __mmask8 __mask,
   11343 			   __m128i __index, __m128i __v1,
   11344 			   const int __scale)
   11345 {
   11346   __builtin_ia32_scatterdiv2di (__addr, __mask, (__v2di) __index,
   11347 				(__v2di) __v1, __scale);
   11348 }
   11349 
   11350 extern __inline __m256i
   11351 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11352 _mm256_mask_shuffle_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   11353 			   _MM_PERM_ENUM __mask)
   11354 {
   11355   return (__m256i) __builtin_ia32_pshufd256_mask ((__v8si) __A, __mask,
   11356 						  (__v8si) __W,
   11357 						  (__mmask8) __U);
   11358 }
   11359 
   11360 extern __inline __m256i
   11361 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11362 _mm256_maskz_shuffle_epi32 (__mmask8 __U, __m256i __A,
   11363 			    _MM_PERM_ENUM __mask)
   11364 {
   11365   return (__m256i) __builtin_ia32_pshufd256_mask ((__v8si) __A, __mask,
   11366 						  (__v8si)
   11367 						  _mm256_setzero_si256 (),
   11368 						  (__mmask8) __U);
   11369 }
   11370 
   11371 extern __inline __m128i
   11372 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11373 _mm_mask_shuffle_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   11374 			_MM_PERM_ENUM __mask)
   11375 {
   11376   return (__m128i) __builtin_ia32_pshufd128_mask ((__v4si) __A, __mask,
   11377 						  (__v4si) __W,
   11378 						  (__mmask8) __U);
   11379 }
   11380 
   11381 extern __inline __m128i
   11382 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11383 _mm_maskz_shuffle_epi32 (__mmask8 __U, __m128i __A,
   11384 			 _MM_PERM_ENUM __mask)
   11385 {
   11386   return (__m128i) __builtin_ia32_pshufd128_mask ((__v4si) __A, __mask,
   11387 						  (__v4si)
   11388 						  _mm_setzero_si128 (),
   11389 						  (__mmask8) __U);
   11390 }
   11391 
   11392 extern __inline __m256i
   11393 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11394 _mm256_rol_epi32 (__m256i __A, const int __B)
   11395 {
   11396   return (__m256i) __builtin_ia32_prold256_mask ((__v8si) __A, __B,
   11397 						 (__v8si)
   11398 						 _mm256_setzero_si256 (),
   11399 						 (__mmask8) -1);
   11400 }
   11401 
   11402 extern __inline __m256i
   11403 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11404 _mm256_mask_rol_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   11405 		       const int __B)
   11406 {
   11407   return (__m256i) __builtin_ia32_prold256_mask ((__v8si) __A, __B,
   11408 						 (__v8si) __W,
   11409 						 (__mmask8) __U);
   11410 }
   11411 
   11412 extern __inline __m256i
   11413 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11414 _mm256_maskz_rol_epi32 (__mmask8 __U, __m256i __A, const int __B)
   11415 {
   11416   return (__m256i) __builtin_ia32_prold256_mask ((__v8si) __A, __B,
   11417 						 (__v8si)
   11418 						 _mm256_setzero_si256 (),
   11419 						 (__mmask8) __U);
   11420 }
   11421 
   11422 extern __inline __m128i
   11423 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11424 _mm_rol_epi32 (__m128i __A, const int __B)
   11425 {
   11426   return (__m128i) __builtin_ia32_prold128_mask ((__v4si) __A, __B,
   11427 						 (__v4si)
   11428 						 _mm_setzero_si128 (),
   11429 						 (__mmask8) -1);
   11430 }
   11431 
   11432 extern __inline __m128i
   11433 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11434 _mm_mask_rol_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   11435 		    const int __B)
   11436 {
   11437   return (__m128i) __builtin_ia32_prold128_mask ((__v4si) __A, __B,
   11438 						 (__v4si) __W,
   11439 						 (__mmask8) __U);
   11440 }
   11441 
   11442 extern __inline __m128i
   11443 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11444 _mm_maskz_rol_epi32 (__mmask8 __U, __m128i __A, const int __B)
   11445 {
   11446   return (__m128i) __builtin_ia32_prold128_mask ((__v4si) __A, __B,
   11447 						 (__v4si)
   11448 						 _mm_setzero_si128 (),
   11449 						 (__mmask8) __U);
   11450 }
   11451 
   11452 extern __inline __m256i
   11453 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11454 _mm256_ror_epi32 (__m256i __A, const int __B)
   11455 {
   11456   return (__m256i) __builtin_ia32_prord256_mask ((__v8si) __A, __B,
   11457 						 (__v8si)
   11458 						 _mm256_setzero_si256 (),
   11459 						 (__mmask8) -1);
   11460 }
   11461 
   11462 extern __inline __m256i
   11463 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11464 _mm256_mask_ror_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   11465 		       const int __B)
   11466 {
   11467   return (__m256i) __builtin_ia32_prord256_mask ((__v8si) __A, __B,
   11468 						 (__v8si) __W,
   11469 						 (__mmask8) __U);
   11470 }
   11471 
   11472 extern __inline __m256i
   11473 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11474 _mm256_maskz_ror_epi32 (__mmask8 __U, __m256i __A, const int __B)
   11475 {
   11476   return (__m256i) __builtin_ia32_prord256_mask ((__v8si) __A, __B,
   11477 						 (__v8si)
   11478 						 _mm256_setzero_si256 (),
   11479 						 (__mmask8) __U);
   11480 }
   11481 
   11482 extern __inline __m128i
   11483 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11484 _mm_ror_epi32 (__m128i __A, const int __B)
   11485 {
   11486   return (__m128i) __builtin_ia32_prord128_mask ((__v4si) __A, __B,
   11487 						 (__v4si)
   11488 						 _mm_setzero_si128 (),
   11489 						 (__mmask8) -1);
   11490 }
   11491 
   11492 extern __inline __m128i
   11493 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11494 _mm_mask_ror_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   11495 		    const int __B)
   11496 {
   11497   return (__m128i) __builtin_ia32_prord128_mask ((__v4si) __A, __B,
   11498 						 (__v4si) __W,
   11499 						 (__mmask8) __U);
   11500 }
   11501 
   11502 extern __inline __m128i
   11503 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11504 _mm_maskz_ror_epi32 (__mmask8 __U, __m128i __A, const int __B)
   11505 {
   11506   return (__m128i) __builtin_ia32_prord128_mask ((__v4si) __A, __B,
   11507 						 (__v4si)
   11508 						 _mm_setzero_si128 (),
   11509 						 (__mmask8) __U);
   11510 }
   11511 
   11512 extern __inline __m256i
   11513 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11514 _mm256_rol_epi64 (__m256i __A, const int __B)
   11515 {
   11516   return (__m256i) __builtin_ia32_prolq256_mask ((__v4di) __A, __B,
   11517 						 (__v4di)
   11518 						 _mm256_setzero_si256 (),
   11519 						 (__mmask8) -1);
   11520 }
   11521 
   11522 extern __inline __m256i
   11523 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11524 _mm256_mask_rol_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   11525 		       const int __B)
   11526 {
   11527   return (__m256i) __builtin_ia32_prolq256_mask ((__v4di) __A, __B,
   11528 						 (__v4di) __W,
   11529 						 (__mmask8) __U);
   11530 }
   11531 
   11532 extern __inline __m256i
   11533 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11534 _mm256_maskz_rol_epi64 (__mmask8 __U, __m256i __A, const int __B)
   11535 {
   11536   return (__m256i) __builtin_ia32_prolq256_mask ((__v4di) __A, __B,
   11537 						 (__v4di)
   11538 						 _mm256_setzero_si256 (),
   11539 						 (__mmask8) __U);
   11540 }
   11541 
   11542 extern __inline __m128i
   11543 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11544 _mm_rol_epi64 (__m128i __A, const int __B)
   11545 {
   11546   return (__m128i) __builtin_ia32_prolq128_mask ((__v2di) __A, __B,
   11547 						 (__v2di)
   11548 						 _mm_setzero_si128 (),
   11549 						 (__mmask8) -1);
   11550 }
   11551 
   11552 extern __inline __m128i
   11553 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11554 _mm_mask_rol_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   11555 		    const int __B)
   11556 {
   11557   return (__m128i) __builtin_ia32_prolq128_mask ((__v2di) __A, __B,
   11558 						 (__v2di) __W,
   11559 						 (__mmask8) __U);
   11560 }
   11561 
   11562 extern __inline __m128i
   11563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11564 _mm_maskz_rol_epi64 (__mmask8 __U, __m128i __A, const int __B)
   11565 {
   11566   return (__m128i) __builtin_ia32_prolq128_mask ((__v2di) __A, __B,
   11567 						 (__v2di)
   11568 						 _mm_setzero_si128 (),
   11569 						 (__mmask8) __U);
   11570 }
   11571 
   11572 extern __inline __m256i
   11573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11574 _mm256_ror_epi64 (__m256i __A, const int __B)
   11575 {
   11576   return (__m256i) __builtin_ia32_prorq256_mask ((__v4di) __A, __B,
   11577 						 (__v4di)
   11578 						 _mm256_setzero_si256 (),
   11579 						 (__mmask8) -1);
   11580 }
   11581 
   11582 extern __inline __m256i
   11583 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11584 _mm256_mask_ror_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   11585 		       const int __B)
   11586 {
   11587   return (__m256i) __builtin_ia32_prorq256_mask ((__v4di) __A, __B,
   11588 						 (__v4di) __W,
   11589 						 (__mmask8) __U);
   11590 }
   11591 
   11592 extern __inline __m256i
   11593 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11594 _mm256_maskz_ror_epi64 (__mmask8 __U, __m256i __A, const int __B)
   11595 {
   11596   return (__m256i) __builtin_ia32_prorq256_mask ((__v4di) __A, __B,
   11597 						 (__v4di)
   11598 						 _mm256_setzero_si256 (),
   11599 						 (__mmask8) __U);
   11600 }
   11601 
   11602 extern __inline __m128i
   11603 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11604 _mm_ror_epi64 (__m128i __A, const int __B)
   11605 {
   11606   return (__m128i) __builtin_ia32_prorq128_mask ((__v2di) __A, __B,
   11607 						 (__v2di)
   11608 						 _mm_setzero_si128 (),
   11609 						 (__mmask8) -1);
   11610 }
   11611 
   11612 extern __inline __m128i
   11613 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11614 _mm_mask_ror_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   11615 		    const int __B)
   11616 {
   11617   return (__m128i) __builtin_ia32_prorq128_mask ((__v2di) __A, __B,
   11618 						 (__v2di) __W,
   11619 						 (__mmask8) __U);
   11620 }
   11621 
   11622 extern __inline __m128i
   11623 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11624 _mm_maskz_ror_epi64 (__mmask8 __U, __m128i __A, const int __B)
   11625 {
   11626   return (__m128i) __builtin_ia32_prorq128_mask ((__v2di) __A, __B,
   11627 						 (__v2di)
   11628 						 _mm_setzero_si128 (),
   11629 						 (__mmask8) __U);
   11630 }
   11631 
   11632 extern __inline __m128i
   11633 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11634 _mm_alignr_epi32 (__m128i __A, __m128i __B, const int __imm)
   11635 {
   11636   return (__m128i) __builtin_ia32_alignd128_mask ((__v4si) __A,
   11637 						  (__v4si) __B, __imm,
   11638 						  (__v4si)
   11639 						  _mm_setzero_si128 (),
   11640 						  (__mmask8) -1);
   11641 }
   11642 
   11643 extern __inline __m128i
   11644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11645 _mm_mask_alignr_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   11646 		       __m128i __B, const int __imm)
   11647 {
   11648   return (__m128i) __builtin_ia32_alignd128_mask ((__v4si) __A,
   11649 						  (__v4si) __B, __imm,
   11650 						  (__v4si) __W,
   11651 						  (__mmask8) __U);
   11652 }
   11653 
   11654 extern __inline __m128i
   11655 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11656 _mm_maskz_alignr_epi32 (__mmask8 __U, __m128i __A, __m128i __B,
   11657 			const int __imm)
   11658 {
   11659   return (__m128i) __builtin_ia32_alignd128_mask ((__v4si) __A,
   11660 						  (__v4si) __B, __imm,
   11661 						  (__v4si)
   11662 						  _mm_setzero_si128 (),
   11663 						  (__mmask8) __U);
   11664 }
   11665 
   11666 extern __inline __m128i
   11667 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11668 _mm_alignr_epi64 (__m128i __A, __m128i __B, const int __imm)
   11669 {
   11670   return (__m128i) __builtin_ia32_alignq128_mask ((__v2di) __A,
   11671 						  (__v2di) __B, __imm,
   11672 						  (__v2di)
   11673 						  _mm_setzero_si128 (),
   11674 						  (__mmask8) -1);
   11675 }
   11676 
   11677 extern __inline __m128i
   11678 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11679 _mm_mask_alignr_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   11680 		       __m128i __B, const int __imm)
   11681 {
   11682   return (__m128i) __builtin_ia32_alignq128_mask ((__v2di) __A,
   11683 						  (__v2di) __B, __imm,
   11684 						  (__v2di) __W,
   11685 						  (__mmask8) __U);
   11686 }
   11687 
   11688 extern __inline __m128i
   11689 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11690 _mm_maskz_alignr_epi64 (__mmask8 __U, __m128i __A, __m128i __B,
   11691 			const int __imm)
   11692 {
   11693   return (__m128i) __builtin_ia32_alignq128_mask ((__v2di) __A,
   11694 						  (__v2di) __B, __imm,
   11695 						  (__v2di)
   11696 						  _mm_setzero_si128 (),
   11697 						  (__mmask8) __U);
   11698 }
   11699 
   11700 extern __inline __m256i
   11701 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11702 _mm256_alignr_epi32 (__m256i __A, __m256i __B, const int __imm)
   11703 {
   11704   return (__m256i) __builtin_ia32_alignd256_mask ((__v8si) __A,
   11705 						  (__v8si) __B, __imm,
   11706 						  (__v8si)
   11707 						  _mm256_setzero_si256 (),
   11708 						  (__mmask8) -1);
   11709 }
   11710 
   11711 extern __inline __m256i
   11712 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11713 _mm256_mask_alignr_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   11714 			  __m256i __B, const int __imm)
   11715 {
   11716   return (__m256i) __builtin_ia32_alignd256_mask ((__v8si) __A,
   11717 						  (__v8si) __B, __imm,
   11718 						  (__v8si) __W,
   11719 						  (__mmask8) __U);
   11720 }
   11721 
   11722 extern __inline __m256i
   11723 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11724 _mm256_maskz_alignr_epi32 (__mmask8 __U, __m256i __A, __m256i __B,
   11725 			   const int __imm)
   11726 {
   11727   return (__m256i) __builtin_ia32_alignd256_mask ((__v8si) __A,
   11728 						  (__v8si) __B, __imm,
   11729 						  (__v8si)
   11730 						  _mm256_setzero_si256 (),
   11731 						  (__mmask8) __U);
   11732 }
   11733 
   11734 extern __inline __m256i
   11735 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11736 _mm256_alignr_epi64 (__m256i __A, __m256i __B, const int __imm)
   11737 {
   11738   return (__m256i) __builtin_ia32_alignq256_mask ((__v4di) __A,
   11739 						  (__v4di) __B, __imm,
   11740 						  (__v4di)
   11741 						  _mm256_setzero_si256 (),
   11742 						  (__mmask8) -1);
   11743 }
   11744 
   11745 extern __inline __m256i
   11746 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11747 _mm256_mask_alignr_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   11748 			  __m256i __B, const int __imm)
   11749 {
   11750   return (__m256i) __builtin_ia32_alignq256_mask ((__v4di) __A,
   11751 						  (__v4di) __B, __imm,
   11752 						  (__v4di) __W,
   11753 						  (__mmask8) __U);
   11754 }
   11755 
   11756 extern __inline __m256i
   11757 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11758 _mm256_maskz_alignr_epi64 (__mmask8 __U, __m256i __A, __m256i __B,
   11759 			   const int __imm)
   11760 {
   11761   return (__m256i) __builtin_ia32_alignq256_mask ((__v4di) __A,
   11762 						  (__v4di) __B, __imm,
   11763 						  (__v4di)
   11764 						  _mm256_setzero_si256 (),
   11765 						  (__mmask8) __U);
   11766 }
   11767 
   11768 extern __inline __m128i
   11769 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11770 _mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A,
   11771 		   const int __I)
   11772 {
   11773   return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, __I,
   11774 						  (__v8hi) __W,
   11775 						  (__mmask8) __U);
   11776 }
   11777 
   11778 extern __inline __m128i
   11779 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11780 _mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A, const int __I)
   11781 {
   11782   return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, __I,
   11783 						  (__v8hi)
   11784 						  _mm_setzero_si128 (),
   11785 						  (__mmask8) __U);
   11786 }
   11787 
   11788 extern __inline __m128i
   11789 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11790 _mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A,
   11791 		      const int __I)
   11792 {
   11793   return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, __I,
   11794 						     (__v8hi) __W,
   11795 						     (__mmask8) __U);
   11796 }
   11797 
   11798 extern __inline __m128i
   11799 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11800 _mm256_maskz_cvtps_ph (__mmask8 __U, __m256 __A, const int __I)
   11801 {
   11802   return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, __I,
   11803 						     (__v8hi)
   11804 						     _mm_setzero_si128 (),
   11805 						     (__mmask8) __U);
   11806 }
   11807 
   11808 extern __inline __m256i
   11809 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11810 _mm256_mask_srai_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   11811 			const int __imm)
   11812 {
   11813   return (__m256i) __builtin_ia32_psradi256_mask ((__v8si) __A, __imm,
   11814 						  (__v8si) __W,
   11815 						  (__mmask8) __U);
   11816 }
   11817 
   11818 extern __inline __m256i
   11819 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11820 _mm256_maskz_srai_epi32 (__mmask8 __U, __m256i __A, const int __imm)
   11821 {
   11822   return (__m256i) __builtin_ia32_psradi256_mask ((__v8si) __A, __imm,
   11823 						  (__v8si)
   11824 						  _mm256_setzero_si256 (),
   11825 						  (__mmask8) __U);
   11826 }
   11827 
   11828 extern __inline __m128i
   11829 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11830 _mm_mask_srai_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
   11831 		     const int __imm)
   11832 {
   11833   return (__m128i) __builtin_ia32_psradi128_mask ((__v4si) __A, __imm,
   11834 						  (__v4si) __W,
   11835 						  (__mmask8) __U);
   11836 }
   11837 
   11838 extern __inline __m128i
   11839 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11840 _mm_maskz_srai_epi32 (__mmask8 __U, __m128i __A, const int __imm)
   11841 {
   11842   return (__m128i) __builtin_ia32_psradi128_mask ((__v4si) __A, __imm,
   11843 						  (__v4si)
   11844 						  _mm_setzero_si128 (),
   11845 						  (__mmask8) __U);
   11846 }
   11847 
   11848 extern __inline __m256i
   11849 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11850 _mm256_srai_epi64 (__m256i __A, const int __imm)
   11851 {
   11852   return (__m256i) __builtin_ia32_psraqi256_mask ((__v4di) __A, __imm,
   11853 						  (__v4di)
   11854 						  _mm256_setzero_si256 (),
   11855 						  (__mmask8) -1);
   11856 }
   11857 
   11858 extern __inline __m256i
   11859 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11860 _mm256_mask_srai_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   11861 			const int __imm)
   11862 {
   11863   return (__m256i) __builtin_ia32_psraqi256_mask ((__v4di) __A, __imm,
   11864 						  (__v4di) __W,
   11865 						  (__mmask8) __U);
   11866 }
   11867 
   11868 extern __inline __m256i
   11869 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11870 _mm256_maskz_srai_epi64 (__mmask8 __U, __m256i __A, const int __imm)
   11871 {
   11872   return (__m256i) __builtin_ia32_psraqi256_mask ((__v4di) __A, __imm,
   11873 						  (__v4di)
   11874 						  _mm256_setzero_si256 (),
   11875 						  (__mmask8) __U);
   11876 }
   11877 
   11878 extern __inline __m128i
   11879 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11880 _mm_srai_epi64 (__m128i __A, const int __imm)
   11881 {
   11882   return (__m128i) __builtin_ia32_psraqi128_mask ((__v2di) __A, __imm,
   11883 						  (__v2di)
   11884 						  _mm_setzero_si128 (),
   11885 						  (__mmask8) -1);
   11886 }
   11887 
   11888 extern __inline __m128i
   11889 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11890 _mm_mask_srai_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
   11891 		     const int __imm)
   11892 {
   11893   return (__m128i) __builtin_ia32_psraqi128_mask ((__v2di) __A, __imm,
   11894 						  (__v2di) __W,
   11895 						  (__mmask8) __U);
   11896 }
   11897 
   11898 extern __inline __m128i
   11899 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11900 _mm_maskz_srai_epi64 (__mmask8 __U, __m128i __A, const int __imm)
   11901 {
   11902   return (__m128i) __builtin_ia32_psraqi128_mask ((__v2di) __A, __imm,
   11903 						  (__v2di)
   11904 						  _mm_setzero_si128 (),
   11905 						  (__mmask8) __U);
   11906 }
   11907 
   11908 extern __inline __m128i
   11909 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11910 _mm_mask_slli_epi32 (__m128i __W, __mmask8 __U, __m128i __A, int __B)
   11911 {
   11912   return (__m128i) __builtin_ia32_pslldi128_mask ((__v4si) __A, __B,
   11913 						  (__v4si) __W,
   11914 						  (__mmask8) __U);
   11915 }
   11916 
   11917 extern __inline __m128i
   11918 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11919 _mm_maskz_slli_epi32 (__mmask8 __U, __m128i __A, int __B)
   11920 {
   11921   return (__m128i) __builtin_ia32_pslldi128_mask ((__v4si) __A, __B,
   11922 						  (__v4si)
   11923 						  _mm_setzero_si128 (),
   11924 						  (__mmask8) __U);
   11925 }
   11926 
   11927 extern __inline __m128i
   11928 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11929 _mm_mask_slli_epi64 (__m128i __W, __mmask8 __U, __m128i __A, int __B)
   11930 {
   11931   return (__m128i) __builtin_ia32_psllqi128_mask ((__v2di) __A, __B,
   11932 						  (__v2di) __W,
   11933 						  (__mmask8) __U);
   11934 }
   11935 
   11936 extern __inline __m128i
   11937 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11938 _mm_maskz_slli_epi64 (__mmask8 __U, __m128i __A, int __B)
   11939 {
   11940   return (__m128i) __builtin_ia32_psllqi128_mask ((__v2di) __A, __B,
   11941 						  (__v2di)
   11942 						  _mm_setzero_si128 (),
   11943 						  (__mmask8) __U);
   11944 }
   11945 
   11946 extern __inline __m256i
   11947 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11948 _mm256_mask_slli_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
   11949 			int __B)
   11950 {
   11951   return (__m256i) __builtin_ia32_pslldi256_mask ((__v8si) __A, __B,
   11952 						  (__v8si) __W,
   11953 						  (__mmask8) __U);
   11954 }
   11955 
   11956 extern __inline __m256i
   11957 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11958 _mm256_maskz_slli_epi32 (__mmask8 __U, __m256i __A, int __B)
   11959 {
   11960   return (__m256i) __builtin_ia32_pslldi256_mask ((__v8si) __A, __B,
   11961 						  (__v8si)
   11962 						  _mm256_setzero_si256 (),
   11963 						  (__mmask8) __U);
   11964 }
   11965 
   11966 extern __inline __m256i
   11967 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11968 _mm256_mask_slli_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
   11969 			int __B)
   11970 {
   11971   return (__m256i) __builtin_ia32_psllqi256_mask ((__v4di) __A, __B,
   11972 						  (__v4di) __W,
   11973 						  (__mmask8) __U);
   11974 }
   11975 
   11976 extern __inline __m256i
   11977 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11978 _mm256_maskz_slli_epi64 (__mmask8 __U, __m256i __A, int __B)
   11979 {
   11980   return (__m256i) __builtin_ia32_psllqi256_mask ((__v4di) __A, __B,
   11981 						  (__v4di)
   11982 						  _mm256_setzero_si256 (),
   11983 						  (__mmask8) __U);
   11984 }
   11985 
   11986 extern __inline __m256d
   11987 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11988 _mm256_mask_permutex_pd (__m256d __W, __mmask8 __U, __m256d __X,
   11989 			 const int __imm)
   11990 {
   11991   return (__m256d) __builtin_ia32_permdf256_mask ((__v4df) __X, __imm,
   11992 						  (__v4df) __W,
   11993 						  (__mmask8) __U);
   11994 }
   11995 
   11996 extern __inline __m256d
   11997 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   11998 _mm256_maskz_permutex_pd (__mmask8 __U, __m256d __X, const int __imm)
   11999 {
   12000   return (__m256d) __builtin_ia32_permdf256_mask ((__v4df) __X, __imm,
   12001 						  (__v4df)
   12002 						  _mm256_setzero_pd (),
   12003 						  (__mmask8) __U);
   12004 }
   12005 
   12006 extern __inline __m256d
   12007 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12008 _mm256_mask_permute_pd (__m256d __W, __mmask8 __U, __m256d __X,
   12009 			const int __C)
   12010 {
   12011   return (__m256d) __builtin_ia32_vpermilpd256_mask ((__v4df) __X, __C,
   12012 						     (__v4df) __W,
   12013 						     (__mmask8) __U);
   12014 }
   12015 
   12016 extern __inline __m256d
   12017 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12018 _mm256_maskz_permute_pd (__mmask8 __U, __m256d __X, const int __C)
   12019 {
   12020   return (__m256d) __builtin_ia32_vpermilpd256_mask ((__v4df) __X, __C,
   12021 						     (__v4df)
   12022 						     _mm256_setzero_pd (),
   12023 						     (__mmask8) __U);
   12024 }
   12025 
   12026 extern __inline __m128d
   12027 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12028 _mm_mask_permute_pd (__m128d __W, __mmask8 __U, __m128d __X,
   12029 		     const int __C)
   12030 {
   12031   return (__m128d) __builtin_ia32_vpermilpd_mask ((__v2df) __X, __C,
   12032 						  (__v2df) __W,
   12033 						  (__mmask8) __U);
   12034 }
   12035 
   12036 extern __inline __m128d
   12037 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12038 _mm_maskz_permute_pd (__mmask8 __U, __m128d __X, const int __C)
   12039 {
   12040   return (__m128d) __builtin_ia32_vpermilpd_mask ((__v2df) __X, __C,
   12041 						  (__v2df)
   12042 						  _mm_setzero_pd (),
   12043 						  (__mmask8) __U);
   12044 }
   12045 
   12046 extern __inline __m256
   12047 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12048 _mm256_mask_permute_ps (__m256 __W, __mmask8 __U, __m256 __X,
   12049 			const int __C)
   12050 {
   12051   return (__m256) __builtin_ia32_vpermilps256_mask ((__v8sf) __X, __C,
   12052 						    (__v8sf) __W,
   12053 						    (__mmask8) __U);
   12054 }
   12055 
   12056 extern __inline __m256
   12057 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12058 _mm256_maskz_permute_ps (__mmask8 __U, __m256 __X, const int __C)
   12059 {
   12060   return (__m256) __builtin_ia32_vpermilps256_mask ((__v8sf) __X, __C,
   12061 						    (__v8sf)
   12062 						    _mm256_setzero_ps (),
   12063 						    (__mmask8) __U);
   12064 }
   12065 
   12066 extern __inline __m128
   12067 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12068 _mm_mask_permute_ps (__m128 __W, __mmask8 __U, __m128 __X,
   12069 		     const int __C)
   12070 {
   12071   return (__m128) __builtin_ia32_vpermilps_mask ((__v4sf) __X, __C,
   12072 						 (__v4sf) __W,
   12073 						 (__mmask8) __U);
   12074 }
   12075 
   12076 extern __inline __m128
   12077 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12078 _mm_maskz_permute_ps (__mmask8 __U, __m128 __X, const int __C)
   12079 {
   12080   return (__m128) __builtin_ia32_vpermilps_mask ((__v4sf) __X, __C,
   12081 						 (__v4sf)
   12082 						 _mm_setzero_ps (),
   12083 						 (__mmask8) __U);
   12084 }
   12085 
   12086 extern __inline __m256d
   12087 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12088 _mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W)
   12089 {
   12090   return (__m256d) __builtin_ia32_blendmpd_256_mask ((__v4df) __A,
   12091 						     (__v4df) __W,
   12092 						     (__mmask8) __U);
   12093 }
   12094 
   12095 extern __inline __m256
   12096 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12097 _mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W)
   12098 {
   12099   return (__m256) __builtin_ia32_blendmps_256_mask ((__v8sf) __A,
   12100 						    (__v8sf) __W,
   12101 						    (__mmask8) __U);
   12102 }
   12103 
   12104 extern __inline __m256i
   12105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12106 _mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W)
   12107 {
   12108   return (__m256i) __builtin_ia32_blendmq_256_mask ((__v4di) __A,
   12109 						    (__v4di) __W,
   12110 						    (__mmask8) __U);
   12111 }
   12112 
   12113 extern __inline __m256i
   12114 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12115 _mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W)
   12116 {
   12117   return (__m256i) __builtin_ia32_blendmd_256_mask ((__v8si) __A,
   12118 						    (__v8si) __W,
   12119 						    (__mmask8) __U);
   12120 }
   12121 
   12122 extern __inline __m128d
   12123 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12124 _mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W)
   12125 {
   12126   return (__m128d) __builtin_ia32_blendmpd_128_mask ((__v2df) __A,
   12127 						     (__v2df) __W,
   12128 						     (__mmask8) __U);
   12129 }
   12130 
   12131 extern __inline __m128
   12132 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12133 _mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W)
   12134 {
   12135   return (__m128) __builtin_ia32_blendmps_128_mask ((__v4sf) __A,
   12136 						    (__v4sf) __W,
   12137 						    (__mmask8) __U);
   12138 }
   12139 
   12140 extern __inline __m128i
   12141 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12142 _mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W)
   12143 {
   12144   return (__m128i) __builtin_ia32_blendmq_128_mask ((__v2di) __A,
   12145 						    (__v2di) __W,
   12146 						    (__mmask8) __U);
   12147 }
   12148 
   12149 extern __inline __m128i
   12150 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12151 _mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W)
   12152 {
   12153   return (__m128i) __builtin_ia32_blendmd_128_mask ((__v4si) __A,
   12154 						    (__v4si) __W,
   12155 						    (__mmask8) __U);
   12156 }
   12157 
   12158 extern __inline __mmask8
   12159 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12160 _mm256_cmp_epi64_mask (__m256i __X, __m256i __Y, const int __P)
   12161 {
   12162   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   12163 						 (__v4di) __Y, __P,
   12164 						 (__mmask8) -1);
   12165 }
   12166 
   12167 extern __inline __mmask8
   12168 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12169 _mm256_cmp_epi32_mask (__m256i __X, __m256i __Y, const int __P)
   12170 {
   12171   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   12172 						 (__v8si) __Y, __P,
   12173 						 (__mmask8) -1);
   12174 }
   12175 
   12176 extern __inline __mmask8
   12177 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12178 _mm256_cmp_epu64_mask (__m256i __X, __m256i __Y, const int __P)
   12179 {
   12180   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   12181 						  (__v4di) __Y, __P,
   12182 						  (__mmask8) -1);
   12183 }
   12184 
   12185 extern __inline __mmask8
   12186 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12187 _mm256_cmp_epu32_mask (__m256i __X, __m256i __Y, const int __P)
   12188 {
   12189   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   12190 						  (__v8si) __Y, __P,
   12191 						  (__mmask8) -1);
   12192 }
   12193 
   12194 extern __inline __mmask8
   12195 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12196 _mm256_cmp_pd_mask (__m256d __X, __m256d __Y, const int __P)
   12197 {
   12198   return (__mmask8) __builtin_ia32_cmppd256_mask ((__v4df) __X,
   12199 						  (__v4df) __Y, __P,
   12200 						  (__mmask8) -1);
   12201 }
   12202 
   12203 extern __inline __mmask8
   12204 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12205 _mm256_cmp_ps_mask (__m256 __X, __m256 __Y, const int __P)
   12206 {
   12207   return (__mmask8) __builtin_ia32_cmpps256_mask ((__v8sf) __X,
   12208 						  (__v8sf) __Y, __P,
   12209 						  (__mmask8) -1);
   12210 }
   12211 
   12212 extern __inline __mmask8
   12213 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12214 _mm256_mask_cmp_epi64_mask (__mmask8 __U, __m256i __X, __m256i __Y,
   12215 			    const int __P)
   12216 {
   12217   return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
   12218 						 (__v4di) __Y, __P,
   12219 						 (__mmask8) __U);
   12220 }
   12221 
   12222 extern __inline __mmask8
   12223 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12224 _mm256_mask_cmp_epi32_mask (__mmask8 __U, __m256i __X, __m256i __Y,
   12225 			    const int __P)
   12226 {
   12227   return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
   12228 						 (__v8si) __Y, __P,
   12229 						 (__mmask8) __U);
   12230 }
   12231 
   12232 extern __inline __mmask8
   12233 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12234 _mm256_mask_cmp_epu64_mask (__mmask8 __U, __m256i __X, __m256i __Y,
   12235 			    const int __P)
   12236 {
   12237   return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
   12238 						  (__v4di) __Y, __P,
   12239 						  (__mmask8) __U);
   12240 }
   12241 
   12242 extern __inline __mmask8
   12243 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12244 _mm256_mask_cmp_epu32_mask (__mmask8 __U, __m256i __X, __m256i __Y,
   12245 			    const int __P)
   12246 {
   12247   return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
   12248 						  (__v8si) __Y, __P,
   12249 						  (__mmask8) __U);
   12250 }
   12251 
   12252 extern __inline __mmask8
   12253 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12254 _mm256_mask_cmp_pd_mask (__mmask8 __U, __m256d __X, __m256d __Y,
   12255 			 const int __P)
   12256 {
   12257   return (__mmask8) __builtin_ia32_cmppd256_mask ((__v4df) __X,
   12258 						  (__v4df) __Y, __P,
   12259 						  (__mmask8) __U);
   12260 }
   12261 
   12262 extern __inline __mmask8
   12263 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12264 _mm256_mask_cmp_ps_mask (__mmask8 __U, __m256 __X, __m256 __Y,
   12265 			 const int __P)
   12266 {
   12267   return (__mmask8) __builtin_ia32_cmpps256_mask ((__v8sf) __X,
   12268 						  (__v8sf) __Y, __P,
   12269 						  (__mmask8) __U);
   12270 }
   12271 
   12272 extern __inline __mmask8
   12273 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12274 _mm_cmp_epi64_mask (__m128i __X, __m128i __Y, const int __P)
   12275 {
   12276   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   12277 						 (__v2di) __Y, __P,
   12278 						 (__mmask8) -1);
   12279 }
   12280 
   12281 extern __inline __mmask8
   12282 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12283 _mm_cmp_epi32_mask (__m128i __X, __m128i __Y, const int __P)
   12284 {
   12285   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   12286 						 (__v4si) __Y, __P,
   12287 						 (__mmask8) -1);
   12288 }
   12289 
   12290 extern __inline __mmask8
   12291 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12292 _mm_cmp_epu64_mask (__m128i __X, __m128i __Y, const int __P)
   12293 {
   12294   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   12295 						  (__v2di) __Y, __P,
   12296 						  (__mmask8) -1);
   12297 }
   12298 
   12299 extern __inline __mmask8
   12300 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12301 _mm_cmp_epu32_mask (__m128i __X, __m128i __Y, const int __P)
   12302 {
   12303   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   12304 						  (__v4si) __Y, __P,
   12305 						  (__mmask8) -1);
   12306 }
   12307 
   12308 extern __inline __mmask8
   12309 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12310 _mm_cmp_pd_mask (__m128d __X, __m128d __Y, const int __P)
   12311 {
   12312   return (__mmask8) __builtin_ia32_cmppd128_mask ((__v2df) __X,
   12313 						  (__v2df) __Y, __P,
   12314 						  (__mmask8) -1);
   12315 }
   12316 
   12317 extern __inline __mmask8
   12318 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12319 _mm_cmp_ps_mask (__m128 __X, __m128 __Y, const int __P)
   12320 {
   12321   return (__mmask8) __builtin_ia32_cmpps128_mask ((__v4sf) __X,
   12322 						  (__v4sf) __Y, __P,
   12323 						  (__mmask8) -1);
   12324 }
   12325 
   12326 extern __inline __mmask8
   12327 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12328 _mm_mask_cmp_epi64_mask (__mmask8 __U, __m128i __X, __m128i __Y,
   12329 			 const int __P)
   12330 {
   12331   return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
   12332 						 (__v2di) __Y, __P,
   12333 						 (__mmask8) __U);
   12334 }
   12335 
   12336 extern __inline __mmask8
   12337 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12338 _mm_mask_cmp_epi32_mask (__mmask8 __U, __m128i __X, __m128i __Y,
   12339 			 const int __P)
   12340 {
   12341   return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
   12342 						 (__v4si) __Y, __P,
   12343 						 (__mmask8) __U);
   12344 }
   12345 
   12346 extern __inline __mmask8
   12347 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12348 _mm_mask_cmp_epu64_mask (__mmask8 __U, __m128i __X, __m128i __Y,
   12349 			 const int __P)
   12350 {
   12351   return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
   12352 						  (__v2di) __Y, __P,
   12353 						  (__mmask8) __U);
   12354 }
   12355 
   12356 extern __inline __mmask8
   12357 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12358 _mm_mask_cmp_epu32_mask (__mmask8 __U, __m128i __X, __m128i __Y,
   12359 			 const int __P)
   12360 {
   12361   return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
   12362 						  (__v4si) __Y, __P,
   12363 						  (__mmask8) __U);
   12364 }
   12365 
   12366 extern __inline __mmask8
   12367 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12368 _mm_mask_cmp_pd_mask (__mmask8 __U, __m128d __X, __m128d __Y,
   12369 		      const int __P)
   12370 {
   12371   return (__mmask8) __builtin_ia32_cmppd128_mask ((__v2df) __X,
   12372 						  (__v2df) __Y, __P,
   12373 						  (__mmask8) __U);
   12374 }
   12375 
   12376 extern __inline __mmask8
   12377 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12378 _mm_mask_cmp_ps_mask (__mmask8 __U, __m128 __X, __m128 __Y,
   12379 		      const int __P)
   12380 {
   12381   return (__mmask8) __builtin_ia32_cmpps128_mask ((__v4sf) __X,
   12382 						  (__v4sf) __Y, __P,
   12383 						  (__mmask8) __U);
   12384 }
   12385 
   12386 extern __inline __m256d
   12387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   12388 _mm256_permutex_pd (__m256d __X, const int __M)
   12389 {
   12390   return (__m256d) __builtin_ia32_permdf256_mask ((__v4df) __X, __M,
   12391 						  (__v4df)
   12392 						  _mm256_undefined_pd (),
   12393 						  (__mmask8) -1);
   12394 }
   12395 
   12396 #else
   12397 #define _mm256_permutex_pd(X, M)						\
   12398   ((__m256d) __builtin_ia32_permdf256_mask ((__v4df)(__m256d)(X), (int)(M),	\
   12399 					    (__v4df)(__m256d)			\
   12400 					    _mm256_undefined_pd (),		\
   12401 					    (__mmask8)-1))
   12402 
   12403 #define _mm256_permutex_epi64(X, I)               \
   12404   ((__m256i) __builtin_ia32_permdi256_mask ((__v4di)(__m256i)(X), \
   12405 					    (int)(I),		\
   12406 					    (__v4di)(__m256i)	\
   12407 					    (_mm256_setzero_si256 ()),\
   12408 					    (__mmask8) -1))
   12409 
   12410 #define _mm256_maskz_permutex_epi64(M, X, I)                    \
   12411   ((__m256i) __builtin_ia32_permdi256_mask ((__v4di)(__m256i)(X),    \
   12412 					    (int)(I),                \
   12413 					    (__v4di)(__m256i)        \
   12414 					    (_mm256_setzero_si256 ()),\
   12415 					    (__mmask8)(M)))
   12416 
   12417 #define _mm256_mask_permutex_epi64(W, M, X, I)               \
   12418   ((__m256i) __builtin_ia32_permdi256_mask ((__v4di)(__m256i)(X), \
   12419 					    (int)(I),             \
   12420 					    (__v4di)(__m256i)(W), \
   12421 					    (__mmask8)(M)))
   12422 
   12423 #define _mm256_insertf32x4(X, Y, C)                                     \
   12424   ((__m256) __builtin_ia32_insertf32x4_256_mask ((__v8sf)(__m256) (X),  \
   12425     (__v4sf)(__m128) (Y), (int) (C),					\
   12426     (__v8sf)(__m256)_mm256_setzero_ps (),				\
   12427     (__mmask8)-1))
   12428 
   12429 #define _mm256_mask_insertf32x4(W, U, X, Y, C)                          \
   12430   ((__m256) __builtin_ia32_insertf32x4_256_mask ((__v8sf)(__m256) (X),  \
   12431     (__v4sf)(__m128) (Y), (int) (C),					\
   12432     (__v8sf)(__m256)(W),						\
   12433     (__mmask8)(U)))
   12434 
   12435 #define _mm256_maskz_insertf32x4(U, X, Y, C)                            \
   12436   ((__m256) __builtin_ia32_insertf32x4_256_mask ((__v8sf)(__m256) (X),	\
   12437     (__v4sf)(__m128) (Y), (int) (C),					\
   12438     (__v8sf)(__m256)_mm256_setzero_ps (),				\
   12439     (__mmask8)(U)))
   12440 
   12441 #define _mm256_inserti32x4(X, Y, C)                                     \
   12442   ((__m256i) __builtin_ia32_inserti32x4_256_mask ((__v8si)(__m256i) (X),\
   12443     (__v4si)(__m128i) (Y), (int) (C),					\
   12444     (__v8si)(__m256i)_mm256_setzero_si256 (),				\
   12445     (__mmask8)-1))
   12446 
   12447 #define _mm256_mask_inserti32x4(W, U, X, Y, C)                          \
   12448   ((__m256i) __builtin_ia32_inserti32x4_256_mask ((__v8si)(__m256i) (X),\
   12449     (__v4si)(__m128i) (Y), (int) (C),					\
   12450     (__v8si)(__m256i)(W),						\
   12451     (__mmask8)(U)))
   12452 
   12453 #define _mm256_maskz_inserti32x4(U, X, Y, C)                            \
   12454   ((__m256i) __builtin_ia32_inserti32x4_256_mask ((__v8si)(__m256i) (X),\
   12455     (__v4si)(__m128i) (Y), (int) (C),					\
   12456     (__v8si)(__m256i)_mm256_setzero_si256 (),				\
   12457     (__mmask8)(U)))
   12458 
   12459 #define _mm256_extractf32x4_ps(X, C)                                    \
   12460   ((__m128) __builtin_ia32_extractf32x4_256_mask ((__v8sf)(__m256) (X), \
   12461     (int) (C),								\
   12462     (__v4sf)(__m128)_mm_setzero_ps (),					\
   12463     (__mmask8)-1))
   12464 
   12465 #define _mm256_mask_extractf32x4_ps(W, U, X, C)                         \
   12466   ((__m128) __builtin_ia32_extractf32x4_256_mask ((__v8sf)(__m256) (X), \
   12467     (int) (C),								\
   12468     (__v4sf)(__m128)(W),						\
   12469     (__mmask8)(U)))
   12470 
   12471 #define _mm256_maskz_extractf32x4_ps(U, X, C)                           \
   12472   ((__m128) __builtin_ia32_extractf32x4_256_mask ((__v8sf)(__m256) (X), \
   12473     (int) (C),								\
   12474     (__v4sf)(__m128)_mm_setzero_ps (),					\
   12475     (__mmask8)(U)))
   12476 
   12477 #define _mm256_extracti32x4_epi32(X, C)                                 \
   12478   ((__m128i) __builtin_ia32_extracti32x4_256_mask ((__v8si)(__m256i) (X),\
   12479     (int) (C), (__v4si)(__m128i)_mm_setzero_si128 (), (__mmask8)-1))
   12480 
   12481 #define _mm256_mask_extracti32x4_epi32(W, U, X, C)                      \
   12482   ((__m128i) __builtin_ia32_extracti32x4_256_mask ((__v8si)(__m256i) (X),\
   12483     (int) (C), (__v4si)(__m128i)(W), (__mmask8)(U)))
   12484 
   12485 #define _mm256_maskz_extracti32x4_epi32(U, X, C)                        \
   12486   ((__m128i) __builtin_ia32_extracti32x4_256_mask ((__v8si)(__m256i) (X),\
   12487     (int) (C), (__v4si)(__m128i)_mm_setzero_si128 (), (__mmask8)(U)))
   12488 
   12489 #define _mm256_shuffle_i64x2(X, Y, C)                                                   \
   12490   ((__m256i)  __builtin_ia32_shuf_i64x2_256_mask ((__v4di)(__m256i)(X),                 \
   12491                                                   (__v4di)(__m256i)(Y), (int)(C),       \
   12492                                                   (__v4di)(__m256i)_mm256_setzero_si256 (), \
   12493                                                   (__mmask8)-1))
   12494 
   12495 #define _mm256_mask_shuffle_i64x2(W, U, X, Y, C)                                        \
   12496   ((__m256i)  __builtin_ia32_shuf_i64x2_256_mask ((__v4di)(__m256i)(X),                 \
   12497                                                   (__v4di)(__m256i)(Y), (int)(C),       \
   12498                                                   (__v4di)(__m256i)(W),\
   12499                                                   (__mmask8)(U)))
   12500 
   12501 #define _mm256_maskz_shuffle_i64x2(U, X, Y, C)                                          \
   12502   ((__m256i)  __builtin_ia32_shuf_i64x2_256_mask ((__v4di)(__m256i)(X),                 \
   12503                                                   (__v4di)(__m256i)(Y), (int)(C),       \
   12504                                                   (__v4di)(__m256i)_mm256_setzero_si256 (), \
   12505                                                   (__mmask8)(U)))
   12506 
   12507 #define _mm256_shuffle_i32x4(X, Y, C)                                                   \
   12508   ((__m256i)  __builtin_ia32_shuf_i32x4_256_mask ((__v8si)(__m256i)(X),                 \
   12509                                                   (__v8si)(__m256i)(Y), (int)(C),       \
   12510 						  (__v8si)(__m256i)			\
   12511 						  _mm256_setzero_si256 (),		\
   12512                                                   (__mmask8)-1))
   12513 
   12514 #define _mm256_mask_shuffle_i32x4(W, U, X, Y, C)                                        \
   12515   ((__m256i)  __builtin_ia32_shuf_i32x4_256_mask ((__v8si)(__m256i)(X),                 \
   12516                                                   (__v8si)(__m256i)(Y), (int)(C),       \
   12517                                                   (__v8si)(__m256i)(W),                 \
   12518                                                   (__mmask8)(U)))
   12519 
   12520 #define _mm256_maskz_shuffle_i32x4(U, X, Y, C)                                          \
   12521   ((__m256i)  __builtin_ia32_shuf_i32x4_256_mask ((__v8si)(__m256i)(X),                 \
   12522                                                   (__v8si)(__m256i)(Y), (int)(C),       \
   12523 						  (__v8si)(__m256i)			\
   12524 						  _mm256_setzero_si256 (),		\
   12525                                                   (__mmask8)(U)))
   12526 
   12527 #define _mm256_shuffle_f64x2(X, Y, C)                                                   \
   12528   ((__m256d)  __builtin_ia32_shuf_f64x2_256_mask ((__v4df)(__m256d)(X),                 \
   12529                                                   (__v4df)(__m256d)(Y), (int)(C),       \
   12530 						  (__v4df)(__m256d)_mm256_setzero_pd (),\
   12531                                                   (__mmask8)-1))
   12532 
   12533 #define _mm256_mask_shuffle_f64x2(W, U, X, Y, C)                                        \
   12534   ((__m256d)  __builtin_ia32_shuf_f64x2_256_mask ((__v4df)(__m256d)(X),                 \
   12535                                                   (__v4df)(__m256d)(Y), (int)(C),       \
   12536                                                   (__v4df)(__m256d)(W),                 \
   12537                                                   (__mmask8)(U)))
   12538 
   12539 #define _mm256_maskz_shuffle_f64x2(U, X, Y, C)                                          \
   12540   ((__m256d)  __builtin_ia32_shuf_f64x2_256_mask ((__v4df)(__m256d)(X),                 \
   12541                                                   (__v4df)(__m256d)(Y), (int)(C),       \
   12542 						  (__v4df)(__m256d)_mm256_setzero_pd( ),\
   12543                                                   (__mmask8)(U)))
   12544 
   12545 #define _mm256_shuffle_f32x4(X, Y, C)                                                   \
   12546   ((__m256)  __builtin_ia32_shuf_f32x4_256_mask ((__v8sf)(__m256)(X),                   \
   12547                                                  (__v8sf)(__m256)(Y), (int)(C),         \
   12548 						 (__v8sf)(__m256)_mm256_setzero_ps (),  \
   12549                                                  (__mmask8)-1))
   12550 
   12551 #define _mm256_mask_shuffle_f32x4(W, U, X, Y, C)                                        \
   12552   ((__m256)  __builtin_ia32_shuf_f32x4_256_mask ((__v8sf)(__m256)(X),                   \
   12553                                                  (__v8sf)(__m256)(Y), (int)(C),         \
   12554                                                  (__v8sf)(__m256)(W),                   \
   12555                                                  (__mmask8)(U)))
   12556 
   12557 #define _mm256_maskz_shuffle_f32x4(U, X, Y, C)                                          \
   12558   ((__m256)  __builtin_ia32_shuf_f32x4_256_mask ((__v8sf)(__m256)(X),                   \
   12559                                                  (__v8sf)(__m256)(Y), (int)(C),         \
   12560 						 (__v8sf)(__m256)_mm256_setzero_ps (),  \
   12561                                                  (__mmask8)(U)))
   12562 
   12563 #define _mm256_mask_shuffle_pd(W, U, A, B, C)                                   \
   12564   ((__m256d)__builtin_ia32_shufpd256_mask ((__v4df)(__m256d)(A),                \
   12565                                            (__v4df)(__m256d)(B), (int)(C),      \
   12566                                            (__v4df)(__m256d)(W),                \
   12567                                            (__mmask8)(U)))
   12568 
   12569 #define _mm256_maskz_shuffle_pd(U, A, B, C)                                     \
   12570   ((__m256d)__builtin_ia32_shufpd256_mask ((__v4df)(__m256d)(A),                \
   12571                                            (__v4df)(__m256d)(B), (int)(C),      \
   12572 					   (__v4df)(__m256d)			\
   12573 					   _mm256_setzero_pd (),		\
   12574                                            (__mmask8)(U)))
   12575 
   12576 #define _mm_mask_shuffle_pd(W, U, A, B, C)                                      \
   12577   ((__m128d)__builtin_ia32_shufpd128_mask ((__v2df)(__m128d)(A),                \
   12578                                            (__v2df)(__m128d)(B), (int)(C),      \
   12579                                            (__v2df)(__m128d)(W),                \
   12580                                            (__mmask8)(U)))
   12581 
   12582 #define _mm_maskz_shuffle_pd(U, A, B, C)                                        \
   12583   ((__m128d)__builtin_ia32_shufpd128_mask ((__v2df)(__m128d)(A),                \
   12584                                            (__v2df)(__m128d)(B), (int)(C),      \
   12585 					   (__v2df)(__m128d)_mm_setzero_pd (),  \
   12586                                            (__mmask8)(U)))
   12587 
   12588 #define _mm256_mask_shuffle_ps(W, U, A, B, C)                                   \
   12589   ((__m256) __builtin_ia32_shufps256_mask ((__v8sf)(__m256)(A),                 \
   12590                                            (__v8sf)(__m256)(B), (int)(C),       \
   12591                                            (__v8sf)(__m256)(W),                 \
   12592                                            (__mmask8)(U)))
   12593 
   12594 #define _mm256_maskz_shuffle_ps(U, A, B, C)                                     \
   12595   ((__m256) __builtin_ia32_shufps256_mask ((__v8sf)(__m256)(A),                 \
   12596                                            (__v8sf)(__m256)(B), (int)(C),       \
   12597 					   (__v8sf)(__m256)_mm256_setzero_ps (),\
   12598                                            (__mmask8)(U)))
   12599 
   12600 #define _mm_mask_shuffle_ps(W, U, A, B, C)                                      \
   12601   ((__m128) __builtin_ia32_shufps128_mask ((__v4sf)(__m128)(A),                 \
   12602                                            (__v4sf)(__m128)(B), (int)(C),       \
   12603                                            (__v4sf)(__m128)(W),                 \
   12604                                            (__mmask8)(U)))
   12605 
   12606 #define _mm_maskz_shuffle_ps(U, A, B, C)                                        \
   12607   ((__m128) __builtin_ia32_shufps128_mask ((__v4sf)(__m128)(A),                 \
   12608                                            (__v4sf)(__m128)(B), (int)(C),       \
   12609 					   (__v4sf)(__m128)_mm_setzero_ps (),   \
   12610                                            (__mmask8)(U)))
   12611 
   12612 #define _mm256_fixupimm_pd(X, Y, Z, C)                                          \
   12613   ((__m256d)__builtin_ia32_fixupimmpd256_mask ((__v4df)(__m256d)(X),		\
   12614 					       (__v4df)(__m256d)(Y),		\
   12615 					       (__v4di)(__m256i)(Z), (int)(C),	\
   12616 					       (__mmask8)(-1)))
   12617 
   12618 #define _mm256_mask_fixupimm_pd(X, U, Y, Z, C)                                  \
   12619    ((__m256d)__builtin_ia32_fixupimmpd256_mask ((__v4df)(__m256d)(X),           \
   12620 						(__v4df)(__m256d)(Y),           \
   12621 						(__v4di)(__m256i)(Z), (int)(C), \
   12622 						(__mmask8)(U)))
   12623 
   12624 #define _mm256_maskz_fixupimm_pd(U, X, Y, Z, C)                                 \
   12625    ((__m256d)__builtin_ia32_fixupimmpd256_maskz ((__v4df)(__m256d)(X),          \
   12626 						 (__v4df)(__m256d)(Y),          \
   12627 						 (__v4di)(__m256i)(Z), (int)(C),\
   12628 						 (__mmask8)(U)))
   12629 
   12630 #define _mm256_fixupimm_ps(X, Y, Z, C)						\
   12631   ((__m256)__builtin_ia32_fixupimmps256_mask ((__v8sf)(__m256)(X),		\
   12632 					      (__v8sf)(__m256)(Y),		\
   12633 					      (__v8si)(__m256i)(Z), (int)(C),	\
   12634 					      (__mmask8)(-1)))
   12635 
   12636 
   12637 #define _mm256_mask_fixupimm_ps(X, U, Y, Z, C)                                  \
   12638     ((__m256)__builtin_ia32_fixupimmps256_mask ((__v8sf)(__m256)(X),            \
   12639 						(__v8sf)(__m256)(Y),            \
   12640 						(__v8si)(__m256i)(Z), (int)(C), \
   12641 						(__mmask8)(U)))
   12642 
   12643 #define _mm256_maskz_fixupimm_ps(U, X, Y, Z, C)                                 \
   12644     ((__m256)__builtin_ia32_fixupimmps256_maskz ((__v8sf)(__m256)(X),           \
   12645 						 (__v8sf)(__m256)(Y),           \
   12646 						 (__v8si)(__m256i)(Z), (int)(C),\
   12647 						 (__mmask8)(U)))
   12648 
   12649 #define _mm_fixupimm_pd(X, Y, Z, C)						\
   12650   ((__m128d)__builtin_ia32_fixupimmpd128_mask ((__v2df)(__m128d)(X),		\
   12651 					       (__v2df)(__m128d)(Y),		\
   12652 					       (__v2di)(__m128i)(Z), (int)(C), 	\
   12653 					       (__mmask8)(-1)))
   12654 
   12655 
   12656 #define _mm_mask_fixupimm_pd(X, U, Y, Z, C)                                       \
   12657      ((__m128d)__builtin_ia32_fixupimmpd128_mask ((__v2df)(__m128d)(X),           \
   12658 						  (__v2df)(__m128d)(Y),           \
   12659 						  (__v2di)(__m128i)(Z), (int)(C), \
   12660 						  (__mmask8)(U)))
   12661 
   12662 #define _mm_maskz_fixupimm_pd(U, X, Y, Z, C)                                      \
   12663      ((__m128d)__builtin_ia32_fixupimmpd128_maskz ((__v2df)(__m128d)(X),          \
   12664 						   (__v2df)(__m128d)(Y),          \
   12665 						   (__v2di)(__m128i)(Z), (int)(C),\
   12666 						   (__mmask8)(U)))
   12667 
   12668 #define _mm_fixupimm_ps(X, Y, Z, C)						\
   12669    ((__m128)__builtin_ia32_fixupimmps128_mask ((__v4sf)(__m128)(X),		\
   12670 					       (__v4sf)(__m128)(Y),		\
   12671 					       (__v4si)(__m128i)(Z), (int)(C), 	\
   12672 					       (__mmask8)(-1)))
   12673 
   12674 #define _mm_mask_fixupimm_ps(X, U, Y, Z, C)                                      \
   12675       ((__m128)__builtin_ia32_fixupimmps128_mask ((__v4sf)(__m128)(X),           \
   12676 						  (__v4sf)(__m128)(Y),           \
   12677 						  (__v4si)(__m128i)(Z), (int)(C),\
   12678 						  (__mmask8)(U)))
   12679 
   12680 #define _mm_maskz_fixupimm_ps(U, X, Y, Z, C)                                      \
   12681       ((__m128)__builtin_ia32_fixupimmps128_maskz ((__v4sf)(__m128)(X),           \
   12682 						   (__v4sf)(__m128)(Y),           \
   12683 						   (__v4si)(__m128i)(Z), (int)(C),\
   12684 						   (__mmask8)(U)))
   12685 
   12686 #define _mm256_mask_srli_epi32(W, U, A, B)				\
   12687   ((__m256i) __builtin_ia32_psrldi256_mask ((__v8si)(__m256i)(A),	\
   12688     (int)(B), (__v8si)(__m256i)(W), (__mmask8)(U)))
   12689 
   12690 #define _mm256_maskz_srli_epi32(U, A, B)				\
   12691   ((__m256i) __builtin_ia32_psrldi256_mask ((__v8si)(__m256i)(A),	\
   12692     (int)(B), (__v8si)_mm256_setzero_si256 (), (__mmask8)(U)))
   12693 
   12694 #define _mm_mask_srli_epi32(W, U, A, B)                                 \
   12695   ((__m128i) __builtin_ia32_psrldi128_mask ((__v4si)(__m128i)(A),       \
   12696     (int)(B), (__v4si)(__m128i)(W), (__mmask8)(U)))
   12697 
   12698 #define _mm_maskz_srli_epi32(U, A, B)                                   \
   12699   ((__m128i) __builtin_ia32_psrldi128_mask ((__v4si)(__m128i)(A),       \
   12700     (int)(B), (__v4si)_mm_setzero_si128 (), (__mmask8)(U)))
   12701 
   12702 #define _mm256_mask_srli_epi64(W, U, A, B)				\
   12703   ((__m256i) __builtin_ia32_psrlqi256_mask ((__v4di)(__m256i)(A),	\
   12704     (int)(B), (__v4di)(__m256i)(W), (__mmask8)(U)))
   12705 
   12706 #define _mm256_maskz_srli_epi64(U, A, B)				\
   12707   ((__m256i) __builtin_ia32_psrlqi256_mask ((__v4di)(__m256i)(A),	\
   12708     (int)(B), (__v4di)_mm256_setzero_si256 (), (__mmask8)(U)))
   12709 
   12710 #define _mm_mask_srli_epi64(W, U, A, B)                                 \
   12711   ((__m128i) __builtin_ia32_psrlqi128_mask ((__v2di)(__m128i)(A),       \
   12712     (int)(B), (__v2di)(__m128i)(W), (__mmask8)(U)))
   12713 
   12714 #define _mm_maskz_srli_epi64(U, A, B)                                   \
   12715   ((__m128i) __builtin_ia32_psrlqi128_mask ((__v2di)(__m128i)(A),       \
   12716     (int)(B), (__v2di)_mm_setzero_si128 (), (__mmask8)(U)))
   12717 
   12718 #define _mm256_mask_slli_epi32(W, U, X, C)                                \
   12719   ((__m256i)__builtin_ia32_pslldi256_mask ((__v8si)(__m256i)(X), (int)(C),\
   12720     (__v8si)(__m256i)(W),						  \
   12721     (__mmask8)(U)))
   12722 
   12723 #define _mm256_maskz_slli_epi32(U, X, C)                                  \
   12724   ((__m256i)__builtin_ia32_pslldi256_mask ((__v8si)(__m256i)(X), (int)(C),\
   12725     (__v8si)(__m256i)_mm256_setzero_si256 (),				  \
   12726     (__mmask8)(U)))
   12727 
   12728 #define _mm256_mask_slli_epi64(W, U, X, C)                                \
   12729   ((__m256i)__builtin_ia32_psllqi256_mask ((__v4di)(__m256i)(X), (int)(C),\
   12730     (__v4di)(__m256i)(W),						  \
   12731     (__mmask8)(U)))
   12732 
   12733 #define _mm256_maskz_slli_epi64(U, X, C)                                  \
   12734   ((__m256i)__builtin_ia32_psllqi256_mask ((__v4di)(__m256i)(X), (int)(C),\
   12735     (__v4di)(__m256i)_mm256_setzero_si256 (),				  \
   12736     (__mmask8)(U)))
   12737 
   12738 #define _mm_mask_slli_epi32(W, U, X, C)					  \
   12739   ((__m128i)__builtin_ia32_pslldi128_mask ((__v4si)(__m128i)(X), (int)(C),\
   12740     (__v4si)(__m128i)(W),\
   12741     (__mmask8)(U)))
   12742 
   12743 #define _mm_maskz_slli_epi32(U, X, C)					  \
   12744   ((__m128i)__builtin_ia32_pslldi128_mask ((__v4si)(__m128i)(X), (int)(C),\
   12745     (__v4si)(__m128i)_mm_setzero_si128 (),\
   12746     (__mmask8)(U)))
   12747 
   12748 #define _mm_mask_slli_epi64(W, U, X, C)					  \
   12749   ((__m128i)__builtin_ia32_psllqi128_mask ((__v2di)(__m128i)(X), (int)(C),\
   12750     (__v2di)(__m128i)(W),\
   12751     (__mmask8)(U)))
   12752 
   12753 #define _mm_maskz_slli_epi64(U, X, C)					  \
   12754   ((__m128i)__builtin_ia32_psllqi128_mask ((__v2di)(__m128i)(X), (int)(C),\
   12755     (__v2di)(__m128i)_mm_setzero_si128 (),\
   12756     (__mmask8)(U)))
   12757 
   12758 #define _mm256_ternarylogic_epi64(A, B, C, I)                           \
   12759   ((__m256i) __builtin_ia32_pternlogq256_mask ((__v4di)(__m256i)(A),	\
   12760     (__v4di)(__m256i)(B), (__v4di)(__m256i)(C), (int)(I), (__mmask8)-1))
   12761 
   12762 #define _mm256_mask_ternarylogic_epi64(A, U, B, C, I)			\
   12763   ((__m256i) __builtin_ia32_pternlogq256_mask ((__v4di)(__m256i)(A),	\
   12764     (__v4di)(__m256i)(B), (__v4di)(__m256i)(C), (int)(I), (__mmask8)(U)))
   12765 
   12766 #define _mm256_maskz_ternarylogic_epi64(U, A, B, C, I)			\
   12767   ((__m256i) __builtin_ia32_pternlogq256_maskz ((__v4di)(__m256i)(A),	\
   12768     (__v4di)(__m256i)(B), (__v4di)(__m256i)(C), (int)(I), (__mmask8)(U)))
   12769 
   12770 #define _mm256_ternarylogic_epi32(A, B, C, I)                           \
   12771   ((__m256i) __builtin_ia32_pternlogd256_mask ((__v8si)(__m256i)(A),	\
   12772     (__v8si)(__m256i)(B), (__v8si)(__m256i)(C), (int)(I), (__mmask8)-1))
   12773 
   12774 #define _mm256_mask_ternarylogic_epi32(A, U, B, C, I)                   \
   12775   ((__m256i) __builtin_ia32_pternlogd256_mask ((__v8si)(__m256i)(A),	\
   12776     (__v8si)(__m256i)(B), (__v8si)(__m256i)(C), (int)(I), (__mmask8)(U)))
   12777 
   12778 #define _mm256_maskz_ternarylogic_epi32(U, A, B, C, I)			\
   12779   ((__m256i) __builtin_ia32_pternlogd256_maskz ((__v8si)(__m256i)(A),	\
   12780     (__v8si)(__m256i)(B), (__v8si)(__m256i)(C), (int)(I), (__mmask8)(U)))
   12781 
   12782 #define _mm_ternarylogic_epi64(A, B, C, I)                              \
   12783   ((__m128i) __builtin_ia32_pternlogq128_mask ((__v2di)(__m128i)(A),	\
   12784     (__v2di)(__m128i)(B), (__v2di)(__m128i)(C), (int)(I), (__mmask8)-1))
   12785 
   12786 #define _mm_mask_ternarylogic_epi64(A, U, B, C, I)			\
   12787   ((__m128i) __builtin_ia32_pternlogq128_mask ((__v2di)(__m128i)(A),	\
   12788     (__v2di)(__m128i)(B), (__v2di)(__m128i)(C), (int)(I), (__mmask8)(U)))
   12789 
   12790 #define _mm_maskz_ternarylogic_epi64(U, A, B, C, I)			\
   12791   ((__m128i) __builtin_ia32_pternlogq128_maskz ((__v2di)(__m128i)(A),	\
   12792     (__v2di)(__m128i)(B), (__v2di)(__m128i)(C), (int)(I), (__mmask8)(U)))
   12793 
   12794 #define _mm_ternarylogic_epi32(A, B, C, I)                              \
   12795   ((__m128i) __builtin_ia32_pternlogd128_mask ((__v4si)(__m128i)(A),	\
   12796     (__v4si)(__m128i)(B), (__v4si)(__m128i)(C), (int)(I), (__mmask8)-1))
   12797 
   12798 #define _mm_mask_ternarylogic_epi32(A, U, B, C, I)			\
   12799   ((__m128i) __builtin_ia32_pternlogd128_mask ((__v4si)(__m128i)(A),	\
   12800     (__v4si)(__m128i)(B), (__v4si)(__m128i)(C), (int)(I), (__mmask8)(U)))
   12801 
   12802 #define _mm_maskz_ternarylogic_epi32(U, A, B, C, I)			\
   12803   ((__m128i) __builtin_ia32_pternlogd128_maskz ((__v4si)(__m128i)(A),	\
   12804     (__v4si)(__m128i)(B), (__v4si)(__m128i)(C), (int)(I), (__mmask8)(U)))
   12805 
   12806 #define _mm256_roundscale_ps(A, B)				        \
   12807   ((__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf)(__m256)(A),    \
   12808     (int)(B), (__v8sf)(__m256)_mm256_setzero_ps (), (__mmask8)-1))
   12809 
   12810 #define _mm256_mask_roundscale_ps(W, U, A, B)			        \
   12811   ((__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf)(__m256)(A),    \
   12812     (int)(B), (__v8sf)(__m256)(W), (__mmask8)(U)))
   12813 
   12814 #define _mm256_maskz_roundscale_ps(U, A, B)			        \
   12815   ((__m256) __builtin_ia32_rndscaleps_256_mask ((__v8sf)(__m256)(A),    \
   12816     (int)(B), (__v8sf)(__m256)_mm256_setzero_ps (), (__mmask8)(U)))
   12817 
   12818 #define _mm256_roundscale_pd(A, B)				        \
   12819   ((__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df)(__m256d)(A),  \
   12820     (int)(B), (__v4df)(__m256d)_mm256_setzero_pd (), (__mmask8)-1))
   12821 
   12822 #define _mm256_mask_roundscale_pd(W, U, A, B)			        \
   12823   ((__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df)(__m256d)(A),  \
   12824     (int)(B), (__v4df)(__m256d)(W), (__mmask8)(U)))
   12825 
   12826 #define _mm256_maskz_roundscale_pd(U, A, B)			        \
   12827   ((__m256d) __builtin_ia32_rndscalepd_256_mask ((__v4df)(__m256d)(A),  \
   12828     (int)(B), (__v4df)(__m256d)_mm256_setzero_pd (), (__mmask8)(U)))
   12829 
   12830 #define _mm_roundscale_ps(A, B)					        \
   12831   ((__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf)(__m128)(A),    \
   12832     (int)(B), (__v4sf)(__m128)_mm_setzero_ps (), (__mmask8)-1))
   12833 
   12834 #define _mm_mask_roundscale_ps(W, U, A, B)			        \
   12835   ((__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf)(__m128)(A),    \
   12836     (int)(B), (__v4sf)(__m128)(W), (__mmask8)(U)))
   12837 
   12838 #define _mm_maskz_roundscale_ps(U, A, B)			        \
   12839   ((__m128) __builtin_ia32_rndscaleps_128_mask ((__v4sf)(__m128)(A),    \
   12840     (int)(B), (__v4sf)(__m128)_mm_setzero_ps (), (__mmask8)(U)))
   12841 
   12842 #define _mm_roundscale_pd(A, B)					        \
   12843   ((__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df)(__m128d)(A),  \
   12844     (int)(B), (__v2df)(__m128d)_mm_setzero_pd (), (__mmask8)-1))
   12845 
   12846 #define _mm_mask_roundscale_pd(W, U, A, B)			        \
   12847   ((__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df)(__m128d)(A),  \
   12848     (int)(B), (__v2df)(__m128d)(W), (__mmask8)(U)))
   12849 
   12850 #define _mm_maskz_roundscale_pd(U, A, B)			        \
   12851   ((__m128d) __builtin_ia32_rndscalepd_128_mask ((__v2df)(__m128d)(A),  \
   12852     (int)(B), (__v2df)(__m128d)_mm_setzero_pd (), (__mmask8)(U)))
   12853 
   12854 #define _mm256_getmant_ps(X, B, C)                                              \
   12855   ((__m256) __builtin_ia32_getmantps256_mask ((__v8sf)(__m256) (X),             \
   12856                                          (int)(((C)<<2) | (B)),                 \
   12857 					 (__v8sf)(__m256)_mm256_setzero_ps (),  \
   12858                                          (__mmask8)-1))
   12859 
   12860 #define _mm256_mask_getmant_ps(W, U, X, B, C)                                   \
   12861   ((__m256) __builtin_ia32_getmantps256_mask ((__v8sf)(__m256) (X),             \
   12862                                          (int)(((C)<<2) | (B)),                 \
   12863                                          (__v8sf)(__m256)(W),                   \
   12864                                          (__mmask8)(U)))
   12865 
   12866 #define _mm256_maskz_getmant_ps(U, X, B, C)                                     \
   12867   ((__m256) __builtin_ia32_getmantps256_mask ((__v8sf)(__m256) (X),             \
   12868                                          (int)(((C)<<2) | (B)),                 \
   12869 					 (__v8sf)(__m256)_mm256_setzero_ps (),  \
   12870                                          (__mmask8)(U)))
   12871 
   12872 #define _mm_getmant_ps(X, B, C)                                                 \
   12873   ((__m128) __builtin_ia32_getmantps128_mask ((__v4sf)(__m128) (X),             \
   12874                                          (int)(((C)<<2) | (B)),                 \
   12875 					 (__v4sf)(__m128)_mm_setzero_ps (),     \
   12876                                          (__mmask8)-1))
   12877 
   12878 #define _mm_mask_getmant_ps(W, U, X, B, C)                                      \
   12879   ((__m128) __builtin_ia32_getmantps128_mask ((__v4sf)(__m128) (X),             \
   12880                                          (int)(((C)<<2) | (B)),                 \
   12881                                          (__v4sf)(__m128)(W),                   \
   12882                                          (__mmask8)(U)))
   12883 
   12884 #define _mm_maskz_getmant_ps(U, X, B, C)                                        \
   12885   ((__m128) __builtin_ia32_getmantps128_mask ((__v4sf)(__m128) (X),             \
   12886                                          (int)(((C)<<2) | (B)),                 \
   12887 					 (__v4sf)(__m128)_mm_setzero_ps (),     \
   12888                                          (__mmask8)(U)))
   12889 
   12890 #define _mm256_getmant_pd(X, B, C)                                              \
   12891   ((__m256d) __builtin_ia32_getmantpd256_mask ((__v4df)(__m256d) (X),           \
   12892                                          (int)(((C)<<2) | (B)),                 \
   12893 					  (__v4df)(__m256d)_mm256_setzero_pd (),\
   12894                                           (__mmask8)-1))
   12895 
   12896 #define _mm256_mask_getmant_pd(W, U, X, B, C)                                   \
   12897   ((__m256d) __builtin_ia32_getmantpd256_mask ((__v4df)(__m256d) (X),           \
   12898                                          (int)(((C)<<2) | (B)),                 \
   12899                                           (__v4df)(__m256d)(W),                 \
   12900                                           (__mmask8)(U)))
   12901 
   12902 #define _mm256_maskz_getmant_pd(U, X, B, C)                                     \
   12903   ((__m256d) __builtin_ia32_getmantpd256_mask ((__v4df)(__m256d) (X),           \
   12904                                          (int)(((C)<<2) | (B)),                 \
   12905 					  (__v4df)(__m256d)_mm256_setzero_pd (),\
   12906                                           (__mmask8)(U)))
   12907 
   12908 #define _mm_getmant_pd(X, B, C)                                                 \
   12909   ((__m128d) __builtin_ia32_getmantpd128_mask ((__v2df)(__m128d) (X),           \
   12910                                          (int)(((C)<<2) | (B)),                 \
   12911 					  (__v2df)(__m128d)_mm_setzero_pd (),   \
   12912                                           (__mmask8)-1))
   12913 
   12914 #define _mm_mask_getmant_pd(W, U, X, B, C)                                      \
   12915   ((__m128d) __builtin_ia32_getmantpd128_mask ((__v2df)(__m128d) (X),           \
   12916                                          (int)(((C)<<2) | (B)),                 \
   12917                                           (__v2df)(__m128d)(W),                 \
   12918                                           (__mmask8)(U)))
   12919 
   12920 #define _mm_maskz_getmant_pd(U, X, B, C)                                        \
   12921   ((__m128d) __builtin_ia32_getmantpd128_mask ((__v2df)(__m128d) (X),           \
   12922                                          (int)(((C)<<2) | (B)),                 \
   12923 					  (__v2df)(__m128d)_mm_setzero_pd (),   \
   12924                                           (__mmask8)(U)))
   12925 
   12926 #define _mm256_mmask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12927   (__m256) __builtin_ia32_gather3siv8sf ((__v8sf)(__m256)V1OLD,		\
   12928 					 (void const *)ADDR,		\
   12929 					 (__v8si)(__m256i)INDEX,	\
   12930 					 (__mmask8)MASK, (int)SCALE)
   12931 
   12932 #define _mm_mmask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)		\
   12933   (__m128) __builtin_ia32_gather3siv4sf ((__v4sf)(__m128)V1OLD,		\
   12934 					 (void const *)ADDR,		\
   12935 					 (__v4si)(__m128i)INDEX,	\
   12936 					 (__mmask8)MASK, (int)SCALE)
   12937 
   12938 #define _mm256_mmask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12939   (__m256d) __builtin_ia32_gather3siv4df ((__v4df)(__m256d)V1OLD,	\
   12940 					  (void const *)ADDR,		\
   12941 					  (__v4si)(__m128i)INDEX,	\
   12942 					  (__mmask8)MASK, (int)SCALE)
   12943 
   12944 #define _mm_mmask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)		\
   12945   (__m128d) __builtin_ia32_gather3siv2df ((__v2df)(__m128d)V1OLD,	\
   12946 					  (void const *)ADDR,		\
   12947 					  (__v4si)(__m128i)INDEX,	\
   12948 					  (__mmask8)MASK, (int)SCALE)
   12949 
   12950 #define _mm256_mmask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12951   (__m128) __builtin_ia32_gather3div8sf ((__v4sf)(__m128)V1OLD,		\
   12952 					 (void const *)ADDR,		\
   12953 					 (__v4di)(__m256i)INDEX,	\
   12954 					 (__mmask8)MASK, (int)SCALE)
   12955 
   12956 #define _mm_mmask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)		\
   12957   (__m128) __builtin_ia32_gather3div4sf ((__v4sf)(__m128)V1OLD,		\
   12958 					 (void const *)ADDR,		\
   12959 					 (__v2di)(__m128i)INDEX,	\
   12960 					 (__mmask8)MASK, (int)SCALE)
   12961 
   12962 #define _mm256_mmask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12963   (__m256d) __builtin_ia32_gather3div4df ((__v4df)(__m256d)V1OLD,	\
   12964 					  (void const *)ADDR,		\
   12965 					  (__v4di)(__m256i)INDEX,	\
   12966 					  (__mmask8)MASK, (int)SCALE)
   12967 
   12968 #define _mm_mmask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)		\
   12969   (__m128d) __builtin_ia32_gather3div2df ((__v2df)(__m128d)V1OLD,	\
   12970 					  (void const *)ADDR,		\
   12971 					  (__v2di)(__m128i)INDEX,	\
   12972 					  (__mmask8)MASK, (int)SCALE)
   12973 
   12974 #define _mm256_mmask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12975   (__m256i) __builtin_ia32_gather3siv8si ((__v8si)(__m256i)V1OLD,	\
   12976 					  (void const *)ADDR,		\
   12977 					  (__v8si)(__m256i)INDEX,	\
   12978 					  (__mmask8)MASK, (int)SCALE)
   12979 
   12980 #define _mm_mmask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12981   (__m128i) __builtin_ia32_gather3siv4si ((__v4si)(__m128i)V1OLD,	\
   12982 					  (void const *)ADDR,		\
   12983 					  (__v4si)(__m128i)INDEX,	\
   12984 					  (__mmask8)MASK, (int)SCALE)
   12985 
   12986 #define _mm256_mmask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12987   (__m256i) __builtin_ia32_gather3siv4di ((__v4di)(__m256i)V1OLD,	\
   12988 					  (void const *)ADDR,		\
   12989 					  (__v4si)(__m128i)INDEX,	\
   12990 					  (__mmask8)MASK, (int)SCALE)
   12991 
   12992 #define _mm_mmask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12993   (__m128i) __builtin_ia32_gather3siv2di ((__v2di)(__m128i)V1OLD,	\
   12994 					  (void const *)ADDR,		\
   12995 					  (__v4si)(__m128i)INDEX,	\
   12996 					  (__mmask8)MASK, (int)SCALE)
   12997 
   12998 #define _mm256_mmask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   12999   (__m128i) __builtin_ia32_gather3div8si ((__v4si)(__m128i)V1OLD,	\
   13000 					  (void const *)ADDR,		\
   13001 					  (__v4di)(__m256i)INDEX,	\
   13002 					  (__mmask8)MASK, (int)SCALE)
   13003 
   13004 #define _mm_mmask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   13005   (__m128i) __builtin_ia32_gather3div4si ((__v4si)(__m128i)V1OLD,	\
   13006 					  (void const *)ADDR,		\
   13007 					  (__v2di)(__m128i)INDEX,	\
   13008 					  (__mmask8)MASK, (int)SCALE)
   13009 
   13010 #define _mm256_mmask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   13011   (__m256i) __builtin_ia32_gather3div4di ((__v4di)(__m256i)V1OLD,	\
   13012 					  (void const *)ADDR,		\
   13013 					  (__v4di)(__m256i)INDEX,	\
   13014 					  (__mmask8)MASK, (int)SCALE)
   13015 
   13016 #define _mm_mmask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)	\
   13017   (__m128i) __builtin_ia32_gather3div2di ((__v2di)(__m128i)V1OLD,	\
   13018 					  (void const *)ADDR,		\
   13019 					  (__v2di)(__m128i)INDEX,	\
   13020 					  (__mmask8)MASK, (int)SCALE)
   13021 
   13022 #define _mm256_i32scatter_ps(ADDR, INDEX, V1, SCALE)			\
   13023   __builtin_ia32_scattersiv8sf ((void *)ADDR, (__mmask8)0xFF,		\
   13024 				(__v8si)(__m256i)INDEX,			\
   13025 				(__v8sf)(__m256)V1, (int)SCALE)
   13026 
   13027 #define _mm256_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
   13028   __builtin_ia32_scattersiv8sf ((void *)ADDR, (__mmask8)MASK,		\
   13029 				(__v8si)(__m256i)INDEX,			\
   13030 				(__v8sf)(__m256)V1, (int)SCALE)
   13031 
   13032 #define _mm_i32scatter_ps(ADDR, INDEX, V1, SCALE)			\
   13033   __builtin_ia32_scattersiv4sf ((void *)ADDR, (__mmask8)0xFF,		\
   13034 				(__v4si)(__m128i)INDEX,			\
   13035 				(__v4sf)(__m128)V1, (int)SCALE)
   13036 
   13037 #define _mm_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
   13038   __builtin_ia32_scattersiv4sf ((void *)ADDR, (__mmask8)MASK,		\
   13039 				(__v4si)(__m128i)INDEX,			\
   13040 				(__v4sf)(__m128)V1, (int)SCALE)
   13041 
   13042 #define _mm256_i32scatter_pd(ADDR, INDEX, V1, SCALE)			\
   13043   __builtin_ia32_scattersiv4df ((void *)ADDR, (__mmask8)0xFF,		\
   13044 				(__v4si)(__m128i)INDEX,			\
   13045 				(__v4df)(__m256d)V1, (int)SCALE)
   13046 
   13047 #define _mm256_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
   13048   __builtin_ia32_scattersiv4df ((void *)ADDR, (__mmask8)MASK,		\
   13049 				(__v4si)(__m128i)INDEX,			\
   13050 				(__v4df)(__m256d)V1, (int)SCALE)
   13051 
   13052 #define _mm_i32scatter_pd(ADDR, INDEX, V1, SCALE)			\
   13053   __builtin_ia32_scattersiv2df ((void *)ADDR, (__mmask8)0xFF,		\
   13054 				(__v4si)(__m128i)INDEX,			\
   13055 				(__v2df)(__m128d)V1, (int)SCALE)
   13056 
   13057 #define _mm_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
   13058   __builtin_ia32_scattersiv2df ((void *)ADDR, (__mmask8)MASK,		\
   13059 				(__v4si)(__m128i)INDEX,			\
   13060 				(__v2df)(__m128d)V1, (int)SCALE)
   13061 
   13062 #define _mm256_i64scatter_ps(ADDR, INDEX, V1, SCALE)			\
   13063   __builtin_ia32_scatterdiv8sf ((void *)ADDR, (__mmask8)0xFF,		\
   13064 				(__v4di)(__m256i)INDEX,			\
   13065 				(__v4sf)(__m128)V1, (int)SCALE)
   13066 
   13067 #define _mm256_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
   13068   __builtin_ia32_scatterdiv8sf ((void *)ADDR, (__mmask8)MASK,		\
   13069 				(__v4di)(__m256i)INDEX,			\
   13070 				(__v4sf)(__m128)V1, (int)SCALE)
   13071 
   13072 #define _mm_i64scatter_ps(ADDR, INDEX, V1, SCALE)			\
   13073   __builtin_ia32_scatterdiv4sf ((void *)ADDR, (__mmask8)0xFF,		\
   13074 				(__v2di)(__m128i)INDEX,			\
   13075 				(__v4sf)(__m128)V1, (int)SCALE)
   13076 
   13077 #define _mm_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE)		\
   13078   __builtin_ia32_scatterdiv4sf ((void *)ADDR, (__mmask8)MASK,		\
   13079 				(__v2di)(__m128i)INDEX,			\
   13080 				(__v4sf)(__m128)V1, (int)SCALE)
   13081 
   13082 #define _mm256_i64scatter_pd(ADDR, INDEX, V1, SCALE)			\
   13083   __builtin_ia32_scatterdiv4df ((void *)ADDR, (__mmask8)0xFF,		\
   13084 				(__v4di)(__m256i)INDEX,			\
   13085 				(__v4df)(__m256d)V1, (int)SCALE)
   13086 
   13087 #define _mm256_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
   13088   __builtin_ia32_scatterdiv4df ((void *)ADDR, (__mmask8)MASK,		\
   13089 				(__v4di)(__m256i)INDEX,			\
   13090 				(__v4df)(__m256d)V1, (int)SCALE)
   13091 
   13092 #define _mm_i64scatter_pd(ADDR, INDEX, V1, SCALE)			\
   13093   __builtin_ia32_scatterdiv2df ((void *)ADDR, (__mmask8)0xFF,		\
   13094 				(__v2di)(__m128i)INDEX,			\
   13095 				(__v2df)(__m128d)V1, (int)SCALE)
   13096 
   13097 #define _mm_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE)		\
   13098   __builtin_ia32_scatterdiv2df ((void *)ADDR, (__mmask8)MASK,		\
   13099 				(__v2di)(__m128i)INDEX,			\
   13100 				(__v2df)(__m128d)V1, (int)SCALE)
   13101 
   13102 #define _mm256_i32scatter_epi32(ADDR, INDEX, V1, SCALE)			\
   13103   __builtin_ia32_scattersiv8si ((void *)ADDR, (__mmask8)0xFF,		\
   13104 				(__v8si)(__m256i)INDEX,			\
   13105 				(__v8si)(__m256i)V1, (int)SCALE)
   13106 
   13107 #define _mm256_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)	\
   13108   __builtin_ia32_scattersiv8si ((void *)ADDR, (__mmask8)MASK,		\
   13109 				(__v8si)(__m256i)INDEX,			\
   13110 				(__v8si)(__m256i)V1, (int)SCALE)
   13111 
   13112 #define _mm_i32scatter_epi32(ADDR, INDEX, V1, SCALE)			\
   13113   __builtin_ia32_scattersiv4si ((void *)ADDR, (__mmask8)0xFF,		\
   13114 				(__v4si)(__m128i)INDEX,			\
   13115 				(__v4si)(__m128i)V1, (int)SCALE)
   13116 
   13117 #define _mm_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)		\
   13118   __builtin_ia32_scattersiv4si ((void *)ADDR, (__mmask8)MASK,		\
   13119 				(__v4si)(__m128i)INDEX,			\
   13120 				(__v4si)(__m128i)V1, (int)SCALE)
   13121 
   13122 #define _mm256_i32scatter_epi64(ADDR, INDEX, V1, SCALE)			\
   13123   __builtin_ia32_scattersiv4di ((void *)ADDR, (__mmask8)0xFF,		\
   13124 				(__v4si)(__m128i)INDEX,			\
   13125 				(__v4di)(__m256i)V1, (int)SCALE)
   13126 
   13127 #define _mm256_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)	\
   13128   __builtin_ia32_scattersiv4di ((void *)ADDR, (__mmask8)MASK,		\
   13129 				(__v4si)(__m128i)INDEX,			\
   13130 				(__v4di)(__m256i)V1, (int)SCALE)
   13131 
   13132 #define _mm_i32scatter_epi64(ADDR, INDEX, V1, SCALE)			\
   13133   __builtin_ia32_scattersiv2di ((void *)ADDR, (__mmask8)0xFF,		\
   13134 				(__v4si)(__m128i)INDEX,			\
   13135 				(__v2di)(__m128i)V1, (int)SCALE)
   13136 
   13137 #define _mm_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)		\
   13138   __builtin_ia32_scattersiv2di ((void *)ADDR, (__mmask8)MASK,		\
   13139 				(__v4si)(__m128i)INDEX,			\
   13140 				(__v2di)(__m128i)V1, (int)SCALE)
   13141 
   13142 #define _mm256_i64scatter_epi32(ADDR, INDEX, V1, SCALE)			\
   13143   __builtin_ia32_scatterdiv8si ((void *)ADDR, (__mmask8)0xFF,		\
   13144 				(__v4di)(__m256i)INDEX,			\
   13145 				(__v4si)(__m128i)V1, (int)SCALE)
   13146 
   13147 #define _mm256_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)	\
   13148   __builtin_ia32_scatterdiv8si ((void *)ADDR, (__mmask8)MASK,		\
   13149 				(__v4di)(__m256i)INDEX,			\
   13150 				(__v4si)(__m128i)V1, (int)SCALE)
   13151 
   13152 #define _mm_i64scatter_epi32(ADDR, INDEX, V1, SCALE)			\
   13153   __builtin_ia32_scatterdiv4si ((void *)ADDR, (__mmask8)0xFF,		\
   13154 				(__v2di)(__m128i)INDEX,			\
   13155 				(__v4si)(__m128i)V1, (int)SCALE)
   13156 
   13157 #define _mm_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)		\
   13158   __builtin_ia32_scatterdiv4si ((void *)ADDR, (__mmask8)MASK,		\
   13159 				(__v2di)(__m128i)INDEX,			\
   13160 				(__v4si)(__m128i)V1, (int)SCALE)
   13161 
   13162 #define _mm256_i64scatter_epi64(ADDR, INDEX, V1, SCALE)			\
   13163   __builtin_ia32_scatterdiv4di ((void *)ADDR, (__mmask8)0xFF,		\
   13164 				(__v4di)(__m256i)INDEX,			\
   13165 				(__v4di)(__m256i)V1, (int)SCALE)
   13166 
   13167 #define _mm256_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)	\
   13168   __builtin_ia32_scatterdiv4di ((void *)ADDR, (__mmask8)MASK,		\
   13169 				(__v4di)(__m256i)INDEX,			\
   13170 				(__v4di)(__m256i)V1, (int)SCALE)
   13171 
   13172 #define _mm_i64scatter_epi64(ADDR, INDEX, V1, SCALE)			\
   13173   __builtin_ia32_scatterdiv2di ((void *)ADDR, (__mmask8)0xFF,		\
   13174 				(__v2di)(__m128i)INDEX,			\
   13175 				(__v2di)(__m128i)V1, (int)SCALE)
   13176 
   13177 #define _mm_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)		\
   13178   __builtin_ia32_scatterdiv2di ((void *)ADDR, (__mmask8)MASK,		\
   13179 				(__v2di)(__m128i)INDEX,			\
   13180 				(__v2di)(__m128i)V1, (int)SCALE)
   13181 
   13182 #define _mm256_mask_shuffle_epi32(W, U, X, C)                                       \
   13183   ((__m256i)  __builtin_ia32_pshufd256_mask ((__v8si)(__m256i)(X), (int)(C),        \
   13184                                              (__v8si)(__m256i)(W),                  \
   13185                                              (__mmask8)(U)))
   13186 
   13187 #define _mm256_maskz_shuffle_epi32(U, X, C)                                         \
   13188   ((__m256i)  __builtin_ia32_pshufd256_mask ((__v8si)(__m256i)(X), (int)(C),        \
   13189 					     (__v8si)(__m256i)			    \
   13190 					     _mm256_setzero_si256 (),		    \
   13191                                              (__mmask8)(U)))
   13192 
   13193 #define _mm_mask_shuffle_epi32(W, U, X, C)                                          \
   13194   ((__m128i)  __builtin_ia32_pshufd128_mask ((__v4si)(__m128i)(X), (int)(C),        \
   13195                                              (__v4si)(__m128i)(W),                  \
   13196                                              (__mmask8)(U)))
   13197 
   13198 #define _mm_maskz_shuffle_epi32(U, X, C)                                            \
   13199   ((__m128i)  __builtin_ia32_pshufd128_mask ((__v4si)(__m128i)(X), (int)(C),        \
   13200 					     (__v4si)(__m128i)_mm_setzero_si128 (), \
   13201                                              (__mmask8)(U)))
   13202 
   13203 #define _mm256_rol_epi64(A, B)                                                 \
   13204   ((__m256i)__builtin_ia32_prolq256_mask ((__v4di)(__m256i)(A), (int)(B),      \
   13205                                           (__v4di)(__m256i)_mm256_setzero_si256 (),\
   13206                                           (__mmask8)-1))
   13207 
   13208 #define _mm256_mask_rol_epi64(W, U, A, B)                                      \
   13209   ((__m256i)__builtin_ia32_prolq256_mask ((__v4di)(__m256i)(A), (int)(B),      \
   13210                                           (__v4di)(__m256i)(W),                \
   13211                                           (__mmask8)(U)))
   13212 
   13213 #define _mm256_maskz_rol_epi64(U, A, B)                                        \
   13214   ((__m256i)__builtin_ia32_prolq256_mask ((__v4di)(__m256i)(A), (int)(B),      \
   13215                                           (__v4di)(__m256i)_mm256_setzero_si256 (),\
   13216                                           (__mmask8)(U)))
   13217 
   13218 #define _mm_rol_epi64(A, B)                                                    \
   13219   ((__m128i)__builtin_ia32_prolq128_mask ((__v2di)(__m128i)(A), (int)(B),      \
   13220 					  (__v2di)(__m128i)_mm_setzero_si128 (),\
   13221                                           (__mmask8)-1))
   13222 
   13223 #define _mm_mask_rol_epi64(W, U, A, B)                                         \
   13224   ((__m128i)__builtin_ia32_prolq128_mask ((__v2di)(__m128i)(A), (int)(B),      \
   13225                                           (__v2di)(__m128i)(W),                \
   13226                                           (__mmask8)(U)))
   13227 
   13228 #define _mm_maskz_rol_epi64(U, A, B)                                           \
   13229   ((__m128i)__builtin_ia32_prolq128_mask ((__v2di)(__m128i)(A), (int)(B),      \
   13230 					  (__v2di)(__m128i)_mm_setzero_si128 (),\
   13231                                           (__mmask8)(U)))
   13232 
   13233 #define _mm256_ror_epi64(A, B)                                                 \
   13234   ((__m256i)__builtin_ia32_prorq256_mask ((__v4di)(__m256i)(A), (int)(B),      \
   13235                                           (__v4di)(__m256i)_mm256_setzero_si256 (),\
   13236                                           (__mmask8)-1))
   13237 
   13238 #define _mm256_mask_ror_epi64(W, U, A, B)                                      \
   13239   ((__m256i)__builtin_ia32_prorq256_mask ((__v4di)(__m256i)(A), (int)(B),      \
   13240                                           (__v4di)(__m256i)(W),                \
   13241                                           (__mmask8)(U)))
   13242 
   13243 #define _mm256_maskz_ror_epi64(U, A, B)                                        \
   13244   ((__m256i)__builtin_ia32_prorq256_mask ((__v4di)(__m256i)(A), (int)(B),      \
   13245                                           (__v4di)(__m256i)_mm256_setzero_si256 (),\
   13246                                           (__mmask8)(U)))
   13247 
   13248 #define _mm_ror_epi64(A, B)                                                    \
   13249   ((__m128i)__builtin_ia32_prorq128_mask ((__v2di)(__m128i)(A), (int)(B),      \
   13250 					  (__v2di)(__m128i)_mm_setzero_si128 (),\
   13251                                           (__mmask8)-1))
   13252 
   13253 #define _mm_mask_ror_epi64(W, U, A, B)                                         \
   13254   ((__m128i)__builtin_ia32_prorq128_mask ((__v2di)(__m128i)(A), (int)(B),      \
   13255                                           (__v2di)(__m128i)(W),                \
   13256                                           (__mmask8)(U)))
   13257 
   13258 #define _mm_maskz_ror_epi64(U, A, B)                                           \
   13259   ((__m128i)__builtin_ia32_prorq128_mask ((__v2di)(__m128i)(A), (int)(B),      \
   13260 					  (__v2di)(__m128i)_mm_setzero_si128 (),\
   13261                                           (__mmask8)(U)))
   13262 
   13263 #define _mm256_rol_epi32(A, B)                                                 \
   13264   ((__m256i)__builtin_ia32_prold256_mask ((__v8si)(__m256i)(A), (int)(B),      \
   13265 					  (__v8si)(__m256i)_mm256_setzero_si256 (),\
   13266                                           (__mmask8)-1))
   13267 
   13268 #define _mm256_mask_rol_epi32(W, U, A, B)                                      \
   13269   ((__m256i)__builtin_ia32_prold256_mask ((__v8si)(__m256i)(A), (int)(B),      \
   13270                                           (__v8si)(__m256i)(W),                \
   13271                                           (__mmask8)(U)))
   13272 
   13273 #define _mm256_maskz_rol_epi32(U, A, B)                                        \
   13274   ((__m256i)__builtin_ia32_prold256_mask ((__v8si)(__m256i)(A), (int)(B),      \
   13275 					  (__v8si)(__m256i)_mm256_setzero_si256 (),\
   13276                                           (__mmask8)(U)))
   13277 
   13278 #define _mm_rol_epi32(A, B)                                                    \
   13279   ((__m128i)__builtin_ia32_prold128_mask ((__v4si)(__m128i)(A), (int)(B),      \
   13280 					  (__v4si)(__m128i)_mm_setzero_si128 (),\
   13281                                           (__mmask8)-1))
   13282 
   13283 #define _mm_mask_rol_epi32(W, U, A, B)                                         \
   13284   ((__m128i)__builtin_ia32_prold128_mask ((__v4si)(__m128i)(A), (int)(B),      \
   13285                                           (__v4si)(__m128i)(W),                \
   13286                                           (__mmask8)(U)))
   13287 
   13288 #define _mm_maskz_rol_epi32(U, A, B)                                           \
   13289   ((__m128i)__builtin_ia32_prold128_mask ((__v4si)(__m128i)(A), (int)(B),      \
   13290 					  (__v4si)(__m128i)_mm_setzero_si128 (),\
   13291                                           (__mmask8)(U)))
   13292 
   13293 #define _mm256_ror_epi32(A, B)                                                 \
   13294   ((__m256i)__builtin_ia32_prord256_mask ((__v8si)(__m256i)(A), (int)(B),      \
   13295 					  (__v8si)(__m256i)_mm256_setzero_si256 (),\
   13296                                           (__mmask8)-1))
   13297 
   13298 #define _mm256_mask_ror_epi32(W, U, A, B)                                      \
   13299   ((__m256i)__builtin_ia32_prord256_mask ((__v8si)(__m256i)(A), (int)(B),      \
   13300                                           (__v8si)(__m256i)(W),                \
   13301                                           (__mmask8)(U)))
   13302 
   13303 #define _mm256_maskz_ror_epi32(U, A, B)                                        \
   13304   ((__m256i)__builtin_ia32_prord256_mask ((__v8si)(__m256i)(A), (int)(B),      \
   13305 					  (__v8si)(__m256i)		       \
   13306 					  _mm256_setzero_si256 (),	       \
   13307                                           (__mmask8)(U)))
   13308 
   13309 #define _mm_ror_epi32(A, B)                                                    \
   13310   ((__m128i)__builtin_ia32_prord128_mask ((__v4si)(__m128i)(A), (int)(B),      \
   13311 					  (__v4si)(__m128i)_mm_setzero_si128 (),\
   13312                                           (__mmask8)-1))
   13313 
   13314 #define _mm_mask_ror_epi32(W, U, A, B)                                         \
   13315   ((__m128i)__builtin_ia32_prord128_mask ((__v4si)(__m128i)(A), (int)(B),      \
   13316                                           (__v4si)(__m128i)(W),                \
   13317                                           (__mmask8)(U)))
   13318 
   13319 #define _mm_maskz_ror_epi32(U, A, B)                                           \
   13320   ((__m128i)__builtin_ia32_prord128_mask ((__v4si)(__m128i)(A), (int)(B),      \
   13321 					  (__v4si)(__m128i)_mm_setzero_si128 (),\
   13322                                           (__mmask8)(U)))
   13323 
   13324 #define _mm256_alignr_epi32(X, Y, C)                                        \
   13325     ((__m256i)__builtin_ia32_alignd256_mask ((__v8si)(__m256i)(X),          \
   13326         (__v8si)(__m256i)(Y), (int)(C), (__v8si)(__m256i)(X), (__mmask8)-1))
   13327 
   13328 #define _mm256_mask_alignr_epi32(W, U, X, Y, C)                             \
   13329     ((__m256i)__builtin_ia32_alignd256_mask ((__v8si)(__m256i)(X),          \
   13330         (__v8si)(__m256i)(Y), (int)(C), (__v8si)(__m256i)(W), (__mmask8)(U)))
   13331 
   13332 #define _mm256_maskz_alignr_epi32(U, X, Y, C)                               \
   13333     ((__m256i)__builtin_ia32_alignd256_mask ((__v8si)(__m256i)(X),          \
   13334         (__v8si)(__m256i)(Y), (int)(C), (__v8si)(__m256i)_mm256_setzero_si256 (),\
   13335         (__mmask8)(U)))
   13336 
   13337 #define _mm256_alignr_epi64(X, Y, C)                                        \
   13338     ((__m256i)__builtin_ia32_alignq256_mask ((__v4di)(__m256i)(X),          \
   13339         (__v4di)(__m256i)(Y), (int)(C), (__v4di)(__m256i)(X), (__mmask8)-1))
   13340 
   13341 #define _mm256_mask_alignr_epi64(W, U, X, Y, C)                             \
   13342     ((__m256i)__builtin_ia32_alignq256_mask ((__v4di)(__m256i)(X),          \
   13343         (__v4di)(__m256i)(Y), (int)(C), (__v4di)(__m256i)(W), (__mmask8)(U)))
   13344 
   13345 #define _mm256_maskz_alignr_epi64(U, X, Y, C)                               \
   13346     ((__m256i)__builtin_ia32_alignq256_mask ((__v4di)(__m256i)(X),          \
   13347         (__v4di)(__m256i)(Y), (int)(C), (__v4di)(__m256i)_mm256_setzero_si256 (),\
   13348         (__mmask8)(U)))
   13349 
   13350 #define _mm_alignr_epi32(X, Y, C)                                           \
   13351     ((__m128i)__builtin_ia32_alignd128_mask ((__v4si)(__m128i)(X),          \
   13352         (__v4si)(__m128i)(Y), (int)(C), (__v4si)(__m128i)(X), (__mmask8)-1))
   13353 
   13354 #define _mm_mask_alignr_epi32(W, U, X, Y, C)                                \
   13355     ((__m128i)__builtin_ia32_alignd128_mask ((__v4si)(__m128i)(X),          \
   13356         (__v4si)(__m128i)(Y), (int)(C), (__v4si)(__m128i)(W), (__mmask8)(U)))
   13357 
   13358 #define _mm_maskz_alignr_epi32(U, X, Y, C)                                  \
   13359     ((__m128i)__builtin_ia32_alignd128_mask ((__v4si)(__m128i)(X),          \
   13360 	(__v4si)(__m128i)(Y), (int)(C), (__v4si)(__m128i)_mm_setzero_si128 (),\
   13361         (__mmask8)(U)))
   13362 
   13363 #define _mm_alignr_epi64(X, Y, C)                                           \
   13364     ((__m128i)__builtin_ia32_alignq128_mask ((__v2di)(__m128i)(X),          \
   13365         (__v2di)(__m128i)(Y), (int)(C), (__v2di)(__m128i)(X), (__mmask8)-1))
   13366 
   13367 #define _mm_mask_alignr_epi64(W, U, X, Y, C)                                \
   13368     ((__m128i)__builtin_ia32_alignq128_mask ((__v2di)(__m128i)(X),          \
   13369         (__v2di)(__m128i)(Y), (int)(C), (__v2di)(__m128i)(X), (__mmask8)-1))
   13370 
   13371 #define _mm_maskz_alignr_epi64(U, X, Y, C)                                  \
   13372     ((__m128i)__builtin_ia32_alignq128_mask ((__v2di)(__m128i)(X),          \
   13373 	(__v2di)(__m128i)(Y), (int)(C), (__v2di)(__m128i)_mm_setzero_si128 (),\
   13374         (__mmask8)(U)))
   13375 
   13376 #define _mm_mask_cvtps_ph(W, U, A, I)						\
   13377   ((__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf)(__m128) A, (int) (I),      \
   13378       (__v8hi)(__m128i) (W), (__mmask8) (U)))
   13379 
   13380 #define _mm_maskz_cvtps_ph(U, A, I)						\
   13381   ((__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf)(__m128) A, (int) (I),      \
   13382       (__v8hi)(__m128i) _mm_setzero_si128 (), (__mmask8) (U)))
   13383 
   13384 #define _mm256_mask_cvtps_ph(W, U, A, I)					\
   13385   ((__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf)(__m256) A, (int) (I),	\
   13386       (__v8hi)(__m128i) (W), (__mmask8) (U)))
   13387 
   13388 #define _mm256_maskz_cvtps_ph(U, A, I)						\
   13389   ((__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf)(__m256) A, (int) (I),   \
   13390       (__v8hi)(__m128i) _mm_setzero_si128 (), (__mmask8) (U)))
   13391 
   13392 #define _mm256_mask_srai_epi32(W, U, A, B)				\
   13393   ((__m256i) __builtin_ia32_psradi256_mask ((__v8si)(__m256i)(A),	\
   13394     (int)(B), (__v8si)(__m256i)(W), (__mmask8)(U)))
   13395 
   13396 #define _mm256_maskz_srai_epi32(U, A, B)				\
   13397   ((__m256i) __builtin_ia32_psradi256_mask ((__v8si)(__m256i)(A),	\
   13398     (int)(B), (__v8si)_mm256_setzero_si256 (), (__mmask8)(U)))
   13399 
   13400 #define _mm_mask_srai_epi32(W, U, A, B)                                 \
   13401   ((__m128i) __builtin_ia32_psradi128_mask ((__v4si)(__m128i)(A),       \
   13402     (int)(B), (__v4si)(__m128i)(W), (__mmask8)(U)))
   13403 
   13404 #define _mm_maskz_srai_epi32(U, A, B)                                   \
   13405   ((__m128i) __builtin_ia32_psradi128_mask ((__v4si)(__m128i)(A),       \
   13406     (int)(B), (__v4si)_mm_setzero_si128 (), (__mmask8)(U)))
   13407 
   13408 #define _mm256_srai_epi64(A, B)						\
   13409   ((__m256i) __builtin_ia32_psraqi256_mask ((__v4di)(__m256i)(A),	\
   13410     (int)(B), (__v4di)_mm256_setzero_si256 (), (__mmask8)-1))
   13411 
   13412 #define _mm256_mask_srai_epi64(W, U, A, B)				\
   13413   ((__m256i) __builtin_ia32_psraqi256_mask ((__v4di)(__m256i)(A),	\
   13414     (int)(B), (__v4di)(__m256i)(W), (__mmask8)(U)))
   13415 
   13416 #define _mm256_maskz_srai_epi64(U, A, B)				\
   13417   ((__m256i) __builtin_ia32_psraqi256_mask ((__v4di)(__m256i)(A),	\
   13418     (int)(B), (__v4di)_mm256_setzero_si256 (), (__mmask8)(U)))
   13419 
   13420 #define _mm_srai_epi64(A, B)						\
   13421   ((__m128i) __builtin_ia32_psraqi128_mask ((__v2di)(__m128i)(A),       \
   13422     (int)(B), (__v2di)_mm_setzero_si128 (), (__mmask8)-1))
   13423 
   13424 #define _mm_mask_srai_epi64(W, U, A, B)                                 \
   13425   ((__m128i) __builtin_ia32_psraqi128_mask ((__v2di)(__m128i)(A),       \
   13426     (int)(B), (__v2di)(__m128i)(W), (__mmask8)(U)))
   13427 
   13428 #define _mm_maskz_srai_epi64(U, A, B)                                   \
   13429   ((__m128i) __builtin_ia32_psraqi128_mask ((__v2di)(__m128i)(A),       \
   13430     (int)(B), (__v2di)_mm_setzero_si128 (), (__mmask8)(U)))
   13431 
   13432 #define _mm256_mask_permutex_pd(W, U, A, B)                             \
   13433   ((__m256d) __builtin_ia32_permdf256_mask ((__v4df)(__m256d)(A),       \
   13434     (int)(B), (__v4df)(__m256d)(W), (__mmask8)(U)))
   13435 
   13436 #define _mm256_maskz_permutex_pd(U, A, B)				\
   13437   ((__m256d) __builtin_ia32_permdf256_mask ((__v4df)(__m256d)(A),       \
   13438     (int)(B), (__v4df)(__m256d)_mm256_setzero_pd (), (__mmask8)(U)))
   13439 
   13440 #define _mm256_mask_permute_pd(W, U, X, C)					    \
   13441   ((__m256d) __builtin_ia32_vpermilpd256_mask ((__v4df)(__m256d)(X), (int)(C),	    \
   13442 					      (__v4df)(__m256d)(W),		    \
   13443 					      (__mmask8)(U)))
   13444 
   13445 #define _mm256_maskz_permute_pd(U, X, C)					    \
   13446   ((__m256d) __builtin_ia32_vpermilpd256_mask ((__v4df)(__m256d)(X), (int)(C),	    \
   13447 					      (__v4df)(__m256d)_mm256_setzero_pd (),\
   13448 					      (__mmask8)(U)))
   13449 
   13450 #define _mm256_mask_permute_ps(W, U, X, C)					    \
   13451   ((__m256) __builtin_ia32_vpermilps256_mask ((__v8sf)(__m256)(X), (int)(C),	    \
   13452 					      (__v8sf)(__m256)(W), (__mmask8)(U)))
   13453 
   13454 #define _mm256_maskz_permute_ps(U, X, C)					    \
   13455   ((__m256) __builtin_ia32_vpermilps256_mask ((__v8sf)(__m256)(X), (int)(C),	    \
   13456 					      (__v8sf)(__m256)_mm256_setzero_ps (), \
   13457 					      (__mmask8)(U)))
   13458 
   13459 #define _mm_mask_permute_pd(W, U, X, C)						    \
   13460   ((__m128d) __builtin_ia32_vpermilpd_mask ((__v2df)(__m128d)(X), (int)(C),	    \
   13461 					    (__v2df)(__m128d)(W), (__mmask8)(U)))
   13462 
   13463 #define _mm_maskz_permute_pd(U, X, C)						    \
   13464   ((__m128d) __builtin_ia32_vpermilpd_mask ((__v2df)(__m128d)(X), (int)(C),	    \
   13465 					    (__v2df)(__m128d)_mm_setzero_pd (),	    \
   13466 					    (__mmask8)(U)))
   13467 
   13468 #define _mm_mask_permute_ps(W, U, X, C)						    \
   13469   ((__m128) __builtin_ia32_vpermilps_mask ((__v4sf)(__m128)(X), (int)(C),	    \
   13470 					  (__v4sf)(__m128)(W), (__mmask8)(U)))
   13471 
   13472 #define _mm_maskz_permute_ps(U, X, C)						    \
   13473   ((__m128) __builtin_ia32_vpermilps_mask ((__v4sf)(__m128)(X), (int)(C),	    \
   13474 					  (__v4sf)(__m128)_mm_setzero_ps (),	    \
   13475 					  (__mmask8)(U)))
   13476 
   13477 #define _mm256_mask_blend_pd(__U, __A, __W)			      \
   13478   ((__m256d) __builtin_ia32_blendmpd_256_mask ((__v4df) (__A),	      \
   13479 						     (__v4df) (__W),  \
   13480 						     (__mmask8) (__U)))
   13481 
   13482 #define _mm256_mask_blend_ps(__U, __A, __W)			      \
   13483   ((__m256) __builtin_ia32_blendmps_256_mask ((__v8sf) (__A),	      \
   13484 						    (__v8sf) (__W),   \
   13485 						    (__mmask8) (__U)))
   13486 
   13487 #define _mm256_mask_blend_epi64(__U, __A, __W)			      \
   13488   ((__m256i) __builtin_ia32_blendmq_256_mask ((__v4di) (__A),	      \
   13489 						    (__v4di) (__W),   \
   13490 						    (__mmask8) (__U)))
   13491 
   13492 #define _mm256_mask_blend_epi32(__U, __A, __W)			      \
   13493   ((__m256i) __builtin_ia32_blendmd_256_mask ((__v8si) (__A),	      \
   13494 						    (__v8si) (__W),   \
   13495 						    (__mmask8) (__U)))
   13496 
   13497 #define _mm_mask_blend_pd(__U, __A, __W)			      \
   13498   ((__m128d) __builtin_ia32_blendmpd_128_mask ((__v2df) (__A),	      \
   13499 						     (__v2df) (__W),  \
   13500 						     (__mmask8) (__U)))
   13501 
   13502 #define _mm_mask_blend_ps(__U, __A, __W)			      \
   13503   ((__m128) __builtin_ia32_blendmps_128_mask ((__v4sf) (__A),	      \
   13504 						    (__v4sf) (__W),   \
   13505 						    (__mmask8) (__U)))
   13506 
   13507 #define _mm_mask_blend_epi64(__U, __A, __W)			      \
   13508   ((__m128i) __builtin_ia32_blendmq_128_mask ((__v2di) (__A),	      \
   13509 						    (__v2di) (__W),   \
   13510 						    (__mmask8) (__U)))
   13511 
   13512 #define _mm_mask_blend_epi32(__U, __A, __W)			      \
   13513   ((__m128i) __builtin_ia32_blendmd_128_mask ((__v4si) (__A),	      \
   13514 						    (__v4si) (__W),   \
   13515 						    (__mmask8) (__U)))
   13516 
   13517 #define _mm256_cmp_epu32_mask(X, Y, P)					\
   13518   ((__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si)(__m256i)(X),	\
   13519 					    (__v8si)(__m256i)(Y), (int)(P),\
   13520 					    (__mmask8)-1))
   13521 
   13522 #define _mm256_cmp_epi64_mask(X, Y, P)					\
   13523   ((__mmask8) __builtin_ia32_cmpq256_mask ((__v4di)(__m256i)(X),	\
   13524 					   (__v4di)(__m256i)(Y), (int)(P),\
   13525 					   (__mmask8)-1))
   13526 
   13527 #define _mm256_cmp_epi32_mask(X, Y, P)					\
   13528   ((__mmask8) __builtin_ia32_cmpd256_mask ((__v8si)(__m256i)(X),	\
   13529 					   (__v8si)(__m256i)(Y), (int)(P),\
   13530 					   (__mmask8)-1))
   13531 
   13532 #define _mm256_cmp_epu64_mask(X, Y, P)					\
   13533   ((__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di)(__m256i)(X),	\
   13534 					    (__v4di)(__m256i)(Y), (int)(P),\
   13535 					    (__mmask8)-1))
   13536 
   13537 #define _mm256_cmp_pd_mask(X, Y, P)					\
   13538   ((__mmask8) __builtin_ia32_cmppd256_mask ((__v4df)(__m256d)(X),	\
   13539 					    (__v4df)(__m256d)(Y), (int)(P),\
   13540 					    (__mmask8)-1))
   13541 
   13542 #define _mm256_cmp_ps_mask(X, Y, P)					\
   13543   ((__mmask8) __builtin_ia32_cmpps256_mask ((__v8sf)(__m256)(X),	\
   13544 					     (__v8sf)(__m256)(Y), (int)(P),\
   13545 					     (__mmask8)-1))
   13546 
   13547 #define _mm256_mask_cmp_epi64_mask(M, X, Y, P)				\
   13548   ((__mmask8) __builtin_ia32_cmpq256_mask ((__v4di)(__m256i)(X),	\
   13549 					   (__v4di)(__m256i)(Y), (int)(P),\
   13550 					   (__mmask8)(M)))
   13551 
   13552 #define _mm256_mask_cmp_epi32_mask(M, X, Y, P)				\
   13553   ((__mmask8) __builtin_ia32_cmpd256_mask ((__v8si)(__m256i)(X),	\
   13554 					   (__v8si)(__m256i)(Y), (int)(P),\
   13555 					   (__mmask8)(M)))
   13556 
   13557 #define _mm256_mask_cmp_epu64_mask(M, X, Y, P)				\
   13558   ((__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di)(__m256i)(X),	\
   13559 					    (__v4di)(__m256i)(Y), (int)(P),\
   13560 					    (__mmask8)(M)))
   13561 
   13562 #define _mm256_mask_cmp_epu32_mask(M, X, Y, P)				\
   13563   ((__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si)(__m256i)(X),	\
   13564 					    (__v8si)(__m256i)(Y), (int)(P),\
   13565 					    (__mmask8)(M)))
   13566 
   13567 #define _mm256_mask_cmp_pd_mask(M, X, Y, P)				\
   13568   ((__mmask8) __builtin_ia32_cmppd256_mask ((__v4df)(__m256d)(X),	\
   13569 					    (__v4df)(__m256d)(Y), (int)(P),\
   13570 					    (__mmask8)(M)))
   13571 
   13572 #define _mm256_mask_cmp_ps_mask(M, X, Y, P)				\
   13573   ((__mmask8) __builtin_ia32_cmpps256_mask ((__v8sf)(__m256)(X),	\
   13574 					     (__v8sf)(__m256)(Y), (int)(P),\
   13575 					     (__mmask8)(M)))
   13576 
   13577 #define _mm_cmp_epi64_mask(X, Y, P)					\
   13578   ((__mmask8) __builtin_ia32_cmpq128_mask ((__v2di)(__m128i)(X),	\
   13579 					   (__v2di)(__m128i)(Y), (int)(P),\
   13580 					   (__mmask8)-1))
   13581 
   13582 #define _mm_cmp_epi32_mask(X, Y, P)					\
   13583   ((__mmask8) __builtin_ia32_cmpd128_mask ((__v4si)(__m128i)(X),	\
   13584 					   (__v4si)(__m128i)(Y), (int)(P),\
   13585 					   (__mmask8)-1))
   13586 
   13587 #define _mm_cmp_epu64_mask(X, Y, P)					\
   13588   ((__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di)(__m128i)(X),	\
   13589 					    (__v2di)(__m128i)(Y), (int)(P),\
   13590 					    (__mmask8)-1))
   13591 
   13592 #define _mm_cmp_epu32_mask(X, Y, P)					\
   13593   ((__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si)(__m128i)(X),	\
   13594 					    (__v4si)(__m128i)(Y), (int)(P),\
   13595 					    (__mmask8)-1))
   13596 
   13597 #define _mm_cmp_pd_mask(X, Y, P)					\
   13598   ((__mmask8) __builtin_ia32_cmppd128_mask ((__v2df)(__m128d)(X),	\
   13599 					    (__v2df)(__m128d)(Y), (int)(P),\
   13600 					    (__mmask8)-1))
   13601 
   13602 #define _mm_cmp_ps_mask(X, Y, P)					\
   13603   ((__mmask8) __builtin_ia32_cmpps128_mask ((__v4sf)(__m128)(X),	\
   13604 					     (__v4sf)(__m128)(Y), (int)(P),\
   13605 					     (__mmask8)-1))
   13606 
   13607 #define _mm_mask_cmp_epi64_mask(M, X, Y, P)				\
   13608   ((__mmask8) __builtin_ia32_cmpq128_mask ((__v2di)(__m128i)(X),	\
   13609 					   (__v2di)(__m128i)(Y), (int)(P),\
   13610 					   (__mmask8)(M)))
   13611 
   13612 #define _mm_mask_cmp_epi32_mask(M, X, Y, P)				\
   13613   ((__mmask8) __builtin_ia32_cmpd128_mask ((__v4si)(__m128i)(X),	\
   13614 					   (__v4si)(__m128i)(Y), (int)(P),\
   13615 					   (__mmask8)(M)))
   13616 
   13617 #define _mm_mask_cmp_epu64_mask(M, X, Y, P)				\
   13618   ((__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di)(__m128i)(X),	\
   13619 					    (__v2di)(__m128i)(Y), (int)(P),\
   13620 					    (__mmask8)(M)))
   13621 
   13622 #define _mm_mask_cmp_epu32_mask(M, X, Y, P)				\
   13623   ((__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si)(__m128i)(X),	\
   13624 					    (__v4si)(__m128i)(Y), (int)(P),\
   13625 					    (__mmask8)(M)))
   13626 
   13627 #define _mm_mask_cmp_pd_mask(M, X, Y, P)				\
   13628   ((__mmask8) __builtin_ia32_cmppd128_mask ((__v2df)(__m128d)(X),	\
   13629 					    (__v2df)(__m128d)(Y), (int)(P),\
   13630 					    (__mmask8)(M)))
   13631 
   13632 #define _mm_mask_cmp_ps_mask(M, X, Y, P)				\
   13633   ((__mmask8) __builtin_ia32_cmpps128_mask ((__v4sf)(__m128)(X),	\
   13634 					     (__v4sf)(__m128)(Y), (int)(P),\
   13635 					     (__mmask8)(M)))
   13636 
   13637 #endif
   13638 
   13639 #define _mm256_permutexvar_ps(A, B)	_mm256_permutevar8x32_ps ((B), (A))
   13640 
   13641 #ifdef __DISABLE_AVX512VL__
   13642 #undef __DISABLE_AVX512VL__
   13643 #pragma GCC pop_options
   13644 #endif /* __DISABLE_AVX512VL__ */
   13645 
   13646 #endif /* _AVX512VLINTRIN_H_INCLUDED */
   13647