1 /*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------=== 2 * 3 * Permission is hereby granted, free of charge, to any person obtaining a copy 4 * of this software and associated documentation files (the "Software"), to deal 5 * in the Software without restriction, including without limitation the rights 6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 * copies of the Software, and to permit persons to whom the Software is 8 * furnished to do so, subject to the following conditions: 9 * 10 * The above copyright notice and this permission notice shall be included in 11 * all copies or substantial portions of the Software. 12 * 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 * THE SOFTWARE. 20 * 21 *===-----------------------------------------------------------------------=== 22 */ 23 24 #ifndef __IMMINTRIN_H 25 #error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead." 26 #endif 27 28 #ifndef __AVX512VLINTRIN_H 29 #define __AVX512VLINTRIN_H 30 31 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"))) 32 33 /* Doesn't require avx512vl, used in avx512dqintrin.h */ 34 static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) 35 _mm_setzero_di(void) { 36 return (__m128i)(__v2di){ 0LL, 0LL}; 37 } 38 39 /* Integer compare */ 40 41 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 42 _mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) { 43 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b, 44 (__mmask8)-1); 45 } 46 47 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 48 _mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 49 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b, 50 __u); 51 } 52 53 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 54 _mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) { 55 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0, 56 (__mmask8)-1); 57 } 58 59 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 60 _mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 61 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0, 62 __u); 63 } 64 65 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 66 _mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) { 67 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b, 68 (__mmask8)-1); 69 } 70 71 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 72 _mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 73 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b, 74 __u); 75 } 76 77 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 78 _mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) { 79 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0, 80 (__mmask8)-1); 81 } 82 83 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 84 _mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 85 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0, 86 __u); 87 } 88 89 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 90 _mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) { 91 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b, 92 (__mmask8)-1); 93 } 94 95 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 96 _mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 97 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b, 98 __u); 99 } 100 101 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 102 _mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) { 103 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0, 104 (__mmask8)-1); 105 } 106 107 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 108 _mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 109 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0, 110 __u); 111 } 112 113 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 114 _mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) { 115 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b, 116 (__mmask8)-1); 117 } 118 119 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 120 _mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 121 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b, 122 __u); 123 } 124 125 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 126 _mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) { 127 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0, 128 (__mmask8)-1); 129 } 130 131 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 132 _mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 133 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0, 134 __u); 135 } 136 137 138 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 139 _mm_cmpge_epi32_mask(__m128i __a, __m128i __b) { 140 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5, 141 (__mmask8)-1); 142 } 143 144 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 145 _mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 146 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5, 147 __u); 148 } 149 150 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 151 _mm_cmpge_epu32_mask(__m128i __a, __m128i __b) { 152 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5, 153 (__mmask8)-1); 154 } 155 156 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 157 _mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 158 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5, 159 __u); 160 } 161 162 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 163 _mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) { 164 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5, 165 (__mmask8)-1); 166 } 167 168 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 169 _mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 170 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5, 171 __u); 172 } 173 174 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 175 _mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) { 176 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5, 177 (__mmask8)-1); 178 } 179 180 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 181 _mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 182 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5, 183 __u); 184 } 185 186 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 187 _mm_cmpge_epi64_mask(__m128i __a, __m128i __b) { 188 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5, 189 (__mmask8)-1); 190 } 191 192 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 193 _mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 194 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5, 195 __u); 196 } 197 198 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 199 _mm_cmpge_epu64_mask(__m128i __a, __m128i __b) { 200 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5, 201 (__mmask8)-1); 202 } 203 204 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 205 _mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 206 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5, 207 __u); 208 } 209 210 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 211 _mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) { 212 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5, 213 (__mmask8)-1); 214 } 215 216 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 217 _mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 218 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5, 219 __u); 220 } 221 222 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 223 _mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) { 224 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5, 225 (__mmask8)-1); 226 } 227 228 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 229 _mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 230 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5, 231 __u); 232 } 233 234 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 235 _mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) { 236 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b, 237 (__mmask8)-1); 238 } 239 240 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 241 _mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 242 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b, 243 __u); 244 } 245 246 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 247 _mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) { 248 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6, 249 (__mmask8)-1); 250 } 251 252 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 253 _mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 254 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6, 255 __u); 256 } 257 258 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 259 _mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) { 260 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b, 261 (__mmask8)-1); 262 } 263 264 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 265 _mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 266 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b, 267 __u); 268 } 269 270 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 271 _mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) { 272 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6, 273 (__mmask8)-1); 274 } 275 276 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 277 _mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 278 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6, 279 __u); 280 } 281 282 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 283 _mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) { 284 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b, 285 (__mmask8)-1); 286 } 287 288 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 289 _mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 290 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b, 291 __u); 292 } 293 294 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 295 _mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) { 296 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6, 297 (__mmask8)-1); 298 } 299 300 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 301 _mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 302 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6, 303 __u); 304 } 305 306 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 307 _mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) { 308 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b, 309 (__mmask8)-1); 310 } 311 312 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 313 _mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 314 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b, 315 __u); 316 } 317 318 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 319 _mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) { 320 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6, 321 (__mmask8)-1); 322 } 323 324 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 325 _mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 326 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6, 327 __u); 328 } 329 330 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 331 _mm_cmple_epi32_mask(__m128i __a, __m128i __b) { 332 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2, 333 (__mmask8)-1); 334 } 335 336 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 337 _mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 338 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2, 339 __u); 340 } 341 342 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 343 _mm_cmple_epu32_mask(__m128i __a, __m128i __b) { 344 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2, 345 (__mmask8)-1); 346 } 347 348 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 349 _mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 350 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2, 351 __u); 352 } 353 354 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 355 _mm256_cmple_epi32_mask(__m256i __a, __m256i __b) { 356 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2, 357 (__mmask8)-1); 358 } 359 360 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 361 _mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 362 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2, 363 __u); 364 } 365 366 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 367 _mm256_cmple_epu32_mask(__m256i __a, __m256i __b) { 368 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2, 369 (__mmask8)-1); 370 } 371 372 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 373 _mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 374 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2, 375 __u); 376 } 377 378 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 379 _mm_cmple_epi64_mask(__m128i __a, __m128i __b) { 380 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2, 381 (__mmask8)-1); 382 } 383 384 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 385 _mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 386 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2, 387 __u); 388 } 389 390 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 391 _mm_cmple_epu64_mask(__m128i __a, __m128i __b) { 392 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2, 393 (__mmask8)-1); 394 } 395 396 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 397 _mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 398 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2, 399 __u); 400 } 401 402 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 403 _mm256_cmple_epi64_mask(__m256i __a, __m256i __b) { 404 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2, 405 (__mmask8)-1); 406 } 407 408 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 409 _mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 410 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2, 411 __u); 412 } 413 414 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 415 _mm256_cmple_epu64_mask(__m256i __a, __m256i __b) { 416 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2, 417 (__mmask8)-1); 418 } 419 420 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 421 _mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 422 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2, 423 __u); 424 } 425 426 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 427 _mm_cmplt_epi32_mask(__m128i __a, __m128i __b) { 428 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1, 429 (__mmask8)-1); 430 } 431 432 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 433 _mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 434 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1, 435 __u); 436 } 437 438 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 439 _mm_cmplt_epu32_mask(__m128i __a, __m128i __b) { 440 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1, 441 (__mmask8)-1); 442 } 443 444 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 445 _mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 446 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1, 447 __u); 448 } 449 450 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 451 _mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) { 452 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1, 453 (__mmask8)-1); 454 } 455 456 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 457 _mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 458 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1, 459 __u); 460 } 461 462 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 463 _mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) { 464 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1, 465 (__mmask8)-1); 466 } 467 468 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 469 _mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 470 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1, 471 __u); 472 } 473 474 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 475 _mm_cmplt_epi64_mask(__m128i __a, __m128i __b) { 476 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1, 477 (__mmask8)-1); 478 } 479 480 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 481 _mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 482 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1, 483 __u); 484 } 485 486 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 487 _mm_cmplt_epu64_mask(__m128i __a, __m128i __b) { 488 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1, 489 (__mmask8)-1); 490 } 491 492 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 493 _mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 494 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1, 495 __u); 496 } 497 498 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 499 _mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) { 500 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1, 501 (__mmask8)-1); 502 } 503 504 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 505 _mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 506 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1, 507 __u); 508 } 509 510 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 511 _mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) { 512 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1, 513 (__mmask8)-1); 514 } 515 516 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 517 _mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 518 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1, 519 __u); 520 } 521 522 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 523 _mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) { 524 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4, 525 (__mmask8)-1); 526 } 527 528 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 529 _mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 530 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4, 531 __u); 532 } 533 534 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 535 _mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) { 536 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4, 537 (__mmask8)-1); 538 } 539 540 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 541 _mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 542 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4, 543 __u); 544 } 545 546 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 547 _mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) { 548 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4, 549 (__mmask8)-1); 550 } 551 552 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 553 _mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 554 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4, 555 __u); 556 } 557 558 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 559 _mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) { 560 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4, 561 (__mmask8)-1); 562 } 563 564 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 565 _mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 566 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4, 567 __u); 568 } 569 570 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 571 _mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) { 572 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4, 573 (__mmask8)-1); 574 } 575 576 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 577 _mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 578 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4, 579 __u); 580 } 581 582 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 583 _mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) { 584 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4, 585 (__mmask8)-1); 586 } 587 588 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 589 _mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 590 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4, 591 __u); 592 } 593 594 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 595 _mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) { 596 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4, 597 (__mmask8)-1); 598 } 599 600 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 601 _mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 602 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4, 603 __u); 604 } 605 606 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 607 _mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) { 608 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4, 609 (__mmask8)-1); 610 } 611 612 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 613 _mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 614 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4, 615 __u); 616 } 617 618 static __inline__ __m256i __DEFAULT_FN_ATTRS 619 _mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 620 __m256i __B) 621 { 622 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A, 623 (__v8si) __B, 624 (__v8si) __W, 625 (__mmask8) __U); 626 } 627 628 static __inline__ __m256i __DEFAULT_FN_ATTRS 629 _mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 630 { 631 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A, 632 (__v8si) __B, 633 (__v8si) 634 _mm256_setzero_si256 (), 635 (__mmask8) __U); 636 } 637 638 static __inline__ __m256i __DEFAULT_FN_ATTRS 639 _mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 640 __m256i __B) 641 { 642 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A, 643 (__v4di) __B, 644 (__v4di) __W, 645 (__mmask8) __U); 646 } 647 648 static __inline__ __m256i __DEFAULT_FN_ATTRS 649 _mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 650 { 651 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A, 652 (__v4di) __B, 653 (__v4di) 654 _mm256_setzero_si256 (), 655 (__mmask8) __U); 656 } 657 658 static __inline__ __m256i __DEFAULT_FN_ATTRS 659 _mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 660 __m256i __B) 661 { 662 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A, 663 (__v8si) __B, 664 (__v8si) __W, 665 (__mmask8) __U); 666 } 667 668 static __inline__ __m256i __DEFAULT_FN_ATTRS 669 _mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 670 { 671 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A, 672 (__v8si) __B, 673 (__v8si) 674 _mm256_setzero_si256 (), 675 (__mmask8) __U); 676 } 677 678 static __inline__ __m256i __DEFAULT_FN_ATTRS 679 _mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 680 __m256i __B) 681 { 682 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A, 683 (__v4di) __B, 684 (__v4di) __W, 685 (__mmask8) __U); 686 } 687 688 static __inline__ __m256i __DEFAULT_FN_ATTRS 689 _mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 690 { 691 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A, 692 (__v4di) __B, 693 (__v4di) 694 _mm256_setzero_si256 (), 695 (__mmask8) __U); 696 } 697 698 static __inline__ __m128i __DEFAULT_FN_ATTRS 699 _mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 700 __m128i __B) 701 { 702 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A, 703 (__v4si) __B, 704 (__v4si) __W, 705 (__mmask8) __U); 706 } 707 708 static __inline__ __m128i __DEFAULT_FN_ATTRS 709 _mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 710 { 711 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A, 712 (__v4si) __B, 713 (__v4si) 714 _mm_setzero_si128 (), 715 (__mmask8) __U); 716 } 717 718 static __inline__ __m128i __DEFAULT_FN_ATTRS 719 _mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 720 __m128i __B) 721 { 722 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A, 723 (__v2di) __B, 724 (__v2di) __W, 725 (__mmask8) __U); 726 } 727 728 static __inline__ __m128i __DEFAULT_FN_ATTRS 729 _mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 730 { 731 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A, 732 (__v2di) __B, 733 (__v2di) 734 _mm_setzero_si128 (), 735 (__mmask8) __U); 736 } 737 738 static __inline__ __m128i __DEFAULT_FN_ATTRS 739 _mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 740 __m128i __B) 741 { 742 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A, 743 (__v4si) __B, 744 (__v4si) __W, 745 (__mmask8) __U); 746 } 747 748 static __inline__ __m128i __DEFAULT_FN_ATTRS 749 _mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 750 { 751 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A, 752 (__v4si) __B, 753 (__v4si) 754 _mm_setzero_si128 (), 755 (__mmask8) __U); 756 } 757 758 static __inline__ __m128i __DEFAULT_FN_ATTRS 759 _mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 760 __m128i __B) 761 { 762 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A, 763 (__v2di) __B, 764 (__v2di) __W, 765 (__mmask8) __U); 766 } 767 768 static __inline__ __m128i __DEFAULT_FN_ATTRS 769 _mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 770 { 771 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A, 772 (__v2di) __B, 773 (__v2di) 774 _mm_setzero_si128 (), 775 (__mmask8) __U); 776 } 777 778 static __inline__ __m256i __DEFAULT_FN_ATTRS 779 _mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X, 780 __m256i __Y) 781 { 782 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X, 783 (__v8si) __Y, 784 (__v4di) __W, __M); 785 } 786 787 static __inline__ __m256i __DEFAULT_FN_ATTRS 788 _mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) 789 { 790 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X, 791 (__v8si) __Y, 792 (__v4di) 793 _mm256_setzero_si256 (), 794 __M); 795 } 796 797 static __inline__ __m128i __DEFAULT_FN_ATTRS 798 _mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X, 799 __m128i __Y) 800 { 801 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X, 802 (__v4si) __Y, 803 (__v2di) __W, __M); 804 } 805 806 static __inline__ __m128i __DEFAULT_FN_ATTRS 807 _mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) 808 { 809 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X, 810 (__v4si) __Y, 811 (__v2di) 812 _mm_setzero_si128 (), 813 __M); 814 } 815 816 static __inline__ __m256i __DEFAULT_FN_ATTRS 817 _mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X, 818 __m256i __Y) 819 { 820 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X, 821 (__v8si) __Y, 822 (__v4di) __W, __M); 823 } 824 825 static __inline__ __m256i __DEFAULT_FN_ATTRS 826 _mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) 827 { 828 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X, 829 (__v8si) __Y, 830 (__v4di) 831 _mm256_setzero_si256 (), 832 __M); 833 } 834 835 static __inline__ __m128i __DEFAULT_FN_ATTRS 836 _mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X, 837 __m128i __Y) 838 { 839 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X, 840 (__v4si) __Y, 841 (__v2di) __W, __M); 842 } 843 844 static __inline__ __m128i __DEFAULT_FN_ATTRS 845 _mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) 846 { 847 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X, 848 (__v4si) __Y, 849 (__v2di) 850 _mm_setzero_si128 (), 851 __M); 852 } 853 854 static __inline__ __m256i __DEFAULT_FN_ATTRS 855 _mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) 856 { 857 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A, 858 (__v8si) __B, 859 (__v8si) 860 _mm256_setzero_si256 (), 861 __M); 862 } 863 864 static __inline__ __m256i __DEFAULT_FN_ATTRS 865 _mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A, 866 __m256i __B) 867 { 868 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A, 869 (__v8si) __B, 870 (__v8si) __W, __M); 871 } 872 873 static __inline__ __m128i __DEFAULT_FN_ATTRS 874 _mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) 875 { 876 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, 877 (__v4si) __B, 878 (__v4si) 879 _mm_setzero_si128 (), 880 __M); 881 } 882 883 static __inline__ __m128i __DEFAULT_FN_ATTRS 884 _mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A, 885 __m128i __B) 886 { 887 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, 888 (__v4si) __B, 889 (__v4si) __W, __M); 890 } 891 892 static __inline__ __m256i __DEFAULT_FN_ATTRS 893 _mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 894 { 895 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 896 (__v8si)_mm256_and_si256(__A, __B), 897 (__v8si)__W); 898 } 899 900 static __inline__ __m256i __DEFAULT_FN_ATTRS 901 _mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B) 902 { 903 return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B); 904 } 905 906 static __inline__ __m128i __DEFAULT_FN_ATTRS 907 _mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 908 { 909 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 910 (__v4si)_mm_and_si128(__A, __B), 911 (__v4si)__W); 912 } 913 914 static __inline__ __m128i __DEFAULT_FN_ATTRS 915 _mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B) 916 { 917 return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B); 918 } 919 920 static __inline__ __m256i __DEFAULT_FN_ATTRS 921 _mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 922 { 923 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 924 (__v8si)_mm256_andnot_si256(__A, __B), 925 (__v8si)__W); 926 } 927 928 static __inline__ __m256i __DEFAULT_FN_ATTRS 929 _mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B) 930 { 931 return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(), 932 __U, __A, __B); 933 } 934 935 static __inline__ __m128i __DEFAULT_FN_ATTRS 936 _mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 937 { 938 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 939 (__v4si)_mm_andnot_si128(__A, __B), 940 (__v4si)__W); 941 } 942 943 static __inline__ __m128i __DEFAULT_FN_ATTRS 944 _mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 945 { 946 return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B); 947 } 948 949 static __inline__ __m256i __DEFAULT_FN_ATTRS 950 _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 951 { 952 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 953 (__v8si)_mm256_or_si256(__A, __B), 954 (__v8si)__W); 955 } 956 957 static __inline__ __m256i __DEFAULT_FN_ATTRS 958 _mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B) 959 { 960 return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B); 961 } 962 963 static __inline__ __m128i __DEFAULT_FN_ATTRS 964 _mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 965 { 966 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 967 (__v4si)_mm_or_si128(__A, __B), 968 (__v4si)__W); 969 } 970 971 static __inline__ __m128i __DEFAULT_FN_ATTRS 972 _mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B) 973 { 974 return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B); 975 } 976 977 static __inline__ __m256i __DEFAULT_FN_ATTRS 978 _mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 979 { 980 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 981 (__v8si)_mm256_xor_si256(__A, __B), 982 (__v8si)__W); 983 } 984 985 static __inline__ __m256i __DEFAULT_FN_ATTRS 986 _mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B) 987 { 988 return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B); 989 } 990 991 static __inline__ __m128i __DEFAULT_FN_ATTRS 992 _mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, 993 __m128i __B) 994 { 995 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 996 (__v4si)_mm_xor_si128(__A, __B), 997 (__v4si)__W); 998 } 999 1000 static __inline__ __m128i __DEFAULT_FN_ATTRS 1001 _mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B) 1002 { 1003 return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B); 1004 } 1005 1006 static __inline__ __m256i __DEFAULT_FN_ATTRS 1007 _mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 1008 { 1009 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 1010 (__v4di)_mm256_and_si256(__A, __B), 1011 (__v4di)__W); 1012 } 1013 1014 static __inline__ __m256i __DEFAULT_FN_ATTRS 1015 _mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B) 1016 { 1017 return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B); 1018 } 1019 1020 static __inline__ __m128i __DEFAULT_FN_ATTRS 1021 _mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1022 { 1023 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 1024 (__v2di)_mm_and_si128(__A, __B), 1025 (__v2di)__W); 1026 } 1027 1028 static __inline__ __m128i __DEFAULT_FN_ATTRS 1029 _mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B) 1030 { 1031 return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B); 1032 } 1033 1034 static __inline__ __m256i __DEFAULT_FN_ATTRS 1035 _mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 1036 { 1037 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 1038 (__v4di)_mm256_andnot_si256(__A, __B), 1039 (__v4di)__W); 1040 } 1041 1042 static __inline__ __m256i __DEFAULT_FN_ATTRS 1043 _mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B) 1044 { 1045 return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(), 1046 __U, __A, __B); 1047 } 1048 1049 static __inline__ __m128i __DEFAULT_FN_ATTRS 1050 _mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1051 { 1052 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 1053 (__v2di)_mm_andnot_si128(__A, __B), 1054 (__v2di)__W); 1055 } 1056 1057 static __inline__ __m128i __DEFAULT_FN_ATTRS 1058 _mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B) 1059 { 1060 return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B); 1061 } 1062 1063 static __inline__ __m256i __DEFAULT_FN_ATTRS 1064 _mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 1065 { 1066 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 1067 (__v4di)_mm256_or_si256(__A, __B), 1068 (__v4di)__W); 1069 } 1070 1071 static __inline__ __m256i __DEFAULT_FN_ATTRS 1072 _mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B) 1073 { 1074 return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B); 1075 } 1076 1077 static __inline__ __m128i __DEFAULT_FN_ATTRS 1078 _mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1079 { 1080 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 1081 (__v2di)_mm_or_si128(__A, __B), 1082 (__v2di)__W); 1083 } 1084 1085 static __inline__ __m128i __DEFAULT_FN_ATTRS 1086 _mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B) 1087 { 1088 return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B); 1089 } 1090 1091 static __inline__ __m256i __DEFAULT_FN_ATTRS 1092 _mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 1093 { 1094 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 1095 (__v4di)_mm256_xor_si256(__A, __B), 1096 (__v4di)__W); 1097 } 1098 1099 static __inline__ __m256i __DEFAULT_FN_ATTRS 1100 _mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B) 1101 { 1102 return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B); 1103 } 1104 1105 static __inline__ __m128i __DEFAULT_FN_ATTRS 1106 _mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A, 1107 __m128i __B) 1108 { 1109 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 1110 (__v2di)_mm_xor_si128(__A, __B), 1111 (__v2di)__W); 1112 } 1113 1114 static __inline__ __m128i __DEFAULT_FN_ATTRS 1115 _mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B) 1116 { 1117 return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B); 1118 } 1119 1120 #define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \ 1121 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \ 1122 (__v4si)(__m128i)(b), (int)(p), \ 1123 (__mmask8)-1); }) 1124 1125 #define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \ 1126 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \ 1127 (__v4si)(__m128i)(b), (int)(p), \ 1128 (__mmask8)(m)); }) 1129 1130 #define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \ 1131 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \ 1132 (__v4si)(__m128i)(b), (int)(p), \ 1133 (__mmask8)-1); }) 1134 1135 #define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \ 1136 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \ 1137 (__v4si)(__m128i)(b), (int)(p), \ 1138 (__mmask8)(m)); }) 1139 1140 #define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \ 1141 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \ 1142 (__v8si)(__m256i)(b), (int)(p), \ 1143 (__mmask8)-1); }) 1144 1145 #define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \ 1146 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \ 1147 (__v8si)(__m256i)(b), (int)(p), \ 1148 (__mmask8)(m)); }) 1149 1150 #define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \ 1151 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \ 1152 (__v8si)(__m256i)(b), (int)(p), \ 1153 (__mmask8)-1); }) 1154 1155 #define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \ 1156 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \ 1157 (__v8si)(__m256i)(b), (int)(p), \ 1158 (__mmask8)(m)); }) 1159 1160 #define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \ 1161 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \ 1162 (__v2di)(__m128i)(b), (int)(p), \ 1163 (__mmask8)-1); }) 1164 1165 #define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \ 1166 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \ 1167 (__v2di)(__m128i)(b), (int)(p), \ 1168 (__mmask8)(m)); }) 1169 1170 #define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \ 1171 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \ 1172 (__v2di)(__m128i)(b), (int)(p), \ 1173 (__mmask8)-1); }) 1174 1175 #define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \ 1176 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \ 1177 (__v2di)(__m128i)(b), (int)(p), \ 1178 (__mmask8)(m)); }) 1179 1180 #define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \ 1181 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \ 1182 (__v4di)(__m256i)(b), (int)(p), \ 1183 (__mmask8)-1); }) 1184 1185 #define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \ 1186 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \ 1187 (__v4di)(__m256i)(b), (int)(p), \ 1188 (__mmask8)(m)); }) 1189 1190 #define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \ 1191 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \ 1192 (__v4di)(__m256i)(b), (int)(p), \ 1193 (__mmask8)-1); }) 1194 1195 #define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \ 1196 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \ 1197 (__v4di)(__m256i)(b), (int)(p), \ 1198 (__mmask8)(m)); }) 1199 1200 #define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \ 1201 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \ 1202 (__v8sf)(__m256)(b), (int)(p), \ 1203 (__mmask8)-1); }) 1204 1205 #define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \ 1206 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \ 1207 (__v8sf)(__m256)(b), (int)(p), \ 1208 (__mmask8)(m)); }) 1209 1210 #define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \ 1211 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \ 1212 (__v4df)(__m256d)(b), (int)(p), \ 1213 (__mmask8)-1); }) 1214 1215 #define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \ 1216 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \ 1217 (__v4df)(__m256d)(b), (int)(p), \ 1218 (__mmask8)(m)); }) 1219 1220 #define _mm_cmp_ps_mask(a, b, p) __extension__ ({ \ 1221 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \ 1222 (__v4sf)(__m128)(b), (int)(p), \ 1223 (__mmask8)-1); }) 1224 1225 #define _mm_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \ 1226 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \ 1227 (__v4sf)(__m128)(b), (int)(p), \ 1228 (__mmask8)(m)); }) 1229 1230 #define _mm_cmp_pd_mask(a, b, p) __extension__ ({ \ 1231 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \ 1232 (__v2df)(__m128d)(b), (int)(p), \ 1233 (__mmask8)-1); }) 1234 1235 #define _mm_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \ 1236 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \ 1237 (__v2df)(__m128d)(b), (int)(p), \ 1238 (__mmask8)(m)); }) 1239 1240 static __inline__ __m128d __DEFAULT_FN_ATTRS 1241 _mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1242 { 1243 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A, 1244 (__v2df) __B, 1245 (__v2df) __C, 1246 (__mmask8) __U); 1247 } 1248 1249 static __inline__ __m128d __DEFAULT_FN_ATTRS 1250 _mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1251 { 1252 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A, 1253 (__v2df) __B, 1254 (__v2df) __C, 1255 (__mmask8) __U); 1256 } 1257 1258 static __inline__ __m128d __DEFAULT_FN_ATTRS 1259 _mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1260 { 1261 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A, 1262 (__v2df) __B, 1263 (__v2df) __C, 1264 (__mmask8) __U); 1265 } 1266 1267 static __inline__ __m128d __DEFAULT_FN_ATTRS 1268 _mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1269 { 1270 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A, 1271 (__v2df) __B, 1272 -(__v2df) __C, 1273 (__mmask8) __U); 1274 } 1275 1276 static __inline__ __m128d __DEFAULT_FN_ATTRS 1277 _mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1278 { 1279 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A, 1280 (__v2df) __B, 1281 -(__v2df) __C, 1282 (__mmask8) __U); 1283 } 1284 1285 static __inline__ __m128d __DEFAULT_FN_ATTRS 1286 _mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1287 { 1288 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A, 1289 (__v2df) __B, 1290 (__v2df) __C, 1291 (__mmask8) __U); 1292 } 1293 1294 static __inline__ __m128d __DEFAULT_FN_ATTRS 1295 _mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1296 { 1297 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A, 1298 (__v2df) __B, 1299 (__v2df) __C, 1300 (__mmask8) __U); 1301 } 1302 1303 static __inline__ __m128d __DEFAULT_FN_ATTRS 1304 _mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1305 { 1306 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A, 1307 (__v2df) __B, 1308 -(__v2df) __C, 1309 (__mmask8) __U); 1310 } 1311 1312 static __inline__ __m256d __DEFAULT_FN_ATTRS 1313 _mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1314 { 1315 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A, 1316 (__v4df) __B, 1317 (__v4df) __C, 1318 (__mmask8) __U); 1319 } 1320 1321 static __inline__ __m256d __DEFAULT_FN_ATTRS 1322 _mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1323 { 1324 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A, 1325 (__v4df) __B, 1326 (__v4df) __C, 1327 (__mmask8) __U); 1328 } 1329 1330 static __inline__ __m256d __DEFAULT_FN_ATTRS 1331 _mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1332 { 1333 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A, 1334 (__v4df) __B, 1335 (__v4df) __C, 1336 (__mmask8) __U); 1337 } 1338 1339 static __inline__ __m256d __DEFAULT_FN_ATTRS 1340 _mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1341 { 1342 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A, 1343 (__v4df) __B, 1344 -(__v4df) __C, 1345 (__mmask8) __U); 1346 } 1347 1348 static __inline__ __m256d __DEFAULT_FN_ATTRS 1349 _mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1350 { 1351 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A, 1352 (__v4df) __B, 1353 -(__v4df) __C, 1354 (__mmask8) __U); 1355 } 1356 1357 static __inline__ __m256d __DEFAULT_FN_ATTRS 1358 _mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1359 { 1360 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A, 1361 (__v4df) __B, 1362 (__v4df) __C, 1363 (__mmask8) __U); 1364 } 1365 1366 static __inline__ __m256d __DEFAULT_FN_ATTRS 1367 _mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1368 { 1369 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A, 1370 (__v4df) __B, 1371 (__v4df) __C, 1372 (__mmask8) __U); 1373 } 1374 1375 static __inline__ __m256d __DEFAULT_FN_ATTRS 1376 _mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1377 { 1378 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A, 1379 (__v4df) __B, 1380 -(__v4df) __C, 1381 (__mmask8) __U); 1382 } 1383 1384 static __inline__ __m128 __DEFAULT_FN_ATTRS 1385 _mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1386 { 1387 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A, 1388 (__v4sf) __B, 1389 (__v4sf) __C, 1390 (__mmask8) __U); 1391 } 1392 1393 static __inline__ __m128 __DEFAULT_FN_ATTRS 1394 _mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1395 { 1396 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A, 1397 (__v4sf) __B, 1398 (__v4sf) __C, 1399 (__mmask8) __U); 1400 } 1401 1402 static __inline__ __m128 __DEFAULT_FN_ATTRS 1403 _mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1404 { 1405 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A, 1406 (__v4sf) __B, 1407 (__v4sf) __C, 1408 (__mmask8) __U); 1409 } 1410 1411 static __inline__ __m128 __DEFAULT_FN_ATTRS 1412 _mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1413 { 1414 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A, 1415 (__v4sf) __B, 1416 -(__v4sf) __C, 1417 (__mmask8) __U); 1418 } 1419 1420 static __inline__ __m128 __DEFAULT_FN_ATTRS 1421 _mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1422 { 1423 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A, 1424 (__v4sf) __B, 1425 -(__v4sf) __C, 1426 (__mmask8) __U); 1427 } 1428 1429 static __inline__ __m128 __DEFAULT_FN_ATTRS 1430 _mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1431 { 1432 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A, 1433 (__v4sf) __B, 1434 (__v4sf) __C, 1435 (__mmask8) __U); 1436 } 1437 1438 static __inline__ __m128 __DEFAULT_FN_ATTRS 1439 _mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1440 { 1441 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A, 1442 (__v4sf) __B, 1443 (__v4sf) __C, 1444 (__mmask8) __U); 1445 } 1446 1447 static __inline__ __m128 __DEFAULT_FN_ATTRS 1448 _mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1449 { 1450 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A, 1451 (__v4sf) __B, 1452 -(__v4sf) __C, 1453 (__mmask8) __U); 1454 } 1455 1456 static __inline__ __m256 __DEFAULT_FN_ATTRS 1457 _mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1458 { 1459 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A, 1460 (__v8sf) __B, 1461 (__v8sf) __C, 1462 (__mmask8) __U); 1463 } 1464 1465 static __inline__ __m256 __DEFAULT_FN_ATTRS 1466 _mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1467 { 1468 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A, 1469 (__v8sf) __B, 1470 (__v8sf) __C, 1471 (__mmask8) __U); 1472 } 1473 1474 static __inline__ __m256 __DEFAULT_FN_ATTRS 1475 _mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1476 { 1477 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A, 1478 (__v8sf) __B, 1479 (__v8sf) __C, 1480 (__mmask8) __U); 1481 } 1482 1483 static __inline__ __m256 __DEFAULT_FN_ATTRS 1484 _mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1485 { 1486 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A, 1487 (__v8sf) __B, 1488 -(__v8sf) __C, 1489 (__mmask8) __U); 1490 } 1491 1492 static __inline__ __m256 __DEFAULT_FN_ATTRS 1493 _mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1494 { 1495 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A, 1496 (__v8sf) __B, 1497 -(__v8sf) __C, 1498 (__mmask8) __U); 1499 } 1500 1501 static __inline__ __m256 __DEFAULT_FN_ATTRS 1502 _mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1503 { 1504 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A, 1505 (__v8sf) __B, 1506 (__v8sf) __C, 1507 (__mmask8) __U); 1508 } 1509 1510 static __inline__ __m256 __DEFAULT_FN_ATTRS 1511 _mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1512 { 1513 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A, 1514 (__v8sf) __B, 1515 (__v8sf) __C, 1516 (__mmask8) __U); 1517 } 1518 1519 static __inline__ __m256 __DEFAULT_FN_ATTRS 1520 _mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1521 { 1522 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A, 1523 (__v8sf) __B, 1524 -(__v8sf) __C, 1525 (__mmask8) __U); 1526 } 1527 1528 static __inline__ __m128d __DEFAULT_FN_ATTRS 1529 _mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1530 { 1531 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A, 1532 (__v2df) __B, 1533 (__v2df) __C, 1534 (__mmask8) __U); 1535 } 1536 1537 static __inline__ __m128d __DEFAULT_FN_ATTRS 1538 _mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1539 { 1540 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A, 1541 (__v2df) __B, 1542 (__v2df) __C, 1543 (__mmask8) 1544 __U); 1545 } 1546 1547 static __inline__ __m128d __DEFAULT_FN_ATTRS 1548 _mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1549 { 1550 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A, 1551 (__v2df) __B, 1552 (__v2df) __C, 1553 (__mmask8) 1554 __U); 1555 } 1556 1557 static __inline__ __m128d __DEFAULT_FN_ATTRS 1558 _mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1559 { 1560 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A, 1561 (__v2df) __B, 1562 -(__v2df) __C, 1563 (__mmask8) __U); 1564 } 1565 1566 static __inline__ __m128d __DEFAULT_FN_ATTRS 1567 _mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1568 { 1569 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A, 1570 (__v2df) __B, 1571 -(__v2df) __C, 1572 (__mmask8) 1573 __U); 1574 } 1575 1576 static __inline__ __m256d __DEFAULT_FN_ATTRS 1577 _mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1578 { 1579 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A, 1580 (__v4df) __B, 1581 (__v4df) __C, 1582 (__mmask8) __U); 1583 } 1584 1585 static __inline__ __m256d __DEFAULT_FN_ATTRS 1586 _mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1587 { 1588 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A, 1589 (__v4df) __B, 1590 (__v4df) __C, 1591 (__mmask8) 1592 __U); 1593 } 1594 1595 static __inline__ __m256d __DEFAULT_FN_ATTRS 1596 _mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1597 { 1598 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A, 1599 (__v4df) __B, 1600 (__v4df) __C, 1601 (__mmask8) 1602 __U); 1603 } 1604 1605 static __inline__ __m256d __DEFAULT_FN_ATTRS 1606 _mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1607 { 1608 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A, 1609 (__v4df) __B, 1610 -(__v4df) __C, 1611 (__mmask8) __U); 1612 } 1613 1614 static __inline__ __m256d __DEFAULT_FN_ATTRS 1615 _mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1616 { 1617 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A, 1618 (__v4df) __B, 1619 -(__v4df) __C, 1620 (__mmask8) 1621 __U); 1622 } 1623 1624 static __inline__ __m128 __DEFAULT_FN_ATTRS 1625 _mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1626 { 1627 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A, 1628 (__v4sf) __B, 1629 (__v4sf) __C, 1630 (__mmask8) __U); 1631 } 1632 1633 static __inline__ __m128 __DEFAULT_FN_ATTRS 1634 _mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1635 { 1636 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A, 1637 (__v4sf) __B, 1638 (__v4sf) __C, 1639 (__mmask8) __U); 1640 } 1641 1642 static __inline__ __m128 __DEFAULT_FN_ATTRS 1643 _mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1644 { 1645 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A, 1646 (__v4sf) __B, 1647 (__v4sf) __C, 1648 (__mmask8) __U); 1649 } 1650 1651 static __inline__ __m128 __DEFAULT_FN_ATTRS 1652 _mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1653 { 1654 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A, 1655 (__v4sf) __B, 1656 -(__v4sf) __C, 1657 (__mmask8) __U); 1658 } 1659 1660 static __inline__ __m128 __DEFAULT_FN_ATTRS 1661 _mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1662 { 1663 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A, 1664 (__v4sf) __B, 1665 -(__v4sf) __C, 1666 (__mmask8) __U); 1667 } 1668 1669 static __inline__ __m256 __DEFAULT_FN_ATTRS 1670 _mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, 1671 __m256 __C) 1672 { 1673 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A, 1674 (__v8sf) __B, 1675 (__v8sf) __C, 1676 (__mmask8) __U); 1677 } 1678 1679 static __inline__ __m256 __DEFAULT_FN_ATTRS 1680 _mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1681 { 1682 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A, 1683 (__v8sf) __B, 1684 (__v8sf) __C, 1685 (__mmask8) __U); 1686 } 1687 1688 static __inline__ __m256 __DEFAULT_FN_ATTRS 1689 _mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1690 { 1691 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A, 1692 (__v8sf) __B, 1693 (__v8sf) __C, 1694 (__mmask8) __U); 1695 } 1696 1697 static __inline__ __m256 __DEFAULT_FN_ATTRS 1698 _mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1699 { 1700 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A, 1701 (__v8sf) __B, 1702 -(__v8sf) __C, 1703 (__mmask8) __U); 1704 } 1705 1706 static __inline__ __m256 __DEFAULT_FN_ATTRS 1707 _mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1708 { 1709 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A, 1710 (__v8sf) __B, 1711 -(__v8sf) __C, 1712 (__mmask8) __U); 1713 } 1714 1715 static __inline__ __m128d __DEFAULT_FN_ATTRS 1716 _mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1717 { 1718 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A, 1719 (__v2df) __B, 1720 (__v2df) __C, 1721 (__mmask8) __U); 1722 } 1723 1724 static __inline__ __m256d __DEFAULT_FN_ATTRS 1725 _mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1726 { 1727 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A, 1728 (__v4df) __B, 1729 (__v4df) __C, 1730 (__mmask8) __U); 1731 } 1732 1733 static __inline__ __m128 __DEFAULT_FN_ATTRS 1734 _mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1735 { 1736 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A, 1737 (__v4sf) __B, 1738 (__v4sf) __C, 1739 (__mmask8) __U); 1740 } 1741 1742 static __inline__ __m256 __DEFAULT_FN_ATTRS 1743 _mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1744 { 1745 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A, 1746 (__v8sf) __B, 1747 (__v8sf) __C, 1748 (__mmask8) __U); 1749 } 1750 1751 static __inline__ __m128d __DEFAULT_FN_ATTRS 1752 _mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1753 { 1754 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A, 1755 (__v2df) __B, 1756 (__v2df) __C, 1757 (__mmask8) 1758 __U); 1759 } 1760 1761 static __inline__ __m256d __DEFAULT_FN_ATTRS 1762 _mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1763 { 1764 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A, 1765 (__v4df) __B, 1766 (__v4df) __C, 1767 (__mmask8) 1768 __U); 1769 } 1770 1771 static __inline__ __m128 __DEFAULT_FN_ATTRS 1772 _mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1773 { 1774 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A, 1775 (__v4sf) __B, 1776 (__v4sf) __C, 1777 (__mmask8) __U); 1778 } 1779 1780 static __inline__ __m256 __DEFAULT_FN_ATTRS 1781 _mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1782 { 1783 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A, 1784 (__v8sf) __B, 1785 (__v8sf) __C, 1786 (__mmask8) __U); 1787 } 1788 1789 static __inline__ __m128d __DEFAULT_FN_ATTRS 1790 _mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1791 { 1792 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A, 1793 (__v2df) __B, 1794 (__v2df) __C, 1795 (__mmask8) __U); 1796 } 1797 1798 static __inline__ __m256d __DEFAULT_FN_ATTRS 1799 _mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1800 { 1801 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A, 1802 (__v4df) __B, 1803 (__v4df) __C, 1804 (__mmask8) __U); 1805 } 1806 1807 static __inline__ __m128 __DEFAULT_FN_ATTRS 1808 _mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1809 { 1810 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A, 1811 (__v4sf) __B, 1812 (__v4sf) __C, 1813 (__mmask8) __U); 1814 } 1815 1816 static __inline__ __m256 __DEFAULT_FN_ATTRS 1817 _mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1818 { 1819 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A, 1820 (__v8sf) __B, 1821 (__v8sf) __C, 1822 (__mmask8) __U); 1823 } 1824 1825 static __inline__ __m128d __DEFAULT_FN_ATTRS 1826 _mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1827 { 1828 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A, 1829 (__v2df) __B, 1830 (__v2df) __C, 1831 (__mmask8) __U); 1832 } 1833 1834 static __inline__ __m128d __DEFAULT_FN_ATTRS 1835 _mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1836 { 1837 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A, 1838 (__v2df) __B, 1839 (__v2df) __C, 1840 (__mmask8) __U); 1841 } 1842 1843 static __inline__ __m256d __DEFAULT_FN_ATTRS 1844 _mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1845 { 1846 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A, 1847 (__v4df) __B, 1848 (__v4df) __C, 1849 (__mmask8) __U); 1850 } 1851 1852 static __inline__ __m256d __DEFAULT_FN_ATTRS 1853 _mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1854 { 1855 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A, 1856 (__v4df) __B, 1857 (__v4df) __C, 1858 (__mmask8) __U); 1859 } 1860 1861 static __inline__ __m128 __DEFAULT_FN_ATTRS 1862 _mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1863 { 1864 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A, 1865 (__v4sf) __B, 1866 (__v4sf) __C, 1867 (__mmask8) __U); 1868 } 1869 1870 static __inline__ __m128 __DEFAULT_FN_ATTRS 1871 _mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1872 { 1873 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A, 1874 (__v4sf) __B, 1875 (__v4sf) __C, 1876 (__mmask8) __U); 1877 } 1878 1879 static __inline__ __m256 __DEFAULT_FN_ATTRS 1880 _mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1881 { 1882 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A, 1883 (__v8sf) __B, 1884 (__v8sf) __C, 1885 (__mmask8) __U); 1886 } 1887 1888 static __inline__ __m256 __DEFAULT_FN_ATTRS 1889 _mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1890 { 1891 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A, 1892 (__v8sf) __B, 1893 (__v8sf) __C, 1894 (__mmask8) __U); 1895 } 1896 1897 static __inline__ __m128d __DEFAULT_FN_ATTRS 1898 _mm_mask_add_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1899 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A, 1900 (__v2df) __B, 1901 (__v2df) __W, 1902 (__mmask8) __U); 1903 } 1904 1905 static __inline__ __m128d __DEFAULT_FN_ATTRS 1906 _mm_maskz_add_pd (__mmask8 __U, __m128d __A, __m128d __B) { 1907 return (__m128d) __builtin_ia32_addpd128_mask ((__v2df) __A, 1908 (__v2df) __B, 1909 (__v2df) 1910 _mm_setzero_pd (), 1911 (__mmask8) __U); 1912 } 1913 1914 static __inline__ __m256d __DEFAULT_FN_ATTRS 1915 _mm256_mask_add_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 1916 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A, 1917 (__v4df) __B, 1918 (__v4df) __W, 1919 (__mmask8) __U); 1920 } 1921 1922 static __inline__ __m256d __DEFAULT_FN_ATTRS 1923 _mm256_maskz_add_pd (__mmask8 __U, __m256d __A, __m256d __B) { 1924 return (__m256d) __builtin_ia32_addpd256_mask ((__v4df) __A, 1925 (__v4df) __B, 1926 (__v4df) 1927 _mm256_setzero_pd (), 1928 (__mmask8) __U); 1929 } 1930 1931 static __inline__ __m128 __DEFAULT_FN_ATTRS 1932 _mm_mask_add_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) { 1933 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A, 1934 (__v4sf) __B, 1935 (__v4sf) __W, 1936 (__mmask8) __U); 1937 } 1938 1939 static __inline__ __m128 __DEFAULT_FN_ATTRS 1940 _mm_maskz_add_ps (__mmask16 __U, __m128 __A, __m128 __B) { 1941 return (__m128) __builtin_ia32_addps128_mask ((__v4sf) __A, 1942 (__v4sf) __B, 1943 (__v4sf) 1944 _mm_setzero_ps (), 1945 (__mmask8) __U); 1946 } 1947 1948 static __inline__ __m256 __DEFAULT_FN_ATTRS 1949 _mm256_mask_add_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) { 1950 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A, 1951 (__v8sf) __B, 1952 (__v8sf) __W, 1953 (__mmask8) __U); 1954 } 1955 1956 static __inline__ __m256 __DEFAULT_FN_ATTRS 1957 _mm256_maskz_add_ps (__mmask16 __U, __m256 __A, __m256 __B) { 1958 return (__m256) __builtin_ia32_addps256_mask ((__v8sf) __A, 1959 (__v8sf) __B, 1960 (__v8sf) 1961 _mm256_setzero_ps (), 1962 (__mmask8) __U); 1963 } 1964 1965 static __inline__ __m128i __DEFAULT_FN_ATTRS 1966 _mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) { 1967 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, 1968 (__v4si) __W, 1969 (__v4si) __A); 1970 } 1971 1972 static __inline__ __m256i __DEFAULT_FN_ATTRS 1973 _mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) { 1974 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, 1975 (__v8si) __W, 1976 (__v8si) __A); 1977 } 1978 1979 static __inline__ __m128d __DEFAULT_FN_ATTRS 1980 _mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) { 1981 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, 1982 (__v2df) __W, 1983 (__v2df) __A); 1984 } 1985 1986 static __inline__ __m256d __DEFAULT_FN_ATTRS 1987 _mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) { 1988 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, 1989 (__v4df) __W, 1990 (__v4df) __A); 1991 } 1992 1993 static __inline__ __m128 __DEFAULT_FN_ATTRS 1994 _mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) { 1995 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, 1996 (__v4sf) __W, 1997 (__v4sf) __A); 1998 } 1999 2000 static __inline__ __m256 __DEFAULT_FN_ATTRS 2001 _mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) { 2002 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, 2003 (__v8sf) __W, 2004 (__v8sf) __A); 2005 } 2006 2007 static __inline__ __m128i __DEFAULT_FN_ATTRS 2008 _mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) { 2009 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, 2010 (__v2di) __W, 2011 (__v2di) __A); 2012 } 2013 2014 static __inline__ __m256i __DEFAULT_FN_ATTRS 2015 _mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) { 2016 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, 2017 (__v4di) __W, 2018 (__v4di) __A); 2019 } 2020 2021 static __inline__ __m128d __DEFAULT_FN_ATTRS 2022 _mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) { 2023 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, 2024 (__v2df) __W, 2025 (__mmask8) __U); 2026 } 2027 2028 static __inline__ __m128d __DEFAULT_FN_ATTRS 2029 _mm_maskz_compress_pd (__mmask8 __U, __m128d __A) { 2030 return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, 2031 (__v2df) 2032 _mm_setzero_pd (), 2033 (__mmask8) __U); 2034 } 2035 2036 static __inline__ __m256d __DEFAULT_FN_ATTRS 2037 _mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) { 2038 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, 2039 (__v4df) __W, 2040 (__mmask8) __U); 2041 } 2042 2043 static __inline__ __m256d __DEFAULT_FN_ATTRS 2044 _mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) { 2045 return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, 2046 (__v4df) 2047 _mm256_setzero_pd (), 2048 (__mmask8) __U); 2049 } 2050 2051 static __inline__ __m128i __DEFAULT_FN_ATTRS 2052 _mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { 2053 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, 2054 (__v2di) __W, 2055 (__mmask8) __U); 2056 } 2057 2058 static __inline__ __m128i __DEFAULT_FN_ATTRS 2059 _mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) { 2060 return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, 2061 (__v2di) 2062 _mm_setzero_si128 (), 2063 (__mmask8) __U); 2064 } 2065 2066 static __inline__ __m256i __DEFAULT_FN_ATTRS 2067 _mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { 2068 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, 2069 (__v4di) __W, 2070 (__mmask8) __U); 2071 } 2072 2073 static __inline__ __m256i __DEFAULT_FN_ATTRS 2074 _mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) { 2075 return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, 2076 (__v4di) 2077 _mm256_setzero_si256 (), 2078 (__mmask8) __U); 2079 } 2080 2081 static __inline__ __m128 __DEFAULT_FN_ATTRS 2082 _mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) { 2083 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, 2084 (__v4sf) __W, 2085 (__mmask8) __U); 2086 } 2087 2088 static __inline__ __m128 __DEFAULT_FN_ATTRS 2089 _mm_maskz_compress_ps (__mmask8 __U, __m128 __A) { 2090 return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, 2091 (__v4sf) 2092 _mm_setzero_ps (), 2093 (__mmask8) __U); 2094 } 2095 2096 static __inline__ __m256 __DEFAULT_FN_ATTRS 2097 _mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) { 2098 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, 2099 (__v8sf) __W, 2100 (__mmask8) __U); 2101 } 2102 2103 static __inline__ __m256 __DEFAULT_FN_ATTRS 2104 _mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) { 2105 return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, 2106 (__v8sf) 2107 _mm256_setzero_ps (), 2108 (__mmask8) __U); 2109 } 2110 2111 static __inline__ __m128i __DEFAULT_FN_ATTRS 2112 _mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { 2113 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, 2114 (__v4si) __W, 2115 (__mmask8) __U); 2116 } 2117 2118 static __inline__ __m128i __DEFAULT_FN_ATTRS 2119 _mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) { 2120 return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, 2121 (__v4si) 2122 _mm_setzero_si128 (), 2123 (__mmask8) __U); 2124 } 2125 2126 static __inline__ __m256i __DEFAULT_FN_ATTRS 2127 _mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { 2128 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, 2129 (__v8si) __W, 2130 (__mmask8) __U); 2131 } 2132 2133 static __inline__ __m256i __DEFAULT_FN_ATTRS 2134 _mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) { 2135 return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, 2136 (__v8si) 2137 _mm256_setzero_si256 (), 2138 (__mmask8) __U); 2139 } 2140 2141 static __inline__ void __DEFAULT_FN_ATTRS 2142 _mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) { 2143 __builtin_ia32_compressstoredf128_mask ((__v2df *) __P, 2144 (__v2df) __A, 2145 (__mmask8) __U); 2146 } 2147 2148 static __inline__ void __DEFAULT_FN_ATTRS 2149 _mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) { 2150 __builtin_ia32_compressstoredf256_mask ((__v4df *) __P, 2151 (__v4df) __A, 2152 (__mmask8) __U); 2153 } 2154 2155 static __inline__ void __DEFAULT_FN_ATTRS 2156 _mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) { 2157 __builtin_ia32_compressstoredi128_mask ((__v2di *) __P, 2158 (__v2di) __A, 2159 (__mmask8) __U); 2160 } 2161 2162 static __inline__ void __DEFAULT_FN_ATTRS 2163 _mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) { 2164 __builtin_ia32_compressstoredi256_mask ((__v4di *) __P, 2165 (__v4di) __A, 2166 (__mmask8) __U); 2167 } 2168 2169 static __inline__ void __DEFAULT_FN_ATTRS 2170 _mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) { 2171 __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P, 2172 (__v4sf) __A, 2173 (__mmask8) __U); 2174 } 2175 2176 static __inline__ void __DEFAULT_FN_ATTRS 2177 _mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) { 2178 __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P, 2179 (__v8sf) __A, 2180 (__mmask8) __U); 2181 } 2182 2183 static __inline__ void __DEFAULT_FN_ATTRS 2184 _mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) { 2185 __builtin_ia32_compressstoresi128_mask ((__v4si *) __P, 2186 (__v4si) __A, 2187 (__mmask8) __U); 2188 } 2189 2190 static __inline__ void __DEFAULT_FN_ATTRS 2191 _mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) { 2192 __builtin_ia32_compressstoresi256_mask ((__v8si *) __P, 2193 (__v8si) __A, 2194 (__mmask8) __U); 2195 } 2196 2197 static __inline__ __m128d __DEFAULT_FN_ATTRS 2198 _mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) { 2199 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A, 2200 (__v2df) __W, 2201 (__mmask8) __U); 2202 } 2203 2204 static __inline__ __m128d __DEFAULT_FN_ATTRS 2205 _mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) { 2206 return (__m128d) __builtin_ia32_cvtdq2pd128_mask ((__v4si) __A, 2207 (__v2df) 2208 _mm_setzero_pd (), 2209 (__mmask8) __U); 2210 } 2211 2212 static __inline__ __m256d __DEFAULT_FN_ATTRS 2213 _mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) { 2214 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A, 2215 (__v4df) __W, 2216 (__mmask8) __U); 2217 } 2218 2219 static __inline__ __m256d __DEFAULT_FN_ATTRS 2220 _mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) { 2221 return (__m256d) __builtin_ia32_cvtdq2pd256_mask ((__v4si) __A, 2222 (__v4df) 2223 _mm256_setzero_pd (), 2224 (__mmask8) __U); 2225 } 2226 2227 static __inline__ __m128 __DEFAULT_FN_ATTRS 2228 _mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) { 2229 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A, 2230 (__v4sf) __W, 2231 (__mmask8) __U); 2232 } 2233 2234 static __inline__ __m128 __DEFAULT_FN_ATTRS 2235 _mm_maskz_cvtepi32_ps (__mmask16 __U, __m128i __A) { 2236 return (__m128) __builtin_ia32_cvtdq2ps128_mask ((__v4si) __A, 2237 (__v4sf) 2238 _mm_setzero_ps (), 2239 (__mmask8) __U); 2240 } 2241 2242 static __inline__ __m256 __DEFAULT_FN_ATTRS 2243 _mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) { 2244 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A, 2245 (__v8sf) __W, 2246 (__mmask8) __U); 2247 } 2248 2249 static __inline__ __m256 __DEFAULT_FN_ATTRS 2250 _mm256_maskz_cvtepi32_ps (__mmask16 __U, __m256i __A) { 2251 return (__m256) __builtin_ia32_cvtdq2ps256_mask ((__v8si) __A, 2252 (__v8sf) 2253 _mm256_setzero_ps (), 2254 (__mmask8) __U); 2255 } 2256 2257 static __inline__ __m128i __DEFAULT_FN_ATTRS 2258 _mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) { 2259 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, 2260 (__v4si) __W, 2261 (__mmask8) __U); 2262 } 2263 2264 static __inline__ __m128i __DEFAULT_FN_ATTRS 2265 _mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) { 2266 return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, 2267 (__v4si) 2268 _mm_setzero_si128 (), 2269 (__mmask8) __U); 2270 } 2271 2272 static __inline__ __m128i __DEFAULT_FN_ATTRS 2273 _mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) { 2274 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A, 2275 (__v4si) __W, 2276 (__mmask8) __U); 2277 } 2278 2279 static __inline__ __m128i __DEFAULT_FN_ATTRS 2280 _mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) { 2281 return (__m128i) __builtin_ia32_cvtpd2dq256_mask ((__v4df) __A, 2282 (__v4si) 2283 _mm_setzero_si128 (), 2284 (__mmask8) __U); 2285 } 2286 2287 static __inline__ __m128 __DEFAULT_FN_ATTRS 2288 _mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) { 2289 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, 2290 (__v4sf) __W, 2291 (__mmask8) __U); 2292 } 2293 2294 static __inline__ __m128 __DEFAULT_FN_ATTRS 2295 _mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) { 2296 return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, 2297 (__v4sf) 2298 _mm_setzero_ps (), 2299 (__mmask8) __U); 2300 } 2301 2302 static __inline__ __m128 __DEFAULT_FN_ATTRS 2303 _mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) { 2304 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A, 2305 (__v4sf) __W, 2306 (__mmask8) __U); 2307 } 2308 2309 static __inline__ __m128 __DEFAULT_FN_ATTRS 2310 _mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) { 2311 return (__m128) __builtin_ia32_cvtpd2ps256_mask ((__v4df) __A, 2312 (__v4sf) 2313 _mm_setzero_ps (), 2314 (__mmask8) __U); 2315 } 2316 2317 static __inline__ __m128i __DEFAULT_FN_ATTRS 2318 _mm_cvtpd_epu32 (__m128d __A) { 2319 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, 2320 (__v4si) 2321 _mm_setzero_si128 (), 2322 (__mmask8) -1); 2323 } 2324 2325 static __inline__ __m128i __DEFAULT_FN_ATTRS 2326 _mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) { 2327 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, 2328 (__v4si) __W, 2329 (__mmask8) __U); 2330 } 2331 2332 static __inline__ __m128i __DEFAULT_FN_ATTRS 2333 _mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) { 2334 return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, 2335 (__v4si) 2336 _mm_setzero_si128 (), 2337 (__mmask8) __U); 2338 } 2339 2340 static __inline__ __m128i __DEFAULT_FN_ATTRS 2341 _mm256_cvtpd_epu32 (__m256d __A) { 2342 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, 2343 (__v4si) 2344 _mm_setzero_si128 (), 2345 (__mmask8) -1); 2346 } 2347 2348 static __inline__ __m128i __DEFAULT_FN_ATTRS 2349 _mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) { 2350 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, 2351 (__v4si) __W, 2352 (__mmask8) __U); 2353 } 2354 2355 static __inline__ __m128i __DEFAULT_FN_ATTRS 2356 _mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) { 2357 return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, 2358 (__v4si) 2359 _mm_setzero_si128 (), 2360 (__mmask8) __U); 2361 } 2362 2363 static __inline__ __m128i __DEFAULT_FN_ATTRS 2364 _mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) { 2365 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A, 2366 (__v4si) __W, 2367 (__mmask8) __U); 2368 } 2369 2370 static __inline__ __m128i __DEFAULT_FN_ATTRS 2371 _mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) { 2372 return (__m128i) __builtin_ia32_cvtps2dq128_mask ((__v4sf) __A, 2373 (__v4si) 2374 _mm_setzero_si128 (), 2375 (__mmask8) __U); 2376 } 2377 2378 static __inline__ __m256i __DEFAULT_FN_ATTRS 2379 _mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) { 2380 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A, 2381 (__v8si) __W, 2382 (__mmask8) __U); 2383 } 2384 2385 static __inline__ __m256i __DEFAULT_FN_ATTRS 2386 _mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) { 2387 return (__m256i) __builtin_ia32_cvtps2dq256_mask ((__v8sf) __A, 2388 (__v8si) 2389 _mm256_setzero_si256 (), 2390 (__mmask8) __U); 2391 } 2392 2393 static __inline__ __m128d __DEFAULT_FN_ATTRS 2394 _mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) { 2395 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A, 2396 (__v2df) __W, 2397 (__mmask8) __U); 2398 } 2399 2400 static __inline__ __m128d __DEFAULT_FN_ATTRS 2401 _mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) { 2402 return (__m128d) __builtin_ia32_cvtps2pd128_mask ((__v4sf) __A, 2403 (__v2df) 2404 _mm_setzero_pd (), 2405 (__mmask8) __U); 2406 } 2407 2408 static __inline__ __m256d __DEFAULT_FN_ATTRS 2409 _mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) { 2410 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A, 2411 (__v4df) __W, 2412 (__mmask8) __U); 2413 } 2414 2415 static __inline__ __m256d __DEFAULT_FN_ATTRS 2416 _mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) { 2417 return (__m256d) __builtin_ia32_cvtps2pd256_mask ((__v4sf) __A, 2418 (__v4df) 2419 _mm256_setzero_pd (), 2420 (__mmask8) __U); 2421 } 2422 2423 static __inline__ __m128i __DEFAULT_FN_ATTRS 2424 _mm_cvtps_epu32 (__m128 __A) { 2425 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, 2426 (__v4si) 2427 _mm_setzero_si128 (), 2428 (__mmask8) -1); 2429 } 2430 2431 static __inline__ __m128i __DEFAULT_FN_ATTRS 2432 _mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) { 2433 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, 2434 (__v4si) __W, 2435 (__mmask8) __U); 2436 } 2437 2438 static __inline__ __m128i __DEFAULT_FN_ATTRS 2439 _mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) { 2440 return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, 2441 (__v4si) 2442 _mm_setzero_si128 (), 2443 (__mmask8) __U); 2444 } 2445 2446 static __inline__ __m256i __DEFAULT_FN_ATTRS 2447 _mm256_cvtps_epu32 (__m256 __A) { 2448 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, 2449 (__v8si) 2450 _mm256_setzero_si256 (), 2451 (__mmask8) -1); 2452 } 2453 2454 static __inline__ __m256i __DEFAULT_FN_ATTRS 2455 _mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) { 2456 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, 2457 (__v8si) __W, 2458 (__mmask8) __U); 2459 } 2460 2461 static __inline__ __m256i __DEFAULT_FN_ATTRS 2462 _mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) { 2463 return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, 2464 (__v8si) 2465 _mm256_setzero_si256 (), 2466 (__mmask8) __U); 2467 } 2468 2469 static __inline__ __m128i __DEFAULT_FN_ATTRS 2470 _mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) { 2471 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, 2472 (__v4si) __W, 2473 (__mmask8) __U); 2474 } 2475 2476 static __inline__ __m128i __DEFAULT_FN_ATTRS 2477 _mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) { 2478 return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, 2479 (__v4si) 2480 _mm_setzero_si128 (), 2481 (__mmask8) __U); 2482 } 2483 2484 static __inline__ __m128i __DEFAULT_FN_ATTRS 2485 _mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) { 2486 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A, 2487 (__v4si) __W, 2488 (__mmask8) __U); 2489 } 2490 2491 static __inline__ __m128i __DEFAULT_FN_ATTRS 2492 _mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) { 2493 return (__m128i) __builtin_ia32_cvttpd2dq256_mask ((__v4df) __A, 2494 (__v4si) 2495 _mm_setzero_si128 (), 2496 (__mmask8) __U); 2497 } 2498 2499 static __inline__ __m128i __DEFAULT_FN_ATTRS 2500 _mm_cvttpd_epu32 (__m128d __A) { 2501 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, 2502 (__v4si) 2503 _mm_setzero_si128 (), 2504 (__mmask8) -1); 2505 } 2506 2507 static __inline__ __m128i __DEFAULT_FN_ATTRS 2508 _mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) { 2509 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, 2510 (__v4si) __W, 2511 (__mmask8) __U); 2512 } 2513 2514 static __inline__ __m128i __DEFAULT_FN_ATTRS 2515 _mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) { 2516 return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, 2517 (__v4si) 2518 _mm_setzero_si128 (), 2519 (__mmask8) __U); 2520 } 2521 2522 static __inline__ __m128i __DEFAULT_FN_ATTRS 2523 _mm256_cvttpd_epu32 (__m256d __A) { 2524 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, 2525 (__v4si) 2526 _mm_setzero_si128 (), 2527 (__mmask8) -1); 2528 } 2529 2530 static __inline__ __m128i __DEFAULT_FN_ATTRS 2531 _mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) { 2532 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, 2533 (__v4si) __W, 2534 (__mmask8) __U); 2535 } 2536 2537 static __inline__ __m128i __DEFAULT_FN_ATTRS 2538 _mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) { 2539 return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, 2540 (__v4si) 2541 _mm_setzero_si128 (), 2542 (__mmask8) __U); 2543 } 2544 2545 static __inline__ __m128i __DEFAULT_FN_ATTRS 2546 _mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) { 2547 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A, 2548 (__v4si) __W, 2549 (__mmask8) __U); 2550 } 2551 2552 static __inline__ __m128i __DEFAULT_FN_ATTRS 2553 _mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) { 2554 return (__m128i) __builtin_ia32_cvttps2dq128_mask ((__v4sf) __A, 2555 (__v4si) 2556 _mm_setzero_si128 (), 2557 (__mmask8) __U); 2558 } 2559 2560 static __inline__ __m256i __DEFAULT_FN_ATTRS 2561 _mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) { 2562 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A, 2563 (__v8si) __W, 2564 (__mmask8) __U); 2565 } 2566 2567 static __inline__ __m256i __DEFAULT_FN_ATTRS 2568 _mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) { 2569 return (__m256i) __builtin_ia32_cvttps2dq256_mask ((__v8sf) __A, 2570 (__v8si) 2571 _mm256_setzero_si256 (), 2572 (__mmask8) __U); 2573 } 2574 2575 static __inline__ __m128i __DEFAULT_FN_ATTRS 2576 _mm_cvttps_epu32 (__m128 __A) { 2577 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, 2578 (__v4si) 2579 _mm_setzero_si128 (), 2580 (__mmask8) -1); 2581 } 2582 2583 static __inline__ __m128i __DEFAULT_FN_ATTRS 2584 _mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) { 2585 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, 2586 (__v4si) __W, 2587 (__mmask8) __U); 2588 } 2589 2590 static __inline__ __m128i __DEFAULT_FN_ATTRS 2591 _mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) { 2592 return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, 2593 (__v4si) 2594 _mm_setzero_si128 (), 2595 (__mmask8) __U); 2596 } 2597 2598 static __inline__ __m256i __DEFAULT_FN_ATTRS 2599 _mm256_cvttps_epu32 (__m256 __A) { 2600 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, 2601 (__v8si) 2602 _mm256_setzero_si256 (), 2603 (__mmask8) -1); 2604 } 2605 2606 static __inline__ __m256i __DEFAULT_FN_ATTRS 2607 _mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) { 2608 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, 2609 (__v8si) __W, 2610 (__mmask8) __U); 2611 } 2612 2613 static __inline__ __m256i __DEFAULT_FN_ATTRS 2614 _mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) { 2615 return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, 2616 (__v8si) 2617 _mm256_setzero_si256 (), 2618 (__mmask8) __U); 2619 } 2620 2621 static __inline__ __m128d __DEFAULT_FN_ATTRS 2622 _mm_cvtepu32_pd (__m128i __A) { 2623 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A, 2624 (__v2df) 2625 _mm_setzero_pd (), 2626 (__mmask8) -1); 2627 } 2628 2629 static __inline__ __m128d __DEFAULT_FN_ATTRS 2630 _mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) { 2631 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A, 2632 (__v2df) __W, 2633 (__mmask8) __U); 2634 } 2635 2636 static __inline__ __m128d __DEFAULT_FN_ATTRS 2637 _mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) { 2638 return (__m128d) __builtin_ia32_cvtudq2pd128_mask ((__v4si) __A, 2639 (__v2df) 2640 _mm_setzero_pd (), 2641 (__mmask8) __U); 2642 } 2643 2644 static __inline__ __m256d __DEFAULT_FN_ATTRS 2645 _mm256_cvtepu32_pd (__m128i __A) { 2646 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A, 2647 (__v4df) 2648 _mm256_setzero_pd (), 2649 (__mmask8) -1); 2650 } 2651 2652 static __inline__ __m256d __DEFAULT_FN_ATTRS 2653 _mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) { 2654 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A, 2655 (__v4df) __W, 2656 (__mmask8) __U); 2657 } 2658 2659 static __inline__ __m256d __DEFAULT_FN_ATTRS 2660 _mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) { 2661 return (__m256d) __builtin_ia32_cvtudq2pd256_mask ((__v4si) __A, 2662 (__v4df) 2663 _mm256_setzero_pd (), 2664 (__mmask8) __U); 2665 } 2666 2667 static __inline__ __m128 __DEFAULT_FN_ATTRS 2668 _mm_cvtepu32_ps (__m128i __A) { 2669 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A, 2670 (__v4sf) 2671 _mm_setzero_ps (), 2672 (__mmask8) -1); 2673 } 2674 2675 static __inline__ __m128 __DEFAULT_FN_ATTRS 2676 _mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) { 2677 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A, 2678 (__v4sf) __W, 2679 (__mmask8) __U); 2680 } 2681 2682 static __inline__ __m128 __DEFAULT_FN_ATTRS 2683 _mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) { 2684 return (__m128) __builtin_ia32_cvtudq2ps128_mask ((__v4si) __A, 2685 (__v4sf) 2686 _mm_setzero_ps (), 2687 (__mmask8) __U); 2688 } 2689 2690 static __inline__ __m256 __DEFAULT_FN_ATTRS 2691 _mm256_cvtepu32_ps (__m256i __A) { 2692 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A, 2693 (__v8sf) 2694 _mm256_setzero_ps (), 2695 (__mmask8) -1); 2696 } 2697 2698 static __inline__ __m256 __DEFAULT_FN_ATTRS 2699 _mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) { 2700 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A, 2701 (__v8sf) __W, 2702 (__mmask8) __U); 2703 } 2704 2705 static __inline__ __m256 __DEFAULT_FN_ATTRS 2706 _mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) { 2707 return (__m256) __builtin_ia32_cvtudq2ps256_mask ((__v8si) __A, 2708 (__v8sf) 2709 _mm256_setzero_ps (), 2710 (__mmask8) __U); 2711 } 2712 2713 static __inline__ __m128d __DEFAULT_FN_ATTRS 2714 _mm_mask_div_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2715 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A, 2716 (__v2df) __B, 2717 (__v2df) __W, 2718 (__mmask8) __U); 2719 } 2720 2721 static __inline__ __m128d __DEFAULT_FN_ATTRS 2722 _mm_maskz_div_pd (__mmask8 __U, __m128d __A, __m128d __B) { 2723 return (__m128d) __builtin_ia32_divpd_mask ((__v2df) __A, 2724 (__v2df) __B, 2725 (__v2df) 2726 _mm_setzero_pd (), 2727 (__mmask8) __U); 2728 } 2729 2730 static __inline__ __m256d __DEFAULT_FN_ATTRS 2731 _mm256_mask_div_pd (__m256d __W, __mmask8 __U, __m256d __A, 2732 __m256d __B) { 2733 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A, 2734 (__v4df) __B, 2735 (__v4df) __W, 2736 (__mmask8) __U); 2737 } 2738 2739 static __inline__ __m256d __DEFAULT_FN_ATTRS 2740 _mm256_maskz_div_pd (__mmask8 __U, __m256d __A, __m256d __B) { 2741 return (__m256d) __builtin_ia32_divpd256_mask ((__v4df) __A, 2742 (__v4df) __B, 2743 (__v4df) 2744 _mm256_setzero_pd (), 2745 (__mmask8) __U); 2746 } 2747 2748 static __inline__ __m128 __DEFAULT_FN_ATTRS 2749 _mm_mask_div_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 2750 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A, 2751 (__v4sf) __B, 2752 (__v4sf) __W, 2753 (__mmask8) __U); 2754 } 2755 2756 static __inline__ __m128 __DEFAULT_FN_ATTRS 2757 _mm_maskz_div_ps (__mmask8 __U, __m128 __A, __m128 __B) { 2758 return (__m128) __builtin_ia32_divps_mask ((__v4sf) __A, 2759 (__v4sf) __B, 2760 (__v4sf) 2761 _mm_setzero_ps (), 2762 (__mmask8) __U); 2763 } 2764 2765 static __inline__ __m256 __DEFAULT_FN_ATTRS 2766 _mm256_mask_div_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 2767 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A, 2768 (__v8sf) __B, 2769 (__v8sf) __W, 2770 (__mmask8) __U); 2771 } 2772 2773 static __inline__ __m256 __DEFAULT_FN_ATTRS 2774 _mm256_maskz_div_ps (__mmask8 __U, __m256 __A, __m256 __B) { 2775 return (__m256) __builtin_ia32_divps256_mask ((__v8sf) __A, 2776 (__v8sf) __B, 2777 (__v8sf) 2778 _mm256_setzero_ps (), 2779 (__mmask8) __U); 2780 } 2781 2782 static __inline__ __m128d __DEFAULT_FN_ATTRS 2783 _mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) { 2784 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, 2785 (__v2df) __W, 2786 (__mmask8) __U); 2787 } 2788 2789 static __inline__ __m128d __DEFAULT_FN_ATTRS 2790 _mm_maskz_expand_pd (__mmask8 __U, __m128d __A) { 2791 return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, 2792 (__v2df) 2793 _mm_setzero_pd (), 2794 (__mmask8) __U); 2795 } 2796 2797 static __inline__ __m256d __DEFAULT_FN_ATTRS 2798 _mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) { 2799 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, 2800 (__v4df) __W, 2801 (__mmask8) __U); 2802 } 2803 2804 static __inline__ __m256d __DEFAULT_FN_ATTRS 2805 _mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) { 2806 return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, 2807 (__v4df) 2808 _mm256_setzero_pd (), 2809 (__mmask8) __U); 2810 } 2811 2812 static __inline__ __m128i __DEFAULT_FN_ATTRS 2813 _mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { 2814 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, 2815 (__v2di) __W, 2816 (__mmask8) __U); 2817 } 2818 2819 static __inline__ __m128i __DEFAULT_FN_ATTRS 2820 _mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) { 2821 return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, 2822 (__v2di) 2823 _mm_setzero_si128 (), 2824 (__mmask8) __U); 2825 } 2826 2827 static __inline__ __m256i __DEFAULT_FN_ATTRS 2828 _mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { 2829 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, 2830 (__v4di) __W, 2831 (__mmask8) __U); 2832 } 2833 2834 static __inline__ __m256i __DEFAULT_FN_ATTRS 2835 _mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) { 2836 return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, 2837 (__v4di) 2838 _mm256_setzero_si256 (), 2839 (__mmask8) __U); 2840 } 2841 2842 static __inline__ __m128d __DEFAULT_FN_ATTRS 2843 _mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) { 2844 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, 2845 (__v2df) __W, 2846 (__mmask8) 2847 __U); 2848 } 2849 2850 static __inline__ __m128d __DEFAULT_FN_ATTRS 2851 _mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { 2852 return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, 2853 (__v2df) 2854 _mm_setzero_pd (), 2855 (__mmask8) 2856 __U); 2857 } 2858 2859 static __inline__ __m256d __DEFAULT_FN_ATTRS 2860 _mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) { 2861 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, 2862 (__v4df) __W, 2863 (__mmask8) 2864 __U); 2865 } 2866 2867 static __inline__ __m256d __DEFAULT_FN_ATTRS 2868 _mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { 2869 return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, 2870 (__v4df) 2871 _mm256_setzero_pd (), 2872 (__mmask8) 2873 __U); 2874 } 2875 2876 static __inline__ __m128i __DEFAULT_FN_ATTRS 2877 _mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { 2878 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, 2879 (__v2di) __W, 2880 (__mmask8) 2881 __U); 2882 } 2883 2884 static __inline__ __m128i __DEFAULT_FN_ATTRS 2885 _mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { 2886 return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, 2887 (__v2di) 2888 _mm_setzero_si128 (), 2889 (__mmask8) 2890 __U); 2891 } 2892 2893 static __inline__ __m256i __DEFAULT_FN_ATTRS 2894 _mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U, 2895 void const *__P) { 2896 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, 2897 (__v4di) __W, 2898 (__mmask8) 2899 __U); 2900 } 2901 2902 static __inline__ __m256i __DEFAULT_FN_ATTRS 2903 _mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { 2904 return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, 2905 (__v4di) 2906 _mm256_setzero_si256 (), 2907 (__mmask8) 2908 __U); 2909 } 2910 2911 static __inline__ __m128 __DEFAULT_FN_ATTRS 2912 _mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) { 2913 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, 2914 (__v4sf) __W, 2915 (__mmask8) __U); 2916 } 2917 2918 static __inline__ __m128 __DEFAULT_FN_ATTRS 2919 _mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { 2920 return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, 2921 (__v4sf) 2922 _mm_setzero_ps (), 2923 (__mmask8) 2924 __U); 2925 } 2926 2927 static __inline__ __m256 __DEFAULT_FN_ATTRS 2928 _mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) { 2929 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, 2930 (__v8sf) __W, 2931 (__mmask8) __U); 2932 } 2933 2934 static __inline__ __m256 __DEFAULT_FN_ATTRS 2935 _mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { 2936 return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, 2937 (__v8sf) 2938 _mm256_setzero_ps (), 2939 (__mmask8) 2940 __U); 2941 } 2942 2943 static __inline__ __m128i __DEFAULT_FN_ATTRS 2944 _mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { 2945 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, 2946 (__v4si) __W, 2947 (__mmask8) 2948 __U); 2949 } 2950 2951 static __inline__ __m128i __DEFAULT_FN_ATTRS 2952 _mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { 2953 return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, 2954 (__v4si) 2955 _mm_setzero_si128 (), 2956 (__mmask8) __U); 2957 } 2958 2959 static __inline__ __m256i __DEFAULT_FN_ATTRS 2960 _mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U, 2961 void const *__P) { 2962 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, 2963 (__v8si) __W, 2964 (__mmask8) 2965 __U); 2966 } 2967 2968 static __inline__ __m256i __DEFAULT_FN_ATTRS 2969 _mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { 2970 return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, 2971 (__v8si) 2972 _mm256_setzero_si256 (), 2973 (__mmask8) 2974 __U); 2975 } 2976 2977 static __inline__ __m128 __DEFAULT_FN_ATTRS 2978 _mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) { 2979 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, 2980 (__v4sf) __W, 2981 (__mmask8) __U); 2982 } 2983 2984 static __inline__ __m128 __DEFAULT_FN_ATTRS 2985 _mm_maskz_expand_ps (__mmask8 __U, __m128 __A) { 2986 return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, 2987 (__v4sf) 2988 _mm_setzero_ps (), 2989 (__mmask8) __U); 2990 } 2991 2992 static __inline__ __m256 __DEFAULT_FN_ATTRS 2993 _mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) { 2994 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, 2995 (__v8sf) __W, 2996 (__mmask8) __U); 2997 } 2998 2999 static __inline__ __m256 __DEFAULT_FN_ATTRS 3000 _mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) { 3001 return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, 3002 (__v8sf) 3003 _mm256_setzero_ps (), 3004 (__mmask8) __U); 3005 } 3006 3007 static __inline__ __m128i __DEFAULT_FN_ATTRS 3008 _mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { 3009 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, 3010 (__v4si) __W, 3011 (__mmask8) __U); 3012 } 3013 3014 static __inline__ __m128i __DEFAULT_FN_ATTRS 3015 _mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) { 3016 return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, 3017 (__v4si) 3018 _mm_setzero_si128 (), 3019 (__mmask8) __U); 3020 } 3021 3022 static __inline__ __m256i __DEFAULT_FN_ATTRS 3023 _mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { 3024 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, 3025 (__v8si) __W, 3026 (__mmask8) __U); 3027 } 3028 3029 static __inline__ __m256i __DEFAULT_FN_ATTRS 3030 _mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) { 3031 return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, 3032 (__v8si) 3033 _mm256_setzero_si256 (), 3034 (__mmask8) __U); 3035 } 3036 3037 static __inline__ __m128d __DEFAULT_FN_ATTRS 3038 _mm_getexp_pd (__m128d __A) { 3039 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, 3040 (__v2df) 3041 _mm_setzero_pd (), 3042 (__mmask8) -1); 3043 } 3044 3045 static __inline__ __m128d __DEFAULT_FN_ATTRS 3046 _mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) { 3047 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, 3048 (__v2df) __W, 3049 (__mmask8) __U); 3050 } 3051 3052 static __inline__ __m128d __DEFAULT_FN_ATTRS 3053 _mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) { 3054 return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, 3055 (__v2df) 3056 _mm_setzero_pd (), 3057 (__mmask8) __U); 3058 } 3059 3060 static __inline__ __m256d __DEFAULT_FN_ATTRS 3061 _mm256_getexp_pd (__m256d __A) { 3062 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, 3063 (__v4df) 3064 _mm256_setzero_pd (), 3065 (__mmask8) -1); 3066 } 3067 3068 static __inline__ __m256d __DEFAULT_FN_ATTRS 3069 _mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) { 3070 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, 3071 (__v4df) __W, 3072 (__mmask8) __U); 3073 } 3074 3075 static __inline__ __m256d __DEFAULT_FN_ATTRS 3076 _mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) { 3077 return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, 3078 (__v4df) 3079 _mm256_setzero_pd (), 3080 (__mmask8) __U); 3081 } 3082 3083 static __inline__ __m128 __DEFAULT_FN_ATTRS 3084 _mm_getexp_ps (__m128 __A) { 3085 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, 3086 (__v4sf) 3087 _mm_setzero_ps (), 3088 (__mmask8) -1); 3089 } 3090 3091 static __inline__ __m128 __DEFAULT_FN_ATTRS 3092 _mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) { 3093 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, 3094 (__v4sf) __W, 3095 (__mmask8) __U); 3096 } 3097 3098 static __inline__ __m128 __DEFAULT_FN_ATTRS 3099 _mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) { 3100 return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, 3101 (__v4sf) 3102 _mm_setzero_ps (), 3103 (__mmask8) __U); 3104 } 3105 3106 static __inline__ __m256 __DEFAULT_FN_ATTRS 3107 _mm256_getexp_ps (__m256 __A) { 3108 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, 3109 (__v8sf) 3110 _mm256_setzero_ps (), 3111 (__mmask8) -1); 3112 } 3113 3114 static __inline__ __m256 __DEFAULT_FN_ATTRS 3115 _mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) { 3116 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, 3117 (__v8sf) __W, 3118 (__mmask8) __U); 3119 } 3120 3121 static __inline__ __m256 __DEFAULT_FN_ATTRS 3122 _mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) { 3123 return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, 3124 (__v8sf) 3125 _mm256_setzero_ps (), 3126 (__mmask8) __U); 3127 } 3128 3129 static __inline__ __m128d __DEFAULT_FN_ATTRS 3130 _mm_mask_max_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 3131 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A, 3132 (__v2df) __B, 3133 (__v2df) __W, 3134 (__mmask8) __U); 3135 } 3136 3137 static __inline__ __m128d __DEFAULT_FN_ATTRS 3138 _mm_maskz_max_pd (__mmask8 __U, __m128d __A, __m128d __B) { 3139 return (__m128d) __builtin_ia32_maxpd_mask ((__v2df) __A, 3140 (__v2df) __B, 3141 (__v2df) 3142 _mm_setzero_pd (), 3143 (__mmask8) __U); 3144 } 3145 3146 static __inline__ __m256d __DEFAULT_FN_ATTRS 3147 _mm256_mask_max_pd (__m256d __W, __mmask8 __U, __m256d __A, 3148 __m256d __B) { 3149 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A, 3150 (__v4df) __B, 3151 (__v4df) __W, 3152 (__mmask8) __U); 3153 } 3154 3155 static __inline__ __m256d __DEFAULT_FN_ATTRS 3156 _mm256_maskz_max_pd (__mmask8 __U, __m256d __A, __m256d __B) { 3157 return (__m256d) __builtin_ia32_maxpd256_mask ((__v4df) __A, 3158 (__v4df) __B, 3159 (__v4df) 3160 _mm256_setzero_pd (), 3161 (__mmask8) __U); 3162 } 3163 3164 static __inline__ __m128 __DEFAULT_FN_ATTRS 3165 _mm_mask_max_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 3166 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A, 3167 (__v4sf) __B, 3168 (__v4sf) __W, 3169 (__mmask8) __U); 3170 } 3171 3172 static __inline__ __m128 __DEFAULT_FN_ATTRS 3173 _mm_maskz_max_ps (__mmask8 __U, __m128 __A, __m128 __B) { 3174 return (__m128) __builtin_ia32_maxps_mask ((__v4sf) __A, 3175 (__v4sf) __B, 3176 (__v4sf) 3177 _mm_setzero_ps (), 3178 (__mmask8) __U); 3179 } 3180 3181 static __inline__ __m256 __DEFAULT_FN_ATTRS 3182 _mm256_mask_max_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 3183 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A, 3184 (__v8sf) __B, 3185 (__v8sf) __W, 3186 (__mmask8) __U); 3187 } 3188 3189 static __inline__ __m256 __DEFAULT_FN_ATTRS 3190 _mm256_maskz_max_ps (__mmask8 __U, __m256 __A, __m256 __B) { 3191 return (__m256) __builtin_ia32_maxps256_mask ((__v8sf) __A, 3192 (__v8sf) __B, 3193 (__v8sf) 3194 _mm256_setzero_ps (), 3195 (__mmask8) __U); 3196 } 3197 3198 static __inline__ __m128d __DEFAULT_FN_ATTRS 3199 _mm_mask_min_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 3200 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A, 3201 (__v2df) __B, 3202 (__v2df) __W, 3203 (__mmask8) __U); 3204 } 3205 3206 static __inline__ __m128d __DEFAULT_FN_ATTRS 3207 _mm_maskz_min_pd (__mmask8 __U, __m128d __A, __m128d __B) { 3208 return (__m128d) __builtin_ia32_minpd_mask ((__v2df) __A, 3209 (__v2df) __B, 3210 (__v2df) 3211 _mm_setzero_pd (), 3212 (__mmask8) __U); 3213 } 3214 3215 static __inline__ __m256d __DEFAULT_FN_ATTRS 3216 _mm256_mask_min_pd (__m256d __W, __mmask8 __U, __m256d __A, 3217 __m256d __B) { 3218 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A, 3219 (__v4df) __B, 3220 (__v4df) __W, 3221 (__mmask8) __U); 3222 } 3223 3224 static __inline__ __m256d __DEFAULT_FN_ATTRS 3225 _mm256_maskz_min_pd (__mmask8 __U, __m256d __A, __m256d __B) { 3226 return (__m256d) __builtin_ia32_minpd256_mask ((__v4df) __A, 3227 (__v4df) __B, 3228 (__v4df) 3229 _mm256_setzero_pd (), 3230 (__mmask8) __U); 3231 } 3232 3233 static __inline__ __m128 __DEFAULT_FN_ATTRS 3234 _mm_mask_min_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 3235 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A, 3236 (__v4sf) __B, 3237 (__v4sf) __W, 3238 (__mmask8) __U); 3239 } 3240 3241 static __inline__ __m128 __DEFAULT_FN_ATTRS 3242 _mm_maskz_min_ps (__mmask8 __U, __m128 __A, __m128 __B) { 3243 return (__m128) __builtin_ia32_minps_mask ((__v4sf) __A, 3244 (__v4sf) __B, 3245 (__v4sf) 3246 _mm_setzero_ps (), 3247 (__mmask8) __U); 3248 } 3249 3250 static __inline__ __m256 __DEFAULT_FN_ATTRS 3251 _mm256_mask_min_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 3252 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A, 3253 (__v8sf) __B, 3254 (__v8sf) __W, 3255 (__mmask8) __U); 3256 } 3257 3258 static __inline__ __m256 __DEFAULT_FN_ATTRS 3259 _mm256_maskz_min_ps (__mmask8 __U, __m256 __A, __m256 __B) { 3260 return (__m256) __builtin_ia32_minps256_mask ((__v8sf) __A, 3261 (__v8sf) __B, 3262 (__v8sf) 3263 _mm256_setzero_ps (), 3264 (__mmask8) __U); 3265 } 3266 3267 static __inline__ __m128d __DEFAULT_FN_ATTRS 3268 _mm_mask_mul_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 3269 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A, 3270 (__v2df) __B, 3271 (__v2df) __W, 3272 (__mmask8) __U); 3273 } 3274 3275 static __inline__ __m128d __DEFAULT_FN_ATTRS 3276 _mm_maskz_mul_pd (__mmask8 __U, __m128d __A, __m128d __B) { 3277 return (__m128d) __builtin_ia32_mulpd_mask ((__v2df) __A, 3278 (__v2df) __B, 3279 (__v2df) 3280 _mm_setzero_pd (), 3281 (__mmask8) __U); 3282 } 3283 3284 static __inline__ __m256d __DEFAULT_FN_ATTRS 3285 _mm256_mask_mul_pd (__m256d __W, __mmask8 __U, __m256d __A, 3286 __m256d __B) { 3287 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A, 3288 (__v4df) __B, 3289 (__v4df) __W, 3290 (__mmask8) __U); 3291 } 3292 3293 static __inline__ __m256d __DEFAULT_FN_ATTRS 3294 _mm256_maskz_mul_pd (__mmask8 __U, __m256d __A, __m256d __B) { 3295 return (__m256d) __builtin_ia32_mulpd256_mask ((__v4df) __A, 3296 (__v4df) __B, 3297 (__v4df) 3298 _mm256_setzero_pd (), 3299 (__mmask8) __U); 3300 } 3301 3302 static __inline__ __m128 __DEFAULT_FN_ATTRS 3303 _mm_mask_mul_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 3304 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A, 3305 (__v4sf) __B, 3306 (__v4sf) __W, 3307 (__mmask8) __U); 3308 } 3309 3310 static __inline__ __m128 __DEFAULT_FN_ATTRS 3311 _mm_maskz_mul_ps (__mmask8 __U, __m128 __A, __m128 __B) { 3312 return (__m128) __builtin_ia32_mulps_mask ((__v4sf) __A, 3313 (__v4sf) __B, 3314 (__v4sf) 3315 _mm_setzero_ps (), 3316 (__mmask8) __U); 3317 } 3318 3319 static __inline__ __m256 __DEFAULT_FN_ATTRS 3320 _mm256_mask_mul_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 3321 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A, 3322 (__v8sf) __B, 3323 (__v8sf) __W, 3324 (__mmask8) __U); 3325 } 3326 3327 static __inline__ __m256 __DEFAULT_FN_ATTRS 3328 _mm256_maskz_mul_ps (__mmask8 __U, __m256 __A, __m256 __B) { 3329 return (__m256) __builtin_ia32_mulps256_mask ((__v8sf) __A, 3330 (__v8sf) __B, 3331 (__v8sf) 3332 _mm256_setzero_ps (), 3333 (__mmask8) __U); 3334 } 3335 3336 static __inline__ __m128i __DEFAULT_FN_ATTRS 3337 _mm_mask_abs_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { 3338 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A, 3339 (__v4si) __W, 3340 (__mmask8) __U); 3341 } 3342 3343 static __inline__ __m128i __DEFAULT_FN_ATTRS 3344 _mm_maskz_abs_epi32 (__mmask8 __U, __m128i __A) { 3345 return (__m128i) __builtin_ia32_pabsd128_mask ((__v4si) __A, 3346 (__v4si) 3347 _mm_setzero_si128 (), 3348 (__mmask8) __U); 3349 } 3350 3351 static __inline__ __m256i __DEFAULT_FN_ATTRS 3352 _mm256_mask_abs_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { 3353 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A, 3354 (__v8si) __W, 3355 (__mmask8) __U); 3356 } 3357 3358 static __inline__ __m256i __DEFAULT_FN_ATTRS 3359 _mm256_maskz_abs_epi32 (__mmask8 __U, __m256i __A) { 3360 return (__m256i) __builtin_ia32_pabsd256_mask ((__v8si) __A, 3361 (__v8si) 3362 _mm256_setzero_si256 (), 3363 (__mmask8) __U); 3364 } 3365 3366 static __inline__ __m128i __DEFAULT_FN_ATTRS 3367 _mm_abs_epi64 (__m128i __A) { 3368 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, 3369 (__v2di) 3370 _mm_setzero_si128 (), 3371 (__mmask8) -1); 3372 } 3373 3374 static __inline__ __m128i __DEFAULT_FN_ATTRS 3375 _mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { 3376 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, 3377 (__v2di) __W, 3378 (__mmask8) __U); 3379 } 3380 3381 static __inline__ __m128i __DEFAULT_FN_ATTRS 3382 _mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) { 3383 return (__m128i) __builtin_ia32_pabsq128_mask ((__v2di) __A, 3384 (__v2di) 3385 _mm_setzero_si128 (), 3386 (__mmask8) __U); 3387 } 3388 3389 static __inline__ __m256i __DEFAULT_FN_ATTRS 3390 _mm256_abs_epi64 (__m256i __A) { 3391 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, 3392 (__v4di) 3393 _mm256_setzero_si256 (), 3394 (__mmask8) -1); 3395 } 3396 3397 static __inline__ __m256i __DEFAULT_FN_ATTRS 3398 _mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { 3399 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, 3400 (__v4di) __W, 3401 (__mmask8) __U); 3402 } 3403 3404 static __inline__ __m256i __DEFAULT_FN_ATTRS 3405 _mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) { 3406 return (__m256i) __builtin_ia32_pabsq256_mask ((__v4di) __A, 3407 (__v4di) 3408 _mm256_setzero_si256 (), 3409 (__mmask8) __U); 3410 } 3411 3412 static __inline__ __m128i __DEFAULT_FN_ATTRS 3413 _mm_maskz_max_epi32 (__mmask8 __M, __m128i __A, __m128i __B) { 3414 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A, 3415 (__v4si) __B, 3416 (__v4si) 3417 _mm_setzero_si128 (), 3418 __M); 3419 } 3420 3421 static __inline__ __m128i __DEFAULT_FN_ATTRS 3422 _mm_mask_max_epi32 (__m128i __W, __mmask8 __M, __m128i __A, 3423 __m128i __B) { 3424 return (__m128i) __builtin_ia32_pmaxsd128_mask ((__v4si) __A, 3425 (__v4si) __B, 3426 (__v4si) __W, __M); 3427 } 3428 3429 static __inline__ __m256i __DEFAULT_FN_ATTRS 3430 _mm256_maskz_max_epi32 (__mmask8 __M, __m256i __A, __m256i __B) { 3431 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A, 3432 (__v8si) __B, 3433 (__v8si) 3434 _mm256_setzero_si256 (), 3435 __M); 3436 } 3437 3438 static __inline__ __m256i __DEFAULT_FN_ATTRS 3439 _mm256_mask_max_epi32 (__m256i __W, __mmask8 __M, __m256i __A, 3440 __m256i __B) { 3441 return (__m256i) __builtin_ia32_pmaxsd256_mask ((__v8si) __A, 3442 (__v8si) __B, 3443 (__v8si) __W, __M); 3444 } 3445 3446 static __inline__ __m128i __DEFAULT_FN_ATTRS 3447 _mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) { 3448 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A, 3449 (__v2di) __B, 3450 (__v2di) 3451 _mm_setzero_si128 (), 3452 __M); 3453 } 3454 3455 static __inline__ __m128i __DEFAULT_FN_ATTRS 3456 _mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A, 3457 __m128i __B) { 3458 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A, 3459 (__v2di) __B, 3460 (__v2di) __W, __M); 3461 } 3462 3463 static __inline__ __m128i __DEFAULT_FN_ATTRS 3464 _mm_max_epi64 (__m128i __A, __m128i __B) { 3465 return (__m128i) __builtin_ia32_pmaxsq128_mask ((__v2di) __A, 3466 (__v2di) __B, 3467 (__v2di) 3468 _mm_setzero_si128 (), 3469 (__mmask8) -1); 3470 } 3471 3472 static __inline__ __m256i __DEFAULT_FN_ATTRS 3473 _mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) { 3474 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A, 3475 (__v4di) __B, 3476 (__v4di) 3477 _mm256_setzero_si256 (), 3478 __M); 3479 } 3480 3481 static __inline__ __m256i __DEFAULT_FN_ATTRS 3482 _mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A, 3483 __m256i __B) { 3484 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A, 3485 (__v4di) __B, 3486 (__v4di) __W, __M); 3487 } 3488 3489 static __inline__ __m256i __DEFAULT_FN_ATTRS 3490 _mm256_max_epi64 (__m256i __A, __m256i __B) { 3491 return (__m256i) __builtin_ia32_pmaxsq256_mask ((__v4di) __A, 3492 (__v4di) __B, 3493 (__v4di) 3494 _mm256_setzero_si256 (), 3495 (__mmask8) -1); 3496 } 3497 3498 static __inline__ __m128i __DEFAULT_FN_ATTRS 3499 _mm_maskz_max_epu32 (__mmask8 __M, __m128i __A, __m128i __B) { 3500 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A, 3501 (__v4si) __B, 3502 (__v4si) 3503 _mm_setzero_si128 (), 3504 __M); 3505 } 3506 3507 static __inline__ __m128i __DEFAULT_FN_ATTRS 3508 _mm_mask_max_epu32 (__m128i __W, __mmask8 __M, __m128i __A, 3509 __m128i __B) { 3510 return (__m128i) __builtin_ia32_pmaxud128_mask ((__v4si) __A, 3511 (__v4si) __B, 3512 (__v4si) __W, __M); 3513 } 3514 3515 static __inline__ __m256i __DEFAULT_FN_ATTRS 3516 _mm256_maskz_max_epu32 (__mmask8 __M, __m256i __A, __m256i __B) { 3517 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A, 3518 (__v8si) __B, 3519 (__v8si) 3520 _mm256_setzero_si256 (), 3521 __M); 3522 } 3523 3524 static __inline__ __m256i __DEFAULT_FN_ATTRS 3525 _mm256_mask_max_epu32 (__m256i __W, __mmask8 __M, __m256i __A, 3526 __m256i __B) { 3527 return (__m256i) __builtin_ia32_pmaxud256_mask ((__v8si) __A, 3528 (__v8si) __B, 3529 (__v8si) __W, __M); 3530 } 3531 3532 static __inline__ __m128i __DEFAULT_FN_ATTRS 3533 _mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) { 3534 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A, 3535 (__v2di) __B, 3536 (__v2di) 3537 _mm_setzero_si128 (), 3538 __M); 3539 } 3540 3541 static __inline__ __m128i __DEFAULT_FN_ATTRS 3542 _mm_max_epu64 (__m128i __A, __m128i __B) { 3543 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A, 3544 (__v2di) __B, 3545 (__v2di) 3546 _mm_setzero_si128 (), 3547 (__mmask8) -1); 3548 } 3549 3550 static __inline__ __m128i __DEFAULT_FN_ATTRS 3551 _mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A, 3552 __m128i __B) { 3553 return (__m128i) __builtin_ia32_pmaxuq128_mask ((__v2di) __A, 3554 (__v2di) __B, 3555 (__v2di) __W, __M); 3556 } 3557 3558 static __inline__ __m256i __DEFAULT_FN_ATTRS 3559 _mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) { 3560 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A, 3561 (__v4di) __B, 3562 (__v4di) 3563 _mm256_setzero_si256 (), 3564 __M); 3565 } 3566 3567 static __inline__ __m256i __DEFAULT_FN_ATTRS 3568 _mm256_max_epu64 (__m256i __A, __m256i __B) { 3569 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A, 3570 (__v4di) __B, 3571 (__v4di) 3572 _mm256_setzero_si256 (), 3573 (__mmask8) -1); 3574 } 3575 3576 static __inline__ __m256i __DEFAULT_FN_ATTRS 3577 _mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A, 3578 __m256i __B) { 3579 return (__m256i) __builtin_ia32_pmaxuq256_mask ((__v4di) __A, 3580 (__v4di) __B, 3581 (__v4di) __W, __M); 3582 } 3583 3584 static __inline__ __m128i __DEFAULT_FN_ATTRS 3585 _mm_maskz_min_epi32 (__mmask8 __M, __m128i __A, __m128i __B) { 3586 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A, 3587 (__v4si) __B, 3588 (__v4si) 3589 _mm_setzero_si128 (), 3590 __M); 3591 } 3592 3593 static __inline__ __m128i __DEFAULT_FN_ATTRS 3594 _mm_mask_min_epi32 (__m128i __W, __mmask8 __M, __m128i __A, 3595 __m128i __B) { 3596 return (__m128i) __builtin_ia32_pminsd128_mask ((__v4si) __A, 3597 (__v4si) __B, 3598 (__v4si) __W, __M); 3599 } 3600 3601 static __inline__ __m256i __DEFAULT_FN_ATTRS 3602 _mm256_maskz_min_epi32 (__mmask8 __M, __m256i __A, __m256i __B) { 3603 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A, 3604 (__v8si) __B, 3605 (__v8si) 3606 _mm256_setzero_si256 (), 3607 __M); 3608 } 3609 3610 static __inline__ __m256i __DEFAULT_FN_ATTRS 3611 _mm256_mask_min_epi32 (__m256i __W, __mmask8 __M, __m256i __A, 3612 __m256i __B) { 3613 return (__m256i) __builtin_ia32_pminsd256_mask ((__v8si) __A, 3614 (__v8si) __B, 3615 (__v8si) __W, __M); 3616 } 3617 3618 static __inline__ __m128i __DEFAULT_FN_ATTRS 3619 _mm_min_epi64 (__m128i __A, __m128i __B) { 3620 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A, 3621 (__v2di) __B, 3622 (__v2di) 3623 _mm_setzero_si128 (), 3624 (__mmask8) -1); 3625 } 3626 3627 static __inline__ __m128i __DEFAULT_FN_ATTRS 3628 _mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A, 3629 __m128i __B) { 3630 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A, 3631 (__v2di) __B, 3632 (__v2di) __W, __M); 3633 } 3634 3635 static __inline__ __m128i __DEFAULT_FN_ATTRS 3636 _mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) { 3637 return (__m128i) __builtin_ia32_pminsq128_mask ((__v2di) __A, 3638 (__v2di) __B, 3639 (__v2di) 3640 _mm_setzero_si128 (), 3641 __M); 3642 } 3643 3644 static __inline__ __m256i __DEFAULT_FN_ATTRS 3645 _mm256_min_epi64 (__m256i __A, __m256i __B) { 3646 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A, 3647 (__v4di) __B, 3648 (__v4di) 3649 _mm256_setzero_si256 (), 3650 (__mmask8) -1); 3651 } 3652 3653 static __inline__ __m256i __DEFAULT_FN_ATTRS 3654 _mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A, 3655 __m256i __B) { 3656 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A, 3657 (__v4di) __B, 3658 (__v4di) __W, __M); 3659 } 3660 3661 static __inline__ __m256i __DEFAULT_FN_ATTRS 3662 _mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) { 3663 return (__m256i) __builtin_ia32_pminsq256_mask ((__v4di) __A, 3664 (__v4di) __B, 3665 (__v4di) 3666 _mm256_setzero_si256 (), 3667 __M); 3668 } 3669 3670 static __inline__ __m128i __DEFAULT_FN_ATTRS 3671 _mm_maskz_min_epu32 (__mmask8 __M, __m128i __A, __m128i __B) { 3672 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A, 3673 (__v4si) __B, 3674 (__v4si) 3675 _mm_setzero_si128 (), 3676 __M); 3677 } 3678 3679 static __inline__ __m128i __DEFAULT_FN_ATTRS 3680 _mm_mask_min_epu32 (__m128i __W, __mmask8 __M, __m128i __A, 3681 __m128i __B) { 3682 return (__m128i) __builtin_ia32_pminud128_mask ((__v4si) __A, 3683 (__v4si) __B, 3684 (__v4si) __W, __M); 3685 } 3686 3687 static __inline__ __m256i __DEFAULT_FN_ATTRS 3688 _mm256_maskz_min_epu32 (__mmask8 __M, __m256i __A, __m256i __B) { 3689 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A, 3690 (__v8si) __B, 3691 (__v8si) 3692 _mm256_setzero_si256 (), 3693 __M); 3694 } 3695 3696 static __inline__ __m256i __DEFAULT_FN_ATTRS 3697 _mm256_mask_min_epu32 (__m256i __W, __mmask8 __M, __m256i __A, 3698 __m256i __B) { 3699 return (__m256i) __builtin_ia32_pminud256_mask ((__v8si) __A, 3700 (__v8si) __B, 3701 (__v8si) __W, __M); 3702 } 3703 3704 static __inline__ __m128i __DEFAULT_FN_ATTRS 3705 _mm_min_epu64 (__m128i __A, __m128i __B) { 3706 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A, 3707 (__v2di) __B, 3708 (__v2di) 3709 _mm_setzero_si128 (), 3710 (__mmask8) -1); 3711 } 3712 3713 static __inline__ __m128i __DEFAULT_FN_ATTRS 3714 _mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A, 3715 __m128i __B) { 3716 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A, 3717 (__v2di) __B, 3718 (__v2di) __W, __M); 3719 } 3720 3721 static __inline__ __m128i __DEFAULT_FN_ATTRS 3722 _mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) { 3723 return (__m128i) __builtin_ia32_pminuq128_mask ((__v2di) __A, 3724 (__v2di) __B, 3725 (__v2di) 3726 _mm_setzero_si128 (), 3727 __M); 3728 } 3729 3730 static __inline__ __m256i __DEFAULT_FN_ATTRS 3731 _mm256_min_epu64 (__m256i __A, __m256i __B) { 3732 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A, 3733 (__v4di) __B, 3734 (__v4di) 3735 _mm256_setzero_si256 (), 3736 (__mmask8) -1); 3737 } 3738 3739 static __inline__ __m256i __DEFAULT_FN_ATTRS 3740 _mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A, 3741 __m256i __B) { 3742 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A, 3743 (__v4di) __B, 3744 (__v4di) __W, __M); 3745 } 3746 3747 static __inline__ __m256i __DEFAULT_FN_ATTRS 3748 _mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) { 3749 return (__m256i) __builtin_ia32_pminuq256_mask ((__v4di) __A, 3750 (__v4di) __B, 3751 (__v4di) 3752 _mm256_setzero_si256 (), 3753 __M); 3754 } 3755 3756 #define _mm_roundscale_pd(A, imm) __extension__ ({ \ 3757 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \ 3758 (int)(imm), \ 3759 (__v2df)_mm_setzero_pd(), \ 3760 (__mmask8)-1); }) 3761 3762 3763 #define _mm_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \ 3764 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \ 3765 (int)(imm), \ 3766 (__v2df)(__m128d)(W), \ 3767 (__mmask8)(U)); }) 3768 3769 3770 #define _mm_maskz_roundscale_pd(U, A, imm) __extension__ ({ \ 3771 (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \ 3772 (int)(imm), \ 3773 (__v2df)_mm_setzero_pd(), \ 3774 (__mmask8)(U)); }) 3775 3776 3777 #define _mm256_roundscale_pd(A, imm) __extension__ ({ \ 3778 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \ 3779 (int)(imm), \ 3780 (__v4df)_mm256_setzero_pd(), \ 3781 (__mmask8)-1); }) 3782 3783 3784 #define _mm256_mask_roundscale_pd(W, U, A, imm) __extension__ ({ \ 3785 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \ 3786 (int)(imm), \ 3787 (__v4df)(__m256d)(W), \ 3788 (__mmask8)(U)); }) 3789 3790 3791 #define _mm256_maskz_roundscale_pd(U, A, imm) __extension__ ({ \ 3792 (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \ 3793 (int)(imm), \ 3794 (__v4df)_mm256_setzero_pd(), \ 3795 (__mmask8)(U)); }) 3796 3797 #define _mm_roundscale_ps(A, imm) __extension__ ({ \ 3798 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \ 3799 (__v4sf)_mm_setzero_ps(), \ 3800 (__mmask8)-1); }) 3801 3802 3803 #define _mm_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \ 3804 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \ 3805 (__v4sf)(__m128)(W), \ 3806 (__mmask8)(U)); }) 3807 3808 3809 #define _mm_maskz_roundscale_ps(U, A, imm) __extension__ ({ \ 3810 (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \ 3811 (__v4sf)_mm_setzero_ps(), \ 3812 (__mmask8)(U)); }) 3813 3814 #define _mm256_roundscale_ps(A, imm) __extension__ ({ \ 3815 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \ 3816 (__v8sf)_mm256_setzero_ps(), \ 3817 (__mmask8)-1); }) 3818 3819 #define _mm256_mask_roundscale_ps(W, U, A, imm) __extension__ ({ \ 3820 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \ 3821 (__v8sf)(__m256)(W), \ 3822 (__mmask8)(U)); }) 3823 3824 3825 #define _mm256_maskz_roundscale_ps(U, A, imm) __extension__ ({ \ 3826 (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \ 3827 (__v8sf)_mm256_setzero_ps(), \ 3828 (__mmask8)(U)); }) 3829 3830 static __inline__ __m128d __DEFAULT_FN_ATTRS 3831 _mm_scalef_pd (__m128d __A, __m128d __B) { 3832 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, 3833 (__v2df) __B, 3834 (__v2df) 3835 _mm_setzero_pd (), 3836 (__mmask8) -1); 3837 } 3838 3839 static __inline__ __m128d __DEFAULT_FN_ATTRS 3840 _mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A, 3841 __m128d __B) { 3842 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, 3843 (__v2df) __B, 3844 (__v2df) __W, 3845 (__mmask8) __U); 3846 } 3847 3848 static __inline__ __m128d __DEFAULT_FN_ATTRS 3849 _mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) { 3850 return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, 3851 (__v2df) __B, 3852 (__v2df) 3853 _mm_setzero_pd (), 3854 (__mmask8) __U); 3855 } 3856 3857 static __inline__ __m256d __DEFAULT_FN_ATTRS 3858 _mm256_scalef_pd (__m256d __A, __m256d __B) { 3859 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, 3860 (__v4df) __B, 3861 (__v4df) 3862 _mm256_setzero_pd (), 3863 (__mmask8) -1); 3864 } 3865 3866 static __inline__ __m256d __DEFAULT_FN_ATTRS 3867 _mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A, 3868 __m256d __B) { 3869 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, 3870 (__v4df) __B, 3871 (__v4df) __W, 3872 (__mmask8) __U); 3873 } 3874 3875 static __inline__ __m256d __DEFAULT_FN_ATTRS 3876 _mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) { 3877 return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, 3878 (__v4df) __B, 3879 (__v4df) 3880 _mm256_setzero_pd (), 3881 (__mmask8) __U); 3882 } 3883 3884 static __inline__ __m128 __DEFAULT_FN_ATTRS 3885 _mm_scalef_ps (__m128 __A, __m128 __B) { 3886 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, 3887 (__v4sf) __B, 3888 (__v4sf) 3889 _mm_setzero_ps (), 3890 (__mmask8) -1); 3891 } 3892 3893 static __inline__ __m128 __DEFAULT_FN_ATTRS 3894 _mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 3895 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, 3896 (__v4sf) __B, 3897 (__v4sf) __W, 3898 (__mmask8) __U); 3899 } 3900 3901 static __inline__ __m128 __DEFAULT_FN_ATTRS 3902 _mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) { 3903 return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, 3904 (__v4sf) __B, 3905 (__v4sf) 3906 _mm_setzero_ps (), 3907 (__mmask8) __U); 3908 } 3909 3910 static __inline__ __m256 __DEFAULT_FN_ATTRS 3911 _mm256_scalef_ps (__m256 __A, __m256 __B) { 3912 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, 3913 (__v8sf) __B, 3914 (__v8sf) 3915 _mm256_setzero_ps (), 3916 (__mmask8) -1); 3917 } 3918 3919 static __inline__ __m256 __DEFAULT_FN_ATTRS 3920 _mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A, 3921 __m256 __B) { 3922 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, 3923 (__v8sf) __B, 3924 (__v8sf) __W, 3925 (__mmask8) __U); 3926 } 3927 3928 static __inline__ __m256 __DEFAULT_FN_ATTRS 3929 _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) { 3930 return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, 3931 (__v8sf) __B, 3932 (__v8sf) 3933 _mm256_setzero_ps (), 3934 (__mmask8) __U); 3935 } 3936 3937 #define _mm_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \ 3938 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \ 3939 (__v2di)(__m128i)(index), \ 3940 (__v2df)(__m128d)(v1), (int)(scale)); }) 3941 3942 #define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \ 3943 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \ 3944 (__v2di)(__m128i)(index), \ 3945 (__v2df)(__m128d)(v1), (int)(scale)); }) 3946 3947 #define _mm_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \ 3948 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \ 3949 (__v2di)(__m128i)(index), \ 3950 (__v2di)(__m128i)(v1), (int)(scale)); }) 3951 3952 #define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \ 3953 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \ 3954 (__v2di)(__m128i)(index), \ 3955 (__v2di)(__m128i)(v1), (int)(scale)); }) 3956 3957 #define _mm256_i64scatter_pd(addr, index, v1, scale) __extension__ ({ \ 3958 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \ 3959 (__v4di)(__m256i)(index), \ 3960 (__v4df)(__m256d)(v1), (int)(scale)); }) 3961 3962 #define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \ 3963 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \ 3964 (__v4di)(__m256i)(index), \ 3965 (__v4df)(__m256d)(v1), (int)(scale)); }) 3966 3967 #define _mm256_i64scatter_epi64(addr, index, v1, scale) __extension__ ({ \ 3968 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \ 3969 (__v4di)(__m256i)(index), \ 3970 (__v4di)(__m256i)(v1), (int)(scale)); }) 3971 3972 #define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \ 3973 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \ 3974 (__v4di)(__m256i)(index), \ 3975 (__v4di)(__m256i)(v1), (int)(scale)); }) 3976 3977 #define _mm_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \ 3978 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \ 3979 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \ 3980 (int)(scale)); }) 3981 3982 #define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \ 3983 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \ 3984 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \ 3985 (int)(scale)); }) 3986 3987 #define _mm_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \ 3988 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \ 3989 (__v2di)(__m128i)(index), \ 3990 (__v4si)(__m128i)(v1), (int)(scale)); }) 3991 3992 #define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \ 3993 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \ 3994 (__v2di)(__m128i)(index), \ 3995 (__v4si)(__m128i)(v1), (int)(scale)); }) 3996 3997 #define _mm256_i64scatter_ps(addr, index, v1, scale) __extension__ ({ \ 3998 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \ 3999 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \ 4000 (int)(scale)); }) 4001 4002 #define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \ 4003 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \ 4004 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \ 4005 (int)(scale)); }) 4006 4007 #define _mm256_i64scatter_epi32(addr, index, v1, scale) __extension__ ({ \ 4008 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \ 4009 (__v4di)(__m256i)(index), \ 4010 (__v4si)(__m128i)(v1), (int)(scale)); }) 4011 4012 #define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \ 4013 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \ 4014 (__v4di)(__m256i)(index), \ 4015 (__v4si)(__m128i)(v1), (int)(scale)); }) 4016 4017 #define _mm_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \ 4018 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \ 4019 (__v4si)(__m128i)(index), \ 4020 (__v2df)(__m128d)(v1), (int)(scale)); }) 4021 4022 #define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \ 4023 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \ 4024 (__v4si)(__m128i)(index), \ 4025 (__v2df)(__m128d)(v1), (int)(scale)); }) 4026 4027 #define _mm_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \ 4028 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \ 4029 (__v4si)(__m128i)(index), \ 4030 (__v2di)(__m128i)(v1), (int)(scale)); }) 4031 4032 #define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \ 4033 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \ 4034 (__v4si)(__m128i)(index), \ 4035 (__v2di)(__m128i)(v1), (int)(scale)); }) 4036 4037 #define _mm256_i32scatter_pd(addr, index, v1, scale) __extension__ ({ \ 4038 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \ 4039 (__v4si)(__m128i)(index), \ 4040 (__v4df)(__m256d)(v1), (int)(scale)); }) 4041 4042 #define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) __extension__ ({ \ 4043 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \ 4044 (__v4si)(__m128i)(index), \ 4045 (__v4df)(__m256d)(v1), (int)(scale)); }) 4046 4047 #define _mm256_i32scatter_epi64(addr, index, v1, scale) __extension__ ({ \ 4048 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \ 4049 (__v4si)(__m128i)(index), \ 4050 (__v4di)(__m256i)(v1), (int)(scale)); }) 4051 4052 #define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) __extension__ ({ \ 4053 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \ 4054 (__v4si)(__m128i)(index), \ 4055 (__v4di)(__m256i)(v1), (int)(scale)); }) 4056 4057 #define _mm_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \ 4058 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \ 4059 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \ 4060 (int)(scale)); }) 4061 4062 #define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \ 4063 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \ 4064 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \ 4065 (int)(scale)); }) 4066 4067 #define _mm_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \ 4068 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \ 4069 (__v4si)(__m128i)(index), \ 4070 (__v4si)(__m128i)(v1), (int)(scale)); }) 4071 4072 #define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \ 4073 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \ 4074 (__v4si)(__m128i)(index), \ 4075 (__v4si)(__m128i)(v1), (int)(scale)); }) 4076 4077 #define _mm256_i32scatter_ps(addr, index, v1, scale) __extension__ ({ \ 4078 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \ 4079 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \ 4080 (int)(scale)); }) 4081 4082 #define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) __extension__ ({ \ 4083 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \ 4084 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \ 4085 (int)(scale)); }) 4086 4087 #define _mm256_i32scatter_epi32(addr, index, v1, scale) __extension__ ({ \ 4088 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \ 4089 (__v8si)(__m256i)(index), \ 4090 (__v8si)(__m256i)(v1), (int)(scale)); }) 4091 4092 #define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) __extension__ ({ \ 4093 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \ 4094 (__v8si)(__m256i)(index), \ 4095 (__v8si)(__m256i)(v1), (int)(scale)); }) 4096 4097 static __inline__ __m128d __DEFAULT_FN_ATTRS 4098 _mm_mask_sqrt_pd (__m128d __W, __mmask8 __U, __m128d __A) { 4099 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A, 4100 (__v2df) __W, 4101 (__mmask8) __U); 4102 } 4103 4104 static __inline__ __m128d __DEFAULT_FN_ATTRS 4105 _mm_maskz_sqrt_pd (__mmask8 __U, __m128d __A) { 4106 return (__m128d) __builtin_ia32_sqrtpd128_mask ((__v2df) __A, 4107 (__v2df) 4108 _mm_setzero_pd (), 4109 (__mmask8) __U); 4110 } 4111 4112 static __inline__ __m256d __DEFAULT_FN_ATTRS 4113 _mm256_mask_sqrt_pd (__m256d __W, __mmask8 __U, __m256d __A) { 4114 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A, 4115 (__v4df) __W, 4116 (__mmask8) __U); 4117 } 4118 4119 static __inline__ __m256d __DEFAULT_FN_ATTRS 4120 _mm256_maskz_sqrt_pd (__mmask8 __U, __m256d __A) { 4121 return (__m256d) __builtin_ia32_sqrtpd256_mask ((__v4df) __A, 4122 (__v4df) 4123 _mm256_setzero_pd (), 4124 (__mmask8) __U); 4125 } 4126 4127 static __inline__ __m128 __DEFAULT_FN_ATTRS 4128 _mm_mask_sqrt_ps (__m128 __W, __mmask8 __U, __m128 __A) { 4129 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A, 4130 (__v4sf) __W, 4131 (__mmask8) __U); 4132 } 4133 4134 static __inline__ __m128 __DEFAULT_FN_ATTRS 4135 _mm_maskz_sqrt_ps (__mmask8 __U, __m128 __A) { 4136 return (__m128) __builtin_ia32_sqrtps128_mask ((__v4sf) __A, 4137 (__v4sf) 4138 _mm_setzero_ps (), 4139 (__mmask8) __U); 4140 } 4141 4142 static __inline__ __m256 __DEFAULT_FN_ATTRS 4143 _mm256_mask_sqrt_ps (__m256 __W, __mmask8 __U, __m256 __A) { 4144 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A, 4145 (__v8sf) __W, 4146 (__mmask8) __U); 4147 } 4148 4149 static __inline__ __m256 __DEFAULT_FN_ATTRS 4150 _mm256_maskz_sqrt_ps (__mmask8 __U, __m256 __A) { 4151 return (__m256) __builtin_ia32_sqrtps256_mask ((__v8sf) __A, 4152 (__v8sf) 4153 _mm256_setzero_ps (), 4154 (__mmask8) __U); 4155 } 4156 4157 static __inline__ __m128d __DEFAULT_FN_ATTRS 4158 _mm_mask_sub_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 4159 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A, 4160 (__v2df) __B, 4161 (__v2df) __W, 4162 (__mmask8) __U); 4163 } 4164 4165 static __inline__ __m128d __DEFAULT_FN_ATTRS 4166 _mm_maskz_sub_pd (__mmask8 __U, __m128d __A, __m128d __B) { 4167 return (__m128d) __builtin_ia32_subpd128_mask ((__v2df) __A, 4168 (__v2df) __B, 4169 (__v2df) 4170 _mm_setzero_pd (), 4171 (__mmask8) __U); 4172 } 4173 4174 static __inline__ __m256d __DEFAULT_FN_ATTRS 4175 _mm256_mask_sub_pd (__m256d __W, __mmask8 __U, __m256d __A, 4176 __m256d __B) { 4177 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A, 4178 (__v4df) __B, 4179 (__v4df) __W, 4180 (__mmask8) __U); 4181 } 4182 4183 static __inline__ __m256d __DEFAULT_FN_ATTRS 4184 _mm256_maskz_sub_pd (__mmask8 __U, __m256d __A, __m256d __B) { 4185 return (__m256d) __builtin_ia32_subpd256_mask ((__v4df) __A, 4186 (__v4df) __B, 4187 (__v4df) 4188 _mm256_setzero_pd (), 4189 (__mmask8) __U); 4190 } 4191 4192 static __inline__ __m128 __DEFAULT_FN_ATTRS 4193 _mm_mask_sub_ps (__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) { 4194 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A, 4195 (__v4sf) __B, 4196 (__v4sf) __W, 4197 (__mmask8) __U); 4198 } 4199 4200 static __inline__ __m128 __DEFAULT_FN_ATTRS 4201 _mm_maskz_sub_ps (__mmask16 __U, __m128 __A, __m128 __B) { 4202 return (__m128) __builtin_ia32_subps128_mask ((__v4sf) __A, 4203 (__v4sf) __B, 4204 (__v4sf) 4205 _mm_setzero_ps (), 4206 (__mmask8) __U); 4207 } 4208 4209 static __inline__ __m256 __DEFAULT_FN_ATTRS 4210 _mm256_mask_sub_ps (__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) { 4211 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A, 4212 (__v8sf) __B, 4213 (__v8sf) __W, 4214 (__mmask8) __U); 4215 } 4216 4217 static __inline__ __m256 __DEFAULT_FN_ATTRS 4218 _mm256_maskz_sub_ps (__mmask16 __U, __m256 __A, __m256 __B) { 4219 return (__m256) __builtin_ia32_subps256_mask ((__v8sf) __A, 4220 (__v8sf) __B, 4221 (__v8sf) 4222 _mm256_setzero_ps (), 4223 (__mmask8) __U); 4224 } 4225 4226 static __inline__ __m128i __DEFAULT_FN_ATTRS 4227 _mm_mask2_permutex2var_epi32 (__m128i __A, __m128i __I, __mmask8 __U, 4228 __m128i __B) { 4229 return (__m128i) __builtin_ia32_vpermi2vard128_mask ((__v4si) __A, 4230 (__v4si) __I 4231 /* idx */ , 4232 (__v4si) __B, 4233 (__mmask8) __U); 4234 } 4235 4236 static __inline__ __m256i __DEFAULT_FN_ATTRS 4237 _mm256_mask2_permutex2var_epi32 (__m256i __A, __m256i __I, 4238 __mmask8 __U, __m256i __B) { 4239 return (__m256i) __builtin_ia32_vpermi2vard256_mask ((__v8si) __A, 4240 (__v8si) __I 4241 /* idx */ , 4242 (__v8si) __B, 4243 (__mmask8) __U); 4244 } 4245 4246 static __inline__ __m128d __DEFAULT_FN_ATTRS 4247 _mm_mask2_permutex2var_pd (__m128d __A, __m128i __I, __mmask8 __U, 4248 __m128d __B) { 4249 return (__m128d) __builtin_ia32_vpermi2varpd128_mask ((__v2df) __A, 4250 (__v2di) __I 4251 /* idx */ , 4252 (__v2df) __B, 4253 (__mmask8) 4254 __U); 4255 } 4256 4257 static __inline__ __m256d __DEFAULT_FN_ATTRS 4258 _mm256_mask2_permutex2var_pd (__m256d __A, __m256i __I, __mmask8 __U, 4259 __m256d __B) { 4260 return (__m256d) __builtin_ia32_vpermi2varpd256_mask ((__v4df) __A, 4261 (__v4di) __I 4262 /* idx */ , 4263 (__v4df) __B, 4264 (__mmask8) 4265 __U); 4266 } 4267 4268 static __inline__ __m128 __DEFAULT_FN_ATTRS 4269 _mm_mask2_permutex2var_ps (__m128 __A, __m128i __I, __mmask8 __U, 4270 __m128 __B) { 4271 return (__m128) __builtin_ia32_vpermi2varps128_mask ((__v4sf) __A, 4272 (__v4si) __I 4273 /* idx */ , 4274 (__v4sf) __B, 4275 (__mmask8) __U); 4276 } 4277 4278 static __inline__ __m256 __DEFAULT_FN_ATTRS 4279 _mm256_mask2_permutex2var_ps (__m256 __A, __m256i __I, __mmask8 __U, 4280 __m256 __B) { 4281 return (__m256) __builtin_ia32_vpermi2varps256_mask ((__v8sf) __A, 4282 (__v8si) __I 4283 /* idx */ , 4284 (__v8sf) __B, 4285 (__mmask8) __U); 4286 } 4287 4288 static __inline__ __m128i __DEFAULT_FN_ATTRS 4289 _mm_mask2_permutex2var_epi64 (__m128i __A, __m128i __I, __mmask8 __U, 4290 __m128i __B) { 4291 return (__m128i) __builtin_ia32_vpermi2varq128_mask ((__v2di) __A, 4292 (__v2di) __I 4293 /* idx */ , 4294 (__v2di) __B, 4295 (__mmask8) __U); 4296 } 4297 4298 static __inline__ __m256i __DEFAULT_FN_ATTRS 4299 _mm256_mask2_permutex2var_epi64 (__m256i __A, __m256i __I, 4300 __mmask8 __U, __m256i __B) { 4301 return (__m256i) __builtin_ia32_vpermi2varq256_mask ((__v4di) __A, 4302 (__v4di) __I 4303 /* idx */ , 4304 (__v4di) __B, 4305 (__mmask8) __U); 4306 } 4307 4308 static __inline__ __m128i __DEFAULT_FN_ATTRS 4309 _mm_permutex2var_epi32 (__m128i __A, __m128i __I, __m128i __B) { 4310 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I 4311 /* idx */ , 4312 (__v4si) __A, 4313 (__v4si) __B, 4314 (__mmask8) -1); 4315 } 4316 4317 static __inline__ __m128i __DEFAULT_FN_ATTRS 4318 _mm_mask_permutex2var_epi32 (__m128i __A, __mmask8 __U, __m128i __I, 4319 __m128i __B) { 4320 return (__m128i) __builtin_ia32_vpermt2vard128_mask ((__v4si) __I 4321 /* idx */ , 4322 (__v4si) __A, 4323 (__v4si) __B, 4324 (__mmask8) __U); 4325 } 4326 4327 static __inline__ __m128i __DEFAULT_FN_ATTRS 4328 _mm_maskz_permutex2var_epi32 (__mmask8 __U, __m128i __A, __m128i __I, 4329 __m128i __B) { 4330 return (__m128i) __builtin_ia32_vpermt2vard128_maskz ((__v4si) __I 4331 /* idx */ , 4332 (__v4si) __A, 4333 (__v4si) __B, 4334 (__mmask8) 4335 __U); 4336 } 4337 4338 static __inline__ __m256i __DEFAULT_FN_ATTRS 4339 _mm256_permutex2var_epi32 (__m256i __A, __m256i __I, __m256i __B) { 4340 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I 4341 /* idx */ , 4342 (__v8si) __A, 4343 (__v8si) __B, 4344 (__mmask8) -1); 4345 } 4346 4347 static __inline__ __m256i __DEFAULT_FN_ATTRS 4348 _mm256_mask_permutex2var_epi32 (__m256i __A, __mmask8 __U, __m256i __I, 4349 __m256i __B) { 4350 return (__m256i) __builtin_ia32_vpermt2vard256_mask ((__v8si) __I 4351 /* idx */ , 4352 (__v8si) __A, 4353 (__v8si) __B, 4354 (__mmask8) __U); 4355 } 4356 4357 static __inline__ __m256i __DEFAULT_FN_ATTRS 4358 _mm256_maskz_permutex2var_epi32 (__mmask8 __U, __m256i __A, 4359 __m256i __I, __m256i __B) { 4360 return (__m256i) __builtin_ia32_vpermt2vard256_maskz ((__v8si) __I 4361 /* idx */ , 4362 (__v8si) __A, 4363 (__v8si) __B, 4364 (__mmask8) 4365 __U); 4366 } 4367 4368 static __inline__ __m128d __DEFAULT_FN_ATTRS 4369 _mm_permutex2var_pd (__m128d __A, __m128i __I, __m128d __B) { 4370 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I 4371 /* idx */ , 4372 (__v2df) __A, 4373 (__v2df) __B, 4374 (__mmask8) - 4375 1); 4376 } 4377 4378 static __inline__ __m128d __DEFAULT_FN_ATTRS 4379 _mm_mask_permutex2var_pd (__m128d __A, __mmask8 __U, __m128i __I, 4380 __m128d __B) { 4381 return (__m128d) __builtin_ia32_vpermt2varpd128_mask ((__v2di) __I 4382 /* idx */ , 4383 (__v2df) __A, 4384 (__v2df) __B, 4385 (__mmask8) 4386 __U); 4387 } 4388 4389 static __inline__ __m128d __DEFAULT_FN_ATTRS 4390 _mm_maskz_permutex2var_pd (__mmask8 __U, __m128d __A, __m128i __I, 4391 __m128d __B) { 4392 return (__m128d) __builtin_ia32_vpermt2varpd128_maskz ((__v2di) __I 4393 /* idx */ , 4394 (__v2df) __A, 4395 (__v2df) __B, 4396 (__mmask8) 4397 __U); 4398 } 4399 4400 static __inline__ __m256d __DEFAULT_FN_ATTRS 4401 _mm256_permutex2var_pd (__m256d __A, __m256i __I, __m256d __B) { 4402 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I 4403 /* idx */ , 4404 (__v4df) __A, 4405 (__v4df) __B, 4406 (__mmask8) - 4407 1); 4408 } 4409 4410 static __inline__ __m256d __DEFAULT_FN_ATTRS 4411 _mm256_mask_permutex2var_pd (__m256d __A, __mmask8 __U, __m256i __I, 4412 __m256d __B) { 4413 return (__m256d) __builtin_ia32_vpermt2varpd256_mask ((__v4di) __I 4414 /* idx */ , 4415 (__v4df) __A, 4416 (__v4df) __B, 4417 (__mmask8) 4418 __U); 4419 } 4420 4421 static __inline__ __m256d __DEFAULT_FN_ATTRS 4422 _mm256_maskz_permutex2var_pd (__mmask8 __U, __m256d __A, __m256i __I, 4423 __m256d __B) { 4424 return (__m256d) __builtin_ia32_vpermt2varpd256_maskz ((__v4di) __I 4425 /* idx */ , 4426 (__v4df) __A, 4427 (__v4df) __B, 4428 (__mmask8) 4429 __U); 4430 } 4431 4432 static __inline__ __m128 __DEFAULT_FN_ATTRS 4433 _mm_permutex2var_ps (__m128 __A, __m128i __I, __m128 __B) { 4434 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I 4435 /* idx */ , 4436 (__v4sf) __A, 4437 (__v4sf) __B, 4438 (__mmask8) -1); 4439 } 4440 4441 static __inline__ __m128 __DEFAULT_FN_ATTRS 4442 _mm_mask_permutex2var_ps (__m128 __A, __mmask8 __U, __m128i __I, 4443 __m128 __B) { 4444 return (__m128) __builtin_ia32_vpermt2varps128_mask ((__v4si) __I 4445 /* idx */ , 4446 (__v4sf) __A, 4447 (__v4sf) __B, 4448 (__mmask8) __U); 4449 } 4450 4451 static __inline__ __m128 __DEFAULT_FN_ATTRS 4452 _mm_maskz_permutex2var_ps (__mmask8 __U, __m128 __A, __m128i __I, 4453 __m128 __B) { 4454 return (__m128) __builtin_ia32_vpermt2varps128_maskz ((__v4si) __I 4455 /* idx */ , 4456 (__v4sf) __A, 4457 (__v4sf) __B, 4458 (__mmask8) 4459 __U); 4460 } 4461 4462 static __inline__ __m256 __DEFAULT_FN_ATTRS 4463 _mm256_permutex2var_ps (__m256 __A, __m256i __I, __m256 __B) { 4464 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I 4465 /* idx */ , 4466 (__v8sf) __A, 4467 (__v8sf) __B, 4468 (__mmask8) -1); 4469 } 4470 4471 static __inline__ __m256 __DEFAULT_FN_ATTRS 4472 _mm256_mask_permutex2var_ps (__m256 __A, __mmask8 __U, __m256i __I, 4473 __m256 __B) { 4474 return (__m256) __builtin_ia32_vpermt2varps256_mask ((__v8si) __I 4475 /* idx */ , 4476 (__v8sf) __A, 4477 (__v8sf) __B, 4478 (__mmask8) __U); 4479 } 4480 4481 static __inline__ __m256 __DEFAULT_FN_ATTRS 4482 _mm256_maskz_permutex2var_ps (__mmask8 __U, __m256 __A, __m256i __I, 4483 __m256 __B) { 4484 return (__m256) __builtin_ia32_vpermt2varps256_maskz ((__v8si) __I 4485 /* idx */ , 4486 (__v8sf) __A, 4487 (__v8sf) __B, 4488 (__mmask8) 4489 __U); 4490 } 4491 4492 static __inline__ __m128i __DEFAULT_FN_ATTRS 4493 _mm_permutex2var_epi64 (__m128i __A, __m128i __I, __m128i __B) { 4494 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I 4495 /* idx */ , 4496 (__v2di) __A, 4497 (__v2di) __B, 4498 (__mmask8) -1); 4499 } 4500 4501 static __inline__ __m128i __DEFAULT_FN_ATTRS 4502 _mm_mask_permutex2var_epi64 (__m128i __A, __mmask8 __U, __m128i __I, 4503 __m128i __B) { 4504 return (__m128i) __builtin_ia32_vpermt2varq128_mask ((__v2di) __I 4505 /* idx */ , 4506 (__v2di) __A, 4507 (__v2di) __B, 4508 (__mmask8) __U); 4509 } 4510 4511 static __inline__ __m128i __DEFAULT_FN_ATTRS 4512 _mm_maskz_permutex2var_epi64 (__mmask8 __U, __m128i __A, __m128i __I, 4513 __m128i __B) { 4514 return (__m128i) __builtin_ia32_vpermt2varq128_maskz ((__v2di) __I 4515 /* idx */ , 4516 (__v2di) __A, 4517 (__v2di) __B, 4518 (__mmask8) 4519 __U); 4520 } 4521 4522 4523 static __inline__ __m256i __DEFAULT_FN_ATTRS 4524 _mm256_permutex2var_epi64 (__m256i __A, __m256i __I, __m256i __B) { 4525 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I 4526 /* idx */ , 4527 (__v4di) __A, 4528 (__v4di) __B, 4529 (__mmask8) -1); 4530 } 4531 4532 static __inline__ __m256i __DEFAULT_FN_ATTRS 4533 _mm256_mask_permutex2var_epi64 (__m256i __A, __mmask8 __U, __m256i __I, 4534 __m256i __B) { 4535 return (__m256i) __builtin_ia32_vpermt2varq256_mask ((__v4di) __I 4536 /* idx */ , 4537 (__v4di) __A, 4538 (__v4di) __B, 4539 (__mmask8) __U); 4540 } 4541 4542 static __inline__ __m256i __DEFAULT_FN_ATTRS 4543 _mm256_maskz_permutex2var_epi64 (__mmask8 __U, __m256i __A, 4544 __m256i __I, __m256i __B) { 4545 return (__m256i) __builtin_ia32_vpermt2varq256_maskz ((__v4di) __I 4546 /* idx */ , 4547 (__v4di) __A, 4548 (__v4di) __B, 4549 (__mmask8) 4550 __U); 4551 } 4552 4553 static __inline__ __m128i __DEFAULT_FN_ATTRS 4554 _mm_mask_cvtepi8_epi32 (__m128i __W, __mmask8 __U, __m128i __A) 4555 { 4556 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A, 4557 (__v4si) __W, 4558 (__mmask8) __U); 4559 } 4560 4561 static __inline__ __m128i __DEFAULT_FN_ATTRS 4562 _mm_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A) 4563 { 4564 return (__m128i) __builtin_ia32_pmovsxbd128_mask ((__v16qi) __A, 4565 (__v4si) 4566 _mm_setzero_si128 (), 4567 (__mmask8) __U); 4568 } 4569 4570 static __inline__ __m256i __DEFAULT_FN_ATTRS 4571 _mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A) 4572 { 4573 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A, 4574 (__v8si) __W, 4575 (__mmask8) __U); 4576 } 4577 4578 static __inline__ __m256i __DEFAULT_FN_ATTRS 4579 _mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A) 4580 { 4581 return (__m256i) __builtin_ia32_pmovsxbd256_mask ((__v16qi) __A, 4582 (__v8si) 4583 _mm256_setzero_si256 (), 4584 (__mmask8) __U); 4585 } 4586 4587 static __inline__ __m128i __DEFAULT_FN_ATTRS 4588 _mm_mask_cvtepi8_epi64 (__m128i __W, __mmask8 __U, __m128i __A) 4589 { 4590 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A, 4591 (__v2di) __W, 4592 (__mmask8) __U); 4593 } 4594 4595 static __inline__ __m128i __DEFAULT_FN_ATTRS 4596 _mm_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A) 4597 { 4598 return (__m128i) __builtin_ia32_pmovsxbq128_mask ((__v16qi) __A, 4599 (__v2di) 4600 _mm_setzero_si128 (), 4601 (__mmask8) __U); 4602 } 4603 4604 static __inline__ __m256i __DEFAULT_FN_ATTRS 4605 _mm256_mask_cvtepi8_epi64 (__m256i __W, __mmask8 __U, __m128i __A) 4606 { 4607 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A, 4608 (__v4di) __W, 4609 (__mmask8) __U); 4610 } 4611 4612 static __inline__ __m256i __DEFAULT_FN_ATTRS 4613 _mm256_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A) 4614 { 4615 return (__m256i) __builtin_ia32_pmovsxbq256_mask ((__v16qi) __A, 4616 (__v4di) 4617 _mm256_setzero_si256 (), 4618 (__mmask8) __U); 4619 } 4620 4621 static __inline__ __m128i __DEFAULT_FN_ATTRS 4622 _mm_mask_cvtepi32_epi64 (__m128i __W, __mmask8 __U, __m128i __X) 4623 { 4624 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X, 4625 (__v2di) __W, 4626 (__mmask8) __U); 4627 } 4628 4629 static __inline__ __m128i __DEFAULT_FN_ATTRS 4630 _mm_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X) 4631 { 4632 return (__m128i) __builtin_ia32_pmovsxdq128_mask ((__v4si) __X, 4633 (__v2di) 4634 _mm_setzero_si128 (), 4635 (__mmask8) __U); 4636 } 4637 4638 static __inline__ __m256i __DEFAULT_FN_ATTRS 4639 _mm256_mask_cvtepi32_epi64 (__m256i __W, __mmask8 __U, __m128i __X) 4640 { 4641 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X, 4642 (__v4di) __W, 4643 (__mmask8) __U); 4644 } 4645 4646 static __inline__ __m256i __DEFAULT_FN_ATTRS 4647 _mm256_maskz_cvtepi32_epi64 (__mmask8 __U, __m128i __X) 4648 { 4649 return (__m256i) __builtin_ia32_pmovsxdq256_mask ((__v4si) __X, 4650 (__v4di) 4651 _mm256_setzero_si256 (), 4652 (__mmask8) __U); 4653 } 4654 4655 static __inline__ __m128i __DEFAULT_FN_ATTRS 4656 _mm_mask_cvtepi16_epi32 (__m128i __W, __mmask8 __U, __m128i __A) 4657 { 4658 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A, 4659 (__v4si) __W, 4660 (__mmask8) __U); 4661 } 4662 4663 static __inline__ __m128i __DEFAULT_FN_ATTRS 4664 _mm_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A) 4665 { 4666 return (__m128i) __builtin_ia32_pmovsxwd128_mask ((__v8hi) __A, 4667 (__v4si) 4668 _mm_setzero_si128 (), 4669 (__mmask8) __U); 4670 } 4671 4672 static __inline__ __m256i __DEFAULT_FN_ATTRS 4673 _mm256_mask_cvtepi16_epi32 (__m256i __W, __mmask8 __U, __m128i __A) 4674 { 4675 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A, 4676 (__v8si) __W, 4677 (__mmask8) __U); 4678 } 4679 4680 static __inline__ __m256i __DEFAULT_FN_ATTRS 4681 _mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A) 4682 { 4683 return (__m256i) __builtin_ia32_pmovsxwd256_mask ((__v8hi) __A, 4684 (__v8si) 4685 _mm256_setzero_si256 (), 4686 (__mmask8) __U); 4687 } 4688 4689 static __inline__ __m128i __DEFAULT_FN_ATTRS 4690 _mm_mask_cvtepi16_epi64 (__m128i __W, __mmask8 __U, __m128i __A) 4691 { 4692 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A, 4693 (__v2di) __W, 4694 (__mmask8) __U); 4695 } 4696 4697 static __inline__ __m128i __DEFAULT_FN_ATTRS 4698 _mm_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A) 4699 { 4700 return (__m128i) __builtin_ia32_pmovsxwq128_mask ((__v8hi) __A, 4701 (__v2di) 4702 _mm_setzero_si128 (), 4703 (__mmask8) __U); 4704 } 4705 4706 static __inline__ __m256i __DEFAULT_FN_ATTRS 4707 _mm256_mask_cvtepi16_epi64 (__m256i __W, __mmask8 __U, __m128i __A) 4708 { 4709 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A, 4710 (__v4di) __W, 4711 (__mmask8) __U); 4712 } 4713 4714 static __inline__ __m256i __DEFAULT_FN_ATTRS 4715 _mm256_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A) 4716 { 4717 return (__m256i) __builtin_ia32_pmovsxwq256_mask ((__v8hi) __A, 4718 (__v4di) 4719 _mm256_setzero_si256 (), 4720 (__mmask8) __U); 4721 } 4722 4723 4724 static __inline__ __m128i __DEFAULT_FN_ATTRS 4725 _mm_mask_cvtepu8_epi32 (__m128i __W, __mmask8 __U, __m128i __A) 4726 { 4727 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A, 4728 (__v4si) __W, 4729 (__mmask8) __U); 4730 } 4731 4732 static __inline__ __m128i __DEFAULT_FN_ATTRS 4733 _mm_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A) 4734 { 4735 return (__m128i) __builtin_ia32_pmovzxbd128_mask ((__v16qi) __A, 4736 (__v4si) 4737 _mm_setzero_si128 (), 4738 (__mmask8) __U); 4739 } 4740 4741 static __inline__ __m256i __DEFAULT_FN_ATTRS 4742 _mm256_mask_cvtepu8_epi32 (__m256i __W, __mmask8 __U, __m128i __A) 4743 { 4744 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A, 4745 (__v8si) __W, 4746 (__mmask8) __U); 4747 } 4748 4749 static __inline__ __m256i __DEFAULT_FN_ATTRS 4750 _mm256_maskz_cvtepu8_epi32 (__mmask8 __U, __m128i __A) 4751 { 4752 return (__m256i) __builtin_ia32_pmovzxbd256_mask ((__v16qi) __A, 4753 (__v8si) 4754 _mm256_setzero_si256 (), 4755 (__mmask8) __U); 4756 } 4757 4758 static __inline__ __m128i __DEFAULT_FN_ATTRS 4759 _mm_mask_cvtepu8_epi64 (__m128i __W, __mmask8 __U, __m128i __A) 4760 { 4761 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A, 4762 (__v2di) __W, 4763 (__mmask8) __U); 4764 } 4765 4766 static __inline__ __m128i __DEFAULT_FN_ATTRS 4767 _mm_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) 4768 { 4769 return (__m128i) __builtin_ia32_pmovzxbq128_mask ((__v16qi) __A, 4770 (__v2di) 4771 _mm_setzero_si128 (), 4772 (__mmask8) __U); 4773 } 4774 4775 static __inline__ __m256i __DEFAULT_FN_ATTRS 4776 _mm256_mask_cvtepu8_epi64 (__m256i __W, __mmask8 __U, __m128i __A) 4777 { 4778 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A, 4779 (__v4di) __W, 4780 (__mmask8) __U); 4781 } 4782 4783 static __inline__ __m256i __DEFAULT_FN_ATTRS 4784 _mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) 4785 { 4786 return (__m256i) __builtin_ia32_pmovzxbq256_mask ((__v16qi) __A, 4787 (__v4di) 4788 _mm256_setzero_si256 (), 4789 (__mmask8) __U); 4790 } 4791 4792 static __inline__ __m128i __DEFAULT_FN_ATTRS 4793 _mm_mask_cvtepu32_epi64 (__m128i __W, __mmask8 __U, __m128i __X) 4794 { 4795 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X, 4796 (__v2di) __W, 4797 (__mmask8) __U); 4798 } 4799 4800 static __inline__ __m128i __DEFAULT_FN_ATTRS 4801 _mm_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X) 4802 { 4803 return (__m128i) __builtin_ia32_pmovzxdq128_mask ((__v4si) __X, 4804 (__v2di) 4805 _mm_setzero_si128 (), 4806 (__mmask8) __U); 4807 } 4808 4809 static __inline__ __m256i __DEFAULT_FN_ATTRS 4810 _mm256_mask_cvtepu32_epi64 (__m256i __W, __mmask8 __U, __m128i __X) 4811 { 4812 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X, 4813 (__v4di) __W, 4814 (__mmask8) __U); 4815 } 4816 4817 static __inline__ __m256i __DEFAULT_FN_ATTRS 4818 _mm256_maskz_cvtepu32_epi64 (__mmask8 __U, __m128i __X) 4819 { 4820 return (__m256i) __builtin_ia32_pmovzxdq256_mask ((__v4si) __X, 4821 (__v4di) 4822 _mm256_setzero_si256 (), 4823 (__mmask8) __U); 4824 } 4825 4826 static __inline__ __m128i __DEFAULT_FN_ATTRS 4827 _mm_mask_cvtepu16_epi32 (__m128i __W, __mmask8 __U, __m128i __A) 4828 { 4829 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A, 4830 (__v4si) __W, 4831 (__mmask8) __U); 4832 } 4833 4834 static __inline__ __m128i __DEFAULT_FN_ATTRS 4835 _mm_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A) 4836 { 4837 return (__m128i) __builtin_ia32_pmovzxwd128_mask ((__v8hi) __A, 4838 (__v4si) 4839 _mm_setzero_si128 (), 4840 (__mmask8) __U); 4841 } 4842 4843 static __inline__ __m256i __DEFAULT_FN_ATTRS 4844 _mm256_mask_cvtepu16_epi32 (__m256i __W, __mmask8 __U, __m128i __A) 4845 { 4846 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A, 4847 (__v8si) __W, 4848 (__mmask8) __U); 4849 } 4850 4851 static __inline__ __m256i __DEFAULT_FN_ATTRS 4852 _mm256_maskz_cvtepu16_epi32 (__mmask8 __U, __m128i __A) 4853 { 4854 return (__m256i) __builtin_ia32_pmovzxwd256_mask ((__v8hi) __A, 4855 (__v8si) 4856 _mm256_setzero_si256 (), 4857 (__mmask8) __U); 4858 } 4859 4860 static __inline__ __m128i __DEFAULT_FN_ATTRS 4861 _mm_mask_cvtepu16_epi64 (__m128i __W, __mmask8 __U, __m128i __A) 4862 { 4863 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A, 4864 (__v2di) __W, 4865 (__mmask8) __U); 4866 } 4867 4868 static __inline__ __m128i __DEFAULT_FN_ATTRS 4869 _mm_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A) 4870 { 4871 return (__m128i) __builtin_ia32_pmovzxwq128_mask ((__v8hi) __A, 4872 (__v2di) 4873 _mm_setzero_si128 (), 4874 (__mmask8) __U); 4875 } 4876 4877 static __inline__ __m256i __DEFAULT_FN_ATTRS 4878 _mm256_mask_cvtepu16_epi64 (__m256i __W, __mmask8 __U, __m128i __A) 4879 { 4880 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A, 4881 (__v4di) __W, 4882 (__mmask8) __U); 4883 } 4884 4885 static __inline__ __m256i __DEFAULT_FN_ATTRS 4886 _mm256_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A) 4887 { 4888 return (__m256i) __builtin_ia32_pmovzxwq256_mask ((__v8hi) __A, 4889 (__v4di) 4890 _mm256_setzero_si256 (), 4891 (__mmask8) __U); 4892 } 4893 4894 4895 #define _mm_rol_epi32(a, b) __extension__ ({\ 4896 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \ 4897 (__v4si)_mm_setzero_si128(), \ 4898 (__mmask8)-1); }) 4899 4900 #define _mm_mask_rol_epi32(w, u, a, b) __extension__ ({\ 4901 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \ 4902 (__v4si)(__m128i)(w), (__mmask8)(u)); }) 4903 4904 #define _mm_maskz_rol_epi32(u, a, b) __extension__ ({\ 4905 (__m128i)__builtin_ia32_prold128_mask((__v4si)(__m128i)(a), (int)(b), \ 4906 (__v4si)_mm_setzero_si128(), \ 4907 (__mmask8)(u)); }) 4908 4909 #define _mm256_rol_epi32(a, b) __extension__ ({\ 4910 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \ 4911 (__v8si)_mm256_setzero_si256(), \ 4912 (__mmask8)-1); }) 4913 4914 #define _mm256_mask_rol_epi32(w, u, a, b) __extension__ ({\ 4915 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \ 4916 (__v8si)(__m256i)(w), (__mmask8)(u)); }) 4917 4918 #define _mm256_maskz_rol_epi32(u, a, b) __extension__ ({\ 4919 (__m256i)__builtin_ia32_prold256_mask((__v8si)(__m256i)(a), (int)(b), \ 4920 (__v8si)_mm256_setzero_si256(), \ 4921 (__mmask8)(u)); }) 4922 4923 #define _mm_rol_epi64(a, b) __extension__ ({\ 4924 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \ 4925 (__v2di)_mm_setzero_di(), \ 4926 (__mmask8)-1); }) 4927 4928 #define _mm_mask_rol_epi64(w, u, a, b) __extension__ ({\ 4929 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \ 4930 (__v2di)(__m128i)(w), (__mmask8)(u)); }) 4931 4932 #define _mm_maskz_rol_epi64(u, a, b) __extension__ ({\ 4933 (__m128i)__builtin_ia32_prolq128_mask((__v2di)(__m128i)(a), (int)(b), \ 4934 (__v2di)_mm_setzero_di(), \ 4935 (__mmask8)(u)); }) 4936 4937 #define _mm256_rol_epi64(a, b) __extension__ ({\ 4938 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \ 4939 (__v4di)_mm256_setzero_si256(), \ 4940 (__mmask8)-1); }) 4941 4942 #define _mm256_mask_rol_epi64(w, u, a, b) __extension__ ({\ 4943 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \ 4944 (__v4di)(__m256i)(w), (__mmask8)(u)); }) 4945 4946 #define _mm256_maskz_rol_epi64(u, a, b) __extension__ ({\ 4947 (__m256i)__builtin_ia32_prolq256_mask((__v4di)(__m256i)(a), (int)(b), \ 4948 (__v4di)_mm256_setzero_si256(), \ 4949 (__mmask8)(u)); }) 4950 4951 static __inline__ __m128i __DEFAULT_FN_ATTRS 4952 _mm_rolv_epi32 (__m128i __A, __m128i __B) 4953 { 4954 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A, 4955 (__v4si) __B, 4956 (__v4si) 4957 _mm_setzero_si128 (), 4958 (__mmask8) -1); 4959 } 4960 4961 static __inline__ __m128i __DEFAULT_FN_ATTRS 4962 _mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 4963 __m128i __B) 4964 { 4965 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A, 4966 (__v4si) __B, 4967 (__v4si) __W, 4968 (__mmask8) __U); 4969 } 4970 4971 static __inline__ __m128i __DEFAULT_FN_ATTRS 4972 _mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 4973 { 4974 return (__m128i) __builtin_ia32_prolvd128_mask ((__v4si) __A, 4975 (__v4si) __B, 4976 (__v4si) 4977 _mm_setzero_si128 (), 4978 (__mmask8) __U); 4979 } 4980 4981 static __inline__ __m256i __DEFAULT_FN_ATTRS 4982 _mm256_rolv_epi32 (__m256i __A, __m256i __B) 4983 { 4984 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A, 4985 (__v8si) __B, 4986 (__v8si) 4987 _mm256_setzero_si256 (), 4988 (__mmask8) -1); 4989 } 4990 4991 static __inline__ __m256i __DEFAULT_FN_ATTRS 4992 _mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 4993 __m256i __B) 4994 { 4995 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A, 4996 (__v8si) __B, 4997 (__v8si) __W, 4998 (__mmask8) __U); 4999 } 5000 5001 static __inline__ __m256i __DEFAULT_FN_ATTRS 5002 _mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 5003 { 5004 return (__m256i) __builtin_ia32_prolvd256_mask ((__v8si) __A, 5005 (__v8si) __B, 5006 (__v8si) 5007 _mm256_setzero_si256 (), 5008 (__mmask8) __U); 5009 } 5010 5011 static __inline__ __m128i __DEFAULT_FN_ATTRS 5012 _mm_rolv_epi64 (__m128i __A, __m128i __B) 5013 { 5014 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A, 5015 (__v2di) __B, 5016 (__v2di) 5017 _mm_setzero_di (), 5018 (__mmask8) -1); 5019 } 5020 5021 static __inline__ __m128i __DEFAULT_FN_ATTRS 5022 _mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 5023 __m128i __B) 5024 { 5025 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A, 5026 (__v2di) __B, 5027 (__v2di) __W, 5028 (__mmask8) __U); 5029 } 5030 5031 static __inline__ __m128i __DEFAULT_FN_ATTRS 5032 _mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 5033 { 5034 return (__m128i) __builtin_ia32_prolvq128_mask ((__v2di) __A, 5035 (__v2di) __B, 5036 (__v2di) 5037 _mm_setzero_di (), 5038 (__mmask8) __U); 5039 } 5040 5041 static __inline__ __m256i __DEFAULT_FN_ATTRS 5042 _mm256_rolv_epi64 (__m256i __A, __m256i __B) 5043 { 5044 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A, 5045 (__v4di) __B, 5046 (__v4di) 5047 _mm256_setzero_si256 (), 5048 (__mmask8) -1); 5049 } 5050 5051 static __inline__ __m256i __DEFAULT_FN_ATTRS 5052 _mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 5053 __m256i __B) 5054 { 5055 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A, 5056 (__v4di) __B, 5057 (__v4di) __W, 5058 (__mmask8) __U); 5059 } 5060 5061 static __inline__ __m256i __DEFAULT_FN_ATTRS 5062 _mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 5063 { 5064 return (__m256i) __builtin_ia32_prolvq256_mask ((__v4di) __A, 5065 (__v4di) __B, 5066 (__v4di) 5067 _mm256_setzero_si256 (), 5068 (__mmask8) __U); 5069 } 5070 5071 #define _mm_ror_epi32(A, B) __extension__ ({ \ 5072 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \ 5073 (__v4si)_mm_setzero_si128(), \ 5074 (__mmask8)-1); }) 5075 5076 #define _mm_mask_ror_epi32(W, U, A, B) __extension__ ({ \ 5077 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \ 5078 (__v4si)(__m128i)(W), (__mmask8)(U)); }) 5079 5080 #define _mm_maskz_ror_epi32(U, A, B) __extension__ ({ \ 5081 (__m128i)__builtin_ia32_prord128_mask((__v4si)(__m128i)(A), (int)(B), \ 5082 (__v4si)_mm_setzero_si128(), \ 5083 (__mmask8)(U)); }) 5084 5085 #define _mm256_ror_epi32(A, B) __extension__ ({ \ 5086 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \ 5087 (__v8si)_mm256_setzero_si256(), \ 5088 (__mmask8)-1); }) 5089 5090 #define _mm256_mask_ror_epi32(W, U, A, B) __extension__ ({ \ 5091 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \ 5092 (__v8si)(__m256i)(W), (__mmask8)(U)); }) 5093 5094 #define _mm256_maskz_ror_epi32(U, A, B) __extension__ ({ \ 5095 (__m256i)__builtin_ia32_prord256_mask((__v8si)(__m256i)(A), (int)(B), \ 5096 (__v8si)_mm256_setzero_si256(), \ 5097 (__mmask8)(U)); }) 5098 5099 #define _mm_ror_epi64(A, B) __extension__ ({ \ 5100 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \ 5101 (__v2di)_mm_setzero_di(), \ 5102 (__mmask8)-1); }) 5103 5104 #define _mm_mask_ror_epi64(W, U, A, B) __extension__ ({ \ 5105 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \ 5106 (__v2di)(__m128i)(W), (__mmask8)(U)); }) 5107 5108 #define _mm_maskz_ror_epi64(U, A, B) __extension__ ({ \ 5109 (__m128i)__builtin_ia32_prorq128_mask((__v2di)(__m128i)(A), (int)(B), \ 5110 (__v2di)_mm_setzero_di(), \ 5111 (__mmask8)(U)); }) 5112 5113 #define _mm256_ror_epi64(A, B) __extension__ ({ \ 5114 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \ 5115 (__v4di)_mm256_setzero_si256(), \ 5116 (__mmask8)-1); }) 5117 5118 #define _mm256_mask_ror_epi64(W, U, A, B) __extension__ ({ \ 5119 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \ 5120 (__v4di)(__m256i)(W), (__mmask8)(U)); }) 5121 5122 #define _mm256_maskz_ror_epi64(U, A, B) __extension__ ({ \ 5123 (__m256i)__builtin_ia32_prorq256_mask((__v4di)(__m256i)(A), (int)(B), \ 5124 (__v4di)_mm256_setzero_si256(), \ 5125 (__mmask8)(U)); }) 5126 5127 static __inline__ __m128i __DEFAULT_FN_ATTRS 5128 _mm_mask_sll_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 5129 __m128i __B) 5130 { 5131 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A, 5132 (__v4si) __B, 5133 (__v4si) __W, 5134 (__mmask8) __U); 5135 } 5136 5137 static __inline__ __m128i __DEFAULT_FN_ATTRS 5138 _mm_maskz_sll_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 5139 { 5140 return (__m128i) __builtin_ia32_pslld128_mask ((__v4si) __A, 5141 (__v4si) __B, 5142 (__v4si) 5143 _mm_setzero_si128 (), 5144 (__mmask8) __U); 5145 } 5146 5147 static __inline__ __m256i __DEFAULT_FN_ATTRS 5148 _mm256_mask_sll_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 5149 __m128i __B) 5150 { 5151 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A, 5152 (__v4si) __B, 5153 (__v8si) __W, 5154 (__mmask8) __U); 5155 } 5156 5157 static __inline__ __m256i __DEFAULT_FN_ATTRS 5158 _mm256_maskz_sll_epi32 (__mmask8 __U, __m256i __A, __m128i __B) 5159 { 5160 return (__m256i) __builtin_ia32_pslld256_mask ((__v8si) __A, 5161 (__v4si) __B, 5162 (__v8si) 5163 _mm256_setzero_si256 (), 5164 (__mmask8) __U); 5165 } 5166 5167 #define _mm_mask_slli_epi32(W, U, A, B) __extension__ ({ \ 5168 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \ 5169 (__v4si)(__m128i)(W), \ 5170 (__mmask8)(U)); }) 5171 5172 #define _mm_maskz_slli_epi32(U, A, B) __extension__ ({ \ 5173 (__m128i)__builtin_ia32_pslldi128_mask((__v4si)(__m128i)(A), (int)(B), \ 5174 (__v4si)_mm_setzero_si128(), \ 5175 (__mmask8)(U)); }) 5176 5177 #define _mm256_mask_slli_epi32(W, U, A, B) __extension__ ({ \ 5178 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \ 5179 (__v8si)(__m256i)(W), \ 5180 (__mmask8)(U)); }) 5181 5182 #define _mm256_maskz_slli_epi32(U, A, B) __extension__ ({ \ 5183 (__m256i)__builtin_ia32_pslldi256_mask((__v8si)(__m256i)(A), (int)(B), \ 5184 (__v8si)_mm256_setzero_si256(), \ 5185 (__mmask8)(U)); }) 5186 5187 static __inline__ __m128i __DEFAULT_FN_ATTRS 5188 _mm_mask_sll_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 5189 __m128i __B) 5190 { 5191 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A, 5192 (__v2di) __B, 5193 (__v2di) __W, 5194 (__mmask8) __U); 5195 } 5196 5197 static __inline__ __m128i __DEFAULT_FN_ATTRS 5198 _mm_maskz_sll_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 5199 { 5200 return (__m128i) __builtin_ia32_psllq128_mask ((__v2di) __A, 5201 (__v2di) __B, 5202 (__v2di) 5203 _mm_setzero_di (), 5204 (__mmask8) __U); 5205 } 5206 5207 static __inline__ __m256i __DEFAULT_FN_ATTRS 5208 _mm256_mask_sll_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 5209 __m128i __B) 5210 { 5211 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A, 5212 (__v2di) __B, 5213 (__v4di) __W, 5214 (__mmask8) __U); 5215 } 5216 5217 static __inline__ __m256i __DEFAULT_FN_ATTRS 5218 _mm256_maskz_sll_epi64 (__mmask8 __U, __m256i __A, __m128i __B) 5219 { 5220 return (__m256i) __builtin_ia32_psllq256_mask ((__v4di) __A, 5221 (__v2di) __B, 5222 (__v4di) 5223 _mm256_setzero_si256 (), 5224 (__mmask8) __U); 5225 } 5226 5227 #define _mm_mask_slli_epi64(W, U, A, B) __extension__ ({ \ 5228 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \ 5229 (__v2di)(__m128i)(W), \ 5230 (__mmask8)(U)); }) 5231 5232 #define _mm_maskz_slli_epi64(U, A, B) __extension__ ({ \ 5233 (__m128i)__builtin_ia32_psllqi128_mask((__v2di)(__m128i)(A), (int)(B), \ 5234 (__v2di)_mm_setzero_di(), \ 5235 (__mmask8)(U)); }) 5236 5237 #define _mm256_mask_slli_epi64(W, U, A, B) __extension__ ({ \ 5238 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \ 5239 (__v4di)(__m256i)(W), \ 5240 (__mmask8)(U)); }) 5241 5242 #define _mm256_maskz_slli_epi64(U, A, B) __extension__ ({ \ 5243 (__m256i)__builtin_ia32_psllqi256_mask((__v4di)(__m256i)(A), (int)(B), \ 5244 (__v4di)_mm256_setzero_si256(), \ 5245 (__mmask8)(U)); }) 5246 5247 5248 static __inline__ __m128i __DEFAULT_FN_ATTRS 5249 _mm_rorv_epi32 (__m128i __A, __m128i __B) 5250 { 5251 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A, 5252 (__v4si) __B, 5253 (__v4si) 5254 _mm_setzero_si128 (), 5255 (__mmask8) -1); 5256 } 5257 5258 static __inline__ __m128i __DEFAULT_FN_ATTRS 5259 _mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 5260 __m128i __B) 5261 { 5262 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A, 5263 (__v4si) __B, 5264 (__v4si) __W, 5265 (__mmask8) __U); 5266 } 5267 5268 static __inline__ __m128i __DEFAULT_FN_ATTRS 5269 _mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 5270 { 5271 return (__m128i) __builtin_ia32_prorvd128_mask ((__v4si) __A, 5272 (__v4si) __B, 5273 (__v4si) 5274 _mm_setzero_si128 (), 5275 (__mmask8) __U); 5276 } 5277 5278 static __inline__ __m256i __DEFAULT_FN_ATTRS 5279 _mm256_rorv_epi32 (__m256i __A, __m256i __B) 5280 { 5281 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A, 5282 (__v8si) __B, 5283 (__v8si) 5284 _mm256_setzero_si256 (), 5285 (__mmask8) -1); 5286 } 5287 5288 static __inline__ __m256i __DEFAULT_FN_ATTRS 5289 _mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 5290 __m256i __B) 5291 { 5292 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A, 5293 (__v8si) __B, 5294 (__v8si) __W, 5295 (__mmask8) __U); 5296 } 5297 5298 static __inline__ __m256i __DEFAULT_FN_ATTRS 5299 _mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 5300 { 5301 return (__m256i) __builtin_ia32_prorvd256_mask ((__v8si) __A, 5302 (__v8si) __B, 5303 (__v8si) 5304 _mm256_setzero_si256 (), 5305 (__mmask8) __U); 5306 } 5307 5308 static __inline__ __m128i __DEFAULT_FN_ATTRS 5309 _mm_rorv_epi64 (__m128i __A, __m128i __B) 5310 { 5311 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A, 5312 (__v2di) __B, 5313 (__v2di) 5314 _mm_setzero_di (), 5315 (__mmask8) -1); 5316 } 5317 5318 static __inline__ __m128i __DEFAULT_FN_ATTRS 5319 _mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 5320 __m128i __B) 5321 { 5322 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A, 5323 (__v2di) __B, 5324 (__v2di) __W, 5325 (__mmask8) __U); 5326 } 5327 5328 static __inline__ __m128i __DEFAULT_FN_ATTRS 5329 _mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 5330 { 5331 return (__m128i) __builtin_ia32_prorvq128_mask ((__v2di) __A, 5332 (__v2di) __B, 5333 (__v2di) 5334 _mm_setzero_di (), 5335 (__mmask8) __U); 5336 } 5337 5338 static __inline__ __m256i __DEFAULT_FN_ATTRS 5339 _mm256_rorv_epi64 (__m256i __A, __m256i __B) 5340 { 5341 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A, 5342 (__v4di) __B, 5343 (__v4di) 5344 _mm256_setzero_si256 (), 5345 (__mmask8) -1); 5346 } 5347 5348 static __inline__ __m256i __DEFAULT_FN_ATTRS 5349 _mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 5350 __m256i __B) 5351 { 5352 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A, 5353 (__v4di) __B, 5354 (__v4di) __W, 5355 (__mmask8) __U); 5356 } 5357 5358 static __inline__ __m256i __DEFAULT_FN_ATTRS 5359 _mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 5360 { 5361 return (__m256i) __builtin_ia32_prorvq256_mask ((__v4di) __A, 5362 (__v4di) __B, 5363 (__v4di) 5364 _mm256_setzero_si256 (), 5365 (__mmask8) __U); 5366 } 5367 5368 static __inline__ __m128i __DEFAULT_FN_ATTRS 5369 _mm_mask_sllv_epi64 (__m128i __W, __mmask8 __U, __m128i __X, 5370 __m128i __Y) 5371 { 5372 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X, 5373 (__v2di) __Y, 5374 (__v2di) __W, 5375 (__mmask8) __U); 5376 } 5377 5378 static __inline__ __m128i __DEFAULT_FN_ATTRS 5379 _mm_maskz_sllv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y) 5380 { 5381 return (__m128i) __builtin_ia32_psllv2di_mask ((__v2di) __X, 5382 (__v2di) __Y, 5383 (__v2di) 5384 _mm_setzero_di (), 5385 (__mmask8) __U); 5386 } 5387 5388 static __inline__ __m256i __DEFAULT_FN_ATTRS 5389 _mm256_mask_sllv_epi64 (__m256i __W, __mmask8 __U, __m256i __X, 5390 __m256i __Y) 5391 { 5392 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X, 5393 (__v4di) __Y, 5394 (__v4di) __W, 5395 (__mmask8) __U); 5396 } 5397 5398 static __inline__ __m256i __DEFAULT_FN_ATTRS 5399 _mm256_maskz_sllv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) 5400 { 5401 return (__m256i) __builtin_ia32_psllv4di_mask ((__v4di) __X, 5402 (__v4di) __Y, 5403 (__v4di) 5404 _mm256_setzero_si256 (), 5405 (__mmask8) __U); 5406 } 5407 5408 static __inline__ __m128i __DEFAULT_FN_ATTRS 5409 _mm_mask_sllv_epi32 (__m128i __W, __mmask8 __U, __m128i __X, 5410 __m128i __Y) 5411 { 5412 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X, 5413 (__v4si) __Y, 5414 (__v4si) __W, 5415 (__mmask8) __U); 5416 } 5417 5418 static __inline__ __m128i __DEFAULT_FN_ATTRS 5419 _mm_maskz_sllv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y) 5420 { 5421 return (__m128i) __builtin_ia32_psllv4si_mask ((__v4si) __X, 5422 (__v4si) __Y, 5423 (__v4si) 5424 _mm_setzero_si128 (), 5425 (__mmask8) __U); 5426 } 5427 5428 static __inline__ __m256i __DEFAULT_FN_ATTRS 5429 _mm256_mask_sllv_epi32 (__m256i __W, __mmask8 __U, __m256i __X, 5430 __m256i __Y) 5431 { 5432 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X, 5433 (__v8si) __Y, 5434 (__v8si) __W, 5435 (__mmask8) __U); 5436 } 5437 5438 static __inline__ __m256i __DEFAULT_FN_ATTRS 5439 _mm256_maskz_sllv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y) 5440 { 5441 return (__m256i) __builtin_ia32_psllv8si_mask ((__v8si) __X, 5442 (__v8si) __Y, 5443 (__v8si) 5444 _mm256_setzero_si256 (), 5445 (__mmask8) __U); 5446 } 5447 5448 5449 5450 static __inline__ __m128i __DEFAULT_FN_ATTRS 5451 _mm_mask_srlv_epi64 (__m128i __W, __mmask8 __U, __m128i __X, 5452 __m128i __Y) 5453 { 5454 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X, 5455 (__v2di) __Y, 5456 (__v2di) __W, 5457 (__mmask8) __U); 5458 } 5459 5460 static __inline__ __m128i __DEFAULT_FN_ATTRS 5461 _mm_maskz_srlv_epi64 (__mmask8 __U, __m128i __X, __m128i __Y) 5462 { 5463 return (__m128i) __builtin_ia32_psrlv2di_mask ((__v2di) __X, 5464 (__v2di) __Y, 5465 (__v2di) 5466 _mm_setzero_di (), 5467 (__mmask8) __U); 5468 } 5469 5470 static __inline__ __m256i __DEFAULT_FN_ATTRS 5471 _mm256_mask_srlv_epi64 (__m256i __W, __mmask8 __U, __m256i __X, 5472 __m256i __Y) 5473 { 5474 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X, 5475 (__v4di) __Y, 5476 (__v4di) __W, 5477 (__mmask8) __U); 5478 } 5479 5480 static __inline__ __m256i __DEFAULT_FN_ATTRS 5481 _mm256_maskz_srlv_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) 5482 { 5483 return (__m256i) __builtin_ia32_psrlv4di_mask ((__v4di) __X, 5484 (__v4di) __Y, 5485 (__v4di) 5486 _mm256_setzero_si256 (), 5487 (__mmask8) __U); 5488 } 5489 5490 static __inline__ __m128i __DEFAULT_FN_ATTRS 5491 _mm_mask_srlv_epi32 (__m128i __W, __mmask8 __U, __m128i __X, 5492 __m128i __Y) 5493 { 5494 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X, 5495 (__v4si) __Y, 5496 (__v4si) __W, 5497 (__mmask8) __U); 5498 } 5499 5500 static __inline__ __m128i __DEFAULT_FN_ATTRS 5501 _mm_maskz_srlv_epi32 (__mmask8 __U, __m128i __X, __m128i __Y) 5502 { 5503 return (__m128i) __builtin_ia32_psrlv4si_mask ((__v4si) __X, 5504 (__v4si) __Y, 5505 (__v4si) 5506 _mm_setzero_si128 (), 5507 (__mmask8) __U); 5508 } 5509 5510 static __inline__ __m256i __DEFAULT_FN_ATTRS 5511 _mm256_mask_srlv_epi32 (__m256i __W, __mmask8 __U, __m256i __X, 5512 __m256i __Y) 5513 { 5514 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X, 5515 (__v8si) __Y, 5516 (__v8si) __W, 5517 (__mmask8) __U); 5518 } 5519 5520 static __inline__ __m256i __DEFAULT_FN_ATTRS 5521 _mm256_maskz_srlv_epi32 (__mmask8 __U, __m256i __X, __m256i __Y) 5522 { 5523 return (__m256i) __builtin_ia32_psrlv8si_mask ((__v8si) __X, 5524 (__v8si) __Y, 5525 (__v8si) 5526 _mm256_setzero_si256 (), 5527 (__mmask8) __U); 5528 } 5529 5530 5531 5532 static __inline__ __m128i __DEFAULT_FN_ATTRS 5533 _mm_mask_srl_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 5534 __m128i __B) 5535 { 5536 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A, 5537 (__v4si) __B, 5538 (__v4si) __W, 5539 (__mmask8) __U); 5540 } 5541 5542 static __inline__ __m128i __DEFAULT_FN_ATTRS 5543 _mm_maskz_srl_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 5544 { 5545 return (__m128i) __builtin_ia32_psrld128_mask ((__v4si) __A, 5546 (__v4si) __B, 5547 (__v4si) 5548 _mm_setzero_si128 (), 5549 (__mmask8) __U); 5550 } 5551 5552 static __inline__ __m256i __DEFAULT_FN_ATTRS 5553 _mm256_mask_srl_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 5554 __m128i __B) 5555 { 5556 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A, 5557 (__v4si) __B, 5558 (__v8si) __W, 5559 (__mmask8) __U); 5560 } 5561 5562 static __inline__ __m256i __DEFAULT_FN_ATTRS 5563 _mm256_maskz_srl_epi32 (__mmask8 __U, __m256i __A, __m128i __B) 5564 { 5565 return (__m256i) __builtin_ia32_psrld256_mask ((__v8si) __A, 5566 (__v4si) __B, 5567 (__v8si) 5568 _mm256_setzero_si256 (), 5569 (__mmask8) __U); 5570 } 5571 5572 #define _mm_mask_srli_epi32(W, U, A, imm) __extension__ ({ \ 5573 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \ 5574 (__v4si)(__m128i)(W), \ 5575 (__mmask8)(U)); }) 5576 5577 #define _mm_maskz_srli_epi32(U, A, imm) __extension__ ({ \ 5578 (__m128i)__builtin_ia32_psrldi128_mask((__v4si)(__m128i)(A), (int)(imm), \ 5579 (__v4si)_mm_setzero_si128(), \ 5580 (__mmask8)(U)); }) 5581 5582 #define _mm256_mask_srli_epi32(W, U, A, imm) __extension__ ({ \ 5583 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \ 5584 (__v8si)(__m256i)(W), \ 5585 (__mmask8)(U)); }) 5586 5587 #define _mm256_maskz_srli_epi32(U, A, imm) __extension__ ({ \ 5588 (__m256i)__builtin_ia32_psrldi256_mask((__v8si)(__m256i)(A), (int)(imm), \ 5589 (__v8si)_mm256_setzero_si256(), \ 5590 (__mmask8)(U)); }) 5591 5592 static __inline__ __m128i __DEFAULT_FN_ATTRS 5593 _mm_mask_srl_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 5594 __m128i __B) 5595 { 5596 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A, 5597 (__v2di) __B, 5598 (__v2di) __W, 5599 (__mmask8) __U); 5600 } 5601 5602 static __inline__ __m128i __DEFAULT_FN_ATTRS 5603 _mm_maskz_srl_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 5604 { 5605 return (__m128i) __builtin_ia32_psrlq128_mask ((__v2di) __A, 5606 (__v2di) __B, 5607 (__v2di) 5608 _mm_setzero_di (), 5609 (__mmask8) __U); 5610 } 5611 5612 static __inline__ __m256i __DEFAULT_FN_ATTRS 5613 _mm256_mask_srl_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 5614 __m128i __B) 5615 { 5616 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A, 5617 (__v2di) __B, 5618 (__v4di) __W, 5619 (__mmask8) __U); 5620 } 5621 5622 static __inline__ __m256i __DEFAULT_FN_ATTRS 5623 _mm256_maskz_srl_epi64 (__mmask8 __U, __m256i __A, __m128i __B) 5624 { 5625 return (__m256i) __builtin_ia32_psrlq256_mask ((__v4di) __A, 5626 (__v2di) __B, 5627 (__v4di) 5628 _mm256_setzero_si256 (), 5629 (__mmask8) __U); 5630 } 5631 5632 #define _mm_mask_srli_epi64(W, U, A, imm) __extension__ ({ \ 5633 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \ 5634 (__v2di)(__m128i)(W), \ 5635 (__mmask8)(U)); }) 5636 5637 #define _mm_maskz_srli_epi64(U, A, imm) __extension__ ({ \ 5638 (__m128i)__builtin_ia32_psrlqi128_mask((__v2di)(__m128i)(A), (int)(imm), \ 5639 (__v2di)_mm_setzero_si128(), \ 5640 (__mmask8)(U)); }) 5641 5642 #define _mm256_mask_srli_epi64(W, U, A, imm) __extension__ ({ \ 5643 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \ 5644 (__v4di)(__m256i)(W), \ 5645 (__mmask8)(U)); }) 5646 5647 #define _mm256_maskz_srli_epi64(U, A, imm) __extension__ ({ \ 5648 (__m256i)__builtin_ia32_psrlqi256_mask((__v4di)(__m256i)(A), (int)(imm), \ 5649 (__v4di)_mm256_setzero_si256(), \ 5650 (__mmask8)(U)); }) 5651 5652 static __inline__ __m128i __DEFAULT_FN_ATTRS 5653 _mm_mask_srav_epi32 (__m128i __W, __mmask8 __U, __m128i __X, 5654 __m128i __Y) 5655 { 5656 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X, 5657 (__v4si) __Y, 5658 (__v4si) __W, 5659 (__mmask8) __U); 5660 } 5661 5662 static __inline__ __m128i __DEFAULT_FN_ATTRS 5663 _mm_maskz_srav_epi32 (__mmask8 __U, __m128i __X, __m128i __Y) 5664 { 5665 return (__m128i) __builtin_ia32_psrav4si_mask ((__v4si) __X, 5666 (__v4si) __Y, 5667 (__v4si) 5668 _mm_setzero_si128 (), 5669 (__mmask8) __U); 5670 } 5671 5672 static __inline__ __m256i __DEFAULT_FN_ATTRS 5673 _mm256_mask_srav_epi32 (__m256i __W, __mmask8 __U, __m256i __X, 5674 __m256i __Y) 5675 { 5676 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X, 5677 (__v8si) __Y, 5678 (__v8si) __W, 5679 (__mmask8) __U); 5680 } 5681 5682 static __inline__ __m256i __DEFAULT_FN_ATTRS 5683 _mm256_maskz_srav_epi32 (__mmask8 __U, __m256i __X, __m256i __Y) 5684 { 5685 return (__m256i) __builtin_ia32_psrav8si_mask ((__v8si) __X, 5686 (__v8si) __Y, 5687 (__v8si) 5688 _mm256_setzero_si256 (), 5689 (__mmask8) __U); 5690 } 5691 5692 static __inline__ __m128i __DEFAULT_FN_ATTRS 5693 _mm_srav_epi64 (__m128i __X, __m128i __Y) 5694 { 5695 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X, 5696 (__v2di) __Y, 5697 (__v2di) 5698 _mm_setzero_di (), 5699 (__mmask8) -1); 5700 } 5701 5702 static __inline__ __m128i __DEFAULT_FN_ATTRS 5703 _mm_mask_srav_epi64 (__m128i __W, __mmask8 __U, __m128i __X, 5704 __m128i __Y) 5705 { 5706 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X, 5707 (__v2di) __Y, 5708 (__v2di) __W, 5709 (__mmask8) __U); 5710 } 5711 5712 static __inline__ __m128i __DEFAULT_FN_ATTRS 5713 _mm_maskz_srav_epi64 (__mmask8 __U, __m128i __X, __m128i __Y) 5714 { 5715 return (__m128i) __builtin_ia32_psravq128_mask ((__v2di) __X, 5716 (__v2di) __Y, 5717 (__v2di) 5718 _mm_setzero_di (), 5719 (__mmask8) __U); 5720 } 5721 5722 static __inline__ __m256i __DEFAULT_FN_ATTRS 5723 _mm256_srav_epi64 (__m256i __X, __m256i __Y) 5724 { 5725 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X, 5726 (__v4di) __Y, 5727 (__v4di) 5728 _mm256_setzero_si256 (), 5729 (__mmask8) -1); 5730 } 5731 5732 static __inline__ __m256i __DEFAULT_FN_ATTRS 5733 _mm256_mask_srav_epi64 (__m256i __W, __mmask8 __U, __m256i __X, 5734 __m256i __Y) 5735 { 5736 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X, 5737 (__v4di) __Y, 5738 (__v4di) __W, 5739 (__mmask8) __U); 5740 } 5741 5742 static __inline__ __m256i __DEFAULT_FN_ATTRS 5743 _mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) 5744 { 5745 return (__m256i) __builtin_ia32_psravq256_mask ((__v4di) __X, 5746 (__v4di) __Y, 5747 (__v4di) 5748 _mm256_setzero_si256 (), 5749 (__mmask8) __U); 5750 } 5751 5752 static __inline__ __m128i __DEFAULT_FN_ATTRS 5753 _mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A) 5754 { 5755 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, 5756 (__v4si) __A, 5757 (__v4si) __W); 5758 } 5759 5760 static __inline__ __m128i __DEFAULT_FN_ATTRS 5761 _mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A) 5762 { 5763 return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, 5764 (__v4si) __A, 5765 (__v4si) _mm_setzero_si128 ()); 5766 } 5767 5768 5769 static __inline__ __m256i __DEFAULT_FN_ATTRS 5770 _mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A) 5771 { 5772 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, 5773 (__v8si) __A, 5774 (__v8si) __W); 5775 } 5776 5777 static __inline__ __m256i __DEFAULT_FN_ATTRS 5778 _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A) 5779 { 5780 return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, 5781 (__v8si) __A, 5782 (__v8si) _mm256_setzero_si256 ()); 5783 } 5784 5785 static __inline__ __m128i __DEFAULT_FN_ATTRS 5786 _mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P) 5787 { 5788 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, 5789 (__v4si) __W, 5790 (__mmask8) 5791 __U); 5792 } 5793 5794 static __inline__ __m128i __DEFAULT_FN_ATTRS 5795 _mm_maskz_load_epi32 (__mmask8 __U, void const *__P) 5796 { 5797 return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, 5798 (__v4si) 5799 _mm_setzero_si128 (), 5800 (__mmask8) 5801 __U); 5802 } 5803 5804 static __inline__ __m256i __DEFAULT_FN_ATTRS 5805 _mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P) 5806 { 5807 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, 5808 (__v8si) __W, 5809 (__mmask8) 5810 __U); 5811 } 5812 5813 static __inline__ __m256i __DEFAULT_FN_ATTRS 5814 _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P) 5815 { 5816 return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, 5817 (__v8si) 5818 _mm256_setzero_si256 (), 5819 (__mmask8) 5820 __U); 5821 } 5822 5823 static __inline__ void __DEFAULT_FN_ATTRS 5824 _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A) 5825 { 5826 __builtin_ia32_movdqa32store128_mask ((__v4si *) __P, 5827 (__v4si) __A, 5828 (__mmask8) __U); 5829 } 5830 5831 static __inline__ void __DEFAULT_FN_ATTRS 5832 _mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A) 5833 { 5834 __builtin_ia32_movdqa32store256_mask ((__v8si *) __P, 5835 (__v8si) __A, 5836 (__mmask8) __U); 5837 } 5838 5839 static __inline__ __m128i __DEFAULT_FN_ATTRS 5840 _mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A) 5841 { 5842 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, 5843 (__v2di) __A, 5844 (__v2di) __W); 5845 } 5846 5847 static __inline__ __m128i __DEFAULT_FN_ATTRS 5848 _mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A) 5849 { 5850 return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, 5851 (__v2di) __A, 5852 (__v2di) _mm_setzero_di ()); 5853 } 5854 5855 static __inline__ __m256i __DEFAULT_FN_ATTRS 5856 _mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A) 5857 { 5858 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, 5859 (__v4di) __A, 5860 (__v4di) __W); 5861 } 5862 5863 static __inline__ __m256i __DEFAULT_FN_ATTRS 5864 _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A) 5865 { 5866 return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, 5867 (__v4di) __A, 5868 (__v4di) _mm256_setzero_si256 ()); 5869 } 5870 5871 static __inline__ __m128i __DEFAULT_FN_ATTRS 5872 _mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P) 5873 { 5874 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, 5875 (__v2di) __W, 5876 (__mmask8) 5877 __U); 5878 } 5879 5880 static __inline__ __m128i __DEFAULT_FN_ATTRS 5881 _mm_maskz_load_epi64 (__mmask8 __U, void const *__P) 5882 { 5883 return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, 5884 (__v2di) 5885 _mm_setzero_di (), 5886 (__mmask8) 5887 __U); 5888 } 5889 5890 static __inline__ __m256i __DEFAULT_FN_ATTRS 5891 _mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P) 5892 { 5893 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, 5894 (__v4di) __W, 5895 (__mmask8) 5896 __U); 5897 } 5898 5899 static __inline__ __m256i __DEFAULT_FN_ATTRS 5900 _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P) 5901 { 5902 return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, 5903 (__v4di) 5904 _mm256_setzero_si256 (), 5905 (__mmask8) 5906 __U); 5907 } 5908 5909 static __inline__ void __DEFAULT_FN_ATTRS 5910 _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A) 5911 { 5912 __builtin_ia32_movdqa64store128_mask ((__v2di *) __P, 5913 (__v2di) __A, 5914 (__mmask8) __U); 5915 } 5916 5917 static __inline__ void __DEFAULT_FN_ATTRS 5918 _mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A) 5919 { 5920 __builtin_ia32_movdqa64store256_mask ((__v4di *) __P, 5921 (__v4di) __A, 5922 (__mmask8) __U); 5923 } 5924 5925 static __inline__ __m128d __DEFAULT_FN_ATTRS 5926 _mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A) 5927 { 5928 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, 5929 (__v2df)_mm_movedup_pd(__A), 5930 (__v2df)__W); 5931 } 5932 5933 static __inline__ __m128d __DEFAULT_FN_ATTRS 5934 _mm_maskz_movedup_pd (__mmask8 __U, __m128d __A) 5935 { 5936 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, 5937 (__v2df)_mm_movedup_pd(__A), 5938 (__v2df)_mm_setzero_pd()); 5939 } 5940 5941 static __inline__ __m256d __DEFAULT_FN_ATTRS 5942 _mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A) 5943 { 5944 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, 5945 (__v4df)_mm256_movedup_pd(__A), 5946 (__v4df)__W); 5947 } 5948 5949 static __inline__ __m256d __DEFAULT_FN_ATTRS 5950 _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A) 5951 { 5952 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, 5953 (__v4df)_mm256_movedup_pd(__A), 5954 (__v4df)_mm256_setzero_pd()); 5955 } 5956 5957 5958 #define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \ 5959 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \ 5960 (__v4si)(__m128i)(O), \ 5961 (__mmask8)(M)); }) 5962 5963 #define _mm_maskz_set1_epi32(M, A) __extension__ ({ \ 5964 (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \ 5965 (__v4si)_mm_setzero_si128(), \ 5966 (__mmask8)(M)); }) 5967 5968 #define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \ 5969 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \ 5970 (__v8si)(__m256i)(O), \ 5971 (__mmask8)(M)); }) 5972 5973 #define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \ 5974 (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \ 5975 (__v8si)_mm256_setzero_si256(), \ 5976 (__mmask8)(M)); }) 5977 5978 static __inline__ __m128i __DEFAULT_FN_ATTRS 5979 _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) 5980 { 5981 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O, 5982 __M); 5983 } 5984 5985 static __inline__ __m128i __DEFAULT_FN_ATTRS 5986 _mm_maskz_set1_epi64 (__mmask8 __M, long long __A) 5987 { 5988 return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, 5989 (__v2di) 5990 _mm_setzero_si128 (), 5991 __M); 5992 } 5993 5994 static __inline__ __m256i __DEFAULT_FN_ATTRS 5995 _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A) 5996 { 5997 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O, 5998 __M); 5999 } 6000 6001 static __inline__ __m256i __DEFAULT_FN_ATTRS 6002 _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A) 6003 { 6004 return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, 6005 (__v4di) 6006 _mm256_setzero_si256 (), 6007 __M); 6008 } 6009 6010 #define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \ 6011 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \ 6012 (__v2df)(__m128d)(B), \ 6013 (__v2di)(__m128i)(C), (int)(imm), \ 6014 (__mmask8)-1); }) 6015 6016 #define _mm_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \ 6017 (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \ 6018 (__v2df)(__m128d)(B), \ 6019 (__v2di)(__m128i)(C), (int)(imm), \ 6020 (__mmask8)(U)); }) 6021 6022 #define _mm_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \ 6023 (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \ 6024 (__v2df)(__m128d)(B), \ 6025 (__v2di)(__m128i)(C), \ 6026 (int)(imm), (__mmask8)(U)); }) 6027 6028 #define _mm256_fixupimm_pd(A, B, C, imm) __extension__ ({ \ 6029 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \ 6030 (__v4df)(__m256d)(B), \ 6031 (__v4di)(__m256i)(C), (int)(imm), \ 6032 (__mmask8)-1); }) 6033 6034 #define _mm256_mask_fixupimm_pd(A, U, B, C, imm) __extension__ ({ \ 6035 (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \ 6036 (__v4df)(__m256d)(B), \ 6037 (__v4di)(__m256i)(C), (int)(imm), \ 6038 (__mmask8)(U)); }) 6039 6040 #define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) __extension__ ({ \ 6041 (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \ 6042 (__v4df)(__m256d)(B), \ 6043 (__v4di)(__m256i)(C), \ 6044 (int)(imm), (__mmask8)(U)); }) 6045 6046 #define _mm_fixupimm_ps(A, B, C, imm) __extension__ ({ \ 6047 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \ 6048 (__v4sf)(__m128)(B), \ 6049 (__v4si)(__m128i)(C), (int)(imm), \ 6050 (__mmask8)-1); }) 6051 6052 #define _mm_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \ 6053 (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \ 6054 (__v4sf)(__m128)(B), \ 6055 (__v4si)(__m128i)(C), (int)(imm), \ 6056 (__mmask8)(U)); }) 6057 6058 #define _mm_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \ 6059 (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \ 6060 (__v4sf)(__m128)(B), \ 6061 (__v4si)(__m128i)(C), (int)(imm), \ 6062 (__mmask8)(U)); }) 6063 6064 #define _mm256_fixupimm_ps(A, B, C, imm) __extension__ ({ \ 6065 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \ 6066 (__v8sf)(__m256)(B), \ 6067 (__v8si)(__m256i)(C), (int)(imm), \ 6068 (__mmask8)-1); }) 6069 6070 #define _mm256_mask_fixupimm_ps(A, U, B, C, imm) __extension__ ({ \ 6071 (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \ 6072 (__v8sf)(__m256)(B), \ 6073 (__v8si)(__m256i)(C), (int)(imm), \ 6074 (__mmask8)(U)); }) 6075 6076 #define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) __extension__ ({ \ 6077 (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \ 6078 (__v8sf)(__m256)(B), \ 6079 (__v8si)(__m256i)(C), (int)(imm), \ 6080 (__mmask8)(U)); }) 6081 6082 static __inline__ __m128d __DEFAULT_FN_ATTRS 6083 _mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P) 6084 { 6085 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, 6086 (__v2df) __W, 6087 (__mmask8) __U); 6088 } 6089 6090 static __inline__ __m128d __DEFAULT_FN_ATTRS 6091 _mm_maskz_load_pd (__mmask8 __U, void const *__P) 6092 { 6093 return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, 6094 (__v2df) 6095 _mm_setzero_pd (), 6096 (__mmask8) __U); 6097 } 6098 6099 static __inline__ __m256d __DEFAULT_FN_ATTRS 6100 _mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P) 6101 { 6102 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, 6103 (__v4df) __W, 6104 (__mmask8) __U); 6105 } 6106 6107 static __inline__ __m256d __DEFAULT_FN_ATTRS 6108 _mm256_maskz_load_pd (__mmask8 __U, void const *__P) 6109 { 6110 return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, 6111 (__v4df) 6112 _mm256_setzero_pd (), 6113 (__mmask8) __U); 6114 } 6115 6116 static __inline__ __m128 __DEFAULT_FN_ATTRS 6117 _mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P) 6118 { 6119 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, 6120 (__v4sf) __W, 6121 (__mmask8) __U); 6122 } 6123 6124 static __inline__ __m128 __DEFAULT_FN_ATTRS 6125 _mm_maskz_load_ps (__mmask8 __U, void const *__P) 6126 { 6127 return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, 6128 (__v4sf) 6129 _mm_setzero_ps (), 6130 (__mmask8) __U); 6131 } 6132 6133 static __inline__ __m256 __DEFAULT_FN_ATTRS 6134 _mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P) 6135 { 6136 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, 6137 (__v8sf) __W, 6138 (__mmask8) __U); 6139 } 6140 6141 static __inline__ __m256 __DEFAULT_FN_ATTRS 6142 _mm256_maskz_load_ps (__mmask8 __U, void const *__P) 6143 { 6144 return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, 6145 (__v8sf) 6146 _mm256_setzero_ps (), 6147 (__mmask8) __U); 6148 } 6149 6150 static __inline__ __m128i __DEFAULT_FN_ATTRS 6151 _mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) 6152 { 6153 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, 6154 (__v2di) __W, 6155 (__mmask8) __U); 6156 } 6157 6158 static __inline__ __m128i __DEFAULT_FN_ATTRS 6159 _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P) 6160 { 6161 return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, 6162 (__v2di) 6163 _mm_setzero_si128 (), 6164 (__mmask8) __U); 6165 } 6166 6167 static __inline__ __m256i __DEFAULT_FN_ATTRS 6168 _mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) 6169 { 6170 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, 6171 (__v4di) __W, 6172 (__mmask8) __U); 6173 } 6174 6175 static __inline__ __m256i __DEFAULT_FN_ATTRS 6176 _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P) 6177 { 6178 return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, 6179 (__v4di) 6180 _mm256_setzero_si256 (), 6181 (__mmask8) __U); 6182 } 6183 6184 static __inline__ __m128i __DEFAULT_FN_ATTRS 6185 _mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) 6186 { 6187 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, 6188 (__v4si) __W, 6189 (__mmask8) __U); 6190 } 6191 6192 static __inline__ __m128i __DEFAULT_FN_ATTRS 6193 _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P) 6194 { 6195 return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, 6196 (__v4si) 6197 _mm_setzero_si128 (), 6198 (__mmask8) __U); 6199 } 6200 6201 static __inline__ __m256i __DEFAULT_FN_ATTRS 6202 _mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) 6203 { 6204 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, 6205 (__v8si) __W, 6206 (__mmask8) __U); 6207 } 6208 6209 static __inline__ __m256i __DEFAULT_FN_ATTRS 6210 _mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P) 6211 { 6212 return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, 6213 (__v8si) 6214 _mm256_setzero_si256 (), 6215 (__mmask8) __U); 6216 } 6217 6218 static __inline__ __m128d __DEFAULT_FN_ATTRS 6219 _mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P) 6220 { 6221 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, 6222 (__v2df) __W, 6223 (__mmask8) __U); 6224 } 6225 6226 static __inline__ __m128d __DEFAULT_FN_ATTRS 6227 _mm_maskz_loadu_pd (__mmask8 __U, void const *__P) 6228 { 6229 return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, 6230 (__v2df) 6231 _mm_setzero_pd (), 6232 (__mmask8) __U); 6233 } 6234 6235 static __inline__ __m256d __DEFAULT_FN_ATTRS 6236 _mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P) 6237 { 6238 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, 6239 (__v4df) __W, 6240 (__mmask8) __U); 6241 } 6242 6243 static __inline__ __m256d __DEFAULT_FN_ATTRS 6244 _mm256_maskz_loadu_pd (__mmask8 __U, void const *__P) 6245 { 6246 return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, 6247 (__v4df) 6248 _mm256_setzero_pd (), 6249 (__mmask8) __U); 6250 } 6251 6252 static __inline__ __m128 __DEFAULT_FN_ATTRS 6253 _mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P) 6254 { 6255 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, 6256 (__v4sf) __W, 6257 (__mmask8) __U); 6258 } 6259 6260 static __inline__ __m128 __DEFAULT_FN_ATTRS 6261 _mm_maskz_loadu_ps (__mmask8 __U, void const *__P) 6262 { 6263 return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, 6264 (__v4sf) 6265 _mm_setzero_ps (), 6266 (__mmask8) __U); 6267 } 6268 6269 static __inline__ __m256 __DEFAULT_FN_ATTRS 6270 _mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P) 6271 { 6272 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, 6273 (__v8sf) __W, 6274 (__mmask8) __U); 6275 } 6276 6277 static __inline__ __m256 __DEFAULT_FN_ATTRS 6278 _mm256_maskz_loadu_ps (__mmask8 __U, void const *__P) 6279 { 6280 return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, 6281 (__v8sf) 6282 _mm256_setzero_ps (), 6283 (__mmask8) __U); 6284 } 6285 6286 static __inline__ void __DEFAULT_FN_ATTRS 6287 _mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A) 6288 { 6289 __builtin_ia32_storeapd128_mask ((__v2df *) __P, 6290 (__v2df) __A, 6291 (__mmask8) __U); 6292 } 6293 6294 static __inline__ void __DEFAULT_FN_ATTRS 6295 _mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A) 6296 { 6297 __builtin_ia32_storeapd256_mask ((__v4df *) __P, 6298 (__v4df) __A, 6299 (__mmask8) __U); 6300 } 6301 6302 static __inline__ void __DEFAULT_FN_ATTRS 6303 _mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A) 6304 { 6305 __builtin_ia32_storeaps128_mask ((__v4sf *) __P, 6306 (__v4sf) __A, 6307 (__mmask8) __U); 6308 } 6309 6310 static __inline__ void __DEFAULT_FN_ATTRS 6311 _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A) 6312 { 6313 __builtin_ia32_storeaps256_mask ((__v8sf *) __P, 6314 (__v8sf) __A, 6315 (__mmask8) __U); 6316 } 6317 6318 static __inline__ void __DEFAULT_FN_ATTRS 6319 _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A) 6320 { 6321 __builtin_ia32_storedqudi128_mask ((__v2di *) __P, 6322 (__v2di) __A, 6323 (__mmask8) __U); 6324 } 6325 6326 static __inline__ void __DEFAULT_FN_ATTRS 6327 _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A) 6328 { 6329 __builtin_ia32_storedqudi256_mask ((__v4di *) __P, 6330 (__v4di) __A, 6331 (__mmask8) __U); 6332 } 6333 6334 static __inline__ void __DEFAULT_FN_ATTRS 6335 _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A) 6336 { 6337 __builtin_ia32_storedqusi128_mask ((__v4si *) __P, 6338 (__v4si) __A, 6339 (__mmask8) __U); 6340 } 6341 6342 static __inline__ void __DEFAULT_FN_ATTRS 6343 _mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A) 6344 { 6345 __builtin_ia32_storedqusi256_mask ((__v8si *) __P, 6346 (__v8si) __A, 6347 (__mmask8) __U); 6348 } 6349 6350 static __inline__ void __DEFAULT_FN_ATTRS 6351 _mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A) 6352 { 6353 __builtin_ia32_storeupd128_mask ((__v2df *) __P, 6354 (__v2df) __A, 6355 (__mmask8) __U); 6356 } 6357 6358 static __inline__ void __DEFAULT_FN_ATTRS 6359 _mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A) 6360 { 6361 __builtin_ia32_storeupd256_mask ((__v4df *) __P, 6362 (__v4df) __A, 6363 (__mmask8) __U); 6364 } 6365 6366 static __inline__ void __DEFAULT_FN_ATTRS 6367 _mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A) 6368 { 6369 __builtin_ia32_storeups128_mask ((__v4sf *) __P, 6370 (__v4sf) __A, 6371 (__mmask8) __U); 6372 } 6373 6374 static __inline__ void __DEFAULT_FN_ATTRS 6375 _mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A) 6376 { 6377 __builtin_ia32_storeups256_mask ((__v8sf *) __P, 6378 (__v8sf) __A, 6379 (__mmask8) __U); 6380 } 6381 6382 6383 static __inline__ __m128d __DEFAULT_FN_ATTRS 6384 _mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 6385 { 6386 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, 6387 (__v2df)_mm_unpackhi_pd(__A, __B), 6388 (__v2df)__W); 6389 } 6390 6391 static __inline__ __m128d __DEFAULT_FN_ATTRS 6392 _mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) 6393 { 6394 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, 6395 (__v2df)_mm_unpackhi_pd(__A, __B), 6396 (__v2df)_mm_setzero_pd()); 6397 } 6398 6399 static __inline__ __m256d __DEFAULT_FN_ATTRS 6400 _mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) 6401 { 6402 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, 6403 (__v4df)_mm256_unpackhi_pd(__A, __B), 6404 (__v4df)__W); 6405 } 6406 6407 static __inline__ __m256d __DEFAULT_FN_ATTRS 6408 _mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) 6409 { 6410 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, 6411 (__v4df)_mm256_unpackhi_pd(__A, __B), 6412 (__v4df)_mm256_setzero_pd()); 6413 } 6414 6415 static __inline__ __m128 __DEFAULT_FN_ATTRS 6416 _mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 6417 { 6418 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 6419 (__v4sf)_mm_unpackhi_ps(__A, __B), 6420 (__v4sf)__W); 6421 } 6422 6423 static __inline__ __m128 __DEFAULT_FN_ATTRS 6424 _mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) 6425 { 6426 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 6427 (__v4sf)_mm_unpackhi_ps(__A, __B), 6428 (__v4sf)_mm_setzero_ps()); 6429 } 6430 6431 static __inline__ __m256 __DEFAULT_FN_ATTRS 6432 _mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) 6433 { 6434 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 6435 (__v8sf)_mm256_unpackhi_ps(__A, __B), 6436 (__v8sf)__W); 6437 } 6438 6439 static __inline__ __m256 __DEFAULT_FN_ATTRS 6440 _mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) 6441 { 6442 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 6443 (__v8sf)_mm256_unpackhi_ps(__A, __B), 6444 (__v8sf)_mm256_setzero_ps()); 6445 } 6446 6447 static __inline__ __m128d __DEFAULT_FN_ATTRS 6448 _mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 6449 { 6450 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, 6451 (__v2df)_mm_unpacklo_pd(__A, __B), 6452 (__v2df)__W); 6453 } 6454 6455 static __inline__ __m128d __DEFAULT_FN_ATTRS 6456 _mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) 6457 { 6458 return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, 6459 (__v2df)_mm_unpacklo_pd(__A, __B), 6460 (__v2df)_mm_setzero_pd()); 6461 } 6462 6463 static __inline__ __m256d __DEFAULT_FN_ATTRS 6464 _mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) 6465 { 6466 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, 6467 (__v4df)_mm256_unpacklo_pd(__A, __B), 6468 (__v4df)__W); 6469 } 6470 6471 static __inline__ __m256d __DEFAULT_FN_ATTRS 6472 _mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) 6473 { 6474 return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, 6475 (__v4df)_mm256_unpacklo_pd(__A, __B), 6476 (__v4df)_mm256_setzero_pd()); 6477 } 6478 6479 static __inline__ __m128 __DEFAULT_FN_ATTRS 6480 _mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 6481 { 6482 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 6483 (__v4sf)_mm_unpacklo_ps(__A, __B), 6484 (__v4sf)__W); 6485 } 6486 6487 static __inline__ __m128 __DEFAULT_FN_ATTRS 6488 _mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) 6489 { 6490 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 6491 (__v4sf)_mm_unpacklo_ps(__A, __B), 6492 (__v4sf)_mm_setzero_ps()); 6493 } 6494 6495 static __inline__ __m256 __DEFAULT_FN_ATTRS 6496 _mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) 6497 { 6498 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 6499 (__v8sf)_mm256_unpacklo_ps(__A, __B), 6500 (__v8sf)__W); 6501 } 6502 6503 static __inline__ __m256 __DEFAULT_FN_ATTRS 6504 _mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) 6505 { 6506 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 6507 (__v8sf)_mm256_unpacklo_ps(__A, __B), 6508 (__v8sf)_mm256_setzero_ps()); 6509 } 6510 6511 static __inline__ __m128d __DEFAULT_FN_ATTRS 6512 _mm_rcp14_pd (__m128d __A) 6513 { 6514 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, 6515 (__v2df) 6516 _mm_setzero_pd (), 6517 (__mmask8) -1); 6518 } 6519 6520 static __inline__ __m128d __DEFAULT_FN_ATTRS 6521 _mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A) 6522 { 6523 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, 6524 (__v2df) __W, 6525 (__mmask8) __U); 6526 } 6527 6528 static __inline__ __m128d __DEFAULT_FN_ATTRS 6529 _mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A) 6530 { 6531 return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, 6532 (__v2df) 6533 _mm_setzero_pd (), 6534 (__mmask8) __U); 6535 } 6536 6537 static __inline__ __m256d __DEFAULT_FN_ATTRS 6538 _mm256_rcp14_pd (__m256d __A) 6539 { 6540 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, 6541 (__v4df) 6542 _mm256_setzero_pd (), 6543 (__mmask8) -1); 6544 } 6545 6546 static __inline__ __m256d __DEFAULT_FN_ATTRS 6547 _mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A) 6548 { 6549 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, 6550 (__v4df) __W, 6551 (__mmask8) __U); 6552 } 6553 6554 static __inline__ __m256d __DEFAULT_FN_ATTRS 6555 _mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A) 6556 { 6557 return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, 6558 (__v4df) 6559 _mm256_setzero_pd (), 6560 (__mmask8) __U); 6561 } 6562 6563 static __inline__ __m128 __DEFAULT_FN_ATTRS 6564 _mm_rcp14_ps (__m128 __A) 6565 { 6566 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, 6567 (__v4sf) 6568 _mm_setzero_ps (), 6569 (__mmask8) -1); 6570 } 6571 6572 static __inline__ __m128 __DEFAULT_FN_ATTRS 6573 _mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A) 6574 { 6575 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, 6576 (__v4sf) __W, 6577 (__mmask8) __U); 6578 } 6579 6580 static __inline__ __m128 __DEFAULT_FN_ATTRS 6581 _mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A) 6582 { 6583 return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, 6584 (__v4sf) 6585 _mm_setzero_ps (), 6586 (__mmask8) __U); 6587 } 6588 6589 static __inline__ __m256 __DEFAULT_FN_ATTRS 6590 _mm256_rcp14_ps (__m256 __A) 6591 { 6592 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, 6593 (__v8sf) 6594 _mm256_setzero_ps (), 6595 (__mmask8) -1); 6596 } 6597 6598 static __inline__ __m256 __DEFAULT_FN_ATTRS 6599 _mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A) 6600 { 6601 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, 6602 (__v8sf) __W, 6603 (__mmask8) __U); 6604 } 6605 6606 static __inline__ __m256 __DEFAULT_FN_ATTRS 6607 _mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A) 6608 { 6609 return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, 6610 (__v8sf) 6611 _mm256_setzero_ps (), 6612 (__mmask8) __U); 6613 } 6614 6615 #define _mm_mask_permute_pd(W, U, X, C) __extension__ ({ \ 6616 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ 6617 (__v2df)_mm_permute_pd((X), (C)), \ 6618 (__v2df)(__m128d)(W)); }) 6619 6620 #define _mm_maskz_permute_pd(U, X, C) __extension__ ({ \ 6621 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ 6622 (__v2df)_mm_permute_pd((X), (C)), \ 6623 (__v2df)_mm_setzero_pd()); }) 6624 6625 #define _mm256_mask_permute_pd(W, U, X, C) __extension__ ({ \ 6626 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ 6627 (__v4df)_mm256_permute_pd((X), (C)), \ 6628 (__v4df)(__m256d)(W)); }) 6629 6630 #define _mm256_maskz_permute_pd(U, X, C) __extension__ ({ \ 6631 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ 6632 (__v4df)_mm256_permute_pd((X), (C)), \ 6633 (__v4df)_mm256_setzero_pd()); }) 6634 6635 #define _mm_mask_permute_ps(W, U, X, C) __extension__ ({ \ 6636 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ 6637 (__v4sf)_mm_permute_ps((X), (C)), \ 6638 (__v4sf)(__m128)(W)); }) 6639 6640 #define _mm_maskz_permute_ps(U, X, C) __extension__ ({ \ 6641 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ 6642 (__v4sf)_mm_permute_ps((X), (C)), \ 6643 (__v4sf)_mm_setzero_ps()); }) 6644 6645 #define _mm256_mask_permute_ps(W, U, X, C) __extension__ ({ \ 6646 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ 6647 (__v8sf)_mm256_permute_ps((X), (C)), \ 6648 (__v8sf)(__m256)(W)); }) 6649 6650 #define _mm256_maskz_permute_ps(U, X, C) __extension__ ({ \ 6651 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ 6652 (__v8sf)_mm256_permute_ps((X), (C)), \ 6653 (__v8sf)_mm256_setzero_ps()); }) 6654 6655 static __inline__ __m128d __DEFAULT_FN_ATTRS 6656 _mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A, 6657 __m128i __C) 6658 { 6659 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A, 6660 (__v2di) __C, 6661 (__v2df) __W, 6662 (__mmask8) __U); 6663 } 6664 6665 static __inline__ __m128d __DEFAULT_FN_ATTRS 6666 _mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C) 6667 { 6668 return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A, 6669 (__v2di) __C, 6670 (__v2df) 6671 _mm_setzero_pd (), 6672 (__mmask8) __U); 6673 } 6674 6675 static __inline__ __m256d __DEFAULT_FN_ATTRS 6676 _mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A, 6677 __m256i __C) 6678 { 6679 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A, 6680 (__v4di) __C, 6681 (__v4df) __W, 6682 (__mmask8) 6683 __U); 6684 } 6685 6686 static __inline__ __m256d __DEFAULT_FN_ATTRS 6687 _mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C) 6688 { 6689 return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A, 6690 (__v4di) __C, 6691 (__v4df) 6692 _mm256_setzero_pd (), 6693 (__mmask8) 6694 __U); 6695 } 6696 6697 static __inline__ __m128 __DEFAULT_FN_ATTRS 6698 _mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A, 6699 __m128i __C) 6700 { 6701 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A, 6702 (__v4si) __C, 6703 (__v4sf) __W, 6704 (__mmask8) __U); 6705 } 6706 6707 static __inline__ __m128 __DEFAULT_FN_ATTRS 6708 _mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C) 6709 { 6710 return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A, 6711 (__v4si) __C, 6712 (__v4sf) 6713 _mm_setzero_ps (), 6714 (__mmask8) __U); 6715 } 6716 6717 static __inline__ __m256 __DEFAULT_FN_ATTRS 6718 _mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A, 6719 __m256i __C) 6720 { 6721 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A, 6722 (__v8si) __C, 6723 (__v8sf) __W, 6724 (__mmask8) __U); 6725 } 6726 6727 static __inline__ __m256 __DEFAULT_FN_ATTRS 6728 _mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C) 6729 { 6730 return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A, 6731 (__v8si) __C, 6732 (__v8sf) 6733 _mm256_setzero_ps (), 6734 (__mmask8) __U); 6735 } 6736 6737 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6738 _mm_test_epi32_mask (__m128i __A, __m128i __B) 6739 { 6740 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A, 6741 (__v4si) __B, 6742 (__mmask8) -1); 6743 } 6744 6745 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6746 _mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) 6747 { 6748 return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A, 6749 (__v4si) __B, __U); 6750 } 6751 6752 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6753 _mm256_test_epi32_mask (__m256i __A, __m256i __B) 6754 { 6755 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A, 6756 (__v8si) __B, 6757 (__mmask8) -1); 6758 } 6759 6760 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6761 _mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) 6762 { 6763 return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A, 6764 (__v8si) __B, __U); 6765 } 6766 6767 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6768 _mm_test_epi64_mask (__m128i __A, __m128i __B) 6769 { 6770 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A, 6771 (__v2di) __B, 6772 (__mmask8) -1); 6773 } 6774 6775 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6776 _mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) 6777 { 6778 return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A, 6779 (__v2di) __B, __U); 6780 } 6781 6782 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6783 _mm256_test_epi64_mask (__m256i __A, __m256i __B) 6784 { 6785 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A, 6786 (__v4di) __B, 6787 (__mmask8) -1); 6788 } 6789 6790 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6791 _mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) 6792 { 6793 return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A, 6794 (__v4di) __B, __U); 6795 } 6796 6797 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6798 _mm_testn_epi32_mask (__m128i __A, __m128i __B) 6799 { 6800 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A, 6801 (__v4si) __B, 6802 (__mmask8) -1); 6803 } 6804 6805 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6806 _mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) 6807 { 6808 return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A, 6809 (__v4si) __B, __U); 6810 } 6811 6812 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6813 _mm256_testn_epi32_mask (__m256i __A, __m256i __B) 6814 { 6815 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A, 6816 (__v8si) __B, 6817 (__mmask8) -1); 6818 } 6819 6820 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6821 _mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) 6822 { 6823 return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A, 6824 (__v8si) __B, __U); 6825 } 6826 6827 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6828 _mm_testn_epi64_mask (__m128i __A, __m128i __B) 6829 { 6830 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A, 6831 (__v2di) __B, 6832 (__mmask8) -1); 6833 } 6834 6835 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6836 _mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) 6837 { 6838 return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A, 6839 (__v2di) __B, __U); 6840 } 6841 6842 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6843 _mm256_testn_epi64_mask (__m256i __A, __m256i __B) 6844 { 6845 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A, 6846 (__v4di) __B, 6847 (__mmask8) -1); 6848 } 6849 6850 static __inline__ __mmask8 __DEFAULT_FN_ATTRS 6851 _mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) 6852 { 6853 return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A, 6854 (__v4di) __B, __U); 6855 } 6856 6857 6858 6859 static __inline__ __m128i __DEFAULT_FN_ATTRS 6860 _mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 6861 { 6862 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 6863 (__v4si)_mm_unpackhi_epi32(__A, __B), 6864 (__v4si)__W); 6865 } 6866 6867 static __inline__ __m128i __DEFAULT_FN_ATTRS 6868 _mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) 6869 { 6870 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 6871 (__v4si)_mm_unpackhi_epi32(__A, __B), 6872 (__v4si)_mm_setzero_si128()); 6873 } 6874 6875 static __inline__ __m256i __DEFAULT_FN_ATTRS 6876 _mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 6877 { 6878 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 6879 (__v8si)_mm256_unpackhi_epi32(__A, __B), 6880 (__v8si)__W); 6881 } 6882 6883 static __inline__ __m256i __DEFAULT_FN_ATTRS 6884 _mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) 6885 { 6886 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 6887 (__v8si)_mm256_unpackhi_epi32(__A, __B), 6888 (__v8si)_mm256_setzero_si256()); 6889 } 6890 6891 static __inline__ __m128i __DEFAULT_FN_ATTRS 6892 _mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 6893 { 6894 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 6895 (__v2di)_mm_unpackhi_epi64(__A, __B), 6896 (__v2di)__W); 6897 } 6898 6899 static __inline__ __m128i __DEFAULT_FN_ATTRS 6900 _mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) 6901 { 6902 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 6903 (__v2di)_mm_unpackhi_epi64(__A, __B), 6904 (__v2di)_mm_setzero_di()); 6905 } 6906 6907 static __inline__ __m256i __DEFAULT_FN_ATTRS 6908 _mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 6909 { 6910 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 6911 (__v4di)_mm256_unpackhi_epi64(__A, __B), 6912 (__v4di)__W); 6913 } 6914 6915 static __inline__ __m256i __DEFAULT_FN_ATTRS 6916 _mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) 6917 { 6918 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 6919 (__v4di)_mm256_unpackhi_epi64(__A, __B), 6920 (__v4di)_mm256_setzero_si256()); 6921 } 6922 6923 static __inline__ __m128i __DEFAULT_FN_ATTRS 6924 _mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 6925 { 6926 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 6927 (__v4si)_mm_unpacklo_epi32(__A, __B), 6928 (__v4si)__W); 6929 } 6930 6931 static __inline__ __m128i __DEFAULT_FN_ATTRS 6932 _mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) 6933 { 6934 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, 6935 (__v4si)_mm_unpacklo_epi32(__A, __B), 6936 (__v4si)_mm_setzero_si128()); 6937 } 6938 6939 static __inline__ __m256i __DEFAULT_FN_ATTRS 6940 _mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 6941 { 6942 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 6943 (__v8si)_mm256_unpacklo_epi32(__A, __B), 6944 (__v8si)__W); 6945 } 6946 6947 static __inline__ __m256i __DEFAULT_FN_ATTRS 6948 _mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) 6949 { 6950 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, 6951 (__v8si)_mm256_unpacklo_epi32(__A, __B), 6952 (__v8si)_mm256_setzero_si256()); 6953 } 6954 6955 static __inline__ __m128i __DEFAULT_FN_ATTRS 6956 _mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 6957 { 6958 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 6959 (__v2di)_mm_unpacklo_epi64(__A, __B), 6960 (__v2di)__W); 6961 } 6962 6963 static __inline__ __m128i __DEFAULT_FN_ATTRS 6964 _mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) 6965 { 6966 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, 6967 (__v2di)_mm_unpacklo_epi64(__A, __B), 6968 (__v2di)_mm_setzero_di()); 6969 } 6970 6971 static __inline__ __m256i __DEFAULT_FN_ATTRS 6972 _mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) 6973 { 6974 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 6975 (__v4di)_mm256_unpacklo_epi64(__A, __B), 6976 (__v4di)__W); 6977 } 6978 6979 static __inline__ __m256i __DEFAULT_FN_ATTRS 6980 _mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) 6981 { 6982 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, 6983 (__v4di)_mm256_unpacklo_epi64(__A, __B), 6984 (__v4di)_mm256_setzero_si256()); 6985 } 6986 6987 static __inline__ __m128i __DEFAULT_FN_ATTRS 6988 _mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 6989 __m128i __B) 6990 { 6991 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A, 6992 (__v4si) __B, 6993 (__v4si) __W, 6994 (__mmask8) __U); 6995 } 6996 6997 static __inline__ __m128i __DEFAULT_FN_ATTRS 6998 _mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 6999 { 7000 return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A, 7001 (__v4si) __B, 7002 (__v4si) 7003 _mm_setzero_si128 (), 7004 (__mmask8) __U); 7005 } 7006 7007 static __inline__ __m256i __DEFAULT_FN_ATTRS 7008 _mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 7009 __m128i __B) 7010 { 7011 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A, 7012 (__v4si) __B, 7013 (__v8si) __W, 7014 (__mmask8) __U); 7015 } 7016 7017 static __inline__ __m256i __DEFAULT_FN_ATTRS 7018 _mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B) 7019 { 7020 return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A, 7021 (__v4si) __B, 7022 (__v8si) 7023 _mm256_setzero_si256 (), 7024 (__mmask8) __U); 7025 } 7026 7027 #define _mm_mask_srai_epi32(W, U, A, imm) __extension__ ({ \ 7028 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \ 7029 (__v4si)(__m128i)(W), \ 7030 (__mmask8)(U)); }) 7031 7032 #define _mm_maskz_srai_epi32(U, A, imm) __extension__ ({ \ 7033 (__m128i)__builtin_ia32_psradi128_mask((__v4si)(__m128i)(A), (int)(imm), \ 7034 (__v4si)_mm_setzero_si128(), \ 7035 (__mmask8)(U)); }) 7036 7037 #define _mm256_mask_srai_epi32(W, U, A, imm) __extension__ ({ \ 7038 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \ 7039 (__v8si)(__m256i)(W), \ 7040 (__mmask8)(U)); }) 7041 7042 #define _mm256_maskz_srai_epi32(U, A, imm) __extension__ ({ \ 7043 (__m256i)__builtin_ia32_psradi256_mask((__v8si)(__m256i)(A), (int)(imm), \ 7044 (__v8si)_mm256_setzero_si256(), \ 7045 (__mmask8)(U)); }) 7046 7047 static __inline__ __m128i __DEFAULT_FN_ATTRS 7048 _mm_sra_epi64 (__m128i __A, __m128i __B) 7049 { 7050 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A, 7051 (__v2di) __B, 7052 (__v2di) 7053 _mm_setzero_di (), 7054 (__mmask8) -1); 7055 } 7056 7057 static __inline__ __m128i __DEFAULT_FN_ATTRS 7058 _mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 7059 __m128i __B) 7060 { 7061 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A, 7062 (__v2di) __B, 7063 (__v2di) __W, 7064 (__mmask8) __U); 7065 } 7066 7067 static __inline__ __m128i __DEFAULT_FN_ATTRS 7068 _mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 7069 { 7070 return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A, 7071 (__v2di) __B, 7072 (__v2di) 7073 _mm_setzero_di (), 7074 (__mmask8) __U); 7075 } 7076 7077 static __inline__ __m256i __DEFAULT_FN_ATTRS 7078 _mm256_sra_epi64 (__m256i __A, __m128i __B) 7079 { 7080 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A, 7081 (__v2di) __B, 7082 (__v4di) 7083 _mm256_setzero_si256 (), 7084 (__mmask8) -1); 7085 } 7086 7087 static __inline__ __m256i __DEFAULT_FN_ATTRS 7088 _mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 7089 __m128i __B) 7090 { 7091 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A, 7092 (__v2di) __B, 7093 (__v4di) __W, 7094 (__mmask8) __U); 7095 } 7096 7097 static __inline__ __m256i __DEFAULT_FN_ATTRS 7098 _mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B) 7099 { 7100 return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A, 7101 (__v2di) __B, 7102 (__v4di) 7103 _mm256_setzero_si256 (), 7104 (__mmask8) __U); 7105 } 7106 7107 #define _mm_srai_epi64(A, imm) __extension__ ({ \ 7108 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \ 7109 (__v2di)_mm_setzero_di(), \ 7110 (__mmask8)-1); }) 7111 7112 #define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \ 7113 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \ 7114 (__v2di)(__m128i)(W), \ 7115 (__mmask8)(U)); }) 7116 7117 #define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \ 7118 (__m128i)__builtin_ia32_psraqi128_mask((__v2di)(__m128i)(A), (int)(imm), \ 7119 (__v2di)_mm_setzero_si128(), \ 7120 (__mmask8)(U)); }) 7121 7122 #define _mm256_srai_epi64(A, imm) __extension__ ({ \ 7123 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \ 7124 (__v4di)_mm256_setzero_si256(), \ 7125 (__mmask8)-1); }) 7126 7127 #define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \ 7128 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \ 7129 (__v4di)(__m256i)(W), \ 7130 (__mmask8)(U)); }) 7131 7132 #define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \ 7133 (__m256i)__builtin_ia32_psraqi256_mask((__v4di)(__m256i)(A), (int)(imm), \ 7134 (__v4di)_mm256_setzero_si256(), \ 7135 (__mmask8)(U)); }) 7136 7137 #define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \ 7138 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \ 7139 (__v4si)(__m128i)(B), \ 7140 (__v4si)(__m128i)(C), (int)(imm), \ 7141 (__mmask8)-1); }) 7142 7143 #define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \ 7144 (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \ 7145 (__v4si)(__m128i)(B), \ 7146 (__v4si)(__m128i)(C), (int)(imm), \ 7147 (__mmask8)(U)); }) 7148 7149 #define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \ 7150 (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \ 7151 (__v4si)(__m128i)(B), \ 7152 (__v4si)(__m128i)(C), (int)(imm), \ 7153 (__mmask8)(U)); }) 7154 7155 #define _mm256_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \ 7156 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \ 7157 (__v8si)(__m256i)(B), \ 7158 (__v8si)(__m256i)(C), (int)(imm), \ 7159 (__mmask8)-1); }) 7160 7161 #define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) __extension__ ({ \ 7162 (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \ 7163 (__v8si)(__m256i)(B), \ 7164 (__v8si)(__m256i)(C), (int)(imm), \ 7165 (__mmask8)(U)); }) 7166 7167 #define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) __extension__ ({ \ 7168 (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \ 7169 (__v8si)(__m256i)(B), \ 7170 (__v8si)(__m256i)(C), (int)(imm), \ 7171 (__mmask8)(U)); }) 7172 7173 #define _mm_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \ 7174 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \ 7175 (__v2di)(__m128i)(B), \ 7176 (__v2di)(__m128i)(C), (int)(imm), \ 7177 (__mmask8)-1); }) 7178 7179 #define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \ 7180 (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \ 7181 (__v2di)(__m128i)(B), \ 7182 (__v2di)(__m128i)(C), (int)(imm), \ 7183 (__mmask8)(U)); }) 7184 7185 #define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \ 7186 (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \ 7187 (__v2di)(__m128i)(B), \ 7188 (__v2di)(__m128i)(C), (int)(imm), \ 7189 (__mmask8)(U)); }) 7190 7191 #define _mm256_ternarylogic_epi64(A, B, C, imm) __extension__ ({ \ 7192 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \ 7193 (__v4di)(__m256i)(B), \ 7194 (__v4di)(__m256i)(C), (int)(imm), \ 7195 (__mmask8)-1); }) 7196 7197 #define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) __extension__ ({ \ 7198 (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \ 7199 (__v4di)(__m256i)(B), \ 7200 (__v4di)(__m256i)(C), (int)(imm), \ 7201 (__mmask8)(U)); }) 7202 7203 #define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) __extension__ ({ \ 7204 (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \ 7205 (__v4di)(__m256i)(B), \ 7206 (__v4di)(__m256i)(C), (int)(imm), \ 7207 (__mmask8)(U)); }) 7208 7209 7210 7211 #define _mm256_shuffle_f32x4(A, B, imm) __extension__ ({ \ 7212 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \ 7213 (__v8sf)(__m256)(B), (int)(imm), \ 7214 (__v8sf)_mm256_setzero_ps(), \ 7215 (__mmask8)-1); }) 7216 7217 #define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) __extension__ ({ \ 7218 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \ 7219 (__v8sf)(__m256)(B), (int)(imm), \ 7220 (__v8sf)(__m256)(W), \ 7221 (__mmask8)(U)); }) 7222 7223 #define _mm256_maskz_shuffle_f32x4(U, A, B, imm) __extension__ ({ \ 7224 (__m256)__builtin_ia32_shuf_f32x4_256_mask((__v8sf)(__m256)(A), \ 7225 (__v8sf)(__m256)(B), (int)(imm), \ 7226 (__v8sf)_mm256_setzero_ps(), \ 7227 (__mmask8)(U)); }) 7228 7229 #define _mm256_shuffle_f64x2(A, B, imm) __extension__ ({ \ 7230 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \ 7231 (__v4df)(__m256d)(B), \ 7232 (int)(imm), \ 7233 (__v4df)_mm256_setzero_pd(), \ 7234 (__mmask8)-1); }) 7235 7236 #define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) __extension__ ({ \ 7237 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \ 7238 (__v4df)(__m256d)(B), \ 7239 (int)(imm), \ 7240 (__v4df)(__m256d)(W), \ 7241 (__mmask8)(U)); }) 7242 7243 #define _mm256_maskz_shuffle_f64x2(U, A, B, imm) __extension__ ({ \ 7244 (__m256d)__builtin_ia32_shuf_f64x2_256_mask((__v4df)(__m256d)(A), \ 7245 (__v4df)(__m256d)(B), \ 7246 (int)(imm), \ 7247 (__v4df)_mm256_setzero_pd(), \ 7248 (__mmask8)(U)); }) 7249 7250 #define _mm256_shuffle_i32x4(A, B, imm) __extension__ ({ \ 7251 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \ 7252 (__v8si)(__m256i)(B), \ 7253 (int)(imm), \ 7254 (__v8si)_mm256_setzero_si256(), \ 7255 (__mmask8)-1); }) 7256 7257 #define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) __extension__ ({ \ 7258 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \ 7259 (__v8si)(__m256i)(B), \ 7260 (int)(imm), \ 7261 (__v8si)(__m256i)(W), \ 7262 (__mmask8)(U)); }) 7263 7264 #define _mm256_maskz_shuffle_i32x4(U, A, B, imm) __extension__ ({ \ 7265 (__m256i)__builtin_ia32_shuf_i32x4_256_mask((__v8si)(__m256i)(A), \ 7266 (__v8si)(__m256i)(B), \ 7267 (int)(imm), \ 7268 (__v8si)_mm256_setzero_si256(), \ 7269 (__mmask8)(U)); }) 7270 7271 #define _mm256_shuffle_i64x2(A, B, imm) __extension__ ({ \ 7272 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \ 7273 (__v4di)(__m256i)(B), \ 7274 (int)(imm), \ 7275 (__v4di)_mm256_setzero_si256(), \ 7276 (__mmask8)-1); }) 7277 7278 #define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) __extension__ ({ \ 7279 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \ 7280 (__v4di)(__m256i)(B), \ 7281 (int)(imm), \ 7282 (__v4di)(__m256i)(W), \ 7283 (__mmask8)(U)); }) 7284 7285 #define _mm256_maskz_shuffle_i64x2(U, A, B, imm) __extension__ ({ \ 7286 (__m256i)__builtin_ia32_shuf_i64x2_256_mask((__v4di)(__m256i)(A), \ 7287 (__v4di)(__m256i)(B), \ 7288 (int)(imm), \ 7289 (__v4di)_mm256_setzero_si256(), \ 7290 (__mmask8)(U)); }) 7291 7292 #define _mm_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \ 7293 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ 7294 (__v2df)_mm_shuffle_pd((A), (B), (M)), \ 7295 (__v2df)(__m128d)(W)); }) 7296 7297 #define _mm_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \ 7298 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ 7299 (__v2df)_mm_shuffle_pd((A), (B), (M)), \ 7300 (__v2df)_mm_setzero_pd()); }) 7301 7302 #define _mm256_mask_shuffle_pd(W, U, A, B, M) __extension__ ({ \ 7303 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ 7304 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \ 7305 (__v4df)(__m256d)(W)); }) 7306 7307 #define _mm256_maskz_shuffle_pd(U, A, B, M) __extension__ ({ \ 7308 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ 7309 (__v4df)_mm256_shuffle_pd((A), (B), (M)), \ 7310 (__v4df)_mm256_setzero_pd()); }) 7311 7312 #define _mm_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \ 7313 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ 7314 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \ 7315 (__v4sf)(__m128)(W)); }) 7316 7317 #define _mm_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \ 7318 (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ 7319 (__v4sf)_mm_shuffle_ps((A), (B), (M)), \ 7320 (__v4sf)_mm_setzero_ps()); }) 7321 7322 #define _mm256_mask_shuffle_ps(W, U, A, B, M) __extension__ ({ \ 7323 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ 7324 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \ 7325 (__v8sf)(__m256)(W)); }) 7326 7327 #define _mm256_maskz_shuffle_ps(U, A, B, M) __extension__ ({ \ 7328 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ 7329 (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \ 7330 (__v8sf)_mm256_setzero_ps()); }) 7331 7332 static __inline__ __m128d __DEFAULT_FN_ATTRS 7333 _mm_rsqrt14_pd (__m128d __A) 7334 { 7335 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, 7336 (__v2df) 7337 _mm_setzero_pd (), 7338 (__mmask8) -1); 7339 } 7340 7341 static __inline__ __m128d __DEFAULT_FN_ATTRS 7342 _mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A) 7343 { 7344 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, 7345 (__v2df) __W, 7346 (__mmask8) __U); 7347 } 7348 7349 static __inline__ __m128d __DEFAULT_FN_ATTRS 7350 _mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A) 7351 { 7352 return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, 7353 (__v2df) 7354 _mm_setzero_pd (), 7355 (__mmask8) __U); 7356 } 7357 7358 static __inline__ __m256d __DEFAULT_FN_ATTRS 7359 _mm256_rsqrt14_pd (__m256d __A) 7360 { 7361 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, 7362 (__v4df) 7363 _mm256_setzero_pd (), 7364 (__mmask8) -1); 7365 } 7366 7367 static __inline__ __m256d __DEFAULT_FN_ATTRS 7368 _mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A) 7369 { 7370 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, 7371 (__v4df) __W, 7372 (__mmask8) __U); 7373 } 7374 7375 static __inline__ __m256d __DEFAULT_FN_ATTRS 7376 _mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A) 7377 { 7378 return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, 7379 (__v4df) 7380 _mm256_setzero_pd (), 7381 (__mmask8) __U); 7382 } 7383 7384 static __inline__ __m128 __DEFAULT_FN_ATTRS 7385 _mm_rsqrt14_ps (__m128 __A) 7386 { 7387 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, 7388 (__v4sf) 7389 _mm_setzero_ps (), 7390 (__mmask8) -1); 7391 } 7392 7393 static __inline__ __m128 __DEFAULT_FN_ATTRS 7394 _mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A) 7395 { 7396 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, 7397 (__v4sf) __W, 7398 (__mmask8) __U); 7399 } 7400 7401 static __inline__ __m128 __DEFAULT_FN_ATTRS 7402 _mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A) 7403 { 7404 return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, 7405 (__v4sf) 7406 _mm_setzero_ps (), 7407 (__mmask8) __U); 7408 } 7409 7410 static __inline__ __m256 __DEFAULT_FN_ATTRS 7411 _mm256_rsqrt14_ps (__m256 __A) 7412 { 7413 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, 7414 (__v8sf) 7415 _mm256_setzero_ps (), 7416 (__mmask8) -1); 7417 } 7418 7419 static __inline__ __m256 __DEFAULT_FN_ATTRS 7420 _mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A) 7421 { 7422 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, 7423 (__v8sf) __W, 7424 (__mmask8) __U); 7425 } 7426 7427 static __inline__ __m256 __DEFAULT_FN_ATTRS 7428 _mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A) 7429 { 7430 return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, 7431 (__v8sf) 7432 _mm256_setzero_ps (), 7433 (__mmask8) __U); 7434 } 7435 7436 static __inline__ __m256 __DEFAULT_FN_ATTRS 7437 _mm256_broadcast_f32x4 (__m128 __A) 7438 { 7439 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A, 7440 (__v8sf)_mm256_undefined_pd (), 7441 (__mmask8) -1); 7442 } 7443 7444 static __inline__ __m256 __DEFAULT_FN_ATTRS 7445 _mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A) 7446 { 7447 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A, 7448 (__v8sf) __O, 7449 __M); 7450 } 7451 7452 static __inline__ __m256 __DEFAULT_FN_ATTRS 7453 _mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A) 7454 { 7455 return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A, 7456 (__v8sf) _mm256_setzero_ps (), 7457 __M); 7458 } 7459 7460 static __inline__ __m256i __DEFAULT_FN_ATTRS 7461 _mm256_broadcast_i32x4 (__m128i __A) 7462 { 7463 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A, 7464 (__v8si)_mm256_undefined_si256 (), 7465 (__mmask8) -1); 7466 } 7467 7468 static __inline__ __m256i __DEFAULT_FN_ATTRS 7469 _mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A) 7470 { 7471 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A, 7472 (__v8si) 7473 __O, __M); 7474 } 7475 7476 static __inline__ __m256i __DEFAULT_FN_ATTRS 7477 _mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A) 7478 { 7479 return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) 7480 __A, 7481 (__v8si) _mm256_setzero_si256 (), 7482 __M); 7483 } 7484 7485 static __inline__ __m256d __DEFAULT_FN_ATTRS 7486 _mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A) 7487 { 7488 return (__m256d)__builtin_ia32_selectpd_256(__M, 7489 (__v4df) _mm256_broadcastsd_pd(__A), 7490 (__v4df) __O); 7491 } 7492 7493 static __inline__ __m256d __DEFAULT_FN_ATTRS 7494 _mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) 7495 { 7496 return (__m256d)__builtin_ia32_selectpd_256(__M, 7497 (__v4df) _mm256_broadcastsd_pd(__A), 7498 (__v4df) _mm256_setzero_pd()); 7499 } 7500 7501 static __inline__ __m128 __DEFAULT_FN_ATTRS 7502 _mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A) 7503 { 7504 return (__m128)__builtin_ia32_selectps_128(__M, 7505 (__v4sf) _mm_broadcastss_ps(__A), 7506 (__v4sf) __O); 7507 } 7508 7509 static __inline__ __m128 __DEFAULT_FN_ATTRS 7510 _mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) 7511 { 7512 return (__m128)__builtin_ia32_selectps_128(__M, 7513 (__v4sf) _mm_broadcastss_ps(__A), 7514 (__v4sf) _mm_setzero_ps()); 7515 } 7516 7517 static __inline__ __m256 __DEFAULT_FN_ATTRS 7518 _mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A) 7519 { 7520 return (__m256)__builtin_ia32_selectps_256(__M, 7521 (__v8sf) _mm256_broadcastss_ps(__A), 7522 (__v8sf) __O); 7523 } 7524 7525 static __inline__ __m256 __DEFAULT_FN_ATTRS 7526 _mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) 7527 { 7528 return (__m256)__builtin_ia32_selectps_256(__M, 7529 (__v8sf) _mm256_broadcastss_ps(__A), 7530 (__v8sf) _mm256_setzero_ps()); 7531 } 7532 7533 static __inline__ __m128i __DEFAULT_FN_ATTRS 7534 _mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A) 7535 { 7536 return (__m128i)__builtin_ia32_selectd_128(__M, 7537 (__v4si) _mm_broadcastd_epi32(__A), 7538 (__v4si) __O); 7539 } 7540 7541 static __inline__ __m128i __DEFAULT_FN_ATTRS 7542 _mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) 7543 { 7544 return (__m128i)__builtin_ia32_selectd_128(__M, 7545 (__v4si) _mm_broadcastd_epi32(__A), 7546 (__v4si) _mm_setzero_si128()); 7547 } 7548 7549 static __inline__ __m256i __DEFAULT_FN_ATTRS 7550 _mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A) 7551 { 7552 return (__m256i)__builtin_ia32_selectd_256(__M, 7553 (__v8si) _mm256_broadcastd_epi32(__A), 7554 (__v8si) __O); 7555 } 7556 7557 static __inline__ __m256i __DEFAULT_FN_ATTRS 7558 _mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) 7559 { 7560 return (__m256i)__builtin_ia32_selectd_256(__M, 7561 (__v8si) _mm256_broadcastd_epi32(__A), 7562 (__v8si) _mm256_setzero_si256()); 7563 } 7564 7565 static __inline__ __m128i __DEFAULT_FN_ATTRS 7566 _mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A) 7567 { 7568 return (__m128i)__builtin_ia32_selectq_128(__M, 7569 (__v2di) _mm_broadcastq_epi64(__A), 7570 (__v2di) __O); 7571 } 7572 7573 static __inline__ __m128i __DEFAULT_FN_ATTRS 7574 _mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) 7575 { 7576 return (__m128i)__builtin_ia32_selectq_128(__M, 7577 (__v2di) _mm_broadcastq_epi64(__A), 7578 (__v2di) _mm_setzero_si128()); 7579 } 7580 7581 static __inline__ __m256i __DEFAULT_FN_ATTRS 7582 _mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A) 7583 { 7584 return (__m256i)__builtin_ia32_selectq_256(__M, 7585 (__v4di) _mm256_broadcastq_epi64(__A), 7586 (__v4di) __O); 7587 } 7588 7589 static __inline__ __m256i __DEFAULT_FN_ATTRS 7590 _mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) 7591 { 7592 return (__m256i)__builtin_ia32_selectq_256(__M, 7593 (__v4di) _mm256_broadcastq_epi64(__A), 7594 (__v4di) _mm256_setzero_si256()); 7595 } 7596 7597 static __inline__ __m128i __DEFAULT_FN_ATTRS 7598 _mm_cvtsepi32_epi8 (__m128i __A) 7599 { 7600 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, 7601 (__v16qi)_mm_undefined_si128(), 7602 (__mmask8) -1); 7603 } 7604 7605 static __inline__ __m128i __DEFAULT_FN_ATTRS 7606 _mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 7607 { 7608 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, 7609 (__v16qi) __O, __M); 7610 } 7611 7612 static __inline__ __m128i __DEFAULT_FN_ATTRS 7613 _mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A) 7614 { 7615 return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, 7616 (__v16qi) _mm_setzero_si128 (), 7617 __M); 7618 } 7619 7620 static __inline__ void __DEFAULT_FN_ATTRS 7621 _mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 7622 { 7623 __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); 7624 } 7625 7626 static __inline__ __m128i __DEFAULT_FN_ATTRS 7627 _mm256_cvtsepi32_epi8 (__m256i __A) 7628 { 7629 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, 7630 (__v16qi)_mm_undefined_si128(), 7631 (__mmask8) -1); 7632 } 7633 7634 static __inline__ __m128i __DEFAULT_FN_ATTRS 7635 _mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) 7636 { 7637 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, 7638 (__v16qi) __O, __M); 7639 } 7640 7641 static __inline__ __m128i __DEFAULT_FN_ATTRS 7642 _mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A) 7643 { 7644 return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, 7645 (__v16qi) _mm_setzero_si128 (), 7646 __M); 7647 } 7648 7649 static __inline__ void __DEFAULT_FN_ATTRS 7650 _mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 7651 { 7652 __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); 7653 } 7654 7655 static __inline__ __m128i __DEFAULT_FN_ATTRS 7656 _mm_cvtsepi32_epi16 (__m128i __A) 7657 { 7658 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, 7659 (__v8hi)_mm_setzero_si128 (), 7660 (__mmask8) -1); 7661 } 7662 7663 static __inline__ __m128i __DEFAULT_FN_ATTRS 7664 _mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 7665 { 7666 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, 7667 (__v8hi)__O, 7668 __M); 7669 } 7670 7671 static __inline__ __m128i __DEFAULT_FN_ATTRS 7672 _mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A) 7673 { 7674 return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, 7675 (__v8hi) _mm_setzero_si128 (), 7676 __M); 7677 } 7678 7679 static __inline__ void __DEFAULT_FN_ATTRS 7680 _mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) 7681 { 7682 __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); 7683 } 7684 7685 static __inline__ __m128i __DEFAULT_FN_ATTRS 7686 _mm256_cvtsepi32_epi16 (__m256i __A) 7687 { 7688 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, 7689 (__v8hi)_mm_undefined_si128(), 7690 (__mmask8) -1); 7691 } 7692 7693 static __inline__ __m128i __DEFAULT_FN_ATTRS 7694 _mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) 7695 { 7696 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, 7697 (__v8hi) __O, __M); 7698 } 7699 7700 static __inline__ __m128i __DEFAULT_FN_ATTRS 7701 _mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A) 7702 { 7703 return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, 7704 (__v8hi) _mm_setzero_si128 (), 7705 __M); 7706 } 7707 7708 static __inline__ void __DEFAULT_FN_ATTRS 7709 _mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) 7710 { 7711 __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); 7712 } 7713 7714 static __inline__ __m128i __DEFAULT_FN_ATTRS 7715 _mm_cvtsepi64_epi8 (__m128i __A) 7716 { 7717 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, 7718 (__v16qi)_mm_undefined_si128(), 7719 (__mmask8) -1); 7720 } 7721 7722 static __inline__ __m128i __DEFAULT_FN_ATTRS 7723 _mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 7724 { 7725 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, 7726 (__v16qi) __O, __M); 7727 } 7728 7729 static __inline__ __m128i __DEFAULT_FN_ATTRS 7730 _mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A) 7731 { 7732 return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, 7733 (__v16qi) _mm_setzero_si128 (), 7734 __M); 7735 } 7736 7737 static __inline__ void __DEFAULT_FN_ATTRS 7738 _mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 7739 { 7740 __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); 7741 } 7742 7743 static __inline__ __m128i __DEFAULT_FN_ATTRS 7744 _mm256_cvtsepi64_epi8 (__m256i __A) 7745 { 7746 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, 7747 (__v16qi)_mm_undefined_si128(), 7748 (__mmask8) -1); 7749 } 7750 7751 static __inline__ __m128i __DEFAULT_FN_ATTRS 7752 _mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) 7753 { 7754 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, 7755 (__v16qi) __O, __M); 7756 } 7757 7758 static __inline__ __m128i __DEFAULT_FN_ATTRS 7759 _mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A) 7760 { 7761 return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, 7762 (__v16qi) _mm_setzero_si128 (), 7763 __M); 7764 } 7765 7766 static __inline__ void __DEFAULT_FN_ATTRS 7767 _mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 7768 { 7769 __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); 7770 } 7771 7772 static __inline__ __m128i __DEFAULT_FN_ATTRS 7773 _mm_cvtsepi64_epi32 (__m128i __A) 7774 { 7775 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, 7776 (__v4si)_mm_undefined_si128(), 7777 (__mmask8) -1); 7778 } 7779 7780 static __inline__ __m128i __DEFAULT_FN_ATTRS 7781 _mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) 7782 { 7783 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, 7784 (__v4si) __O, __M); 7785 } 7786 7787 static __inline__ __m128i __DEFAULT_FN_ATTRS 7788 _mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A) 7789 { 7790 return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, 7791 (__v4si) _mm_setzero_si128 (), 7792 __M); 7793 } 7794 7795 static __inline__ void __DEFAULT_FN_ATTRS 7796 _mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) 7797 { 7798 __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); 7799 } 7800 7801 static __inline__ __m128i __DEFAULT_FN_ATTRS 7802 _mm256_cvtsepi64_epi32 (__m256i __A) 7803 { 7804 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, 7805 (__v4si)_mm_undefined_si128(), 7806 (__mmask8) -1); 7807 } 7808 7809 static __inline__ __m128i __DEFAULT_FN_ATTRS 7810 _mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) 7811 { 7812 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, 7813 (__v4si)__O, 7814 __M); 7815 } 7816 7817 static __inline__ __m128i __DEFAULT_FN_ATTRS 7818 _mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A) 7819 { 7820 return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, 7821 (__v4si) _mm_setzero_si128 (), 7822 __M); 7823 } 7824 7825 static __inline__ void __DEFAULT_FN_ATTRS 7826 _mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) 7827 { 7828 __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); 7829 } 7830 7831 static __inline__ __m128i __DEFAULT_FN_ATTRS 7832 _mm_cvtsepi64_epi16 (__m128i __A) 7833 { 7834 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, 7835 (__v8hi)_mm_undefined_si128(), 7836 (__mmask8) -1); 7837 } 7838 7839 static __inline__ __m128i __DEFAULT_FN_ATTRS 7840 _mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 7841 { 7842 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, 7843 (__v8hi) __O, __M); 7844 } 7845 7846 static __inline__ __m128i __DEFAULT_FN_ATTRS 7847 _mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A) 7848 { 7849 return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, 7850 (__v8hi) _mm_setzero_si128 (), 7851 __M); 7852 } 7853 7854 static __inline__ void __DEFAULT_FN_ATTRS 7855 _mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) 7856 { 7857 __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); 7858 } 7859 7860 static __inline__ __m128i __DEFAULT_FN_ATTRS 7861 _mm256_cvtsepi64_epi16 (__m256i __A) 7862 { 7863 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, 7864 (__v8hi)_mm_undefined_si128(), 7865 (__mmask8) -1); 7866 } 7867 7868 static __inline__ __m128i __DEFAULT_FN_ATTRS 7869 _mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) 7870 { 7871 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, 7872 (__v8hi) __O, __M); 7873 } 7874 7875 static __inline__ __m128i __DEFAULT_FN_ATTRS 7876 _mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A) 7877 { 7878 return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, 7879 (__v8hi) _mm_setzero_si128 (), 7880 __M); 7881 } 7882 7883 static __inline__ void __DEFAULT_FN_ATTRS 7884 _mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) 7885 { 7886 __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); 7887 } 7888 7889 static __inline__ __m128i __DEFAULT_FN_ATTRS 7890 _mm_cvtusepi32_epi8 (__m128i __A) 7891 { 7892 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, 7893 (__v16qi)_mm_undefined_si128(), 7894 (__mmask8) -1); 7895 } 7896 7897 static __inline__ __m128i __DEFAULT_FN_ATTRS 7898 _mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 7899 { 7900 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, 7901 (__v16qi) __O, 7902 __M); 7903 } 7904 7905 static __inline__ __m128i __DEFAULT_FN_ATTRS 7906 _mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A) 7907 { 7908 return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, 7909 (__v16qi) _mm_setzero_si128 (), 7910 __M); 7911 } 7912 7913 static __inline__ void __DEFAULT_FN_ATTRS 7914 _mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 7915 { 7916 __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); 7917 } 7918 7919 static __inline__ __m128i __DEFAULT_FN_ATTRS 7920 _mm256_cvtusepi32_epi8 (__m256i __A) 7921 { 7922 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, 7923 (__v16qi)_mm_undefined_si128(), 7924 (__mmask8) -1); 7925 } 7926 7927 static __inline__ __m128i __DEFAULT_FN_ATTRS 7928 _mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) 7929 { 7930 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, 7931 (__v16qi) __O, 7932 __M); 7933 } 7934 7935 static __inline__ __m128i __DEFAULT_FN_ATTRS 7936 _mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A) 7937 { 7938 return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, 7939 (__v16qi) _mm_setzero_si128 (), 7940 __M); 7941 } 7942 7943 static __inline__ void __DEFAULT_FN_ATTRS 7944 _mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 7945 { 7946 __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M); 7947 } 7948 7949 static __inline__ __m128i __DEFAULT_FN_ATTRS 7950 _mm_cvtusepi32_epi16 (__m128i __A) 7951 { 7952 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, 7953 (__v8hi)_mm_undefined_si128(), 7954 (__mmask8) -1); 7955 } 7956 7957 static __inline__ __m128i __DEFAULT_FN_ATTRS 7958 _mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 7959 { 7960 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, 7961 (__v8hi) __O, __M); 7962 } 7963 7964 static __inline__ __m128i __DEFAULT_FN_ATTRS 7965 _mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A) 7966 { 7967 return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, 7968 (__v8hi) _mm_setzero_si128 (), 7969 __M); 7970 } 7971 7972 static __inline__ void __DEFAULT_FN_ATTRS 7973 _mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) 7974 { 7975 __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); 7976 } 7977 7978 static __inline__ __m128i __DEFAULT_FN_ATTRS 7979 _mm256_cvtusepi32_epi16 (__m256i __A) 7980 { 7981 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, 7982 (__v8hi) _mm_undefined_si128(), 7983 (__mmask8) -1); 7984 } 7985 7986 static __inline__ __m128i __DEFAULT_FN_ATTRS 7987 _mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) 7988 { 7989 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, 7990 (__v8hi) __O, __M); 7991 } 7992 7993 static __inline__ __m128i __DEFAULT_FN_ATTRS 7994 _mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A) 7995 { 7996 return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, 7997 (__v8hi) _mm_setzero_si128 (), 7998 __M); 7999 } 8000 8001 static __inline__ void __DEFAULT_FN_ATTRS 8002 _mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) 8003 { 8004 __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); 8005 } 8006 8007 static __inline__ __m128i __DEFAULT_FN_ATTRS 8008 _mm_cvtusepi64_epi8 (__m128i __A) 8009 { 8010 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, 8011 (__v16qi)_mm_undefined_si128(), 8012 (__mmask8) -1); 8013 } 8014 8015 static __inline__ __m128i __DEFAULT_FN_ATTRS 8016 _mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 8017 { 8018 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, 8019 (__v16qi) __O, 8020 __M); 8021 } 8022 8023 static __inline__ __m128i __DEFAULT_FN_ATTRS 8024 _mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A) 8025 { 8026 return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, 8027 (__v16qi) _mm_setzero_si128 (), 8028 __M); 8029 } 8030 8031 static __inline__ void __DEFAULT_FN_ATTRS 8032 _mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 8033 { 8034 __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); 8035 } 8036 8037 static __inline__ __m128i __DEFAULT_FN_ATTRS 8038 _mm256_cvtusepi64_epi8 (__m256i __A) 8039 { 8040 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, 8041 (__v16qi)_mm_undefined_si128(), 8042 (__mmask8) -1); 8043 } 8044 8045 static __inline__ __m128i __DEFAULT_FN_ATTRS 8046 _mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) 8047 { 8048 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, 8049 (__v16qi) __O, 8050 __M); 8051 } 8052 8053 static __inline__ __m128i __DEFAULT_FN_ATTRS 8054 _mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A) 8055 { 8056 return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, 8057 (__v16qi) _mm_setzero_si128 (), 8058 __M); 8059 } 8060 8061 static __inline__ void __DEFAULT_FN_ATTRS 8062 _mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 8063 { 8064 __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); 8065 } 8066 8067 static __inline__ __m128i __DEFAULT_FN_ATTRS 8068 _mm_cvtusepi64_epi32 (__m128i __A) 8069 { 8070 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, 8071 (__v4si)_mm_undefined_si128(), 8072 (__mmask8) -1); 8073 } 8074 8075 static __inline__ __m128i __DEFAULT_FN_ATTRS 8076 _mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) 8077 { 8078 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, 8079 (__v4si) __O, __M); 8080 } 8081 8082 static __inline__ __m128i __DEFAULT_FN_ATTRS 8083 _mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A) 8084 { 8085 return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, 8086 (__v4si) _mm_setzero_si128 (), 8087 __M); 8088 } 8089 8090 static __inline__ void __DEFAULT_FN_ATTRS 8091 _mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) 8092 { 8093 __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); 8094 } 8095 8096 static __inline__ __m128i __DEFAULT_FN_ATTRS 8097 _mm256_cvtusepi64_epi32 (__m256i __A) 8098 { 8099 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, 8100 (__v4si)_mm_undefined_si128(), 8101 (__mmask8) -1); 8102 } 8103 8104 static __inline__ __m128i __DEFAULT_FN_ATTRS 8105 _mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) 8106 { 8107 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, 8108 (__v4si) __O, __M); 8109 } 8110 8111 static __inline__ __m128i __DEFAULT_FN_ATTRS 8112 _mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A) 8113 { 8114 return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, 8115 (__v4si) _mm_setzero_si128 (), 8116 __M); 8117 } 8118 8119 static __inline__ void __DEFAULT_FN_ATTRS 8120 _mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) 8121 { 8122 __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); 8123 } 8124 8125 static __inline__ __m128i __DEFAULT_FN_ATTRS 8126 _mm_cvtusepi64_epi16 (__m128i __A) 8127 { 8128 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, 8129 (__v8hi)_mm_undefined_si128(), 8130 (__mmask8) -1); 8131 } 8132 8133 static __inline__ __m128i __DEFAULT_FN_ATTRS 8134 _mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 8135 { 8136 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, 8137 (__v8hi) __O, __M); 8138 } 8139 8140 static __inline__ __m128i __DEFAULT_FN_ATTRS 8141 _mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A) 8142 { 8143 return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, 8144 (__v8hi) _mm_setzero_si128 (), 8145 __M); 8146 } 8147 8148 static __inline__ void __DEFAULT_FN_ATTRS 8149 _mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) 8150 { 8151 __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); 8152 } 8153 8154 static __inline__ __m128i __DEFAULT_FN_ATTRS 8155 _mm256_cvtusepi64_epi16 (__m256i __A) 8156 { 8157 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, 8158 (__v8hi)_mm_undefined_si128(), 8159 (__mmask8) -1); 8160 } 8161 8162 static __inline__ __m128i __DEFAULT_FN_ATTRS 8163 _mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) 8164 { 8165 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, 8166 (__v8hi) __O, __M); 8167 } 8168 8169 static __inline__ __m128i __DEFAULT_FN_ATTRS 8170 _mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A) 8171 { 8172 return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, 8173 (__v8hi) _mm_setzero_si128 (), 8174 __M); 8175 } 8176 8177 static __inline__ void __DEFAULT_FN_ATTRS 8178 _mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) 8179 { 8180 return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); 8181 } 8182 8183 static __inline__ __m128i __DEFAULT_FN_ATTRS 8184 _mm_cvtepi32_epi8 (__m128i __A) 8185 { 8186 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, 8187 (__v16qi)_mm_undefined_si128(), 8188 (__mmask8) -1); 8189 } 8190 8191 static __inline__ __m128i __DEFAULT_FN_ATTRS 8192 _mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 8193 { 8194 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, 8195 (__v16qi) __O, __M); 8196 } 8197 8198 static __inline__ __m128i __DEFAULT_FN_ATTRS 8199 _mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A) 8200 { 8201 return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, 8202 (__v16qi) 8203 _mm_setzero_si128 (), 8204 __M); 8205 } 8206 8207 static __inline__ void __DEFAULT_FN_ATTRS 8208 _mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 8209 { 8210 __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); 8211 } 8212 8213 static __inline__ __m128i __DEFAULT_FN_ATTRS 8214 _mm256_cvtepi32_epi8 (__m256i __A) 8215 { 8216 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, 8217 (__v16qi)_mm_undefined_si128(), 8218 (__mmask8) -1); 8219 } 8220 8221 static __inline__ __m128i __DEFAULT_FN_ATTRS 8222 _mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) 8223 { 8224 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, 8225 (__v16qi) __O, __M); 8226 } 8227 8228 static __inline__ __m128i __DEFAULT_FN_ATTRS 8229 _mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A) 8230 { 8231 return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, 8232 (__v16qi) _mm_setzero_si128 (), 8233 __M); 8234 } 8235 8236 static __inline__ void __DEFAULT_FN_ATTRS 8237 _mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 8238 { 8239 __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); 8240 } 8241 8242 static __inline__ __m128i __DEFAULT_FN_ATTRS 8243 _mm_cvtepi32_epi16 (__m128i __A) 8244 { 8245 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, 8246 (__v8hi) _mm_setzero_si128 (), 8247 (__mmask8) -1); 8248 } 8249 8250 static __inline__ __m128i __DEFAULT_FN_ATTRS 8251 _mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 8252 { 8253 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, 8254 (__v8hi) __O, __M); 8255 } 8256 8257 static __inline__ __m128i __DEFAULT_FN_ATTRS 8258 _mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A) 8259 { 8260 return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, 8261 (__v8hi) _mm_setzero_si128 (), 8262 __M); 8263 } 8264 8265 static __inline__ void __DEFAULT_FN_ATTRS 8266 _mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) 8267 { 8268 __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); 8269 } 8270 8271 static __inline__ __m128i __DEFAULT_FN_ATTRS 8272 _mm256_cvtepi32_epi16 (__m256i __A) 8273 { 8274 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, 8275 (__v8hi)_mm_setzero_si128 (), 8276 (__mmask8) -1); 8277 } 8278 8279 static __inline__ __m128i __DEFAULT_FN_ATTRS 8280 _mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) 8281 { 8282 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, 8283 (__v8hi) __O, __M); 8284 } 8285 8286 static __inline__ __m128i __DEFAULT_FN_ATTRS 8287 _mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A) 8288 { 8289 return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, 8290 (__v8hi) _mm_setzero_si128 (), 8291 __M); 8292 } 8293 8294 static __inline__ void __DEFAULT_FN_ATTRS 8295 _mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) 8296 { 8297 __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); 8298 } 8299 8300 static __inline__ __m128i __DEFAULT_FN_ATTRS 8301 _mm_cvtepi64_epi8 (__m128i __A) 8302 { 8303 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, 8304 (__v16qi) _mm_undefined_si128(), 8305 (__mmask8) -1); 8306 } 8307 8308 static __inline__ __m128i __DEFAULT_FN_ATTRS 8309 _mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) 8310 { 8311 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, 8312 (__v16qi) __O, __M); 8313 } 8314 8315 static __inline__ __m128i __DEFAULT_FN_ATTRS 8316 _mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A) 8317 { 8318 return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, 8319 (__v16qi) _mm_setzero_si128 (), 8320 __M); 8321 } 8322 8323 static __inline__ void __DEFAULT_FN_ATTRS 8324 _mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) 8325 { 8326 __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); 8327 } 8328 8329 static __inline__ __m128i __DEFAULT_FN_ATTRS 8330 _mm256_cvtepi64_epi8 (__m256i __A) 8331 { 8332 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, 8333 (__v16qi) _mm_undefined_si128(), 8334 (__mmask8) -1); 8335 } 8336 8337 static __inline__ __m128i __DEFAULT_FN_ATTRS 8338 _mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) 8339 { 8340 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, 8341 (__v16qi) __O, __M); 8342 } 8343 8344 static __inline__ __m128i __DEFAULT_FN_ATTRS 8345 _mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A) 8346 { 8347 return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, 8348 (__v16qi) _mm_setzero_si128 (), 8349 __M); 8350 } 8351 8352 static __inline__ void __DEFAULT_FN_ATTRS 8353 _mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) 8354 { 8355 __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); 8356 } 8357 8358 static __inline__ __m128i __DEFAULT_FN_ATTRS 8359 _mm_cvtepi64_epi32 (__m128i __A) 8360 { 8361 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, 8362 (__v4si)_mm_undefined_si128(), 8363 (__mmask8) -1); 8364 } 8365 8366 static __inline__ __m128i __DEFAULT_FN_ATTRS 8367 _mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) 8368 { 8369 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, 8370 (__v4si) __O, __M); 8371 } 8372 8373 static __inline__ __m128i __DEFAULT_FN_ATTRS 8374 _mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A) 8375 { 8376 return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, 8377 (__v4si) _mm_setzero_si128 (), 8378 __M); 8379 } 8380 8381 static __inline__ void __DEFAULT_FN_ATTRS 8382 _mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) 8383 { 8384 __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); 8385 } 8386 8387 static __inline__ __m128i __DEFAULT_FN_ATTRS 8388 _mm256_cvtepi64_epi32 (__m256i __A) 8389 { 8390 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A, 8391 (__v4si) _mm_undefined_si128(), 8392 (__mmask8) -1); 8393 } 8394 8395 static __inline__ __m128i __DEFAULT_FN_ATTRS 8396 _mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) 8397 { 8398 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A, 8399 (__v4si) __O, __M); 8400 } 8401 8402 static __inline__ __m128i __DEFAULT_FN_ATTRS 8403 _mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A) 8404 { 8405 return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A, 8406 (__v4si) _mm_setzero_si128 (), 8407 __M); 8408 } 8409 8410 static __inline__ void __DEFAULT_FN_ATTRS 8411 _mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) 8412 { 8413 __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); 8414 } 8415 8416 static __inline__ __m128i __DEFAULT_FN_ATTRS 8417 _mm_cvtepi64_epi16 (__m128i __A) 8418 { 8419 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, 8420 (__v8hi) _mm_undefined_si128(), 8421 (__mmask8) -1); 8422 } 8423 8424 static __inline__ __m128i __DEFAULT_FN_ATTRS 8425 _mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) 8426 { 8427 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, 8428 (__v8hi)__O, 8429 __M); 8430 } 8431 8432 static __inline__ __m128i __DEFAULT_FN_ATTRS 8433 _mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A) 8434 { 8435 return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, 8436 (__v8hi) _mm_setzero_si128 (), 8437 __M); 8438 } 8439 8440 static __inline__ void __DEFAULT_FN_ATTRS 8441 _mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) 8442 { 8443 __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); 8444 } 8445 8446 static __inline__ __m128i __DEFAULT_FN_ATTRS 8447 _mm256_cvtepi64_epi16 (__m256i __A) 8448 { 8449 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, 8450 (__v8hi)_mm_undefined_si128(), 8451 (__mmask8) -1); 8452 } 8453 8454 static __inline__ __m128i __DEFAULT_FN_ATTRS 8455 _mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) 8456 { 8457 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, 8458 (__v8hi) __O, __M); 8459 } 8460 8461 static __inline__ __m128i __DEFAULT_FN_ATTRS 8462 _mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A) 8463 { 8464 return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, 8465 (__v8hi) _mm_setzero_si128 (), 8466 __M); 8467 } 8468 8469 static __inline__ void __DEFAULT_FN_ATTRS 8470 _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) 8471 { 8472 __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); 8473 } 8474 8475 #define _mm256_extractf32x4_ps(A, imm) __extension__ ({ \ 8476 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \ 8477 (int)(imm), \ 8478 (__v4sf)_mm_setzero_ps(), \ 8479 (__mmask8)-1); }) 8480 8481 #define _mm256_mask_extractf32x4_ps(W, U, A, imm) __extension__ ({ \ 8482 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \ 8483 (int)(imm), \ 8484 (__v4sf)(__m128)(W), \ 8485 (__mmask8)(U)); }) 8486 8487 #define _mm256_maskz_extractf32x4_ps(U, A, imm) __extension__ ({ \ 8488 (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \ 8489 (int)(imm), \ 8490 (__v4sf)_mm_setzero_ps(), \ 8491 (__mmask8)(U)); }) 8492 8493 #define _mm256_extracti32x4_epi32(A, imm) __extension__ ({ \ 8494 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \ 8495 (int)(imm), \ 8496 (__v4si)_mm_setzero_si128(), \ 8497 (__mmask8)-1); }) 8498 8499 #define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \ 8500 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \ 8501 (int)(imm), \ 8502 (__v4si)(__m128i)(W), \ 8503 (__mmask8)(U)); }) 8504 8505 #define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \ 8506 (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \ 8507 (int)(imm), \ 8508 (__v4si)_mm_setzero_si128(), \ 8509 (__mmask8)(U)); }) 8510 8511 #define _mm256_insertf32x4(A, B, imm) __extension__ ({ \ 8512 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \ 8513 (__v4sf)(__m128)(B), (int)(imm), \ 8514 (__v8sf)_mm256_setzero_ps(), \ 8515 (__mmask8)-1); }) 8516 8517 #define _mm256_mask_insertf32x4(W, U, A, B, imm) __extension__ ({ \ 8518 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \ 8519 (__v4sf)(__m128)(B), (int)(imm), \ 8520 (__v8sf)(__m256)(W), \ 8521 (__mmask8)(U)); }) 8522 8523 #define _mm256_maskz_insertf32x4(U, A, B, imm) __extension__ ({ \ 8524 (__m256)__builtin_ia32_insertf32x4_256_mask((__v8sf)(__m256)(A), \ 8525 (__v4sf)(__m128)(B), (int)(imm), \ 8526 (__v8sf)_mm256_setzero_ps(), \ 8527 (__mmask8)(U)); }) 8528 8529 #define _mm256_inserti32x4(A, B, imm) __extension__ ({ \ 8530 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \ 8531 (__v4si)(__m128i)(B), \ 8532 (int)(imm), \ 8533 (__v8si)_mm256_setzero_si256(), \ 8534 (__mmask8)-1); }) 8535 8536 #define _mm256_mask_inserti32x4(W, U, A, B, imm) __extension__ ({ \ 8537 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \ 8538 (__v4si)(__m128i)(B), \ 8539 (int)(imm), \ 8540 (__v8si)(__m256i)(W), \ 8541 (__mmask8)(U)); }) 8542 8543 #define _mm256_maskz_inserti32x4(U, A, B, imm) __extension__ ({ \ 8544 (__m256i)__builtin_ia32_inserti32x4_256_mask((__v8si)(__m256i)(A), \ 8545 (__v4si)(__m128i)(B), \ 8546 (int)(imm), \ 8547 (__v8si)_mm256_setzero_si256(), \ 8548 (__mmask8)(U)); }) 8549 8550 #define _mm_getmant_pd(A, B, C) __extension__({\ 8551 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \ 8552 (int)(((C)<<2) | (B)), \ 8553 (__v2df)_mm_setzero_pd(), \ 8554 (__mmask8)-1); }) 8555 8556 #define _mm_mask_getmant_pd(W, U, A, B, C) __extension__({\ 8557 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \ 8558 (int)(((C)<<2) | (B)), \ 8559 (__v2df)(__m128d)(W), \ 8560 (__mmask8)(U)); }) 8561 8562 #define _mm_maskz_getmant_pd(U, A, B, C) __extension__({\ 8563 (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \ 8564 (int)(((C)<<2) | (B)), \ 8565 (__v2df)_mm_setzero_pd(), \ 8566 (__mmask8)(U)); }) 8567 8568 #define _mm256_getmant_pd(A, B, C) __extension__ ({ \ 8569 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \ 8570 (int)(((C)<<2) | (B)), \ 8571 (__v4df)_mm256_setzero_pd(), \ 8572 (__mmask8)-1); }) 8573 8574 #define _mm256_mask_getmant_pd(W, U, A, B, C) __extension__ ({ \ 8575 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \ 8576 (int)(((C)<<2) | (B)), \ 8577 (__v4df)(__m256d)(W), \ 8578 (__mmask8)(U)); }) 8579 8580 #define _mm256_maskz_getmant_pd(U, A, B, C) __extension__ ({ \ 8581 (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \ 8582 (int)(((C)<<2) | (B)), \ 8583 (__v4df)_mm256_setzero_pd(), \ 8584 (__mmask8)(U)); }) 8585 8586 #define _mm_getmant_ps(A, B, C) __extension__ ({ \ 8587 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \ 8588 (int)(((C)<<2) | (B)), \ 8589 (__v4sf)_mm_setzero_ps(), \ 8590 (__mmask8)-1); }) 8591 8592 #define _mm_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \ 8593 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \ 8594 (int)(((C)<<2) | (B)), \ 8595 (__v4sf)(__m128)(W), \ 8596 (__mmask8)(U)); }) 8597 8598 #define _mm_maskz_getmant_ps(U, A, B, C) __extension__ ({ \ 8599 (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \ 8600 (int)(((C)<<2) | (B)), \ 8601 (__v4sf)_mm_setzero_ps(), \ 8602 (__mmask8)(U)); }) 8603 8604 #define _mm256_getmant_ps(A, B, C) __extension__ ({ \ 8605 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \ 8606 (int)(((C)<<2) | (B)), \ 8607 (__v8sf)_mm256_setzero_ps(), \ 8608 (__mmask8)-1); }) 8609 8610 #define _mm256_mask_getmant_ps(W, U, A, B, C) __extension__ ({ \ 8611 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \ 8612 (int)(((C)<<2) | (B)), \ 8613 (__v8sf)(__m256)(W), \ 8614 (__mmask8)(U)); }) 8615 8616 #define _mm256_maskz_getmant_ps(U, A, B, C) __extension__ ({ \ 8617 (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \ 8618 (int)(((C)<<2) | (B)), \ 8619 (__v8sf)_mm256_setzero_ps(), \ 8620 (__mmask8)(U)); }) 8621 8622 #define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\ 8623 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \ 8624 (double const *)(addr), \ 8625 (__v2di)(__m128i)(index), \ 8626 (__mmask8)(mask), (int)(scale)); }) 8627 8628 #define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\ 8629 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \ 8630 (long long const *)(addr), \ 8631 (__v2di)(__m128i)(index), \ 8632 (__mmask8)(mask), (int)(scale)); }) 8633 8634 #define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\ 8635 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \ 8636 (double const *)(addr), \ 8637 (__v4di)(__m256i)(index), \ 8638 (__mmask8)(mask), (int)(scale)); }) 8639 8640 #define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\ 8641 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \ 8642 (long long const *)(addr), \ 8643 (__v4di)(__m256i)(index), \ 8644 (__mmask8)(mask), (int)(scale)); }) 8645 8646 #define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\ 8647 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \ 8648 (float const *)(addr), \ 8649 (__v2di)(__m128i)(index), \ 8650 (__mmask8)(mask), (int)(scale)); }) 8651 8652 #define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\ 8653 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \ 8654 (int const *)(addr), \ 8655 (__v2di)(__m128i)(index), \ 8656 (__mmask8)(mask), (int)(scale)); }) 8657 8658 #define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\ 8659 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \ 8660 (float const *)(addr), \ 8661 (__v4di)(__m256i)(index), \ 8662 (__mmask8)(mask), (int)(scale)); }) 8663 8664 #define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\ 8665 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \ 8666 (int const *)(addr), \ 8667 (__v4di)(__m256i)(index), \ 8668 (__mmask8)(mask), (int)(scale)); }) 8669 8670 #define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\ 8671 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \ 8672 (double const *)(addr), \ 8673 (__v4si)(__m128i)(index), \ 8674 (__mmask8)(mask), (int)(scale)); }) 8675 8676 #define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\ 8677 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \ 8678 (long long const *)(addr), \ 8679 (__v4si)(__m128i)(index), \ 8680 (__mmask8)(mask), (int)(scale)); }) 8681 8682 #define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) __extension__ ({\ 8683 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \ 8684 (double const *)(addr), \ 8685 (__v4si)(__m128i)(index), \ 8686 (__mmask8)(mask), (int)(scale)); }) 8687 8688 #define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) __extension__ ({\ 8689 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \ 8690 (long long const *)(addr), \ 8691 (__v4si)(__m128i)(index), \ 8692 (__mmask8)(mask), (int)(scale)); }) 8693 8694 #define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\ 8695 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \ 8696 (float const *)(addr), \ 8697 (__v4si)(__m128i)(index), \ 8698 (__mmask8)(mask), (int)(scale)); }) 8699 8700 #define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\ 8701 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \ 8702 (int const *)(addr), \ 8703 (__v4si)(__m128i)(index), \ 8704 (__mmask8)(mask), (int)(scale)); }) 8705 8706 #define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) __extension__ ({\ 8707 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \ 8708 (float const *)(addr), \ 8709 (__v8si)(__m256i)(index), \ 8710 (__mmask8)(mask), (int)(scale)); }) 8711 8712 #define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) __extension__ ({\ 8713 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \ 8714 (int const *)(addr), \ 8715 (__v8si)(__m256i)(index), \ 8716 (__mmask8)(mask), (int)(scale)); }) 8717 8718 #define _mm256_permutex_pd(X, C) __extension__ ({ \ 8719 (__m256d)__builtin_shufflevector((__v4df)(__m256d)(X), \ 8720 (__v4df)_mm256_undefined_pd(), \ 8721 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \ 8722 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); }) 8723 8724 #define _mm256_mask_permutex_pd(W, U, X, C) __extension__ ({ \ 8725 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ 8726 (__v4df)_mm256_permutex_pd((X), (C)), \ 8727 (__v4df)(__m256d)(W)); }) 8728 8729 #define _mm256_maskz_permutex_pd(U, X, C) __extension__ ({ \ 8730 (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ 8731 (__v4df)_mm256_permutex_pd((X), (C)), \ 8732 (__v4df)_mm256_setzero_pd()); }) 8733 8734 #define _mm256_permutex_epi64(X, C) __extension__ ({ \ 8735 (__m256i)__builtin_shufflevector((__v4di)(__m256i)(X), \ 8736 (__v4di)_mm256_undefined_si256(), \ 8737 ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \ 8738 ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); }) 8739 8740 #define _mm256_mask_permutex_epi64(W, U, X, C) __extension__ ({ \ 8741 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ 8742 (__v4di)_mm256_permutex_epi64((X), (C)), \ 8743 (__v4di)(__m256i)(W)); }) 8744 8745 #define _mm256_maskz_permutex_epi64(U, X, C) __extension__ ({ \ 8746 (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ 8747 (__v4di)_mm256_permutex_epi64((X), (C)), \ 8748 (__v4di)_mm256_setzero_si256()); }) 8749 8750 static __inline__ __m256d __DEFAULT_FN_ATTRS 8751 _mm256_permutexvar_pd (__m256i __X, __m256d __Y) 8752 { 8753 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y, 8754 (__v4di) __X, 8755 (__v4df) _mm256_undefined_si256 (), 8756 (__mmask8) -1); 8757 } 8758 8759 static __inline__ __m256d __DEFAULT_FN_ATTRS 8760 _mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X, 8761 __m256d __Y) 8762 { 8763 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y, 8764 (__v4di) __X, 8765 (__v4df) __W, 8766 (__mmask8) __U); 8767 } 8768 8769 static __inline__ __m256d __DEFAULT_FN_ATTRS 8770 _mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y) 8771 { 8772 return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y, 8773 (__v4di) __X, 8774 (__v4df) _mm256_setzero_pd (), 8775 (__mmask8) __U); 8776 } 8777 8778 static __inline__ __m256i __DEFAULT_FN_ATTRS 8779 _mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y) 8780 { 8781 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y, 8782 (__v4di) __X, 8783 (__v4di) _mm256_setzero_si256 (), 8784 (__mmask8) __M); 8785 } 8786 8787 static __inline__ __m256i __DEFAULT_FN_ATTRS 8788 _mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y) 8789 { 8790 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y, 8791 (__v4di) __X, 8792 (__v4di) _mm256_undefined_si256 (), 8793 (__mmask8) -1); 8794 } 8795 8796 static __inline__ __m256i __DEFAULT_FN_ATTRS 8797 _mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X, 8798 __m256i __Y) 8799 { 8800 return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y, 8801 (__v4di) __X, 8802 (__v4di) __W, 8803 __M); 8804 } 8805 8806 static __inline__ __m256 __DEFAULT_FN_ATTRS 8807 _mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X, 8808 __m256 __Y) 8809 { 8810 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y, 8811 (__v8si) __X, 8812 (__v8sf) __W, 8813 (__mmask8) __U); 8814 } 8815 8816 static __inline__ __m256 __DEFAULT_FN_ATTRS 8817 _mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y) 8818 { 8819 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y, 8820 (__v8si) __X, 8821 (__v8sf) _mm256_setzero_ps (), 8822 (__mmask8) __U); 8823 } 8824 8825 static __inline__ __m256 __DEFAULT_FN_ATTRS 8826 _mm256_permutexvar_ps (__m256i __X, __m256 __Y) 8827 { 8828 return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y, 8829 (__v8si) __X, 8830 (__v8sf) _mm256_undefined_si256 (), 8831 (__mmask8) -1); 8832 } 8833 8834 static __inline__ __m256i __DEFAULT_FN_ATTRS 8835 _mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) 8836 { 8837 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y, 8838 (__v8si) __X, 8839 (__v8si) _mm256_setzero_si256 (), 8840 __M); 8841 } 8842 8843 static __inline__ __m256i __DEFAULT_FN_ATTRS 8844 _mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X, 8845 __m256i __Y) 8846 { 8847 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y, 8848 (__v8si) __X, 8849 (__v8si) __W, 8850 (__mmask8) __M); 8851 } 8852 8853 static __inline__ __m256i __DEFAULT_FN_ATTRS 8854 _mm256_permutexvar_epi32 (__m256i __X, __m256i __Y) 8855 { 8856 return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y, 8857 (__v8si) __X, 8858 (__v8si) _mm256_undefined_si256(), 8859 (__mmask8) -1); 8860 } 8861 8862 #define _mm_alignr_epi32(A, B, imm) __extension__ ({ \ 8863 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \ 8864 (__v4si)(__m128i)(B), (int)(imm), \ 8865 (__v4si)_mm_undefined_si128(), \ 8866 (__mmask8)-1); }) 8867 8868 #define _mm_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \ 8869 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \ 8870 (__v4si)(__m128i)(B), (int)(imm), \ 8871 (__v4si)(__m128i)(W), \ 8872 (__mmask8)(U)); }) 8873 8874 #define _mm_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \ 8875 (__m128i)__builtin_ia32_alignd128_mask((__v4si)(__m128i)(A), \ 8876 (__v4si)(__m128i)(B), (int)(imm), \ 8877 (__v4si)_mm_setzero_si128(), \ 8878 (__mmask8)(U)); }) 8879 8880 #define _mm256_alignr_epi32(A, B, imm) __extension__ ({ \ 8881 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \ 8882 (__v8si)(__m256i)(B), (int)(imm), \ 8883 (__v8si)_mm256_undefined_si256(), \ 8884 (__mmask8)-1); }) 8885 8886 #define _mm256_mask_alignr_epi32(W, U, A, B, imm) __extension__ ({ \ 8887 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \ 8888 (__v8si)(__m256i)(B), (int)(imm), \ 8889 (__v8si)(__m256i)(W), \ 8890 (__mmask8)(U)); }) 8891 8892 #define _mm256_maskz_alignr_epi32(U, A, B, imm) __extension__ ({ \ 8893 (__m256i)__builtin_ia32_alignd256_mask((__v8si)(__m256i)(A), \ 8894 (__v8si)(__m256i)(B), (int)(imm), \ 8895 (__v8si)_mm256_setzero_si256(), \ 8896 (__mmask8)(U)); }) 8897 8898 #define _mm_alignr_epi64(A, B, imm) __extension__ ({ \ 8899 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \ 8900 (__v2di)(__m128i)(B), (int)(imm), \ 8901 (__v2di)_mm_setzero_di(), \ 8902 (__mmask8)-1); }) 8903 8904 #define _mm_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \ 8905 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \ 8906 (__v2di)(__m128i)(B), (int)(imm), \ 8907 (__v2di)(__m128i)(W), \ 8908 (__mmask8)(U)); }) 8909 8910 #define _mm_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \ 8911 (__m128i)__builtin_ia32_alignq128_mask((__v2di)(__m128i)(A), \ 8912 (__v2di)(__m128i)(B), (int)(imm), \ 8913 (__v2di)_mm_setzero_di(), \ 8914 (__mmask8)(U)); }) 8915 8916 #define _mm256_alignr_epi64(A, B, imm) __extension__ ({ \ 8917 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \ 8918 (__v4di)(__m256i)(B), (int)(imm), \ 8919 (__v4di)_mm256_undefined_pd(), \ 8920 (__mmask8)-1); }) 8921 8922 #define _mm256_mask_alignr_epi64(W, U, A, B, imm) __extension__ ({ \ 8923 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \ 8924 (__v4di)(__m256i)(B), (int)(imm), \ 8925 (__v4di)(__m256i)(W), \ 8926 (__mmask8)(U)); }) 8927 8928 #define _mm256_maskz_alignr_epi64(U, A, B, imm) __extension__ ({ \ 8929 (__m256i)__builtin_ia32_alignq256_mask((__v4di)(__m256i)(A), \ 8930 (__v4di)(__m256i)(B), (int)(imm), \ 8931 (__v4di)_mm256_setzero_si256(), \ 8932 (__mmask8)(U)); }) 8933 8934 static __inline__ __m128 __DEFAULT_FN_ATTRS 8935 _mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A) 8936 { 8937 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 8938 (__v4sf)_mm_movehdup_ps(__A), 8939 (__v4sf)__W); 8940 } 8941 8942 static __inline__ __m128 __DEFAULT_FN_ATTRS 8943 _mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A) 8944 { 8945 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 8946 (__v4sf)_mm_movehdup_ps(__A), 8947 (__v4sf)_mm_setzero_ps()); 8948 } 8949 8950 static __inline__ __m256 __DEFAULT_FN_ATTRS 8951 _mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A) 8952 { 8953 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 8954 (__v8sf)_mm256_movehdup_ps(__A), 8955 (__v8sf)__W); 8956 } 8957 8958 static __inline__ __m256 __DEFAULT_FN_ATTRS 8959 _mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A) 8960 { 8961 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 8962 (__v8sf)_mm256_movehdup_ps(__A), 8963 (__v8sf)_mm256_setzero_ps()); 8964 } 8965 8966 static __inline__ __m128 __DEFAULT_FN_ATTRS 8967 _mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A) 8968 { 8969 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 8970 (__v4sf)_mm_moveldup_ps(__A), 8971 (__v4sf)__W); 8972 } 8973 8974 static __inline__ __m128 __DEFAULT_FN_ATTRS 8975 _mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A) 8976 { 8977 return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, 8978 (__v4sf)_mm_moveldup_ps(__A), 8979 (__v4sf)_mm_setzero_ps()); 8980 } 8981 8982 static __inline__ __m256 __DEFAULT_FN_ATTRS 8983 _mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A) 8984 { 8985 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 8986 (__v8sf)_mm256_moveldup_ps(__A), 8987 (__v8sf)__W); 8988 } 8989 8990 static __inline__ __m256 __DEFAULT_FN_ATTRS 8991 _mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A) 8992 { 8993 return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, 8994 (__v8sf)_mm256_moveldup_ps(__A), 8995 (__v8sf)_mm256_setzero_ps()); 8996 } 8997 8998 #define _mm256_mask_shuffle_epi32(W, U, A, I) __extension__({\ 8999 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ 9000 (__v8si)_mm256_shuffle_epi32((A), (I)), \ 9001 (__v8si)(__m256i)(W)); }) 9002 9003 #define _mm256_maskz_shuffle_epi32(U, A, I) __extension__({\ 9004 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ 9005 (__v8si)_mm256_shuffle_epi32((A), (I)), \ 9006 (__v8si)_mm256_setzero_si256()); }) 9007 9008 #define _mm_mask_shuffle_epi32(W, U, A, I) __extension__({\ 9009 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ 9010 (__v4si)_mm_shuffle_epi32((A), (I)), \ 9011 (__v4si)(__m128i)(W)); }) 9012 9013 #define _mm_maskz_shuffle_epi32(U, A, I) __extension__({\ 9014 (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ 9015 (__v4si)_mm_shuffle_epi32((A), (I)), \ 9016 (__v4si)_mm_setzero_si128()); }) 9017 9018 static __inline__ __m128d __DEFAULT_FN_ATTRS 9019 _mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A) 9020 { 9021 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, 9022 (__v2df) __A, 9023 (__v2df) __W); 9024 } 9025 9026 static __inline__ __m128d __DEFAULT_FN_ATTRS 9027 _mm_maskz_mov_pd (__mmask8 __U, __m128d __A) 9028 { 9029 return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, 9030 (__v2df) __A, 9031 (__v2df) _mm_setzero_pd ()); 9032 } 9033 9034 static __inline__ __m256d __DEFAULT_FN_ATTRS 9035 _mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A) 9036 { 9037 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, 9038 (__v4df) __A, 9039 (__v4df) __W); 9040 } 9041 9042 static __inline__ __m256d __DEFAULT_FN_ATTRS 9043 _mm256_maskz_mov_pd (__mmask8 __U, __m256d __A) 9044 { 9045 return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, 9046 (__v4df) __A, 9047 (__v4df) _mm256_setzero_pd ()); 9048 } 9049 9050 static __inline__ __m128 __DEFAULT_FN_ATTRS 9051 _mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A) 9052 { 9053 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, 9054 (__v4sf) __A, 9055 (__v4sf) __W); 9056 } 9057 9058 static __inline__ __m128 __DEFAULT_FN_ATTRS 9059 _mm_maskz_mov_ps (__mmask8 __U, __m128 __A) 9060 { 9061 return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, 9062 (__v4sf) __A, 9063 (__v4sf) _mm_setzero_ps ()); 9064 } 9065 9066 static __inline__ __m256 __DEFAULT_FN_ATTRS 9067 _mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A) 9068 { 9069 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, 9070 (__v8sf) __A, 9071 (__v8sf) __W); 9072 } 9073 9074 static __inline__ __m256 __DEFAULT_FN_ATTRS 9075 _mm256_maskz_mov_ps (__mmask8 __U, __m256 __A) 9076 { 9077 return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, 9078 (__v8sf) __A, 9079 (__v8sf) _mm256_setzero_ps ()); 9080 } 9081 9082 static __inline__ __m128 __DEFAULT_FN_ATTRS 9083 _mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A) 9084 { 9085 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, 9086 (__v4sf) __W, 9087 (__mmask8) __U); 9088 } 9089 9090 static __inline__ __m128 __DEFAULT_FN_ATTRS 9091 _mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A) 9092 { 9093 return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, 9094 (__v4sf) 9095 _mm_setzero_ps (), 9096 (__mmask8) __U); 9097 } 9098 9099 static __inline__ __m256 __DEFAULT_FN_ATTRS 9100 _mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A) 9101 { 9102 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, 9103 (__v8sf) __W, 9104 (__mmask8) __U); 9105 } 9106 9107 static __inline__ __m256 __DEFAULT_FN_ATTRS 9108 _mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A) 9109 { 9110 return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, 9111 (__v8sf) 9112 _mm256_setzero_ps (), 9113 (__mmask8) __U); 9114 } 9115 9116 static __inline __m128i __DEFAULT_FN_ATTRS 9117 _mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A) 9118 { 9119 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION, 9120 (__v8hi) __W, 9121 (__mmask8) __U); 9122 } 9123 9124 static __inline __m128i __DEFAULT_FN_ATTRS 9125 _mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A) 9126 { 9127 return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, _MM_FROUND_CUR_DIRECTION, 9128 (__v8hi) _mm_setzero_si128 (), 9129 (__mmask8) __U); 9130 } 9131 9132 #define _mm_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \ 9133 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \ 9134 (__v8hi)(__m128i)(W), \ 9135 (__mmask8)(U)); }) 9136 9137 #define _mm_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \ 9138 (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \ 9139 (__v8hi)_mm_setzero_si128(), \ 9140 (__mmask8)(U)); }) 9141 9142 static __inline __m128i __DEFAULT_FN_ATTRS 9143 _mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A) 9144 { 9145 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION, 9146 (__v8hi) __W, 9147 (__mmask8) __U); 9148 } 9149 9150 static __inline __m128i __DEFAULT_FN_ATTRS 9151 _mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A) 9152 { 9153 return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, _MM_FROUND_CUR_DIRECTION, 9154 (__v8hi) _mm_setzero_si128(), 9155 (__mmask8) __U); 9156 } 9157 #define _mm256_mask_cvt_roundps_ph(W, U, A, I) __extension__ ({ \ 9158 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \ 9159 (__v8hi)(__m128i)(W), \ 9160 (__mmask8)(U)); }) 9161 9162 #define _mm256_maskz_cvt_roundps_ph(U, A, I) __extension__ ({ \ 9163 (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \ 9164 (__v8hi)_mm_setzero_si128(), \ 9165 (__mmask8)(U)); }) 9166 9167 9168 #undef __DEFAULT_FN_ATTRS 9169 9170 #endif /* __AVX512VLINTRIN_H */ 9171