1/*===---- avx512dqintrin.h - AVX512DQ 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 <avx512dqintrin.h> directly; include <immintrin.h> instead." 26#endif 27 28#ifndef __AVX512DQINTRIN_H 29#define __AVX512DQINTRIN_H 30 31/* Define the default attributes for the functions in this file. */ 32#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) 33 34static __inline__ __m512i __DEFAULT_FN_ATTRS 35_mm512_mullo_epi64 (__m512i __A, __m512i __B) { 36 return (__m512i) ((__v8du) __A * (__v8du) __B); 37} 38 39static __inline__ __m512i __DEFAULT_FN_ATTRS 40_mm512_mask_mullo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { 41 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, 42 (__v8di)_mm512_mullo_epi64(__A, __B), 43 (__v8di)__W); 44} 45 46static __inline__ __m512i __DEFAULT_FN_ATTRS 47_mm512_maskz_mullo_epi64(__mmask8 __U, __m512i __A, __m512i __B) { 48 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, 49 (__v8di)_mm512_mullo_epi64(__A, __B), 50 (__v8di)_mm512_setzero_si512()); 51} 52 53static __inline__ __m512d __DEFAULT_FN_ATTRS 54_mm512_xor_pd(__m512d __A, __m512d __B) { 55 return (__m512d)((__v8du)__A ^ (__v8du)__B); 56} 57 58static __inline__ __m512d __DEFAULT_FN_ATTRS 59_mm512_mask_xor_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 60 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 61 (__v8df)_mm512_xor_pd(__A, __B), 62 (__v8df)__W); 63} 64 65static __inline__ __m512d __DEFAULT_FN_ATTRS 66_mm512_maskz_xor_pd(__mmask8 __U, __m512d __A, __m512d __B) { 67 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 68 (__v8df)_mm512_xor_pd(__A, __B), 69 (__v8df)_mm512_setzero_pd()); 70} 71 72static __inline__ __m512 __DEFAULT_FN_ATTRS 73_mm512_xor_ps (__m512 __A, __m512 __B) { 74 return (__m512)((__v16su)__A ^ (__v16su)__B); 75} 76 77static __inline__ __m512 __DEFAULT_FN_ATTRS 78_mm512_mask_xor_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 79 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 80 (__v16sf)_mm512_xor_ps(__A, __B), 81 (__v16sf)__W); 82} 83 84static __inline__ __m512 __DEFAULT_FN_ATTRS 85_mm512_maskz_xor_ps(__mmask16 __U, __m512 __A, __m512 __B) { 86 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 87 (__v16sf)_mm512_xor_ps(__A, __B), 88 (__v16sf)_mm512_setzero_ps()); 89} 90 91static __inline__ __m512d __DEFAULT_FN_ATTRS 92_mm512_or_pd(__m512d __A, __m512d __B) { 93 return (__m512d)((__v8du)__A | (__v8du)__B); 94} 95 96static __inline__ __m512d __DEFAULT_FN_ATTRS 97_mm512_mask_or_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 98 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 99 (__v8df)_mm512_or_pd(__A, __B), 100 (__v8df)__W); 101} 102 103static __inline__ __m512d __DEFAULT_FN_ATTRS 104_mm512_maskz_or_pd(__mmask8 __U, __m512d __A, __m512d __B) { 105 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 106 (__v8df)_mm512_or_pd(__A, __B), 107 (__v8df)_mm512_setzero_pd()); 108} 109 110static __inline__ __m512 __DEFAULT_FN_ATTRS 111_mm512_or_ps(__m512 __A, __m512 __B) { 112 return (__m512)((__v16su)__A | (__v16su)__B); 113} 114 115static __inline__ __m512 __DEFAULT_FN_ATTRS 116_mm512_mask_or_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 117 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 118 (__v16sf)_mm512_or_ps(__A, __B), 119 (__v16sf)__W); 120} 121 122static __inline__ __m512 __DEFAULT_FN_ATTRS 123_mm512_maskz_or_ps(__mmask16 __U, __m512 __A, __m512 __B) { 124 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 125 (__v16sf)_mm512_or_ps(__A, __B), 126 (__v16sf)_mm512_setzero_ps()); 127} 128 129static __inline__ __m512d __DEFAULT_FN_ATTRS 130_mm512_and_pd(__m512d __A, __m512d __B) { 131 return (__m512d)((__v8du)__A & (__v8du)__B); 132} 133 134static __inline__ __m512d __DEFAULT_FN_ATTRS 135_mm512_mask_and_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 136 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 137 (__v8df)_mm512_and_pd(__A, __B), 138 (__v8df)__W); 139} 140 141static __inline__ __m512d __DEFAULT_FN_ATTRS 142_mm512_maskz_and_pd(__mmask8 __U, __m512d __A, __m512d __B) { 143 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 144 (__v8df)_mm512_and_pd(__A, __B), 145 (__v8df)_mm512_setzero_pd()); 146} 147 148static __inline__ __m512 __DEFAULT_FN_ATTRS 149_mm512_and_ps(__m512 __A, __m512 __B) { 150 return (__m512)((__v16su)__A & (__v16su)__B); 151} 152 153static __inline__ __m512 __DEFAULT_FN_ATTRS 154_mm512_mask_and_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 155 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 156 (__v16sf)_mm512_and_ps(__A, __B), 157 (__v16sf)__W); 158} 159 160static __inline__ __m512 __DEFAULT_FN_ATTRS 161_mm512_maskz_and_ps(__mmask16 __U, __m512 __A, __m512 __B) { 162 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 163 (__v16sf)_mm512_and_ps(__A, __B), 164 (__v16sf)_mm512_setzero_ps()); 165} 166 167static __inline__ __m512d __DEFAULT_FN_ATTRS 168_mm512_andnot_pd(__m512d __A, __m512d __B) { 169 return (__m512d)(~(__v8du)__A & (__v8du)__B); 170} 171 172static __inline__ __m512d __DEFAULT_FN_ATTRS 173_mm512_mask_andnot_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { 174 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 175 (__v8df)_mm512_andnot_pd(__A, __B), 176 (__v8df)__W); 177} 178 179static __inline__ __m512d __DEFAULT_FN_ATTRS 180_mm512_maskz_andnot_pd(__mmask8 __U, __m512d __A, __m512d __B) { 181 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, 182 (__v8df)_mm512_andnot_pd(__A, __B), 183 (__v8df)_mm512_setzero_pd()); 184} 185 186static __inline__ __m512 __DEFAULT_FN_ATTRS 187_mm512_andnot_ps(__m512 __A, __m512 __B) { 188 return (__m512)(~(__v16su)__A & (__v16su)__B); 189} 190 191static __inline__ __m512 __DEFAULT_FN_ATTRS 192_mm512_mask_andnot_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { 193 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 194 (__v16sf)_mm512_andnot_ps(__A, __B), 195 (__v16sf)__W); 196} 197 198static __inline__ __m512 __DEFAULT_FN_ATTRS 199_mm512_maskz_andnot_ps(__mmask16 __U, __m512 __A, __m512 __B) { 200 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, 201 (__v16sf)_mm512_andnot_ps(__A, __B), 202 (__v16sf)_mm512_setzero_ps()); 203} 204 205static __inline__ __m512i __DEFAULT_FN_ATTRS 206_mm512_cvtpd_epi64 (__m512d __A) { 207 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 208 (__v8di) _mm512_setzero_si512(), 209 (__mmask8) -1, 210 _MM_FROUND_CUR_DIRECTION); 211} 212 213static __inline__ __m512i __DEFAULT_FN_ATTRS 214_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) { 215 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 216 (__v8di) __W, 217 (__mmask8) __U, 218 _MM_FROUND_CUR_DIRECTION); 219} 220 221static __inline__ __m512i __DEFAULT_FN_ATTRS 222_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) { 223 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 224 (__v8di) _mm512_setzero_si512(), 225 (__mmask8) __U, 226 _MM_FROUND_CUR_DIRECTION); 227} 228 229#define _mm512_cvt_roundpd_epi64(A, R) __extension__ ({ \ 230 (__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \ 231 (__v8di)_mm512_setzero_si512(), \ 232 (__mmask8)-1, (int)(R)); }) 233 234#define _mm512_mask_cvt_roundpd_epi64(W, U, A, R) __extension__ ({ \ 235 (__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \ 236 (__v8di)(__m512i)(W), \ 237 (__mmask8)(U), (int)(R)); }) 238 239#define _mm512_maskz_cvt_roundpd_epi64(U, A, R) __extension__ ({ \ 240 (__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \ 241 (__v8di)_mm512_setzero_si512(), \ 242 (__mmask8)(U), (int)(R)); }) 243 244static __inline__ __m512i __DEFAULT_FN_ATTRS 245_mm512_cvtpd_epu64 (__m512d __A) { 246 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 247 (__v8di) _mm512_setzero_si512(), 248 (__mmask8) -1, 249 _MM_FROUND_CUR_DIRECTION); 250} 251 252static __inline__ __m512i __DEFAULT_FN_ATTRS 253_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) { 254 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 255 (__v8di) __W, 256 (__mmask8) __U, 257 _MM_FROUND_CUR_DIRECTION); 258} 259 260static __inline__ __m512i __DEFAULT_FN_ATTRS 261_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) { 262 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 263 (__v8di) _mm512_setzero_si512(), 264 (__mmask8) __U, 265 _MM_FROUND_CUR_DIRECTION); 266} 267 268#define _mm512_cvt_roundpd_epu64(A, R) __extension__ ({ \ 269 (__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \ 270 (__v8di)_mm512_setzero_si512(), \ 271 (__mmask8)-1, (int)(R)); }) 272 273#define _mm512_mask_cvt_roundpd_epu64(W, U, A, R) __extension__ ({ \ 274 (__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \ 275 (__v8di)(__m512i)(W), \ 276 (__mmask8)(U), (int)(R)); }) 277 278#define _mm512_maskz_cvt_roundpd_epu64(U, A, R) __extension__ ({ \ 279 (__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \ 280 (__v8di)_mm512_setzero_si512(), \ 281 (__mmask8)(U), (int)(R)); }) 282 283static __inline__ __m512i __DEFAULT_FN_ATTRS 284_mm512_cvtps_epi64 (__m256 __A) { 285 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 286 (__v8di) _mm512_setzero_si512(), 287 (__mmask8) -1, 288 _MM_FROUND_CUR_DIRECTION); 289} 290 291static __inline__ __m512i __DEFAULT_FN_ATTRS 292_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) { 293 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 294 (__v8di) __W, 295 (__mmask8) __U, 296 _MM_FROUND_CUR_DIRECTION); 297} 298 299static __inline__ __m512i __DEFAULT_FN_ATTRS 300_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) { 301 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 302 (__v8di) _mm512_setzero_si512(), 303 (__mmask8) __U, 304 _MM_FROUND_CUR_DIRECTION); 305} 306 307#define _mm512_cvt_roundps_epi64(A, R) __extension__ ({ \ 308 (__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \ 309 (__v8di)_mm512_setzero_si512(), \ 310 (__mmask8)-1, (int)(R)); }) 311 312#define _mm512_mask_cvt_roundps_epi64(W, U, A, R) __extension__ ({ \ 313 (__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \ 314 (__v8di)(__m512i)(W), \ 315 (__mmask8)(U), (int)(R)); }) 316 317#define _mm512_maskz_cvt_roundps_epi64(U, A, R) __extension__ ({ \ 318 (__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \ 319 (__v8di)_mm512_setzero_si512(), \ 320 (__mmask8)(U), (int)(R)); }) 321 322static __inline__ __m512i __DEFAULT_FN_ATTRS 323_mm512_cvtps_epu64 (__m256 __A) { 324 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 325 (__v8di) _mm512_setzero_si512(), 326 (__mmask8) -1, 327 _MM_FROUND_CUR_DIRECTION); 328} 329 330static __inline__ __m512i __DEFAULT_FN_ATTRS 331_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) { 332 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 333 (__v8di) __W, 334 (__mmask8) __U, 335 _MM_FROUND_CUR_DIRECTION); 336} 337 338static __inline__ __m512i __DEFAULT_FN_ATTRS 339_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) { 340 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 341 (__v8di) _mm512_setzero_si512(), 342 (__mmask8) __U, 343 _MM_FROUND_CUR_DIRECTION); 344} 345 346#define _mm512_cvt_roundps_epu64(A, R) __extension__ ({ \ 347 (__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \ 348 (__v8di)_mm512_setzero_si512(), \ 349 (__mmask8)-1, (int)(R)); }) 350 351#define _mm512_mask_cvt_roundps_epu64(W, U, A, R) __extension__ ({ \ 352 (__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \ 353 (__v8di)(__m512i)(W), \ 354 (__mmask8)(U), (int)(R)); }) 355 356#define _mm512_maskz_cvt_roundps_epu64(U, A, R) __extension__ ({ \ 357 (__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \ 358 (__v8di)_mm512_setzero_si512(), \ 359 (__mmask8)(U), (int)(R)); }) 360 361 362static __inline__ __m512d __DEFAULT_FN_ATTRS 363_mm512_cvtepi64_pd (__m512i __A) { 364 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 365 (__v8df) _mm512_setzero_pd(), 366 (__mmask8) -1, 367 _MM_FROUND_CUR_DIRECTION); 368} 369 370static __inline__ __m512d __DEFAULT_FN_ATTRS 371_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) { 372 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 373 (__v8df) __W, 374 (__mmask8) __U, 375 _MM_FROUND_CUR_DIRECTION); 376} 377 378static __inline__ __m512d __DEFAULT_FN_ATTRS 379_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) { 380 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 381 (__v8df) _mm512_setzero_pd(), 382 (__mmask8) __U, 383 _MM_FROUND_CUR_DIRECTION); 384} 385 386#define _mm512_cvt_roundepi64_pd(A, R) __extension__ ({ \ 387 (__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \ 388 (__v8df)_mm512_setzero_pd(), \ 389 (__mmask8)-1, (int)(R)); }) 390 391#define _mm512_mask_cvt_roundepi64_pd(W, U, A, R) __extension__ ({ \ 392 (__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \ 393 (__v8df)(__m512d)(W), \ 394 (__mmask8)(U), (int)(R)); }) 395 396#define _mm512_maskz_cvt_roundepi64_pd(U, A, R) __extension__ ({ \ 397 (__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \ 398 (__v8df)_mm512_setzero_pd(), \ 399 (__mmask8)(U), (int)(R)); }) 400 401static __inline__ __m256 __DEFAULT_FN_ATTRS 402_mm512_cvtepi64_ps (__m512i __A) { 403 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 404 (__v8sf) _mm256_setzero_ps(), 405 (__mmask8) -1, 406 _MM_FROUND_CUR_DIRECTION); 407} 408 409static __inline__ __m256 __DEFAULT_FN_ATTRS 410_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) { 411 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 412 (__v8sf) __W, 413 (__mmask8) __U, 414 _MM_FROUND_CUR_DIRECTION); 415} 416 417static __inline__ __m256 __DEFAULT_FN_ATTRS 418_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) { 419 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 420 (__v8sf) _mm256_setzero_ps(), 421 (__mmask8) __U, 422 _MM_FROUND_CUR_DIRECTION); 423} 424 425#define _mm512_cvt_roundepi64_ps(A, R) __extension__ ({ \ 426 (__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \ 427 (__v8sf)_mm256_setzero_ps(), \ 428 (__mmask8)-1, (int)(R)); }) 429 430#define _mm512_mask_cvt_roundepi64_ps(W, U, A, R) __extension__ ({ \ 431 (__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \ 432 (__v8sf)(__m256)(W), (__mmask8)(U), \ 433 (int)(R)); }) 434 435#define _mm512_maskz_cvt_roundepi64_ps(U, A, R) __extension__ ({ \ 436 (__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \ 437 (__v8sf)_mm256_setzero_ps(), \ 438 (__mmask8)(U), (int)(R)); }) 439 440 441static __inline__ __m512i __DEFAULT_FN_ATTRS 442_mm512_cvttpd_epi64 (__m512d __A) { 443 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 444 (__v8di) _mm512_setzero_si512(), 445 (__mmask8) -1, 446 _MM_FROUND_CUR_DIRECTION); 447} 448 449static __inline__ __m512i __DEFAULT_FN_ATTRS 450_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) { 451 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 452 (__v8di) __W, 453 (__mmask8) __U, 454 _MM_FROUND_CUR_DIRECTION); 455} 456 457static __inline__ __m512i __DEFAULT_FN_ATTRS 458_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) { 459 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 460 (__v8di) _mm512_setzero_si512(), 461 (__mmask8) __U, 462 _MM_FROUND_CUR_DIRECTION); 463} 464 465#define _mm512_cvtt_roundpd_epi64(A, R) __extension__ ({ \ 466 (__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \ 467 (__v8di)_mm512_setzero_si512(), \ 468 (__mmask8)-1, (int)(R)); }) 469 470#define _mm512_mask_cvtt_roundpd_epi64(W, U, A, R) __extension__ ({ \ 471 (__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \ 472 (__v8di)(__m512i)(W), \ 473 (__mmask8)(U), (int)(R)); }) 474 475#define _mm512_maskz_cvtt_roundpd_epi64(U, A, R) __extension__ ({ \ 476 (__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \ 477 (__v8di)_mm512_setzero_si512(), \ 478 (__mmask8)(U), (int)(R)); }) 479 480static __inline__ __m512i __DEFAULT_FN_ATTRS 481_mm512_cvttpd_epu64 (__m512d __A) { 482 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 483 (__v8di) _mm512_setzero_si512(), 484 (__mmask8) -1, 485 _MM_FROUND_CUR_DIRECTION); 486} 487 488static __inline__ __m512i __DEFAULT_FN_ATTRS 489_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) { 490 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 491 (__v8di) __W, 492 (__mmask8) __U, 493 _MM_FROUND_CUR_DIRECTION); 494} 495 496static __inline__ __m512i __DEFAULT_FN_ATTRS 497_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) { 498 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 499 (__v8di) _mm512_setzero_si512(), 500 (__mmask8) __U, 501 _MM_FROUND_CUR_DIRECTION); 502} 503 504#define _mm512_cvtt_roundpd_epu64(A, R) __extension__ ({ \ 505 (__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \ 506 (__v8di)_mm512_setzero_si512(), \ 507 (__mmask8)-1, (int)(R)); }) 508 509#define _mm512_mask_cvtt_roundpd_epu64(W, U, A, R) __extension__ ({ \ 510 (__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \ 511 (__v8di)(__m512i)(W), \ 512 (__mmask8)(U), (int)(R)); }) 513 514#define _mm512_maskz_cvtt_roundpd_epu64(U, A, R) __extension__ ({ \ 515 (__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \ 516 (__v8di)_mm512_setzero_si512(), \ 517 (__mmask8)(U), (int)(R)); }) 518 519static __inline__ __m512i __DEFAULT_FN_ATTRS 520_mm512_cvttps_epi64 (__m256 __A) { 521 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 522 (__v8di) _mm512_setzero_si512(), 523 (__mmask8) -1, 524 _MM_FROUND_CUR_DIRECTION); 525} 526 527static __inline__ __m512i __DEFAULT_FN_ATTRS 528_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) { 529 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 530 (__v8di) __W, 531 (__mmask8) __U, 532 _MM_FROUND_CUR_DIRECTION); 533} 534 535static __inline__ __m512i __DEFAULT_FN_ATTRS 536_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) { 537 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 538 (__v8di) _mm512_setzero_si512(), 539 (__mmask8) __U, 540 _MM_FROUND_CUR_DIRECTION); 541} 542 543#define _mm512_cvtt_roundps_epi64(A, R) __extension__ ({ \ 544 (__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \ 545 (__v8di)_mm512_setzero_si512(), \ 546 (__mmask8)-1, (int)(R)); }) 547 548#define _mm512_mask_cvtt_roundps_epi64(W, U, A, R) __extension__ ({ \ 549 (__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \ 550 (__v8di)(__m512i)(W), \ 551 (__mmask8)(U), (int)(R)); }) 552 553#define _mm512_maskz_cvtt_roundps_epi64(U, A, R) __extension__ ({ \ 554 (__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \ 555 (__v8di)_mm512_setzero_si512(), \ 556 (__mmask8)(U), (int)(R)); }) 557 558static __inline__ __m512i __DEFAULT_FN_ATTRS 559_mm512_cvttps_epu64 (__m256 __A) { 560 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 561 (__v8di) _mm512_setzero_si512(), 562 (__mmask8) -1, 563 _MM_FROUND_CUR_DIRECTION); 564} 565 566static __inline__ __m512i __DEFAULT_FN_ATTRS 567_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) { 568 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 569 (__v8di) __W, 570 (__mmask8) __U, 571 _MM_FROUND_CUR_DIRECTION); 572} 573 574static __inline__ __m512i __DEFAULT_FN_ATTRS 575_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) { 576 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 577 (__v8di) _mm512_setzero_si512(), 578 (__mmask8) __U, 579 _MM_FROUND_CUR_DIRECTION); 580} 581 582#define _mm512_cvtt_roundps_epu64(A, R) __extension__ ({ \ 583 (__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \ 584 (__v8di)_mm512_setzero_si512(), \ 585 (__mmask8)-1, (int)(R)); }) 586 587#define _mm512_mask_cvtt_roundps_epu64(W, U, A, R) __extension__ ({ \ 588 (__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \ 589 (__v8di)(__m512i)(W), \ 590 (__mmask8)(U), (int)(R)); }) 591 592#define _mm512_maskz_cvtt_roundps_epu64(U, A, R) __extension__ ({ \ 593 (__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \ 594 (__v8di)_mm512_setzero_si512(), \ 595 (__mmask8)(U), (int)(R)); }) 596 597static __inline__ __m512d __DEFAULT_FN_ATTRS 598_mm512_cvtepu64_pd (__m512i __A) { 599 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 600 (__v8df) _mm512_setzero_pd(), 601 (__mmask8) -1, 602 _MM_FROUND_CUR_DIRECTION); 603} 604 605static __inline__ __m512d __DEFAULT_FN_ATTRS 606_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) { 607 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 608 (__v8df) __W, 609 (__mmask8) __U, 610 _MM_FROUND_CUR_DIRECTION); 611} 612 613static __inline__ __m512d __DEFAULT_FN_ATTRS 614_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) { 615 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 616 (__v8df) _mm512_setzero_pd(), 617 (__mmask8) __U, 618 _MM_FROUND_CUR_DIRECTION); 619} 620 621#define _mm512_cvt_roundepu64_pd(A, R) __extension__ ({ \ 622 (__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \ 623 (__v8df)_mm512_setzero_pd(), \ 624 (__mmask8)-1, (int)(R)); }) 625 626#define _mm512_mask_cvt_roundepu64_pd(W, U, A, R) __extension__ ({ \ 627 (__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \ 628 (__v8df)(__m512d)(W), \ 629 (__mmask8)(U), (int)(R)); }) 630 631 632#define _mm512_maskz_cvt_roundepu64_pd(U, A, R) __extension__ ({ \ 633 (__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \ 634 (__v8df)_mm512_setzero_pd(), \ 635 (__mmask8)(U), (int)(R)); }) 636 637 638static __inline__ __m256 __DEFAULT_FN_ATTRS 639_mm512_cvtepu64_ps (__m512i __A) { 640 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 641 (__v8sf) _mm256_setzero_ps(), 642 (__mmask8) -1, 643 _MM_FROUND_CUR_DIRECTION); 644} 645 646static __inline__ __m256 __DEFAULT_FN_ATTRS 647_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) { 648 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 649 (__v8sf) __W, 650 (__mmask8) __U, 651 _MM_FROUND_CUR_DIRECTION); 652} 653 654static __inline__ __m256 __DEFAULT_FN_ATTRS 655_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) { 656 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 657 (__v8sf) _mm256_setzero_ps(), 658 (__mmask8) __U, 659 _MM_FROUND_CUR_DIRECTION); 660} 661 662#define _mm512_cvt_roundepu64_ps(A, R) __extension__ ({ \ 663 (__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \ 664 (__v8sf)_mm256_setzero_ps(), \ 665 (__mmask8)-1, (int)(R)); }) 666 667#define _mm512_mask_cvt_roundepu64_ps(W, U, A, R) __extension__ ({ \ 668 (__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \ 669 (__v8sf)(__m256)(W), (__mmask8)(U), \ 670 (int)(R)); }) 671 672#define _mm512_maskz_cvt_roundepu64_ps(U, A, R) __extension__ ({ \ 673 (__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \ 674 (__v8sf)_mm256_setzero_ps(), \ 675 (__mmask8)(U), (int)(R)); }) 676 677#define _mm512_range_pd(A, B, C) __extension__ ({ \ 678 (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ 679 (__v8df)(__m512d)(B), (int)(C), \ 680 (__v8df)_mm512_setzero_pd(), \ 681 (__mmask8)-1, \ 682 _MM_FROUND_CUR_DIRECTION); }) 683 684#define _mm512_mask_range_pd(W, U, A, B, C) __extension__ ({ \ 685 (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ 686 (__v8df)(__m512d)(B), (int)(C), \ 687 (__v8df)(__m512d)(W), (__mmask8)(U), \ 688 _MM_FROUND_CUR_DIRECTION); }) 689 690#define _mm512_maskz_range_pd(U, A, B, C) __extension__ ({ \ 691 (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ 692 (__v8df)(__m512d)(B), (int)(C), \ 693 (__v8df)_mm512_setzero_pd(), \ 694 (__mmask8)(U), \ 695 _MM_FROUND_CUR_DIRECTION); }) 696 697#define _mm512_range_round_pd(A, B, C, R) __extension__ ({ \ 698 (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ 699 (__v8df)(__m512d)(B), (int)(C), \ 700 (__v8df)_mm512_setzero_pd(), \ 701 (__mmask8)-1, (int)(R)); }) 702 703#define _mm512_mask_range_round_pd(W, U, A, B, C, R) __extension__ ({ \ 704 (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ 705 (__v8df)(__m512d)(B), (int)(C), \ 706 (__v8df)(__m512d)(W), (__mmask8)(U), \ 707 (int)(R)); }) 708 709#define _mm512_maskz_range_round_pd(U, A, B, C, R) __extension__ ({ \ 710 (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ 711 (__v8df)(__m512d)(B), (int)(C), \ 712 (__v8df)_mm512_setzero_pd(), \ 713 (__mmask8)(U), (int)(R)); }) 714 715#define _mm512_range_ps(A, B, C) __extension__ ({ \ 716 (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ 717 (__v16sf)(__m512)(B), (int)(C), \ 718 (__v16sf)_mm512_setzero_ps(), \ 719 (__mmask16)-1, \ 720 _MM_FROUND_CUR_DIRECTION); }) 721 722#define _mm512_mask_range_ps(W, U, A, B, C) __extension__ ({ \ 723 (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ 724 (__v16sf)(__m512)(B), (int)(C), \ 725 (__v16sf)(__m512)(W), (__mmask16)(U), \ 726 _MM_FROUND_CUR_DIRECTION); }) 727 728#define _mm512_maskz_range_ps(U, A, B, C) __extension__ ({ \ 729 (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ 730 (__v16sf)(__m512)(B), (int)(C), \ 731 (__v16sf)_mm512_setzero_ps(), \ 732 (__mmask16)(U), \ 733 _MM_FROUND_CUR_DIRECTION); }) 734 735#define _mm512_range_round_ps(A, B, C, R) __extension__ ({ \ 736 (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ 737 (__v16sf)(__m512)(B), (int)(C), \ 738 (__v16sf)_mm512_setzero_ps(), \ 739 (__mmask16)-1, (int)(R)); }) 740 741#define _mm512_mask_range_round_ps(W, U, A, B, C, R) __extension__ ({ \ 742 (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ 743 (__v16sf)(__m512)(B), (int)(C), \ 744 (__v16sf)(__m512)(W), (__mmask16)(U), \ 745 (int)(R)); }) 746 747#define _mm512_maskz_range_round_ps(U, A, B, C, R) __extension__ ({ \ 748 (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ 749 (__v16sf)(__m512)(B), (int)(C), \ 750 (__v16sf)_mm512_setzero_ps(), \ 751 (__mmask16)(U), (int)(R)); }) 752 753#define _mm_range_round_ss(A, B, C, R) __extension__ ({ \ 754 (__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \ 755 (__v4sf)(__m128)(B), \ 756 (__v4sf)_mm_setzero_ps(), \ 757 (__mmask8) -1, (int)(C),\ 758 (int)(R)); }) 759 760#define _mm_range_ss(A ,B , C) _mm_range_round_ss(A, B, C ,_MM_FROUND_CUR_DIRECTION) 761 762#define _mm_mask_range_round_ss(W, U, A, B, C, R) __extension__ ({ \ 763 (__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \ 764 (__v4sf)(__m128)(B), \ 765 (__v4sf)(__m128)(W),\ 766 (__mmask8)(U), (int)(C),\ 767 (int)(R)); }) 768 769#define _mm_mask_range_ss(W , U, A, B, C) _mm_mask_range_round_ss(W, U, A, B, C , _MM_FROUND_CUR_DIRECTION) 770 771#define _mm_maskz_range_round_ss(U, A, B, C, R) __extension__ ({ \ 772 (__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \ 773 (__v4sf)(__m128)(B), \ 774 (__v4sf)_mm_setzero_ps(), \ 775 (__mmask8)(U), (int)(C),\ 776 (int)(R)); }) 777 778#define _mm_maskz_range_ss(U, A ,B , C) _mm_maskz_range_round_ss(U, A, B, C ,_MM_FROUND_CUR_DIRECTION) 779 780#define _mm_range_round_sd(A, B, C, R) __extension__ ({ \ 781 (__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \ 782 (__v2df)(__m128d)(B), \ 783 (__v2df)_mm_setzero_pd(), \ 784 (__mmask8) -1, (int)(C),\ 785 (int)(R)); }) 786 787#define _mm_range_sd(A ,B , C) _mm_range_round_sd(A, B, C ,_MM_FROUND_CUR_DIRECTION) 788 789#define _mm_mask_range_round_sd(W, U, A, B, C, R) __extension__ ({ \ 790 (__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \ 791 (__v2df)(__m128d)(B), \ 792 (__v2df)(__m128d)(W),\ 793 (__mmask8)(U), (int)(C),\ 794 (int)(R)); }) 795 796#define _mm_mask_range_sd(W, U, A, B, C) _mm_mask_range_round_sd(W, U, A, B, C ,_MM_FROUND_CUR_DIRECTION) 797 798#define _mm_maskz_range_round_sd(U, A, B, C, R) __extension__ ({ \ 799 (__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \ 800 (__v2df)(__m128d)(B), \ 801 (__v2df)_mm_setzero_pd(), \ 802 (__mmask8)(U), (int)(C),\ 803 (int)(R)); }) 804 805#define _mm_maskz_range_sd(U, A, B, C) _mm_maskz_range_round_sd(U, A, B, C ,_MM_FROUND_CUR_DIRECTION) 806 807#define _mm512_reduce_pd(A, B) __extension__ ({ \ 808 (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ 809 (__v8df)_mm512_setzero_pd(), \ 810 (__mmask8)-1, \ 811 _MM_FROUND_CUR_DIRECTION); }) 812 813#define _mm512_mask_reduce_pd(W, U, A, B) __extension__ ({ \ 814 (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ 815 (__v8df)(__m512d)(W), \ 816 (__mmask8)(U), \ 817 _MM_FROUND_CUR_DIRECTION); }) 818 819#define _mm512_maskz_reduce_pd(U, A, B) __extension__ ({ \ 820 (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ 821 (__v8df)_mm512_setzero_pd(), \ 822 (__mmask8)(U), \ 823 _MM_FROUND_CUR_DIRECTION); }) 824 825#define _mm512_reduce_ps(A, B) __extension__ ({ \ 826 (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ 827 (__v16sf)_mm512_setzero_ps(), \ 828 (__mmask16)-1, \ 829 _MM_FROUND_CUR_DIRECTION); }) 830 831#define _mm512_mask_reduce_ps(W, U, A, B) __extension__ ({ \ 832 (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ 833 (__v16sf)(__m512)(W), \ 834 (__mmask16)(U), \ 835 _MM_FROUND_CUR_DIRECTION); }) 836 837#define _mm512_maskz_reduce_ps(U, A, B) __extension__ ({ \ 838 (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ 839 (__v16sf)_mm512_setzero_ps(), \ 840 (__mmask16)(U), \ 841 _MM_FROUND_CUR_DIRECTION); }) 842 843#define _mm512_reduce_round_pd(A, B, R) __extension__ ({\ 844 (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ 845 (__v8df)_mm512_setzero_pd(), \ 846 (__mmask8)-1, (int)(R)); }) 847 848#define _mm512_mask_reduce_round_pd(W, U, A, B, R) __extension__ ({\ 849 (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ 850 (__v8df)(__m512d)(W), \ 851 (__mmask8)(U), (int)(R)); }) 852 853#define _mm512_maskz_reduce_round_pd(U, A, B, R) __extension__ ({\ 854 (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ 855 (__v8df)_mm512_setzero_pd(), \ 856 (__mmask8)(U), (int)(R)); }) 857 858#define _mm512_reduce_round_ps(A, B, R) __extension__ ({\ 859 (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ 860 (__v16sf)_mm512_setzero_ps(), \ 861 (__mmask16)-1, (int)(R)); }) 862 863#define _mm512_mask_reduce_round_ps(W, U, A, B, R) __extension__ ({\ 864 (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ 865 (__v16sf)(__m512)(W), \ 866 (__mmask16)(U), (int)(R)); }) 867 868#define _mm512_maskz_reduce_round_ps(U, A, B, R) __extension__ ({\ 869 (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ 870 (__v16sf)_mm512_setzero_ps(), \ 871 (__mmask16)(U), (int)(R)); }) 872 873#define _mm_reduce_ss(A, B, C) __extension__ ({ \ 874 (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ 875 (__v4sf)(__m128)(B), \ 876 (__v4sf)_mm_setzero_ps(), (__mmask8)-1, \ 877 (int)(C), _MM_FROUND_CUR_DIRECTION); }) 878 879#define _mm_mask_reduce_ss(W, U, A, B, C) __extension__ ({ \ 880 (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ 881 (__v4sf)(__m128)(B), \ 882 (__v4sf)(__m128)(W), (__mmask8)(U), \ 883 (int)(C), _MM_FROUND_CUR_DIRECTION); }) 884 885#define _mm_maskz_reduce_ss(U, A, B, C) __extension__ ({ \ 886 (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ 887 (__v4sf)(__m128)(B), \ 888 (__v4sf)_mm_setzero_ps(), \ 889 (__mmask8)(U), (int)(C), \ 890 _MM_FROUND_CUR_DIRECTION); }) 891 892#define _mm_reduce_round_ss(A, B, C, R) __extension__ ({ \ 893 (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ 894 (__v4sf)(__m128)(B), \ 895 (__v4sf)_mm_setzero_ps(), (__mmask8)-1, \ 896 (int)(C), (int)(R)); }) 897 898#define _mm_mask_reduce_round_ss(W, U, A, B, C, R) __extension__ ({ \ 899 (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ 900 (__v4sf)(__m128)(B), \ 901 (__v4sf)(__m128)(W), (__mmask8)(U), \ 902 (int)(C), (int)(R)); }) 903 904#define _mm_maskz_reduce_round_ss(U, A, B, C, R) __extension__ ({ \ 905 (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ 906 (__v4sf)(__m128)(B), \ 907 (__v4sf)_mm_setzero_ps(), \ 908 (__mmask8)(U), (int)(C), (int)(R)); }) 909 910#define _mm_reduce_sd(A, B, C) __extension__ ({ \ 911 (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ 912 (__v2df)(__m128d)(B), \ 913 (__v2df)_mm_setzero_pd(), \ 914 (__mmask8)-1, (int)(C), \ 915 _MM_FROUND_CUR_DIRECTION); }) 916 917#define _mm_mask_reduce_sd(W, U, A, B, C) __extension__ ({ \ 918 (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ 919 (__v2df)(__m128d)(B), \ 920 (__v2df)(__m128d)(W), (__mmask8)(U), \ 921 (int)(C), _MM_FROUND_CUR_DIRECTION); }) 922 923#define _mm_maskz_reduce_sd(U, A, B, C) __extension__ ({ \ 924 (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ 925 (__v2df)(__m128d)(B), \ 926 (__v2df)_mm_setzero_pd(), \ 927 (__mmask8)(U), (int)(C), \ 928 _MM_FROUND_CUR_DIRECTION); }) 929 930#define _mm_reduce_round_sd(A, B, C, R) __extension__ ({ \ 931 (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ 932 (__v2df)(__m128d)(B), \ 933 (__v2df)_mm_setzero_pd(), \ 934 (__mmask8)-1, (int)(C), (int)(R)); }) 935 936#define _mm_mask_reduce_round_sd(W, U, A, B, C, R) __extension__ ({ \ 937 (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ 938 (__v2df)(__m128d)(B), \ 939 (__v2df)(__m128d)(W), (__mmask8)(U), \ 940 (int)(C), (int)(R)); }) 941 942#define _mm_maskz_reduce_round_sd(U, A, B, C, R) __extension__ ({ \ 943 (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ 944 (__v2df)(__m128d)(B), \ 945 (__v2df)_mm_setzero_pd(), \ 946 (__mmask8)(U), (int)(C), (int)(R)); }) 947 948static __inline__ __mmask16 __DEFAULT_FN_ATTRS 949_mm512_movepi32_mask (__m512i __A) 950{ 951 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A); 952} 953 954static __inline__ __m512i __DEFAULT_FN_ATTRS 955_mm512_movm_epi32 (__mmask16 __A) 956{ 957 return (__m512i) __builtin_ia32_cvtmask2d512 (__A); 958} 959 960static __inline__ __m512i __DEFAULT_FN_ATTRS 961_mm512_movm_epi64 (__mmask8 __A) 962{ 963 return (__m512i) __builtin_ia32_cvtmask2q512 (__A); 964} 965 966static __inline__ __mmask8 __DEFAULT_FN_ATTRS 967_mm512_movepi64_mask (__m512i __A) 968{ 969 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A); 970} 971 972 973static __inline__ __m512 __DEFAULT_FN_ATTRS 974_mm512_broadcast_f32x2 (__m128 __A) 975{ 976 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, 977 (__v16sf)_mm512_undefined_ps(), 978 (__mmask16) -1); 979} 980 981static __inline__ __m512 __DEFAULT_FN_ATTRS 982_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) 983{ 984 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, 985 (__v16sf) 986 __O, __M); 987} 988 989static __inline__ __m512 __DEFAULT_FN_ATTRS 990_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) 991{ 992 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, 993 (__v16sf)_mm512_setzero_ps (), 994 __M); 995} 996 997static __inline__ __m512 __DEFAULT_FN_ATTRS 998_mm512_broadcast_f32x8(__m256 __A) 999{ 1000 return (__m512)__builtin_shufflevector((__v8sf)__A, (__v8sf)__A, 1001 0, 1, 2, 3, 4, 5, 6, 7, 1002 0, 1, 2, 3, 4, 5, 6, 7); 1003} 1004 1005static __inline__ __m512 __DEFAULT_FN_ATTRS 1006_mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A) 1007{ 1008 return (__m512)__builtin_ia32_selectps_512((__mmask8)__M, 1009 (__v16sf)_mm512_broadcast_f32x8(__A), 1010 (__v16sf)__O); 1011} 1012 1013static __inline__ __m512 __DEFAULT_FN_ATTRS 1014_mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A) 1015{ 1016 return (__m512)__builtin_ia32_selectps_512((__mmask8)__M, 1017 (__v16sf)_mm512_broadcast_f32x8(__A), 1018 (__v16sf)_mm512_setzero_ps()); 1019} 1020 1021static __inline__ __m512d __DEFAULT_FN_ATTRS 1022_mm512_broadcast_f64x2(__m128d __A) 1023{ 1024 return (__m512d)__builtin_shufflevector((__v2df)__A, (__v2df)__A, 1025 0, 1, 0, 1, 0, 1, 0, 1); 1026} 1027 1028static __inline__ __m512d __DEFAULT_FN_ATTRS 1029_mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A) 1030{ 1031 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, 1032 (__v8df)_mm512_broadcast_f64x2(__A), 1033 (__v8df)__O); 1034} 1035 1036static __inline__ __m512d __DEFAULT_FN_ATTRS 1037_mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) 1038{ 1039 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, 1040 (__v8df)_mm512_broadcast_f64x2(__A), 1041 (__v8df)_mm512_setzero_pd()); 1042} 1043 1044static __inline__ __m512i __DEFAULT_FN_ATTRS 1045_mm512_broadcast_i32x2 (__m128i __A) 1046{ 1047 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A, 1048 (__v16si)_mm512_setzero_si512(), 1049 (__mmask16) -1); 1050} 1051 1052static __inline__ __m512i __DEFAULT_FN_ATTRS 1053_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) 1054{ 1055 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A, 1056 (__v16si) 1057 __O, __M); 1058} 1059 1060static __inline__ __m512i __DEFAULT_FN_ATTRS 1061_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) 1062{ 1063 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A, 1064 (__v16si)_mm512_setzero_si512 (), 1065 __M); 1066} 1067 1068static __inline__ __m512i __DEFAULT_FN_ATTRS 1069_mm512_broadcast_i32x8(__m256i __A) 1070{ 1071 return (__m512i)__builtin_shufflevector((__v8si)__A, (__v8si)__A, 1072 0, 1, 2, 3, 4, 5, 6, 7, 1073 0, 1, 2, 3, 4, 5, 6, 7); 1074} 1075 1076static __inline__ __m512i __DEFAULT_FN_ATTRS 1077_mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A) 1078{ 1079 return (__m512i)__builtin_ia32_selectd_512((__mmask8)__M, 1080 (__v16si)_mm512_broadcast_i32x8(__A), 1081 (__v16si)__O); 1082} 1083 1084static __inline__ __m512i __DEFAULT_FN_ATTRS 1085_mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A) 1086{ 1087 return (__m512i)__builtin_ia32_selectd_512((__mmask8)__M, 1088 (__v16si)_mm512_broadcast_i32x8(__A), 1089 (__v16si)_mm512_setzero_si512()); 1090} 1091 1092static __inline__ __m512i __DEFAULT_FN_ATTRS 1093_mm512_broadcast_i64x2(__m128i __A) 1094{ 1095 return (__m512i)__builtin_shufflevector((__v2di)__A, (__v2di)__A, 1096 0, 1, 0, 1, 0, 1, 0, 1); 1097} 1098 1099static __inline__ __m512i __DEFAULT_FN_ATTRS 1100_mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A) 1101{ 1102 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, 1103 (__v8di)_mm512_broadcast_i64x2(__A), 1104 (__v8di)__O); 1105} 1106 1107static __inline__ __m512i __DEFAULT_FN_ATTRS 1108_mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) 1109{ 1110 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, 1111 (__v8di)_mm512_broadcast_i64x2(__A), 1112 (__v8di)_mm512_setzero_si512()); 1113} 1114 1115#define _mm512_extractf32x8_ps(A, imm) __extension__ ({ \ 1116 (__m256)__builtin_shufflevector((__v16sf)(__m512)(A), \ 1117 (__v16sf)_mm512_undefined_ps(), \ 1118 ((imm) & 1) ? 8 : 0, \ 1119 ((imm) & 1) ? 9 : 1, \ 1120 ((imm) & 1) ? 10 : 2, \ 1121 ((imm) & 1) ? 11 : 3, \ 1122 ((imm) & 1) ? 12 : 4, \ 1123 ((imm) & 1) ? 13 : 5, \ 1124 ((imm) & 1) ? 14 : 6, \ 1125 ((imm) & 1) ? 15 : 7); }) 1126 1127#define _mm512_mask_extractf32x8_ps(W, U, A, imm) __extension__ ({ \ 1128 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ 1129 (__v8sf)_mm512_extractf32x8_ps((A), (imm)), \ 1130 (__v8sf)(W)); }) 1131 1132#define _mm512_maskz_extractf32x8_ps(U, A, imm) __extension__ ({ \ 1133 (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ 1134 (__v8sf)_mm512_extractf32x8_ps((A), (imm)), \ 1135 (__v8sf)_mm256_setzero_ps()); }) 1136 1137#define _mm512_extractf64x2_pd(A, imm) __extension__ ({ \ 1138 (__m128d)__builtin_shufflevector((__v8df)(__m512d)(A), \ 1139 (__v8df)_mm512_undefined_pd(), \ 1140 0 + ((imm) & 0x3) * 2, \ 1141 1 + ((imm) & 0x3) * 2); }) 1142 1143#define _mm512_mask_extractf64x2_pd(W, U, A, imm) __extension__ ({ \ 1144 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ 1145 (__v2df)_mm512_extractf64x2_pd((A), (imm)), \ 1146 (__v2df)(W)); }) 1147 1148#define _mm512_maskz_extractf64x2_pd(U, A, imm) __extension__ ({ \ 1149 (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ 1150 (__v2df)_mm512_extractf64x2_pd((A), (imm)), \ 1151 (__v2df)_mm_setzero_pd()); }) 1152 1153#define _mm512_extracti32x8_epi32(A, imm) __extension__ ({ \ 1154 (__m256i)__builtin_shufflevector((__v16si)(__m512i)(A), \ 1155 (__v16si)_mm512_undefined_epi32(), \ 1156 ((imm) & 1) ? 8 : 0, \ 1157 ((imm) & 1) ? 9 : 1, \ 1158 ((imm) & 1) ? 10 : 2, \ 1159 ((imm) & 1) ? 11 : 3, \ 1160 ((imm) & 1) ? 12 : 4, \ 1161 ((imm) & 1) ? 13 : 5, \ 1162 ((imm) & 1) ? 14 : 6, \ 1163 ((imm) & 1) ? 15 : 7); }) 1164 1165#define _mm512_mask_extracti32x8_epi32(W, U, A, imm) __extension__ ({ \ 1166 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ 1167 (__v8si)_mm512_extracti32x8_epi32((A), (imm)), \ 1168 (__v8si)(W)); }) 1169 1170#define _mm512_maskz_extracti32x8_epi32(U, A, imm) __extension__ ({ \ 1171 (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ 1172 (__v8si)_mm512_extracti32x8_epi32((A), (imm)), \ 1173 (__v8si)_mm256_setzero_si256()); }) 1174 1175#define _mm512_extracti64x2_epi64(A, imm) __extension__ ({ \ 1176 (__m128i)__builtin_shufflevector((__v8di)(__m512i)(A), \ 1177 (__v8di)_mm512_undefined_epi32(), \ 1178 0 + ((imm) & 0x3) * 2, \ 1179 1 + ((imm) & 0x3) * 2); }) 1180 1181#define _mm512_mask_extracti64x2_epi64(W, U, A, imm) __extension__ ({ \ 1182 (__m128d)__builtin_ia32_selectq_128((__mmask8)(U), \ 1183 (__v2di)_mm512_extracti64x2_epi64((A), (imm)), \ 1184 (__v2di)(W)); }) 1185 1186#define _mm512_maskz_extracti64x2_epi64(U, A, imm) __extension__ ({ \ 1187 (__m128d)__builtin_ia32_selectq_128((__mmask8)(U), \ 1188 (__v2di)_mm512_extracti64x2_epi64((A), (imm)), \ 1189 (__v2di)_mm_setzero_di()); }) 1190 1191#define _mm512_insertf32x8(A, B, imm) __extension__ ({ \ 1192 (__m512)__builtin_shufflevector((__v16sf)(__m512)(A), \ 1193 (__v16sf)_mm512_castps256_ps512((__m256)(B)),\ 1194 ((imm) & 0x1) ? 0 : 16, \ 1195 ((imm) & 0x1) ? 1 : 17, \ 1196 ((imm) & 0x1) ? 2 : 18, \ 1197 ((imm) & 0x1) ? 3 : 19, \ 1198 ((imm) & 0x1) ? 4 : 20, \ 1199 ((imm) & 0x1) ? 5 : 21, \ 1200 ((imm) & 0x1) ? 6 : 22, \ 1201 ((imm) & 0x1) ? 7 : 23, \ 1202 ((imm) & 0x1) ? 16 : 8, \ 1203 ((imm) & 0x1) ? 17 : 9, \ 1204 ((imm) & 0x1) ? 18 : 10, \ 1205 ((imm) & 0x1) ? 19 : 11, \ 1206 ((imm) & 0x1) ? 20 : 12, \ 1207 ((imm) & 0x1) ? 21 : 13, \ 1208 ((imm) & 0x1) ? 22 : 14, \ 1209 ((imm) & 0x1) ? 23 : 15); }) 1210 1211#define _mm512_mask_insertf32x8(W, U, A, B, imm) __extension__ ({ \ 1212 (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ 1213 (__v16sf)_mm512_insertf32x8((A), (B), (imm)), \ 1214 (__v16sf)(W)); }) 1215 1216#define _mm512_maskz_insertf32x8(U, A, B, imm) __extension__ ({ \ 1217 (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ 1218 (__v16sf)_mm512_insertf32x8((A), (B), (imm)), \ 1219 (__v16sf)_mm512_setzero_ps()); }) 1220 1221#define _mm512_insertf64x2(A, B, imm) __extension__ ({ \ 1222 (__m512d)__builtin_shufflevector((__v8df)(__m512d)(A), \ 1223 (__v8df)_mm512_castpd128_pd512((__m128d)(B)),\ 1224 (((imm) & 0x3) == 0) ? 8 : 0, \ 1225 (((imm) & 0x3) == 0) ? 9 : 1, \ 1226 (((imm) & 0x3) == 1) ? 8 : 2, \ 1227 (((imm) & 0x3) == 1) ? 9 : 3, \ 1228 (((imm) & 0x3) == 2) ? 8 : 4, \ 1229 (((imm) & 0x3) == 2) ? 9 : 5, \ 1230 (((imm) & 0x3) == 3) ? 8 : 6, \ 1231 (((imm) & 0x3) == 3) ? 9 : 7); }) 1232 1233#define _mm512_mask_insertf64x2(W, U, A, B, imm) __extension__ ({ \ 1234 (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ 1235 (__v8df)_mm512_insertf64x2((A), (B), (imm)), \ 1236 (__v8df)(W)); }) 1237 1238#define _mm512_maskz_insertf64x2(U, A, B, imm) __extension__ ({ \ 1239 (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ 1240 (__v8df)_mm512_insertf64x2((A), (B), (imm)), \ 1241 (__v8df)_mm512_setzero_pd()); }) 1242 1243#define _mm512_inserti32x8(A, B, imm) __extension__ ({ \ 1244 (__m512i)__builtin_shufflevector((__v16si)(__m512i)(A), \ 1245 (__v16si)_mm512_castsi256_si512((__m256i)(B)),\ 1246 ((imm) & 0x1) ? 0 : 16, \ 1247 ((imm) & 0x1) ? 1 : 17, \ 1248 ((imm) & 0x1) ? 2 : 18, \ 1249 ((imm) & 0x1) ? 3 : 19, \ 1250 ((imm) & 0x1) ? 4 : 20, \ 1251 ((imm) & 0x1) ? 5 : 21, \ 1252 ((imm) & 0x1) ? 6 : 22, \ 1253 ((imm) & 0x1) ? 7 : 23, \ 1254 ((imm) & 0x1) ? 16 : 8, \ 1255 ((imm) & 0x1) ? 17 : 9, \ 1256 ((imm) & 0x1) ? 18 : 10, \ 1257 ((imm) & 0x1) ? 19 : 11, \ 1258 ((imm) & 0x1) ? 20 : 12, \ 1259 ((imm) & 0x1) ? 21 : 13, \ 1260 ((imm) & 0x1) ? 22 : 14, \ 1261 ((imm) & 0x1) ? 23 : 15); }) 1262 1263#define _mm512_mask_inserti32x8(W, U, A, B, imm) __extension__ ({ \ 1264 (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ 1265 (__v16si)_mm512_inserti32x8((A), (B), (imm)), \ 1266 (__v16si)(W)); }) 1267 1268#define _mm512_maskz_inserti32x8(U, A, B, imm) __extension__ ({ \ 1269 (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ 1270 (__v16si)_mm512_inserti32x8((A), (B), (imm)), \ 1271 (__v16si)_mm512_setzero_si512()); }) 1272 1273#define _mm512_inserti64x2(A, B, imm) __extension__ ({ \ 1274 (__m512i)__builtin_shufflevector((__v8di)(__m512i)(A), \ 1275 (__v8di)_mm512_castsi128_si512((__m128i)(B)),\ 1276 (((imm) & 0x3) == 0) ? 8 : 0, \ 1277 (((imm) & 0x3) == 0) ? 9 : 1, \ 1278 (((imm) & 0x3) == 1) ? 8 : 2, \ 1279 (((imm) & 0x3) == 1) ? 9 : 3, \ 1280 (((imm) & 0x3) == 2) ? 8 : 4, \ 1281 (((imm) & 0x3) == 2) ? 9 : 5, \ 1282 (((imm) & 0x3) == 3) ? 8 : 6, \ 1283 (((imm) & 0x3) == 3) ? 9 : 7); }) 1284 1285#define _mm512_mask_inserti64x2(W, U, A, B, imm) __extension__ ({ \ 1286 (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ 1287 (__v8di)_mm512_inserti64x2((A), (B), (imm)), \ 1288 (__v8di)(W)); }) 1289 1290#define _mm512_maskz_inserti64x2(U, A, B, imm) __extension__ ({ \ 1291 (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ 1292 (__v8di)_mm512_inserti64x2((A), (B), (imm)), \ 1293 (__v8di)_mm512_setzero_si512()); }) 1294 1295#define _mm512_mask_fpclass_ps_mask(U, A, imm) __extension__ ({ \ 1296 (__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \ 1297 (int)(imm), (__mmask16)(U)); }) 1298 1299#define _mm512_fpclass_ps_mask(A, imm) __extension__ ({ \ 1300 (__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \ 1301 (int)(imm), (__mmask16)-1); }) 1302 1303#define _mm512_mask_fpclass_pd_mask(U, A, imm) __extension__ ({ \ 1304 (__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \ 1305 (__mmask8)(U)); }) 1306 1307#define _mm512_fpclass_pd_mask(A, imm) __extension__ ({ \ 1308 (__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \ 1309 (__mmask8)-1); }) 1310 1311#define _mm_fpclass_sd_mask(A, imm) __extension__ ({ \ 1312 (__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \ 1313 (__mmask8)-1); }) 1314 1315#define _mm_mask_fpclass_sd_mask(U, A, imm) __extension__ ({ \ 1316 (__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \ 1317 (__mmask8)(U)); }) 1318 1319#define _mm_fpclass_ss_mask(A, imm) __extension__ ({ \ 1320 (__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \ 1321 (__mmask8)-1); }) 1322 1323#define _mm_mask_fpclass_ss_mask(U, A, imm) __extension__ ({ \ 1324 (__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \ 1325 (__mmask8)(U)); }) 1326 1327#undef __DEFAULT_FN_ATTRS 1328 1329#endif 1330