avx512vlintrin.h revision 288943
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 the default attributes for the functions in this file. */ 32#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) 33 34/* Integer compare */ 35 36static __inline__ __mmask8 __DEFAULT_FN_ATTRS 37_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) { 38 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b, 39 (__mmask8)-1); 40} 41 42static __inline__ __mmask8 __DEFAULT_FN_ATTRS 43_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 44 return (__mmask8)__builtin_ia32_pcmpeqd128_mask((__v4si)__a, (__v4si)__b, 45 __u); 46} 47 48static __inline__ __mmask8 __DEFAULT_FN_ATTRS 49_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) { 50 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0, 51 (__mmask8)-1); 52} 53 54static __inline__ __mmask8 __DEFAULT_FN_ATTRS 55_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 56 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 0, 57 __u); 58} 59 60static __inline__ __mmask8 __DEFAULT_FN_ATTRS 61_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) { 62 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b, 63 (__mmask8)-1); 64} 65 66static __inline__ __mmask8 __DEFAULT_FN_ATTRS 67_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 68 return (__mmask8)__builtin_ia32_pcmpeqd256_mask((__v8si)__a, (__v8si)__b, 69 __u); 70} 71 72static __inline__ __mmask8 __DEFAULT_FN_ATTRS 73_mm256_cmpeq_epu32_mask(__m256i __a, __m256i __b) { 74 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0, 75 (__mmask8)-1); 76} 77 78static __inline__ __mmask8 __DEFAULT_FN_ATTRS 79_mm256_mask_cmpeq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 80 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 0, 81 __u); 82} 83 84static __inline__ __mmask8 __DEFAULT_FN_ATTRS 85_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) { 86 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b, 87 (__mmask8)-1); 88} 89 90static __inline__ __mmask8 __DEFAULT_FN_ATTRS 91_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 92 return (__mmask8)__builtin_ia32_pcmpeqq128_mask((__v2di)__a, (__v2di)__b, 93 __u); 94} 95 96static __inline__ __mmask8 __DEFAULT_FN_ATTRS 97_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) { 98 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0, 99 (__mmask8)-1); 100} 101 102static __inline__ __mmask8 __DEFAULT_FN_ATTRS 103_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 104 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 0, 105 __u); 106} 107 108static __inline__ __mmask8 __DEFAULT_FN_ATTRS 109_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) { 110 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b, 111 (__mmask8)-1); 112} 113 114static __inline__ __mmask8 __DEFAULT_FN_ATTRS 115_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 116 return (__mmask8)__builtin_ia32_pcmpeqq256_mask((__v4di)__a, (__v4di)__b, 117 __u); 118} 119 120static __inline__ __mmask8 __DEFAULT_FN_ATTRS 121_mm256_cmpeq_epu64_mask(__m256i __a, __m256i __b) { 122 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0, 123 (__mmask8)-1); 124} 125 126static __inline__ __mmask8 __DEFAULT_FN_ATTRS 127_mm256_mask_cmpeq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 128 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 0, 129 __u); 130} 131 132 133static __inline__ __mmask8 __DEFAULT_FN_ATTRS 134_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) { 135 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5, 136 (__mmask8)-1); 137} 138 139static __inline__ __mmask8 __DEFAULT_FN_ATTRS 140_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 141 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 5, 142 __u); 143} 144 145static __inline__ __mmask8 __DEFAULT_FN_ATTRS 146_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) { 147 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5, 148 (__mmask8)-1); 149} 150 151static __inline__ __mmask8 __DEFAULT_FN_ATTRS 152_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 153 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 5, 154 __u); 155} 156 157static __inline__ __mmask8 __DEFAULT_FN_ATTRS 158_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) { 159 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5, 160 (__mmask8)-1); 161} 162 163static __inline__ __mmask8 __DEFAULT_FN_ATTRS 164_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 165 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 5, 166 __u); 167} 168 169static __inline__ __mmask8 __DEFAULT_FN_ATTRS 170_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) { 171 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5, 172 (__mmask8)-1); 173} 174 175static __inline__ __mmask8 __DEFAULT_FN_ATTRS 176_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 177 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 5, 178 __u); 179} 180 181static __inline__ __mmask8 __DEFAULT_FN_ATTRS 182_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) { 183 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5, 184 (__mmask8)-1); 185} 186 187static __inline__ __mmask8 __DEFAULT_FN_ATTRS 188_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 189 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 5, 190 __u); 191} 192 193static __inline__ __mmask8 __DEFAULT_FN_ATTRS 194_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) { 195 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5, 196 (__mmask8)-1); 197} 198 199static __inline__ __mmask8 __DEFAULT_FN_ATTRS 200_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 201 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 5, 202 __u); 203} 204 205static __inline__ __mmask8 __DEFAULT_FN_ATTRS 206_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) { 207 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5, 208 (__mmask8)-1); 209} 210 211static __inline__ __mmask8 __DEFAULT_FN_ATTRS 212_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 213 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 5, 214 __u); 215} 216 217static __inline__ __mmask8 __DEFAULT_FN_ATTRS 218_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) { 219 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5, 220 (__mmask8)-1); 221} 222 223static __inline__ __mmask8 __DEFAULT_FN_ATTRS 224_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 225 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 5, 226 __u); 227} 228 229 230 231 232static __inline__ __mmask8 __DEFAULT_FN_ATTRS 233_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) { 234 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b, 235 (__mmask8)-1); 236} 237 238static __inline__ __mmask8 __DEFAULT_FN_ATTRS 239_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 240 return (__mmask8)__builtin_ia32_pcmpgtd128_mask((__v4si)__a, (__v4si)__b, 241 __u); 242} 243 244static __inline__ __mmask8 __DEFAULT_FN_ATTRS 245_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) { 246 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6, 247 (__mmask8)-1); 248} 249 250static __inline__ __mmask8 __DEFAULT_FN_ATTRS 251_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 252 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 6, 253 __u); 254} 255 256static __inline__ __mmask8 __DEFAULT_FN_ATTRS 257_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) { 258 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b, 259 (__mmask8)-1); 260} 261 262static __inline__ __mmask8 __DEFAULT_FN_ATTRS 263_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 264 return (__mmask8)__builtin_ia32_pcmpgtd256_mask((__v8si)__a, (__v8si)__b, 265 __u); 266} 267 268static __inline__ __mmask8 __DEFAULT_FN_ATTRS 269_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) { 270 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6, 271 (__mmask8)-1); 272} 273 274static __inline__ __mmask8 __DEFAULT_FN_ATTRS 275_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 276 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 6, 277 __u); 278} 279 280static __inline__ __mmask8 __DEFAULT_FN_ATTRS 281_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) { 282 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b, 283 (__mmask8)-1); 284} 285 286static __inline__ __mmask8 __DEFAULT_FN_ATTRS 287_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 288 return (__mmask8)__builtin_ia32_pcmpgtq128_mask((__v2di)__a, (__v2di)__b, 289 __u); 290} 291 292static __inline__ __mmask8 __DEFAULT_FN_ATTRS 293_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) { 294 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6, 295 (__mmask8)-1); 296} 297 298static __inline__ __mmask8 __DEFAULT_FN_ATTRS 299_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 300 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 6, 301 __u); 302} 303 304static __inline__ __mmask8 __DEFAULT_FN_ATTRS 305_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) { 306 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b, 307 (__mmask8)-1); 308} 309 310static __inline__ __mmask8 __DEFAULT_FN_ATTRS 311_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 312 return (__mmask8)__builtin_ia32_pcmpgtq256_mask((__v4di)__a, (__v4di)__b, 313 __u); 314} 315 316static __inline__ __mmask8 __DEFAULT_FN_ATTRS 317_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) { 318 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6, 319 (__mmask8)-1); 320} 321 322static __inline__ __mmask8 __DEFAULT_FN_ATTRS 323_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 324 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 6, 325 __u); 326} 327 328static __inline__ __mmask8 __DEFAULT_FN_ATTRS 329_mm_cmple_epi32_mask(__m128i __a, __m128i __b) { 330 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2, 331 (__mmask8)-1); 332} 333 334static __inline__ __mmask8 __DEFAULT_FN_ATTRS 335_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 336 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 2, 337 __u); 338} 339 340static __inline__ __mmask8 __DEFAULT_FN_ATTRS 341_mm_cmple_epu32_mask(__m128i __a, __m128i __b) { 342 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2, 343 (__mmask8)-1); 344} 345 346static __inline__ __mmask8 __DEFAULT_FN_ATTRS 347_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 348 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 2, 349 __u); 350} 351 352static __inline__ __mmask8 __DEFAULT_FN_ATTRS 353_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) { 354 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2, 355 (__mmask8)-1); 356} 357 358static __inline__ __mmask8 __DEFAULT_FN_ATTRS 359_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 360 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 2, 361 __u); 362} 363 364static __inline__ __mmask8 __DEFAULT_FN_ATTRS 365_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) { 366 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2, 367 (__mmask8)-1); 368} 369 370static __inline__ __mmask8 __DEFAULT_FN_ATTRS 371_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 372 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 2, 373 __u); 374} 375 376static __inline__ __mmask8 __DEFAULT_FN_ATTRS 377_mm_cmple_epi64_mask(__m128i __a, __m128i __b) { 378 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2, 379 (__mmask8)-1); 380} 381 382static __inline__ __mmask8 __DEFAULT_FN_ATTRS 383_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 384 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 2, 385 __u); 386} 387 388static __inline__ __mmask8 __DEFAULT_FN_ATTRS 389_mm_cmple_epu64_mask(__m128i __a, __m128i __b) { 390 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2, 391 (__mmask8)-1); 392} 393 394static __inline__ __mmask8 __DEFAULT_FN_ATTRS 395_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 396 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 2, 397 __u); 398} 399 400static __inline__ __mmask8 __DEFAULT_FN_ATTRS 401_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) { 402 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2, 403 (__mmask8)-1); 404} 405 406static __inline__ __mmask8 __DEFAULT_FN_ATTRS 407_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 408 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 2, 409 __u); 410} 411 412static __inline__ __mmask8 __DEFAULT_FN_ATTRS 413_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) { 414 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2, 415 (__mmask8)-1); 416} 417 418static __inline__ __mmask8 __DEFAULT_FN_ATTRS 419_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 420 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 2, 421 __u); 422} 423 424static __inline__ __mmask8 __DEFAULT_FN_ATTRS 425_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) { 426 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1, 427 (__mmask8)-1); 428} 429 430static __inline__ __mmask8 __DEFAULT_FN_ATTRS 431_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 432 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 1, 433 __u); 434} 435 436static __inline__ __mmask8 __DEFAULT_FN_ATTRS 437_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) { 438 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1, 439 (__mmask8)-1); 440} 441 442static __inline__ __mmask8 __DEFAULT_FN_ATTRS 443_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 444 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 1, 445 __u); 446} 447 448static __inline__ __mmask8 __DEFAULT_FN_ATTRS 449_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) { 450 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1, 451 (__mmask8)-1); 452} 453 454static __inline__ __mmask8 __DEFAULT_FN_ATTRS 455_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 456 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 1, 457 __u); 458} 459 460static __inline__ __mmask8 __DEFAULT_FN_ATTRS 461_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) { 462 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1, 463 (__mmask8)-1); 464} 465 466static __inline__ __mmask8 __DEFAULT_FN_ATTRS 467_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 468 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 1, 469 __u); 470} 471 472static __inline__ __mmask8 __DEFAULT_FN_ATTRS 473_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) { 474 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1, 475 (__mmask8)-1); 476} 477 478static __inline__ __mmask8 __DEFAULT_FN_ATTRS 479_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 480 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 1, 481 __u); 482} 483 484static __inline__ __mmask8 __DEFAULT_FN_ATTRS 485_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) { 486 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1, 487 (__mmask8)-1); 488} 489 490static __inline__ __mmask8 __DEFAULT_FN_ATTRS 491_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 492 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 1, 493 __u); 494} 495 496static __inline__ __mmask8 __DEFAULT_FN_ATTRS 497_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) { 498 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1, 499 (__mmask8)-1); 500} 501 502static __inline__ __mmask8 __DEFAULT_FN_ATTRS 503_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 504 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 1, 505 __u); 506} 507 508static __inline__ __mmask8 __DEFAULT_FN_ATTRS 509_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) { 510 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1, 511 (__mmask8)-1); 512} 513 514static __inline__ __mmask8 __DEFAULT_FN_ATTRS 515_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 516 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 1, 517 __u); 518} 519 520static __inline__ __mmask8 __DEFAULT_FN_ATTRS 521_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) { 522 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4, 523 (__mmask8)-1); 524} 525 526static __inline__ __mmask8 __DEFAULT_FN_ATTRS 527_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 528 return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)__a, (__v4si)__b, 4, 529 __u); 530} 531 532static __inline__ __mmask8 __DEFAULT_FN_ATTRS 533_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) { 534 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4, 535 (__mmask8)-1); 536} 537 538static __inline__ __mmask8 __DEFAULT_FN_ATTRS 539_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 540 return (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)__a, (__v4si)__b, 4, 541 __u); 542} 543 544static __inline__ __mmask8 __DEFAULT_FN_ATTRS 545_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) { 546 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4, 547 (__mmask8)-1); 548} 549 550static __inline__ __mmask8 __DEFAULT_FN_ATTRS 551_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 552 return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)__a, (__v8si)__b, 4, 553 __u); 554} 555 556static __inline__ __mmask8 __DEFAULT_FN_ATTRS 557_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) { 558 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4, 559 (__mmask8)-1); 560} 561 562static __inline__ __mmask8 __DEFAULT_FN_ATTRS 563_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 564 return (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)__a, (__v8si)__b, 4, 565 __u); 566} 567 568static __inline__ __mmask8 __DEFAULT_FN_ATTRS 569_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) { 570 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4, 571 (__mmask8)-1); 572} 573 574static __inline__ __mmask8 __DEFAULT_FN_ATTRS 575_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 576 return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)__a, (__v2di)__b, 4, 577 __u); 578} 579 580static __inline__ __mmask8 __DEFAULT_FN_ATTRS 581_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) { 582 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4, 583 (__mmask8)-1); 584} 585 586static __inline__ __mmask8 __DEFAULT_FN_ATTRS 587_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 588 return (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)__a, (__v2di)__b, 4, 589 __u); 590} 591 592static __inline__ __mmask8 __DEFAULT_FN_ATTRS 593_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) { 594 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4, 595 (__mmask8)-1); 596} 597 598static __inline__ __mmask8 __DEFAULT_FN_ATTRS 599_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 600 return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)__a, (__v4di)__b, 4, 601 __u); 602} 603 604static __inline__ __mmask8 __DEFAULT_FN_ATTRS 605_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) { 606 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4, 607 (__mmask8)-1); 608} 609 610static __inline__ __mmask8 __DEFAULT_FN_ATTRS 611_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 612 return (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)__a, (__v4di)__b, 4, 613 __u); 614} 615 616static __inline__ __m256i __DEFAULT_FN_ATTRS 617_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 618 __m256i __B) 619{ 620 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A, 621 (__v8si) __B, 622 (__v8si) __W, 623 (__mmask8) __U); 624} 625 626static __inline__ __m256i __DEFAULT_FN_ATTRS 627_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 628{ 629 return (__m256i) __builtin_ia32_paddd256_mask ((__v8si) __A, 630 (__v8si) __B, 631 (__v8si) 632 _mm256_setzero_si256 (), 633 (__mmask8) __U); 634} 635 636static __inline__ __m256i __DEFAULT_FN_ATTRS 637_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 638 __m256i __B) 639{ 640 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A, 641 (__v4di) __B, 642 (__v4di) __W, 643 (__mmask8) __U); 644} 645 646static __inline__ __m256i __DEFAULT_FN_ATTRS 647_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 648{ 649 return (__m256i) __builtin_ia32_paddq256_mask ((__v4di) __A, 650 (__v4di) __B, 651 (__v4di) 652 _mm256_setzero_si256 (), 653 (__mmask8) __U); 654} 655 656static __inline__ __m256i __DEFAULT_FN_ATTRS 657_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 658 __m256i __B) 659{ 660 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A, 661 (__v8si) __B, 662 (__v8si) __W, 663 (__mmask8) __U); 664} 665 666static __inline__ __m256i __DEFAULT_FN_ATTRS 667_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 668{ 669 return (__m256i) __builtin_ia32_psubd256_mask ((__v8si) __A, 670 (__v8si) __B, 671 (__v8si) 672 _mm256_setzero_si256 (), 673 (__mmask8) __U); 674} 675 676static __inline__ __m256i __DEFAULT_FN_ATTRS 677_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 678 __m256i __B) 679{ 680 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A, 681 (__v4di) __B, 682 (__v4di) __W, 683 (__mmask8) __U); 684} 685 686static __inline__ __m256i __DEFAULT_FN_ATTRS 687_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 688{ 689 return (__m256i) __builtin_ia32_psubq256_mask ((__v4di) __A, 690 (__v4di) __B, 691 (__v4di) 692 _mm256_setzero_si256 (), 693 (__mmask8) __U); 694} 695 696static __inline__ __m128i __DEFAULT_FN_ATTRS 697_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 698 __m128i __B) 699{ 700 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A, 701 (__v4si) __B, 702 (__v4si) __W, 703 (__mmask8) __U); 704} 705 706static __inline__ __m128i __DEFAULT_FN_ATTRS 707_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 708{ 709 return (__m128i) __builtin_ia32_paddd128_mask ((__v4si) __A, 710 (__v4si) __B, 711 (__v4si) 712 _mm_setzero_si128 (), 713 (__mmask8) __U); 714} 715 716static __inline__ __m128i __DEFAULT_FN_ATTRS 717_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 718 __m128i __B) 719{ 720 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A, 721 (__v2di) __B, 722 (__v2di) __W, 723 (__mmask8) __U); 724} 725 726static __inline__ __m128i __DEFAULT_FN_ATTRS 727_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 728{ 729 return (__m128i) __builtin_ia32_paddq128_mask ((__v2di) __A, 730 (__v2di) __B, 731 (__v2di) 732 _mm_setzero_si128 (), 733 (__mmask8) __U); 734} 735 736static __inline__ __m128i __DEFAULT_FN_ATTRS 737_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 738 __m128i __B) 739{ 740 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A, 741 (__v4si) __B, 742 (__v4si) __W, 743 (__mmask8) __U); 744} 745 746static __inline__ __m128i __DEFAULT_FN_ATTRS 747_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 748{ 749 return (__m128i) __builtin_ia32_psubd128_mask ((__v4si) __A, 750 (__v4si) __B, 751 (__v4si) 752 _mm_setzero_si128 (), 753 (__mmask8) __U); 754} 755 756static __inline__ __m128i __DEFAULT_FN_ATTRS 757_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 758 __m128i __B) 759{ 760 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A, 761 (__v2di) __B, 762 (__v2di) __W, 763 (__mmask8) __U); 764} 765 766static __inline__ __m128i __DEFAULT_FN_ATTRS 767_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 768{ 769 return (__m128i) __builtin_ia32_psubq128_mask ((__v2di) __A, 770 (__v2di) __B, 771 (__v2di) 772 _mm_setzero_si128 (), 773 (__mmask8) __U); 774} 775 776static __inline__ __m256i __DEFAULT_FN_ATTRS 777_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X, 778 __m256i __Y) 779{ 780 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X, 781 (__v8si) __Y, 782 (__v4di) __W, __M); 783} 784 785static __inline__ __m256i __DEFAULT_FN_ATTRS 786_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) 787{ 788 return (__m256i) __builtin_ia32_pmuldq256_mask ((__v8si) __X, 789 (__v8si) __Y, 790 (__v4di) 791 _mm256_setzero_si256 (), 792 __M); 793} 794 795static __inline__ __m128i __DEFAULT_FN_ATTRS 796_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X, 797 __m128i __Y) 798{ 799 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X, 800 (__v4si) __Y, 801 (__v2di) __W, __M); 802} 803 804static __inline__ __m128i __DEFAULT_FN_ATTRS 805_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) 806{ 807 return (__m128i) __builtin_ia32_pmuldq128_mask ((__v4si) __X, 808 (__v4si) __Y, 809 (__v2di) 810 _mm_setzero_si128 (), 811 __M); 812} 813 814static __inline__ __m256i __DEFAULT_FN_ATTRS 815_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X, 816 __m256i __Y) 817{ 818 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X, 819 (__v8si) __Y, 820 (__v4di) __W, __M); 821} 822 823static __inline__ __m256i __DEFAULT_FN_ATTRS 824_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) 825{ 826 return (__m256i) __builtin_ia32_pmuludq256_mask ((__v8si) __X, 827 (__v8si) __Y, 828 (__v4di) 829 _mm256_setzero_si256 (), 830 __M); 831} 832 833static __inline__ __m128i __DEFAULT_FN_ATTRS 834_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X, 835 __m128i __Y) 836{ 837 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X, 838 (__v4si) __Y, 839 (__v2di) __W, __M); 840} 841 842static __inline__ __m128i __DEFAULT_FN_ATTRS 843_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) 844{ 845 return (__m128i) __builtin_ia32_pmuludq128_mask ((__v4si) __X, 846 (__v4si) __Y, 847 (__v2di) 848 _mm_setzero_si128 (), 849 __M); 850} 851 852static __inline__ __m256i __DEFAULT_FN_ATTRS 853_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) 854{ 855 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A, 856 (__v8si) __B, 857 (__v8si) 858 _mm256_setzero_si256 (), 859 __M); 860} 861 862static __inline__ __m256i __DEFAULT_FN_ATTRS 863_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A, 864 __m256i __B) 865{ 866 return (__m256i) __builtin_ia32_pmulld256_mask ((__v8si) __A, 867 (__v8si) __B, 868 (__v8si) __W, __M); 869} 870 871static __inline__ __m128i __DEFAULT_FN_ATTRS 872_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) 873{ 874 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, 875 (__v4si) __B, 876 (__v4si) 877 _mm_setzero_si128 (), 878 __M); 879} 880 881static __inline__ __m128i __DEFAULT_FN_ATTRS 882_mm_mask_mullo_epi32 (__m128i __W, __mmask16 __M, __m128i __A, 883 __m128i __B) 884{ 885 return (__m128i) __builtin_ia32_pmulld128_mask ((__v4si) __A, 886 (__v4si) __B, 887 (__v4si) __W, __M); 888} 889 890static __inline__ __m256i __DEFAULT_FN_ATTRS 891_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 892 __m256i __B) 893{ 894 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A, 895 (__v8si) __B, 896 (__v8si) __W, 897 (__mmask8) __U); 898} 899 900static __inline__ __m256i __DEFAULT_FN_ATTRS 901_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 902{ 903 return (__m256i) __builtin_ia32_pandd256_mask ((__v8si) __A, 904 (__v8si) __B, 905 (__v8si) 906 _mm256_setzero_si256 (), 907 (__mmask8) __U); 908} 909 910static __inline__ __m128i __DEFAULT_FN_ATTRS 911_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 912{ 913 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A, 914 (__v4si) __B, 915 (__v4si) __W, 916 (__mmask8) __U); 917} 918 919static __inline__ __m128i __DEFAULT_FN_ATTRS 920_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 921{ 922 return (__m128i) __builtin_ia32_pandd128_mask ((__v4si) __A, 923 (__v4si) __B, 924 (__v4si) 925 _mm_setzero_si128 (), 926 (__mmask8) __U); 927} 928 929static __inline__ __m256i __DEFAULT_FN_ATTRS 930_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 931 __m256i __B) 932{ 933 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A, 934 (__v8si) __B, 935 (__v8si) __W, 936 (__mmask8) __U); 937} 938 939static __inline__ __m256i __DEFAULT_FN_ATTRS 940_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 941{ 942 return (__m256i) __builtin_ia32_pandnd256_mask ((__v8si) __A, 943 (__v8si) __B, 944 (__v8si) 945 _mm256_setzero_si256 (), 946 (__mmask8) __U); 947} 948 949static __inline__ __m128i __DEFAULT_FN_ATTRS 950_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 951 __m128i __B) 952{ 953 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A, 954 (__v4si) __B, 955 (__v4si) __W, 956 (__mmask8) __U); 957} 958 959static __inline__ __m128i __DEFAULT_FN_ATTRS 960_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 961{ 962 return (__m128i) __builtin_ia32_pandnd128_mask ((__v4si) __A, 963 (__v4si) __B, 964 (__v4si) 965 _mm_setzero_si128 (), 966 (__mmask8) __U); 967} 968 969static __inline__ __m256i __DEFAULT_FN_ATTRS 970_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 971 __m256i __B) 972{ 973 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A, 974 (__v8si) __B, 975 (__v8si) __W, 976 (__mmask8) __U); 977} 978 979static __inline__ __m256i __DEFAULT_FN_ATTRS 980_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 981{ 982 return (__m256i) __builtin_ia32_pord256_mask ((__v8si) __A, 983 (__v8si) __B, 984 (__v8si) 985 _mm256_setzero_si256 (), 986 (__mmask8) __U); 987} 988 989static __inline__ __m128i __DEFAULT_FN_ATTRS 990_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 991{ 992 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A, 993 (__v4si) __B, 994 (__v4si) __W, 995 (__mmask8) __U); 996} 997 998static __inline__ __m128i __DEFAULT_FN_ATTRS 999_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 1000{ 1001 return (__m128i) __builtin_ia32_pord128_mask ((__v4si) __A, 1002 (__v4si) __B, 1003 (__v4si) 1004 _mm_setzero_si128 (), 1005 (__mmask8) __U); 1006} 1007 1008static __inline__ __m256i __DEFAULT_FN_ATTRS 1009_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 1010 __m256i __B) 1011{ 1012 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A, 1013 (__v8si) __B, 1014 (__v8si) __W, 1015 (__mmask8) __U); 1016} 1017 1018static __inline__ __m256i __DEFAULT_FN_ATTRS 1019_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) 1020{ 1021 return (__m256i) __builtin_ia32_pxord256_mask ((__v8si) __A, 1022 (__v8si) __B, 1023 (__v8si) 1024 _mm256_setzero_si256 (), 1025 (__mmask8) __U); 1026} 1027 1028static __inline__ __m128i __DEFAULT_FN_ATTRS 1029_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 1030 __m128i __B) 1031{ 1032 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A, 1033 (__v4si) __B, 1034 (__v4si) __W, 1035 (__mmask8) __U); 1036} 1037 1038static __inline__ __m128i __DEFAULT_FN_ATTRS 1039_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) 1040{ 1041 return (__m128i) __builtin_ia32_pxord128_mask ((__v4si) __A, 1042 (__v4si) __B, 1043 (__v4si) 1044 _mm_setzero_si128 (), 1045 (__mmask8) __U); 1046} 1047 1048static __inline__ __m256i __DEFAULT_FN_ATTRS 1049_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 1050 __m256i __B) 1051{ 1052 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A, 1053 (__v4di) __B, 1054 (__v4di) __W, __U); 1055} 1056 1057static __inline__ __m256i __DEFAULT_FN_ATTRS 1058_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 1059{ 1060 return (__m256i) __builtin_ia32_pandq256_mask ((__v4di) __A, 1061 (__v4di) __B, 1062 (__v4di) 1063 _mm256_setzero_pd (), 1064 __U); 1065} 1066 1067static __inline__ __m128i __DEFAULT_FN_ATTRS 1068_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 1069 __m128i __B) 1070{ 1071 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A, 1072 (__v2di) __B, 1073 (__v2di) __W, __U); 1074} 1075 1076static __inline__ __m128i __DEFAULT_FN_ATTRS 1077_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 1078{ 1079 return (__m128i) __builtin_ia32_pandq128_mask ((__v2di) __A, 1080 (__v2di) __B, 1081 (__v2di) 1082 _mm_setzero_pd (), 1083 __U); 1084} 1085 1086static __inline__ __m256i __DEFAULT_FN_ATTRS 1087_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 1088 __m256i __B) 1089{ 1090 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A, 1091 (__v4di) __B, 1092 (__v4di) __W, __U); 1093} 1094 1095static __inline__ __m256i __DEFAULT_FN_ATTRS 1096_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 1097{ 1098 return (__m256i) __builtin_ia32_pandnq256_mask ((__v4di) __A, 1099 (__v4di) __B, 1100 (__v4di) 1101 _mm256_setzero_pd (), 1102 __U); 1103} 1104 1105static __inline__ __m128i __DEFAULT_FN_ATTRS 1106_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 1107 __m128i __B) 1108{ 1109 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A, 1110 (__v2di) __B, 1111 (__v2di) __W, __U); 1112} 1113 1114static __inline__ __m128i __DEFAULT_FN_ATTRS 1115_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 1116{ 1117 return (__m128i) __builtin_ia32_pandnq128_mask ((__v2di) __A, 1118 (__v2di) __B, 1119 (__v2di) 1120 _mm_setzero_pd (), 1121 __U); 1122} 1123 1124static __inline__ __m256i __DEFAULT_FN_ATTRS 1125_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 1126 __m256i __B) 1127{ 1128 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A, 1129 (__v4di) __B, 1130 (__v4di) __W, 1131 (__mmask8) __U); 1132} 1133 1134static __inline__ __m256i __DEFAULT_FN_ATTRS 1135_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 1136{ 1137 return (__m256i) __builtin_ia32_porq256_mask ((__v4di) __A, 1138 (__v4di) __B, 1139 (__v4di) 1140 _mm256_setzero_si256 (), 1141 (__mmask8) __U); 1142} 1143 1144static __inline__ __m128i __DEFAULT_FN_ATTRS 1145_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) 1146{ 1147 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A, 1148 (__v2di) __B, 1149 (__v2di) __W, 1150 (__mmask8) __U); 1151} 1152 1153static __inline__ __m128i __DEFAULT_FN_ATTRS 1154_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 1155{ 1156 return (__m128i) __builtin_ia32_porq128_mask ((__v2di) __A, 1157 (__v2di) __B, 1158 (__v2di) 1159 _mm_setzero_si128 (), 1160 (__mmask8) __U); 1161} 1162 1163static __inline__ __m256i __DEFAULT_FN_ATTRS 1164_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 1165 __m256i __B) 1166{ 1167 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A, 1168 (__v4di) __B, 1169 (__v4di) __W, 1170 (__mmask8) __U); 1171} 1172 1173static __inline__ __m256i __DEFAULT_FN_ATTRS 1174_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) 1175{ 1176 return (__m256i) __builtin_ia32_pxorq256_mask ((__v4di) __A, 1177 (__v4di) __B, 1178 (__v4di) 1179 _mm256_setzero_si256 (), 1180 (__mmask8) __U); 1181} 1182 1183static __inline__ __m128i __DEFAULT_FN_ATTRS 1184_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 1185 __m128i __B) 1186{ 1187 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A, 1188 (__v2di) __B, 1189 (__v2di) __W, 1190 (__mmask8) __U); 1191} 1192 1193static __inline__ __m128i __DEFAULT_FN_ATTRS 1194_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) 1195{ 1196 return (__m128i) __builtin_ia32_pxorq128_mask ((__v2di) __A, 1197 (__v2di) __B, 1198 (__v2di) 1199 _mm_setzero_si128 (), 1200 (__mmask8) __U); 1201} 1202 1203#define _mm_cmp_epi32_mask(a, b, p) __extension__ ({ \ 1204 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \ 1205 (__v4si)(__m128i)(b), \ 1206 (p), (__mmask8)-1); }) 1207 1208#define _mm_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \ 1209 (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \ 1210 (__v4si)(__m128i)(b), \ 1211 (p), (__mmask8)(m)); }) 1212 1213#define _mm_cmp_epu32_mask(a, b, p) __extension__ ({ \ 1214 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \ 1215 (__v4si)(__m128i)(b), \ 1216 (p), (__mmask8)-1); }) 1217 1218#define _mm_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \ 1219 (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \ 1220 (__v4si)(__m128i)(b), \ 1221 (p), (__mmask8)(m)); }) 1222 1223#define _mm256_cmp_epi32_mask(a, b, p) __extension__ ({ \ 1224 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \ 1225 (__v8si)(__m256i)(b), \ 1226 (p), (__mmask8)-1); }) 1227 1228#define _mm256_mask_cmp_epi32_mask(m, a, b, p) __extension__ ({ \ 1229 (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \ 1230 (__v8si)(__m256i)(b), \ 1231 (p), (__mmask8)(m)); }) 1232 1233#define _mm256_cmp_epu32_mask(a, b, p) __extension__ ({ \ 1234 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \ 1235 (__v8si)(__m256i)(b), \ 1236 (p), (__mmask8)-1); }) 1237 1238#define _mm256_mask_cmp_epu32_mask(m, a, b, p) __extension__ ({ \ 1239 (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \ 1240 (__v8si)(__m256i)(b), \ 1241 (p), (__mmask8)(m)); }) 1242 1243#define _mm_cmp_epi64_mask(a, b, p) __extension__ ({ \ 1244 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \ 1245 (__v2di)(__m128i)(b), \ 1246 (p), (__mmask8)-1); }) 1247 1248#define _mm_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \ 1249 (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \ 1250 (__v2di)(__m128i)(b), \ 1251 (p), (__mmask8)(m)); }) 1252 1253#define _mm_cmp_epu64_mask(a, b, p) __extension__ ({ \ 1254 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \ 1255 (__v2di)(__m128i)(b), \ 1256 (p), (__mmask8)-1); }) 1257 1258#define _mm_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \ 1259 (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \ 1260 (__v2di)(__m128i)(b), \ 1261 (p), (__mmask8)(m)); }) 1262 1263#define _mm256_cmp_epi64_mask(a, b, p) __extension__ ({ \ 1264 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \ 1265 (__v4di)(__m256i)(b), \ 1266 (p), (__mmask8)-1); }) 1267 1268#define _mm256_mask_cmp_epi64_mask(m, a, b, p) __extension__ ({ \ 1269 (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \ 1270 (__v4di)(__m256i)(b), \ 1271 (p), (__mmask8)(m)); }) 1272 1273#define _mm256_cmp_epu64_mask(a, b, p) __extension__ ({ \ 1274 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \ 1275 (__v4di)(__m256i)(b), \ 1276 (p), (__mmask8)-1); }) 1277 1278#define _mm256_mask_cmp_epu64_mask(m, a, b, p) __extension__ ({ \ 1279 (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \ 1280 (__v4di)(__m256i)(b), \ 1281 (p), (__mmask8)(m)); }) 1282 1283#define _mm256_cmp_ps_mask(a, b, p) __extension__ ({ \ 1284 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \ 1285 (__v8sf)(__m256)(b), \ 1286 (p), (__mmask8)-1); }) 1287 1288#define _mm256_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \ 1289 (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \ 1290 (__v8sf)(__m256)(b), \ 1291 (p), (__mmask8)(m)); }) 1292 1293#define _mm256_cmp_pd_mask(a, b, p) __extension__ ({ \ 1294 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \ 1295 (__v4df)(__m256)(b), \ 1296 (p), (__mmask8)-1); }) 1297 1298#define _mm256_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \ 1299 (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256)(a), \ 1300 (__v4df)(__m256)(b), \ 1301 (p), (__mmask8)(m)); }) 1302 1303#define _mm128_cmp_ps_mask(a, b, p) __extension__ ({ \ 1304 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \ 1305 (__v4sf)(__m128)(b), \ 1306 (p), (__mmask8)-1); }) 1307 1308#define _mm128_mask_cmp_ps_mask(m, a, b, p) __extension__ ({ \ 1309 (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \ 1310 (__v4sf)(__m128)(b), \ 1311 (p), (__mmask8)(m)); }) 1312 1313#define _mm128_cmp_pd_mask(a, b, p) __extension__ ({ \ 1314 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \ 1315 (__v2df)(__m128)(b), \ 1316 (p), (__mmask8)-1); }) 1317 1318#define _mm128_mask_cmp_pd_mask(m, a, b, p) __extension__ ({ \ 1319 (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128)(a), \ 1320 (__v2df)(__m128)(b), \ 1321 (p), (__mmask8)(m)); }) 1322 1323static __inline__ __m128d __DEFAULT_FN_ATTRS 1324_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1325{ 1326 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A, 1327 (__v2df) __B, 1328 (__v2df) __C, 1329 (__mmask8) __U); 1330} 1331 1332static __inline__ __m128d __DEFAULT_FN_ATTRS 1333_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1334{ 1335 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 ((__v2df) __A, 1336 (__v2df) __B, 1337 (__v2df) __C, 1338 (__mmask8) __U); 1339} 1340 1341static __inline__ __m128d __DEFAULT_FN_ATTRS 1342_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1343{ 1344 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A, 1345 (__v2df) __B, 1346 (__v2df) __C, 1347 (__mmask8) __U); 1348} 1349 1350static __inline__ __m128d __DEFAULT_FN_ATTRS 1351_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1352{ 1353 return (__m128d) __builtin_ia32_vfmaddpd128_mask ((__v2df) __A, 1354 (__v2df) __B, 1355 -(__v2df) __C, 1356 (__mmask8) __U); 1357} 1358 1359static __inline__ __m128d __DEFAULT_FN_ATTRS 1360_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1361{ 1362 return (__m128d) __builtin_ia32_vfmaddpd128_maskz ((__v2df) __A, 1363 (__v2df) __B, 1364 -(__v2df) __C, 1365 (__mmask8) __U); 1366} 1367 1368static __inline__ __m128d __DEFAULT_FN_ATTRS 1369_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1370{ 1371 return (__m128d) __builtin_ia32_vfmaddpd128_mask3 (-(__v2df) __A, 1372 (__v2df) __B, 1373 (__v2df) __C, 1374 (__mmask8) __U); 1375} 1376 1377static __inline__ __m128d __DEFAULT_FN_ATTRS 1378_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1379{ 1380 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A, 1381 (__v2df) __B, 1382 (__v2df) __C, 1383 (__mmask8) __U); 1384} 1385 1386static __inline__ __m128d __DEFAULT_FN_ATTRS 1387_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1388{ 1389 return (__m128d) __builtin_ia32_vfmaddpd128_maskz (-(__v2df) __A, 1390 (__v2df) __B, 1391 -(__v2df) __C, 1392 (__mmask8) __U); 1393} 1394 1395static __inline__ __m256d __DEFAULT_FN_ATTRS 1396_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1397{ 1398 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A, 1399 (__v4df) __B, 1400 (__v4df) __C, 1401 (__mmask8) __U); 1402} 1403 1404static __inline__ __m256d __DEFAULT_FN_ATTRS 1405_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1406{ 1407 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 ((__v4df) __A, 1408 (__v4df) __B, 1409 (__v4df) __C, 1410 (__mmask8) __U); 1411} 1412 1413static __inline__ __m256d __DEFAULT_FN_ATTRS 1414_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1415{ 1416 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A, 1417 (__v4df) __B, 1418 (__v4df) __C, 1419 (__mmask8) __U); 1420} 1421 1422static __inline__ __m256d __DEFAULT_FN_ATTRS 1423_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1424{ 1425 return (__m256d) __builtin_ia32_vfmaddpd256_mask ((__v4df) __A, 1426 (__v4df) __B, 1427 -(__v4df) __C, 1428 (__mmask8) __U); 1429} 1430 1431static __inline__ __m256d __DEFAULT_FN_ATTRS 1432_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1433{ 1434 return (__m256d) __builtin_ia32_vfmaddpd256_maskz ((__v4df) __A, 1435 (__v4df) __B, 1436 -(__v4df) __C, 1437 (__mmask8) __U); 1438} 1439 1440static __inline__ __m256d __DEFAULT_FN_ATTRS 1441_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1442{ 1443 return (__m256d) __builtin_ia32_vfmaddpd256_mask3 (-(__v4df) __A, 1444 (__v4df) __B, 1445 (__v4df) __C, 1446 (__mmask8) __U); 1447} 1448 1449static __inline__ __m256d __DEFAULT_FN_ATTRS 1450_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1451{ 1452 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A, 1453 (__v4df) __B, 1454 (__v4df) __C, 1455 (__mmask8) __U); 1456} 1457 1458static __inline__ __m256d __DEFAULT_FN_ATTRS 1459_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1460{ 1461 return (__m256d) __builtin_ia32_vfmaddpd256_maskz (-(__v4df) __A, 1462 (__v4df) __B, 1463 -(__v4df) __C, 1464 (__mmask8) __U); 1465} 1466 1467static __inline__ __m128 __DEFAULT_FN_ATTRS 1468_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1469{ 1470 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A, 1471 (__v4sf) __B, 1472 (__v4sf) __C, 1473 (__mmask8) __U); 1474} 1475 1476static __inline__ __m128 __DEFAULT_FN_ATTRS 1477_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1478{ 1479 return (__m128) __builtin_ia32_vfmaddps128_mask3 ((__v4sf) __A, 1480 (__v4sf) __B, 1481 (__v4sf) __C, 1482 (__mmask8) __U); 1483} 1484 1485static __inline__ __m128 __DEFAULT_FN_ATTRS 1486_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1487{ 1488 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A, 1489 (__v4sf) __B, 1490 (__v4sf) __C, 1491 (__mmask8) __U); 1492} 1493 1494static __inline__ __m128 __DEFAULT_FN_ATTRS 1495_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1496{ 1497 return (__m128) __builtin_ia32_vfmaddps128_mask ((__v4sf) __A, 1498 (__v4sf) __B, 1499 -(__v4sf) __C, 1500 (__mmask8) __U); 1501} 1502 1503static __inline__ __m128 __DEFAULT_FN_ATTRS 1504_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1505{ 1506 return (__m128) __builtin_ia32_vfmaddps128_maskz ((__v4sf) __A, 1507 (__v4sf) __B, 1508 -(__v4sf) __C, 1509 (__mmask8) __U); 1510} 1511 1512static __inline__ __m128 __DEFAULT_FN_ATTRS 1513_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1514{ 1515 return (__m128) __builtin_ia32_vfmaddps128_mask3 (-(__v4sf) __A, 1516 (__v4sf) __B, 1517 (__v4sf) __C, 1518 (__mmask8) __U); 1519} 1520 1521static __inline__ __m128 __DEFAULT_FN_ATTRS 1522_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1523{ 1524 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A, 1525 (__v4sf) __B, 1526 (__v4sf) __C, 1527 (__mmask8) __U); 1528} 1529 1530static __inline__ __m128 __DEFAULT_FN_ATTRS 1531_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1532{ 1533 return (__m128) __builtin_ia32_vfmaddps128_maskz (-(__v4sf) __A, 1534 (__v4sf) __B, 1535 -(__v4sf) __C, 1536 (__mmask8) __U); 1537} 1538 1539static __inline__ __m256 __DEFAULT_FN_ATTRS 1540_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1541{ 1542 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A, 1543 (__v8sf) __B, 1544 (__v8sf) __C, 1545 (__mmask8) __U); 1546} 1547 1548static __inline__ __m256 __DEFAULT_FN_ATTRS 1549_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1550{ 1551 return (__m256) __builtin_ia32_vfmaddps256_mask3 ((__v8sf) __A, 1552 (__v8sf) __B, 1553 (__v8sf) __C, 1554 (__mmask8) __U); 1555} 1556 1557static __inline__ __m256 __DEFAULT_FN_ATTRS 1558_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1559{ 1560 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A, 1561 (__v8sf) __B, 1562 (__v8sf) __C, 1563 (__mmask8) __U); 1564} 1565 1566static __inline__ __m256 __DEFAULT_FN_ATTRS 1567_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1568{ 1569 return (__m256) __builtin_ia32_vfmaddps256_mask ((__v8sf) __A, 1570 (__v8sf) __B, 1571 -(__v8sf) __C, 1572 (__mmask8) __U); 1573} 1574 1575static __inline__ __m256 __DEFAULT_FN_ATTRS 1576_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1577{ 1578 return (__m256) __builtin_ia32_vfmaddps256_maskz ((__v8sf) __A, 1579 (__v8sf) __B, 1580 -(__v8sf) __C, 1581 (__mmask8) __U); 1582} 1583 1584static __inline__ __m256 __DEFAULT_FN_ATTRS 1585_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1586{ 1587 return (__m256) __builtin_ia32_vfmaddps256_mask3 (-(__v8sf) __A, 1588 (__v8sf) __B, 1589 (__v8sf) __C, 1590 (__mmask8) __U); 1591} 1592 1593static __inline__ __m256 __DEFAULT_FN_ATTRS 1594_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1595{ 1596 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A, 1597 (__v8sf) __B, 1598 (__v8sf) __C, 1599 (__mmask8) __U); 1600} 1601 1602static __inline__ __m256 __DEFAULT_FN_ATTRS 1603_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1604{ 1605 return (__m256) __builtin_ia32_vfmaddps256_maskz (-(__v8sf) __A, 1606 (__v8sf) __B, 1607 -(__v8sf) __C, 1608 (__mmask8) __U); 1609} 1610 1611static __inline__ __m128d __DEFAULT_FN_ATTRS 1612_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1613{ 1614 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A, 1615 (__v2df) __B, 1616 (__v2df) __C, 1617 (__mmask8) __U); 1618} 1619 1620static __inline__ __m128d __DEFAULT_FN_ATTRS 1621_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1622{ 1623 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask3 ((__v2df) __A, 1624 (__v2df) __B, 1625 (__v2df) __C, 1626 (__mmask8) 1627 __U); 1628} 1629 1630static __inline__ __m128d __DEFAULT_FN_ATTRS 1631_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1632{ 1633 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A, 1634 (__v2df) __B, 1635 (__v2df) __C, 1636 (__mmask8) 1637 __U); 1638} 1639 1640static __inline__ __m128d __DEFAULT_FN_ATTRS 1641_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1642{ 1643 return (__m128d) __builtin_ia32_vfmaddsubpd128_mask ((__v2df) __A, 1644 (__v2df) __B, 1645 -(__v2df) __C, 1646 (__mmask8) __U); 1647} 1648 1649static __inline__ __m128d __DEFAULT_FN_ATTRS 1650_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) 1651{ 1652 return (__m128d) __builtin_ia32_vfmaddsubpd128_maskz ((__v2df) __A, 1653 (__v2df) __B, 1654 -(__v2df) __C, 1655 (__mmask8) 1656 __U); 1657} 1658 1659static __inline__ __m256d __DEFAULT_FN_ATTRS 1660_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1661{ 1662 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A, 1663 (__v4df) __B, 1664 (__v4df) __C, 1665 (__mmask8) __U); 1666} 1667 1668static __inline__ __m256d __DEFAULT_FN_ATTRS 1669_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1670{ 1671 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask3 ((__v4df) __A, 1672 (__v4df) __B, 1673 (__v4df) __C, 1674 (__mmask8) 1675 __U); 1676} 1677 1678static __inline__ __m256d __DEFAULT_FN_ATTRS 1679_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1680{ 1681 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A, 1682 (__v4df) __B, 1683 (__v4df) __C, 1684 (__mmask8) 1685 __U); 1686} 1687 1688static __inline__ __m256d __DEFAULT_FN_ATTRS 1689_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1690{ 1691 return (__m256d) __builtin_ia32_vfmaddsubpd256_mask ((__v4df) __A, 1692 (__v4df) __B, 1693 -(__v4df) __C, 1694 (__mmask8) __U); 1695} 1696 1697static __inline__ __m256d __DEFAULT_FN_ATTRS 1698_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) 1699{ 1700 return (__m256d) __builtin_ia32_vfmaddsubpd256_maskz ((__v4df) __A, 1701 (__v4df) __B, 1702 -(__v4df) __C, 1703 (__mmask8) 1704 __U); 1705} 1706 1707static __inline__ __m128 __DEFAULT_FN_ATTRS 1708_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1709{ 1710 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A, 1711 (__v4sf) __B, 1712 (__v4sf) __C, 1713 (__mmask8) __U); 1714} 1715 1716static __inline__ __m128 __DEFAULT_FN_ATTRS 1717_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1718{ 1719 return (__m128) __builtin_ia32_vfmaddsubps128_mask3 ((__v4sf) __A, 1720 (__v4sf) __B, 1721 (__v4sf) __C, 1722 (__mmask8) __U); 1723} 1724 1725static __inline__ __m128 __DEFAULT_FN_ATTRS 1726_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1727{ 1728 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A, 1729 (__v4sf) __B, 1730 (__v4sf) __C, 1731 (__mmask8) __U); 1732} 1733 1734static __inline__ __m128 __DEFAULT_FN_ATTRS 1735_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1736{ 1737 return (__m128) __builtin_ia32_vfmaddsubps128_mask ((__v4sf) __A, 1738 (__v4sf) __B, 1739 -(__v4sf) __C, 1740 (__mmask8) __U); 1741} 1742 1743static __inline__ __m128 __DEFAULT_FN_ATTRS 1744_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 1745{ 1746 return (__m128) __builtin_ia32_vfmaddsubps128_maskz ((__v4sf) __A, 1747 (__v4sf) __B, 1748 -(__v4sf) __C, 1749 (__mmask8) __U); 1750} 1751 1752static __inline__ __m256 __DEFAULT_FN_ATTRS 1753_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, 1754 __m256 __C) 1755{ 1756 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A, 1757 (__v8sf) __B, 1758 (__v8sf) __C, 1759 (__mmask8) __U); 1760} 1761 1762static __inline__ __m256 __DEFAULT_FN_ATTRS 1763_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1764{ 1765 return (__m256) __builtin_ia32_vfmaddsubps256_mask3 ((__v8sf) __A, 1766 (__v8sf) __B, 1767 (__v8sf) __C, 1768 (__mmask8) __U); 1769} 1770 1771static __inline__ __m256 __DEFAULT_FN_ATTRS 1772_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1773{ 1774 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A, 1775 (__v8sf) __B, 1776 (__v8sf) __C, 1777 (__mmask8) __U); 1778} 1779 1780static __inline__ __m256 __DEFAULT_FN_ATTRS 1781_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1782{ 1783 return (__m256) __builtin_ia32_vfmaddsubps256_mask ((__v8sf) __A, 1784 (__v8sf) __B, 1785 -(__v8sf) __C, 1786 (__mmask8) __U); 1787} 1788 1789static __inline__ __m256 __DEFAULT_FN_ATTRS 1790_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) 1791{ 1792 return (__m256) __builtin_ia32_vfmaddsubps256_maskz ((__v8sf) __A, 1793 (__v8sf) __B, 1794 -(__v8sf) __C, 1795 (__mmask8) __U); 1796} 1797 1798static __inline__ __m128d __DEFAULT_FN_ATTRS 1799_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1800{ 1801 return (__m128d) __builtin_ia32_vfmsubpd128_mask3 ((__v2df) __A, 1802 (__v2df) __B, 1803 (__v2df) __C, 1804 (__mmask8) __U); 1805} 1806 1807static __inline__ __m256d __DEFAULT_FN_ATTRS 1808_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1809{ 1810 return (__m256d) __builtin_ia32_vfmsubpd256_mask3 ((__v4df) __A, 1811 (__v4df) __B, 1812 (__v4df) __C, 1813 (__mmask8) __U); 1814} 1815 1816static __inline__ __m128 __DEFAULT_FN_ATTRS 1817_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1818{ 1819 return (__m128) __builtin_ia32_vfmsubps128_mask3 ((__v4sf) __A, 1820 (__v4sf) __B, 1821 (__v4sf) __C, 1822 (__mmask8) __U); 1823} 1824 1825static __inline__ __m256 __DEFAULT_FN_ATTRS 1826_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1827{ 1828 return (__m256) __builtin_ia32_vfmsubps256_mask3 ((__v8sf) __A, 1829 (__v8sf) __B, 1830 (__v8sf) __C, 1831 (__mmask8) __U); 1832} 1833 1834static __inline__ __m128d __DEFAULT_FN_ATTRS 1835_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1836{ 1837 return (__m128d) __builtin_ia32_vfmsubaddpd128_mask3 ((__v2df) __A, 1838 (__v2df) __B, 1839 (__v2df) __C, 1840 (__mmask8) 1841 __U); 1842} 1843 1844static __inline__ __m256d __DEFAULT_FN_ATTRS 1845_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1846{ 1847 return (__m256d) __builtin_ia32_vfmsubaddpd256_mask3 ((__v4df) __A, 1848 (__v4df) __B, 1849 (__v4df) __C, 1850 (__mmask8) 1851 __U); 1852} 1853 1854static __inline__ __m128 __DEFAULT_FN_ATTRS 1855_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1856{ 1857 return (__m128) __builtin_ia32_vfmsubaddps128_mask3 ((__v4sf) __A, 1858 (__v4sf) __B, 1859 (__v4sf) __C, 1860 (__mmask8) __U); 1861} 1862 1863static __inline__ __m256 __DEFAULT_FN_ATTRS 1864_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1865{ 1866 return (__m256) __builtin_ia32_vfmsubaddps256_mask3 ((__v8sf) __A, 1867 (__v8sf) __B, 1868 (__v8sf) __C, 1869 (__mmask8) __U); 1870} 1871 1872static __inline__ __m128d __DEFAULT_FN_ATTRS 1873_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1874{ 1875 return (__m128d) __builtin_ia32_vfnmaddpd128_mask ((__v2df) __A, 1876 (__v2df) __B, 1877 (__v2df) __C, 1878 (__mmask8) __U); 1879} 1880 1881static __inline__ __m256d __DEFAULT_FN_ATTRS 1882_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1883{ 1884 return (__m256d) __builtin_ia32_vfnmaddpd256_mask ((__v4df) __A, 1885 (__v4df) __B, 1886 (__v4df) __C, 1887 (__mmask8) __U); 1888} 1889 1890static __inline__ __m128 __DEFAULT_FN_ATTRS 1891_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1892{ 1893 return (__m128) __builtin_ia32_vfnmaddps128_mask ((__v4sf) __A, 1894 (__v4sf) __B, 1895 (__v4sf) __C, 1896 (__mmask8) __U); 1897} 1898 1899static __inline__ __m256 __DEFAULT_FN_ATTRS 1900_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1901{ 1902 return (__m256) __builtin_ia32_vfnmaddps256_mask ((__v8sf) __A, 1903 (__v8sf) __B, 1904 (__v8sf) __C, 1905 (__mmask8) __U); 1906} 1907 1908static __inline__ __m128d __DEFAULT_FN_ATTRS 1909_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) 1910{ 1911 return (__m128d) __builtin_ia32_vfnmsubpd128_mask ((__v2df) __A, 1912 (__v2df) __B, 1913 (__v2df) __C, 1914 (__mmask8) __U); 1915} 1916 1917static __inline__ __m128d __DEFAULT_FN_ATTRS 1918_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) 1919{ 1920 return (__m128d) __builtin_ia32_vfnmsubpd128_mask3 ((__v2df) __A, 1921 (__v2df) __B, 1922 (__v2df) __C, 1923 (__mmask8) __U); 1924} 1925 1926static __inline__ __m256d __DEFAULT_FN_ATTRS 1927_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) 1928{ 1929 return (__m256d) __builtin_ia32_vfnmsubpd256_mask ((__v4df) __A, 1930 (__v4df) __B, 1931 (__v4df) __C, 1932 (__mmask8) __U); 1933} 1934 1935static __inline__ __m256d __DEFAULT_FN_ATTRS 1936_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) 1937{ 1938 return (__m256d) __builtin_ia32_vfnmsubpd256_mask3 ((__v4df) __A, 1939 (__v4df) __B, 1940 (__v4df) __C, 1941 (__mmask8) __U); 1942} 1943 1944static __inline__ __m128 __DEFAULT_FN_ATTRS 1945_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) 1946{ 1947 return (__m128) __builtin_ia32_vfnmsubps128_mask ((__v4sf) __A, 1948 (__v4sf) __B, 1949 (__v4sf) __C, 1950 (__mmask8) __U); 1951} 1952 1953static __inline__ __m128 __DEFAULT_FN_ATTRS 1954_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) 1955{ 1956 return (__m128) __builtin_ia32_vfnmsubps128_mask3 ((__v4sf) __A, 1957 (__v4sf) __B, 1958 (__v4sf) __C, 1959 (__mmask8) __U); 1960} 1961 1962static __inline__ __m256 __DEFAULT_FN_ATTRS 1963_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) 1964{ 1965 return (__m256) __builtin_ia32_vfnmsubps256_mask ((__v8sf) __A, 1966 (__v8sf) __B, 1967 (__v8sf) __C, 1968 (__mmask8) __U); 1969} 1970 1971static __inline__ __m256 __DEFAULT_FN_ATTRS 1972_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) 1973{ 1974 return (__m256) __builtin_ia32_vfnmsubps256_mask3 ((__v8sf) __A, 1975 (__v8sf) __B, 1976 (__v8sf) __C, 1977 (__mmask8) __U); 1978} 1979 1980#undef __DEFAULT_FN_ATTRS 1981 1982#endif /* __AVX512VLINTRIN_H */ 1983