1/* Copyright (C) 2014-2015 Free Software Foundation, Inc. 2 3 This file is part of GCC. 4 5 GCC is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3, or (at your option) 8 any later version. 9 10 GCC is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 Under Section 7 of GPL version 3, you are granted additional 16 permissions described in the GCC Runtime Library Exception, version 17 3.1, as published by the Free Software Foundation. 18 19 You should have received a copy of the GNU General Public License and 20 a copy of the GCC Runtime Library Exception along with this program; 21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 22 <http://www.gnu.org/licenses/>. */ 23 24#ifndef _IMMINTRIN_H_INCLUDED 25#error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead." 26#endif 27 28#ifndef _AVX512DQINTRIN_H_INCLUDED 29#define _AVX512DQINTRIN_H_INCLUDED 30 31#ifndef __AVX512DQ__ 32#pragma GCC push_options 33#pragma GCC target("avx512dq") 34#define __DISABLE_AVX512DQ__ 35#endif /* __AVX512DQ__ */ 36 37extern __inline __m512d 38__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 39_mm512_broadcast_f64x2 (__m128d __A) 40{ 41 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) 42 __A, 43 _mm512_undefined_pd(), 44 (__mmask8) - 45 1); 46} 47 48extern __inline __m512d 49__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 50_mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A) 51{ 52 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) 53 __A, 54 (__v8df) 55 __O, __M); 56} 57 58extern __inline __m512d 59__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 60_mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) 61{ 62 return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) 63 __A, 64 (__v8df) 65 _mm512_setzero_ps (), 66 __M); 67} 68 69extern __inline __m512i 70__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 71_mm512_broadcast_i64x2 (__m128i __A) 72{ 73 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) 74 __A, 75 _mm512_undefined_si512(), 76 (__mmask8) - 77 1); 78} 79 80extern __inline __m512i 81__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 82_mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A) 83{ 84 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) 85 __A, 86 (__v8di) 87 __O, __M); 88} 89 90extern __inline __m512i 91__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 92_mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A) 93{ 94 return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) 95 __A, 96 (__v8di) 97 _mm512_setzero_si512 (), 98 __M); 99} 100 101extern __inline __m512 102__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 103_mm512_broadcast_f32x2 (__m128 __A) 104{ 105 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, 106 (__v16sf)_mm512_undefined_ps(), 107 (__mmask16) - 108 1); 109} 110 111extern __inline __m512 112__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 113_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) 114{ 115 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, 116 (__v16sf) 117 __O, __M); 118} 119 120extern __inline __m512 121__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 122_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) 123{ 124 return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, 125 (__v16sf) 126 _mm512_setzero_ps (), 127 __M); 128} 129 130extern __inline __m512i 131__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 132_mm512_broadcast_i32x2 (__m128i __A) 133{ 134 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) 135 __A, 136 (__v16si)_mm512_undefined_si512(), 137 (__mmask16) 138 -1); 139} 140 141extern __inline __m512i 142__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 143_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) 144{ 145 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) 146 __A, 147 (__v16si) 148 __O, __M); 149} 150 151extern __inline __m512i 152__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 153_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) 154{ 155 return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) 156 __A, 157 (__v16si) 158 _mm512_setzero_si512 (), 159 __M); 160} 161 162extern __inline __m512 163__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 164_mm512_broadcast_f32x8 (__m256 __A) 165{ 166 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A, 167 _mm512_undefined_ps(), 168 (__mmask16) - 169 1); 170} 171 172extern __inline __m512 173__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 174_mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A) 175{ 176 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A, 177 (__v16sf)__O, 178 __M); 179} 180 181extern __inline __m512 182__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 183_mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A) 184{ 185 return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A, 186 (__v16sf) 187 _mm512_setzero_ps (), 188 __M); 189} 190 191extern __inline __m512i 192__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 193_mm512_broadcast_i32x8 (__m256i __A) 194{ 195 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) 196 __A, 197 (__v16si)_mm512_undefined_si512(), 198 (__mmask16) 199 -1); 200} 201 202extern __inline __m512i 203__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 204_mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A) 205{ 206 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) 207 __A, 208 (__v16si)__O, 209 __M); 210} 211 212extern __inline __m512i 213__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 214_mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A) 215{ 216 return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) 217 __A, 218 (__v16si) 219 _mm512_setzero_si512 (), 220 __M); 221} 222 223extern __inline __m512i 224__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 225_mm512_mullo_epi64 (__m512i __A, __m512i __B) 226{ 227 return (__m512i) ((__v8du) __A * (__v8du) __B); 228} 229 230extern __inline __m512i 231__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 232_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, 233 __m512i __B) 234{ 235 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A, 236 (__v8di) __B, 237 (__v8di) __W, 238 (__mmask8) __U); 239} 240 241extern __inline __m512i 242__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 243_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) 244{ 245 return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A, 246 (__v8di) __B, 247 (__v8di) 248 _mm512_setzero_si512 (), 249 (__mmask8) __U); 250} 251 252extern __inline __m512d 253__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 254_mm512_xor_pd (__m512d __A, __m512d __B) 255{ 256 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A, 257 (__v8df) __B, 258 (__v8df) 259 _mm512_setzero_pd (), 260 (__mmask8) -1); 261} 262 263extern __inline __m512d 264__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 265_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A, 266 __m512d __B) 267{ 268 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A, 269 (__v8df) __B, 270 (__v8df) __W, 271 (__mmask8) __U); 272} 273 274extern __inline __m512d 275__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 276_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B) 277{ 278 return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A, 279 (__v8df) __B, 280 (__v8df) 281 _mm512_setzero_pd (), 282 (__mmask8) __U); 283} 284 285extern __inline __m512 286__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 287_mm512_xor_ps (__m512 __A, __m512 __B) 288{ 289 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A, 290 (__v16sf) __B, 291 (__v16sf) 292 _mm512_setzero_ps (), 293 (__mmask16) -1); 294} 295 296extern __inline __m512 297__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 298_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) 299{ 300 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A, 301 (__v16sf) __B, 302 (__v16sf) __W, 303 (__mmask16) __U); 304} 305 306extern __inline __m512 307__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 308_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B) 309{ 310 return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A, 311 (__v16sf) __B, 312 (__v16sf) 313 _mm512_setzero_ps (), 314 (__mmask16) __U); 315} 316 317extern __inline __m512d 318__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 319_mm512_or_pd (__m512d __A, __m512d __B) 320{ 321 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A, 322 (__v8df) __B, 323 (__v8df) 324 _mm512_setzero_pd (), 325 (__mmask8) -1); 326} 327 328extern __inline __m512d 329__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 330_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) 331{ 332 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A, 333 (__v8df) __B, 334 (__v8df) __W, 335 (__mmask8) __U); 336} 337 338extern __inline __m512d 339__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 340_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B) 341{ 342 return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A, 343 (__v8df) __B, 344 (__v8df) 345 _mm512_setzero_pd (), 346 (__mmask8) __U); 347} 348 349extern __inline __m512 350__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 351_mm512_or_ps (__m512 __A, __m512 __B) 352{ 353 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A, 354 (__v16sf) __B, 355 (__v16sf) 356 _mm512_setzero_ps (), 357 (__mmask16) -1); 358} 359 360extern __inline __m512 361__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 362_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) 363{ 364 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A, 365 (__v16sf) __B, 366 (__v16sf) __W, 367 (__mmask16) __U); 368} 369 370extern __inline __m512 371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 372_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B) 373{ 374 return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A, 375 (__v16sf) __B, 376 (__v16sf) 377 _mm512_setzero_ps (), 378 (__mmask16) __U); 379} 380 381extern __inline __m512d 382__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 383_mm512_and_pd (__m512d __A, __m512d __B) 384{ 385 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A, 386 (__v8df) __B, 387 (__v8df) 388 _mm512_setzero_pd (), 389 (__mmask8) -1); 390} 391 392extern __inline __m512d 393__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 394_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A, 395 __m512d __B) 396{ 397 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A, 398 (__v8df) __B, 399 (__v8df) __W, 400 (__mmask8) __U); 401} 402 403extern __inline __m512d 404__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 405_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B) 406{ 407 return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A, 408 (__v8df) __B, 409 (__v8df) 410 _mm512_setzero_pd (), 411 (__mmask8) __U); 412} 413 414extern __inline __m512 415__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 416_mm512_and_ps (__m512 __A, __m512 __B) 417{ 418 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A, 419 (__v16sf) __B, 420 (__v16sf) 421 _mm512_setzero_ps (), 422 (__mmask16) -1); 423} 424 425extern __inline __m512 426__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 427_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) 428{ 429 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A, 430 (__v16sf) __B, 431 (__v16sf) __W, 432 (__mmask16) __U); 433} 434 435extern __inline __m512 436__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 437_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B) 438{ 439 return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A, 440 (__v16sf) __B, 441 (__v16sf) 442 _mm512_setzero_ps (), 443 (__mmask16) __U); 444} 445 446extern __inline __m512d 447__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 448_mm512_andnot_pd (__m512d __A, __m512d __B) 449{ 450 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A, 451 (__v8df) __B, 452 (__v8df) 453 _mm512_setzero_pd (), 454 (__mmask8) -1); 455} 456 457extern __inline __m512d 458__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 459_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A, 460 __m512d __B) 461{ 462 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A, 463 (__v8df) __B, 464 (__v8df) __W, 465 (__mmask8) __U); 466} 467 468extern __inline __m512d 469__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 470_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B) 471{ 472 return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A, 473 (__v8df) __B, 474 (__v8df) 475 _mm512_setzero_pd (), 476 (__mmask8) __U); 477} 478 479extern __inline __m512 480__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 481_mm512_andnot_ps (__m512 __A, __m512 __B) 482{ 483 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A, 484 (__v16sf) __B, 485 (__v16sf) 486 _mm512_setzero_ps (), 487 (__mmask16) -1); 488} 489 490extern __inline __m512 491__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 492_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A, 493 __m512 __B) 494{ 495 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A, 496 (__v16sf) __B, 497 (__v16sf) __W, 498 (__mmask16) __U); 499} 500 501extern __inline __m512 502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 503_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B) 504{ 505 return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A, 506 (__v16sf) __B, 507 (__v16sf) 508 _mm512_setzero_ps (), 509 (__mmask16) __U); 510} 511 512extern __inline __mmask16 513__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 514_mm512_movepi32_mask (__m512i __A) 515{ 516 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A); 517} 518 519extern __inline __mmask8 520__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 521_mm512_movepi64_mask (__m512i __A) 522{ 523 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A); 524} 525 526extern __inline __m512i 527__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 528_mm512_movm_epi32 (__mmask16 __A) 529{ 530 return (__m512i) __builtin_ia32_cvtmask2d512 (__A); 531} 532 533extern __inline __m512i 534__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 535_mm512_movm_epi64 (__mmask8 __A) 536{ 537 return (__m512i) __builtin_ia32_cvtmask2q512 (__A); 538} 539 540extern __inline __m512i 541__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 542_mm512_cvttpd_epi64 (__m512d __A) 543{ 544 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 545 (__v8di) 546 _mm512_setzero_si512 (), 547 (__mmask8) -1, 548 _MM_FROUND_CUR_DIRECTION); 549} 550 551extern __inline __m512i 552__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 553_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) 554{ 555 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 556 (__v8di) __W, 557 (__mmask8) __U, 558 _MM_FROUND_CUR_DIRECTION); 559} 560 561extern __inline __m512i 562__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 563_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) 564{ 565 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 566 (__v8di) 567 _mm512_setzero_si512 (), 568 (__mmask8) __U, 569 _MM_FROUND_CUR_DIRECTION); 570} 571 572extern __inline __m512i 573__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 574_mm512_cvttpd_epu64 (__m512d __A) 575{ 576 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 577 (__v8di) 578 _mm512_setzero_si512 (), 579 (__mmask8) -1, 580 _MM_FROUND_CUR_DIRECTION); 581} 582 583extern __inline __m512i 584__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 585_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) 586{ 587 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 588 (__v8di) __W, 589 (__mmask8) __U, 590 _MM_FROUND_CUR_DIRECTION); 591} 592 593extern __inline __m512i 594__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 595_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) 596{ 597 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 598 (__v8di) 599 _mm512_setzero_si512 (), 600 (__mmask8) __U, 601 _MM_FROUND_CUR_DIRECTION); 602} 603 604extern __inline __m512i 605__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 606_mm512_cvttps_epi64 (__m256 __A) 607{ 608 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 609 (__v8di) 610 _mm512_setzero_si512 (), 611 (__mmask8) -1, 612 _MM_FROUND_CUR_DIRECTION); 613} 614 615extern __inline __m512i 616__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 617_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) 618{ 619 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 620 (__v8di) __W, 621 (__mmask8) __U, 622 _MM_FROUND_CUR_DIRECTION); 623} 624 625extern __inline __m512i 626__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 627_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) 628{ 629 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 630 (__v8di) 631 _mm512_setzero_si512 (), 632 (__mmask8) __U, 633 _MM_FROUND_CUR_DIRECTION); 634} 635 636extern __inline __m512i 637__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 638_mm512_cvttps_epu64 (__m256 __A) 639{ 640 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 641 (__v8di) 642 _mm512_setzero_si512 (), 643 (__mmask8) -1, 644 _MM_FROUND_CUR_DIRECTION); 645} 646 647extern __inline __m512i 648__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 649_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) 650{ 651 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 652 (__v8di) __W, 653 (__mmask8) __U, 654 _MM_FROUND_CUR_DIRECTION); 655} 656 657extern __inline __m512i 658__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 659_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) 660{ 661 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 662 (__v8di) 663 _mm512_setzero_si512 (), 664 (__mmask8) __U, 665 _MM_FROUND_CUR_DIRECTION); 666} 667 668extern __inline __m512i 669__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 670_mm512_cvtpd_epi64 (__m512d __A) 671{ 672 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 673 (__v8di) 674 _mm512_setzero_si512 (), 675 (__mmask8) -1, 676 _MM_FROUND_CUR_DIRECTION); 677} 678 679extern __inline __m512i 680__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 681_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) 682{ 683 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 684 (__v8di) __W, 685 (__mmask8) __U, 686 _MM_FROUND_CUR_DIRECTION); 687} 688 689extern __inline __m512i 690__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 691_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) 692{ 693 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 694 (__v8di) 695 _mm512_setzero_si512 (), 696 (__mmask8) __U, 697 _MM_FROUND_CUR_DIRECTION); 698} 699 700extern __inline __m512i 701__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 702_mm512_cvtpd_epu64 (__m512d __A) 703{ 704 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 705 (__v8di) 706 _mm512_setzero_si512 (), 707 (__mmask8) -1, 708 _MM_FROUND_CUR_DIRECTION); 709} 710 711extern __inline __m512i 712__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 713_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) 714{ 715 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 716 (__v8di) __W, 717 (__mmask8) __U, 718 _MM_FROUND_CUR_DIRECTION); 719} 720 721extern __inline __m512i 722__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 723_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) 724{ 725 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 726 (__v8di) 727 _mm512_setzero_si512 (), 728 (__mmask8) __U, 729 _MM_FROUND_CUR_DIRECTION); 730} 731 732extern __inline __m512i 733__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 734_mm512_cvtps_epi64 (__m256 __A) 735{ 736 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 737 (__v8di) 738 _mm512_setzero_si512 (), 739 (__mmask8) -1, 740 _MM_FROUND_CUR_DIRECTION); 741} 742 743extern __inline __m512i 744__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 745_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) 746{ 747 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 748 (__v8di) __W, 749 (__mmask8) __U, 750 _MM_FROUND_CUR_DIRECTION); 751} 752 753extern __inline __m512i 754__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 755_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) 756{ 757 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 758 (__v8di) 759 _mm512_setzero_si512 (), 760 (__mmask8) __U, 761 _MM_FROUND_CUR_DIRECTION); 762} 763 764extern __inline __m512i 765__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 766_mm512_cvtps_epu64 (__m256 __A) 767{ 768 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 769 (__v8di) 770 _mm512_setzero_si512 (), 771 (__mmask8) -1, 772 _MM_FROUND_CUR_DIRECTION); 773} 774 775extern __inline __m512i 776__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 777_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) 778{ 779 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 780 (__v8di) __W, 781 (__mmask8) __U, 782 _MM_FROUND_CUR_DIRECTION); 783} 784 785extern __inline __m512i 786__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 787_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) 788{ 789 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 790 (__v8di) 791 _mm512_setzero_si512 (), 792 (__mmask8) __U, 793 _MM_FROUND_CUR_DIRECTION); 794} 795 796extern __inline __m256 797__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 798_mm512_cvtepi64_ps (__m512i __A) 799{ 800 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 801 (__v8sf) 802 _mm256_setzero_ps (), 803 (__mmask8) -1, 804 _MM_FROUND_CUR_DIRECTION); 805} 806 807extern __inline __m256 808__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 809_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) 810{ 811 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 812 (__v8sf) __W, 813 (__mmask8) __U, 814 _MM_FROUND_CUR_DIRECTION); 815} 816 817extern __inline __m256 818__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 819_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) 820{ 821 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 822 (__v8sf) 823 _mm256_setzero_ps (), 824 (__mmask8) __U, 825 _MM_FROUND_CUR_DIRECTION); 826} 827 828extern __inline __m256 829__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 830_mm512_cvtepu64_ps (__m512i __A) 831{ 832 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 833 (__v8sf) 834 _mm256_setzero_ps (), 835 (__mmask8) -1, 836 _MM_FROUND_CUR_DIRECTION); 837} 838 839extern __inline __m256 840__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 841_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) 842{ 843 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 844 (__v8sf) __W, 845 (__mmask8) __U, 846 _MM_FROUND_CUR_DIRECTION); 847} 848 849extern __inline __m256 850__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 851_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) 852{ 853 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 854 (__v8sf) 855 _mm256_setzero_ps (), 856 (__mmask8) __U, 857 _MM_FROUND_CUR_DIRECTION); 858} 859 860extern __inline __m512d 861__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 862_mm512_cvtepi64_pd (__m512i __A) 863{ 864 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 865 (__v8df) 866 _mm512_setzero_pd (), 867 (__mmask8) -1, 868 _MM_FROUND_CUR_DIRECTION); 869} 870 871extern __inline __m512d 872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 873_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) 874{ 875 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 876 (__v8df) __W, 877 (__mmask8) __U, 878 _MM_FROUND_CUR_DIRECTION); 879} 880 881extern __inline __m512d 882__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 883_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) 884{ 885 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 886 (__v8df) 887 _mm512_setzero_pd (), 888 (__mmask8) __U, 889 _MM_FROUND_CUR_DIRECTION); 890} 891 892extern __inline __m512d 893__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 894_mm512_cvtepu64_pd (__m512i __A) 895{ 896 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 897 (__v8df) 898 _mm512_setzero_pd (), 899 (__mmask8) -1, 900 _MM_FROUND_CUR_DIRECTION); 901} 902 903extern __inline __m512d 904__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 905_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) 906{ 907 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 908 (__v8df) __W, 909 (__mmask8) __U, 910 _MM_FROUND_CUR_DIRECTION); 911} 912 913extern __inline __m512d 914__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 915_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) 916{ 917 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 918 (__v8df) 919 _mm512_setzero_pd (), 920 (__mmask8) __U, 921 _MM_FROUND_CUR_DIRECTION); 922} 923 924#ifdef __OPTIMIZE__ 925extern __inline __m512d 926__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 927_mm512_range_pd (__m512d __A, __m512d __B, int __C) 928{ 929 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A, 930 (__v8df) __B, __C, 931 (__v8df) 932 _mm512_setzero_pd (), 933 (__mmask8) -1, 934 _MM_FROUND_CUR_DIRECTION); 935} 936 937extern __inline __m512d 938__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 939_mm512_mask_range_pd (__m512d __W, __mmask8 __U, 940 __m512d __A, __m512d __B, int __C) 941{ 942 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A, 943 (__v8df) __B, __C, 944 (__v8df) __W, 945 (__mmask8) __U, 946 _MM_FROUND_CUR_DIRECTION); 947} 948 949extern __inline __m512d 950__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 951_mm512_maskz_range_pd (__mmask8 __U, __m512d __A, __m512d __B, int __C) 952{ 953 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A, 954 (__v8df) __B, __C, 955 (__v8df) 956 _mm512_setzero_pd (), 957 (__mmask8) __U, 958 _MM_FROUND_CUR_DIRECTION); 959} 960 961extern __inline __m512 962__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 963_mm512_range_ps (__m512 __A, __m512 __B, int __C) 964{ 965 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A, 966 (__v16sf) __B, __C, 967 (__v16sf) 968 _mm512_setzero_ps (), 969 (__mmask16) -1, 970 _MM_FROUND_CUR_DIRECTION); 971} 972 973extern __inline __m512 974__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 975_mm512_mask_range_ps (__m512 __W, __mmask16 __U, 976 __m512 __A, __m512 __B, int __C) 977{ 978 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A, 979 (__v16sf) __B, __C, 980 (__v16sf) __W, 981 (__mmask16) __U, 982 _MM_FROUND_CUR_DIRECTION); 983} 984 985extern __inline __m512 986__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 987_mm512_maskz_range_ps (__mmask16 __U, __m512 __A, __m512 __B, int __C) 988{ 989 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A, 990 (__v16sf) __B, __C, 991 (__v16sf) 992 _mm512_setzero_ps (), 993 (__mmask16) __U, 994 _MM_FROUND_CUR_DIRECTION); 995} 996 997extern __inline __m128d 998__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 999_mm_reduce_sd (__m128d __A, __m128d __B, int __C) 1000{ 1001 return (__m128d) __builtin_ia32_reducesd ((__v2df) __A, 1002 (__v2df) __B, __C); 1003} 1004 1005extern __inline __m128 1006__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1007_mm_reduce_ss (__m128 __A, __m128 __B, int __C) 1008{ 1009 return (__m128) __builtin_ia32_reducess ((__v4sf) __A, 1010 (__v4sf) __B, __C); 1011} 1012 1013extern __inline __m128d 1014__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1015_mm_range_sd (__m128d __A, __m128d __B, int __C) 1016{ 1017 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A, 1018 (__v2df) __B, __C, 1019 _MM_FROUND_CUR_DIRECTION); 1020} 1021 1022 1023extern __inline __m128 1024__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1025_mm_range_ss (__m128 __A, __m128 __B, int __C) 1026{ 1027 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A, 1028 (__v4sf) __B, __C, 1029 _MM_FROUND_CUR_DIRECTION); 1030} 1031 1032extern __inline __m128d 1033__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1034_mm_range_round_sd (__m128d __A, __m128d __B, int __C, const int __R) 1035{ 1036 return (__m128d) __builtin_ia32_rangesd128_round ((__v2df) __A, 1037 (__v2df) __B, __C, 1038 __R); 1039} 1040 1041extern __inline __m128 1042__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1043_mm_range_round_ss (__m128 __A, __m128 __B, int __C, const int __R) 1044{ 1045 return (__m128) __builtin_ia32_rangess128_round ((__v4sf) __A, 1046 (__v4sf) __B, __C, 1047 __R); 1048} 1049 1050extern __inline __mmask8 1051__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1052_mm_fpclass_ss_mask (__m128 __A, const int __imm) 1053{ 1054 return (__mmask8) __builtin_ia32_fpclassss ((__v4sf) __A, __imm); 1055} 1056 1057extern __inline __mmask8 1058__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1059_mm_fpclass_sd_mask (__m128d __A, const int __imm) 1060{ 1061 return (__mmask8) __builtin_ia32_fpclasssd ((__v2df) __A, __imm); 1062} 1063 1064extern __inline __m512i 1065__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1066_mm512_cvtt_roundpd_epi64 (__m512d __A, const int __R) 1067{ 1068 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 1069 (__v8di) 1070 _mm512_setzero_si512 (), 1071 (__mmask8) -1, 1072 __R); 1073} 1074 1075extern __inline __m512i 1076__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1077_mm512_mask_cvtt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A, 1078 const int __R) 1079{ 1080 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 1081 (__v8di) __W, 1082 (__mmask8) __U, 1083 __R); 1084} 1085 1086extern __inline __m512i 1087__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1088_mm512_maskz_cvtt_roundpd_epi64 (__mmask8 __U, __m512d __A, 1089 const int __R) 1090{ 1091 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, 1092 (__v8di) 1093 _mm512_setzero_si512 (), 1094 (__mmask8) __U, 1095 __R); 1096} 1097 1098extern __inline __m512i 1099__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1100_mm512_cvtt_roundpd_epu64 (__m512d __A, const int __R) 1101{ 1102 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 1103 (__v8di) 1104 _mm512_setzero_si512 (), 1105 (__mmask8) -1, 1106 __R); 1107} 1108 1109extern __inline __m512i 1110__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1111_mm512_mask_cvtt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A, 1112 const int __R) 1113{ 1114 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 1115 (__v8di) __W, 1116 (__mmask8) __U, 1117 __R); 1118} 1119 1120extern __inline __m512i 1121__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1122_mm512_maskz_cvtt_roundpd_epu64 (__mmask8 __U, __m512d __A, 1123 const int __R) 1124{ 1125 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, 1126 (__v8di) 1127 _mm512_setzero_si512 (), 1128 (__mmask8) __U, 1129 __R); 1130} 1131 1132extern __inline __m512i 1133__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1134_mm512_cvtt_roundps_epi64 (__m256 __A, const int __R) 1135{ 1136 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 1137 (__v8di) 1138 _mm512_setzero_si512 (), 1139 (__mmask8) -1, 1140 __R); 1141} 1142 1143extern __inline __m512i 1144__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1145_mm512_mask_cvtt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A, 1146 const int __R) 1147{ 1148 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 1149 (__v8di) __W, 1150 (__mmask8) __U, 1151 __R); 1152} 1153 1154extern __inline __m512i 1155__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1156_mm512_maskz_cvtt_roundps_epi64 (__mmask8 __U, __m256 __A, 1157 const int __R) 1158{ 1159 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, 1160 (__v8di) 1161 _mm512_setzero_si512 (), 1162 (__mmask8) __U, 1163 __R); 1164} 1165 1166extern __inline __m512i 1167__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1168_mm512_cvtt_roundps_epu64 (__m256 __A, const int __R) 1169{ 1170 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 1171 (__v8di) 1172 _mm512_setzero_si512 (), 1173 (__mmask8) -1, 1174 __R); 1175} 1176 1177extern __inline __m512i 1178__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1179_mm512_mask_cvtt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A, 1180 const int __R) 1181{ 1182 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 1183 (__v8di) __W, 1184 (__mmask8) __U, 1185 __R); 1186} 1187 1188extern __inline __m512i 1189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1190_mm512_maskz_cvtt_roundps_epu64 (__mmask8 __U, __m256 __A, 1191 const int __R) 1192{ 1193 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, 1194 (__v8di) 1195 _mm512_setzero_si512 (), 1196 (__mmask8) __U, 1197 __R); 1198} 1199 1200extern __inline __m512i 1201__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1202_mm512_cvt_roundpd_epi64 (__m512d __A, const int __R) 1203{ 1204 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 1205 (__v8di) 1206 _mm512_setzero_si512 (), 1207 (__mmask8) -1, 1208 __R); 1209} 1210 1211extern __inline __m512i 1212__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1213_mm512_mask_cvt_roundpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A, 1214 const int __R) 1215{ 1216 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 1217 (__v8di) __W, 1218 (__mmask8) __U, 1219 __R); 1220} 1221 1222extern __inline __m512i 1223__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1224_mm512_maskz_cvt_roundpd_epi64 (__mmask8 __U, __m512d __A, 1225 const int __R) 1226{ 1227 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, 1228 (__v8di) 1229 _mm512_setzero_si512 (), 1230 (__mmask8) __U, 1231 __R); 1232} 1233 1234extern __inline __m512i 1235__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1236_mm512_cvt_roundpd_epu64 (__m512d __A, const int __R) 1237{ 1238 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 1239 (__v8di) 1240 _mm512_setzero_si512 (), 1241 (__mmask8) -1, 1242 __R); 1243} 1244 1245extern __inline __m512i 1246__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1247_mm512_mask_cvt_roundpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A, 1248 const int __R) 1249{ 1250 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 1251 (__v8di) __W, 1252 (__mmask8) __U, 1253 __R); 1254} 1255 1256extern __inline __m512i 1257__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1258_mm512_maskz_cvt_roundpd_epu64 (__mmask8 __U, __m512d __A, 1259 const int __R) 1260{ 1261 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, 1262 (__v8di) 1263 _mm512_setzero_si512 (), 1264 (__mmask8) __U, 1265 __R); 1266} 1267 1268extern __inline __m512i 1269__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1270_mm512_cvt_roundps_epi64 (__m256 __A, const int __R) 1271{ 1272 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 1273 (__v8di) 1274 _mm512_setzero_si512 (), 1275 (__mmask8) -1, 1276 __R); 1277} 1278 1279extern __inline __m512i 1280__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1281_mm512_mask_cvt_roundps_epi64 (__m512i __W, __mmask8 __U, __m256 __A, 1282 const int __R) 1283{ 1284 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 1285 (__v8di) __W, 1286 (__mmask8) __U, 1287 __R); 1288} 1289 1290extern __inline __m512i 1291__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1292_mm512_maskz_cvt_roundps_epi64 (__mmask8 __U, __m256 __A, 1293 const int __R) 1294{ 1295 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, 1296 (__v8di) 1297 _mm512_setzero_si512 (), 1298 (__mmask8) __U, 1299 __R); 1300} 1301 1302extern __inline __m512i 1303__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1304_mm512_cvt_roundps_epu64 (__m256 __A, const int __R) 1305{ 1306 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 1307 (__v8di) 1308 _mm512_setzero_si512 (), 1309 (__mmask8) -1, 1310 __R); 1311} 1312 1313extern __inline __m512i 1314__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1315_mm512_mask_cvt_roundps_epu64 (__m512i __W, __mmask8 __U, __m256 __A, 1316 const int __R) 1317{ 1318 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 1319 (__v8di) __W, 1320 (__mmask8) __U, 1321 __R); 1322} 1323 1324extern __inline __m512i 1325__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1326_mm512_maskz_cvt_roundps_epu64 (__mmask8 __U, __m256 __A, 1327 const int __R) 1328{ 1329 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, 1330 (__v8di) 1331 _mm512_setzero_si512 (), 1332 (__mmask8) __U, 1333 __R); 1334} 1335 1336extern __inline __m256 1337__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1338_mm512_cvt_roundepi64_ps (__m512i __A, const int __R) 1339{ 1340 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 1341 (__v8sf) 1342 _mm256_setzero_ps (), 1343 (__mmask8) -1, 1344 __R); 1345} 1346 1347extern __inline __m256 1348__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1349_mm512_mask_cvt_roundepi64_ps (__m256 __W, __mmask8 __U, __m512i __A, 1350 const int __R) 1351{ 1352 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 1353 (__v8sf) __W, 1354 (__mmask8) __U, 1355 __R); 1356} 1357 1358extern __inline __m256 1359__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1360_mm512_maskz_cvt_roundepi64_ps (__mmask8 __U, __m512i __A, 1361 const int __R) 1362{ 1363 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, 1364 (__v8sf) 1365 _mm256_setzero_ps (), 1366 (__mmask8) __U, 1367 __R); 1368} 1369 1370extern __inline __m256 1371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1372_mm512_cvt_roundepu64_ps (__m512i __A, const int __R) 1373{ 1374 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 1375 (__v8sf) 1376 _mm256_setzero_ps (), 1377 (__mmask8) -1, 1378 __R); 1379} 1380 1381extern __inline __m256 1382__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1383_mm512_mask_cvt_roundepu64_ps (__m256 __W, __mmask8 __U, __m512i __A, 1384 const int __R) 1385{ 1386 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 1387 (__v8sf) __W, 1388 (__mmask8) __U, 1389 __R); 1390} 1391 1392extern __inline __m256 1393__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1394_mm512_maskz_cvt_roundepu64_ps (__mmask8 __U, __m512i __A, 1395 const int __R) 1396{ 1397 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, 1398 (__v8sf) 1399 _mm256_setzero_ps (), 1400 (__mmask8) __U, 1401 __R); 1402} 1403 1404extern __inline __m512d 1405__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1406_mm512_cvt_roundepi64_pd (__m512i __A, const int __R) 1407{ 1408 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 1409 (__v8df) 1410 _mm512_setzero_pd (), 1411 (__mmask8) -1, 1412 __R); 1413} 1414 1415extern __inline __m512d 1416__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1417_mm512_mask_cvt_roundepi64_pd (__m512d __W, __mmask8 __U, __m512i __A, 1418 const int __R) 1419{ 1420 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 1421 (__v8df) __W, 1422 (__mmask8) __U, 1423 __R); 1424} 1425 1426extern __inline __m512d 1427__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1428_mm512_maskz_cvt_roundepi64_pd (__mmask8 __U, __m512i __A, 1429 const int __R) 1430{ 1431 return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A, 1432 (__v8df) 1433 _mm512_setzero_pd (), 1434 (__mmask8) __U, 1435 __R); 1436} 1437 1438extern __inline __m512d 1439__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1440_mm512_cvt_roundepu64_pd (__m512i __A, const int __R) 1441{ 1442 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 1443 (__v8df) 1444 _mm512_setzero_pd (), 1445 (__mmask8) -1, 1446 __R); 1447} 1448 1449extern __inline __m512d 1450__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1451_mm512_mask_cvt_roundepu64_pd (__m512d __W, __mmask8 __U, __m512i __A, 1452 const int __R) 1453{ 1454 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 1455 (__v8df) __W, 1456 (__mmask8) __U, 1457 __R); 1458} 1459 1460extern __inline __m512d 1461__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1462_mm512_maskz_cvt_roundepu64_pd (__mmask8 __U, __m512i __A, 1463 const int __R) 1464{ 1465 return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A, 1466 (__v8df) 1467 _mm512_setzero_pd (), 1468 (__mmask8) __U, 1469 __R); 1470} 1471 1472extern __inline __m512d 1473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1474_mm512_reduce_pd (__m512d __A, int __B) 1475{ 1476 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B, 1477 (__v8df) 1478 _mm512_setzero_pd (), 1479 (__mmask8) -1); 1480} 1481 1482extern __inline __m512d 1483__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1484_mm512_mask_reduce_pd (__m512d __W, __mmask8 __U, __m512d __A, int __B) 1485{ 1486 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B, 1487 (__v8df) __W, 1488 (__mmask8) __U); 1489} 1490 1491extern __inline __m512d 1492__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1493_mm512_maskz_reduce_pd (__mmask8 __U, __m512d __A, int __B) 1494{ 1495 return (__m512d) __builtin_ia32_reducepd512_mask ((__v8df) __A, __B, 1496 (__v8df) 1497 _mm512_setzero_pd (), 1498 (__mmask8) __U); 1499} 1500 1501extern __inline __m512 1502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1503_mm512_reduce_ps (__m512 __A, int __B) 1504{ 1505 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B, 1506 (__v16sf) 1507 _mm512_setzero_ps (), 1508 (__mmask16) -1); 1509} 1510 1511extern __inline __m512 1512__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1513_mm512_mask_reduce_ps (__m512 __W, __mmask16 __U, __m512 __A, int __B) 1514{ 1515 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B, 1516 (__v16sf) __W, 1517 (__mmask16) __U); 1518} 1519 1520extern __inline __m512 1521__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1522_mm512_maskz_reduce_ps (__mmask16 __U, __m512 __A, int __B) 1523{ 1524 return (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B, 1525 (__v16sf) 1526 _mm512_setzero_ps (), 1527 (__mmask16) __U); 1528} 1529 1530extern __inline __m256 1531__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1532_mm512_extractf32x8_ps (__m512 __A, const int __imm) 1533{ 1534 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A, 1535 __imm, 1536 (__v8sf) 1537 _mm256_setzero_ps (), 1538 (__mmask8) -1); 1539} 1540 1541extern __inline __m256 1542__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1543_mm512_mask_extractf32x8_ps (__m256 __W, __mmask8 __U, __m512 __A, 1544 const int __imm) 1545{ 1546 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A, 1547 __imm, 1548 (__v8sf) __W, 1549 (__mmask8) __U); 1550} 1551 1552extern __inline __m256 1553__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1554_mm512_maskz_extractf32x8_ps (__mmask8 __U, __m512 __A, 1555 const int __imm) 1556{ 1557 return (__m256) __builtin_ia32_extractf32x8_mask ((__v16sf) __A, 1558 __imm, 1559 (__v8sf) 1560 _mm256_setzero_ps (), 1561 (__mmask8) __U); 1562} 1563 1564extern __inline __m128d 1565__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1566_mm512_extractf64x2_pd (__m512d __A, const int __imm) 1567{ 1568 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A, 1569 __imm, 1570 (__v2df) 1571 _mm_setzero_pd (), 1572 (__mmask8) - 1573 1); 1574} 1575 1576extern __inline __m128d 1577__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1578_mm512_mask_extractf64x2_pd (__m128d __W, __mmask8 __U, __m512d __A, 1579 const int __imm) 1580{ 1581 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A, 1582 __imm, 1583 (__v2df) __W, 1584 (__mmask8) 1585 __U); 1586} 1587 1588extern __inline __m128d 1589__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1590_mm512_maskz_extractf64x2_pd (__mmask8 __U, __m512d __A, 1591 const int __imm) 1592{ 1593 return (__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df) __A, 1594 __imm, 1595 (__v2df) 1596 _mm_setzero_pd (), 1597 (__mmask8) 1598 __U); 1599} 1600 1601extern __inline __m256i 1602__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1603_mm512_extracti32x8_epi32 (__m512i __A, const int __imm) 1604{ 1605 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A, 1606 __imm, 1607 (__v8si) 1608 _mm256_setzero_si256 (), 1609 (__mmask8) -1); 1610} 1611 1612extern __inline __m256i 1613__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1614_mm512_mask_extracti32x8_epi32 (__m256i __W, __mmask8 __U, __m512i __A, 1615 const int __imm) 1616{ 1617 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A, 1618 __imm, 1619 (__v8si) __W, 1620 (__mmask8) __U); 1621} 1622 1623extern __inline __m256i 1624__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1625_mm512_maskz_extracti32x8_epi32 (__mmask8 __U, __m512i __A, 1626 const int __imm) 1627{ 1628 return (__m256i) __builtin_ia32_extracti32x8_mask ((__v16si) __A, 1629 __imm, 1630 (__v8si) 1631 _mm256_setzero_si256 (), 1632 (__mmask8) __U); 1633} 1634 1635extern __inline __m128i 1636__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1637_mm512_extracti64x2_epi64 (__m512i __A, const int __imm) 1638{ 1639 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A, 1640 __imm, 1641 (__v2di) 1642 _mm_setzero_di (), 1643 (__mmask8) - 1644 1); 1645} 1646 1647extern __inline __m128i 1648__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1649_mm512_mask_extracti64x2_epi64 (__m128i __W, __mmask8 __U, __m512i __A, 1650 const int __imm) 1651{ 1652 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A, 1653 __imm, 1654 (__v2di) __W, 1655 (__mmask8) 1656 __U); 1657} 1658 1659extern __inline __m128i 1660__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1661_mm512_maskz_extracti64x2_epi64 (__mmask8 __U, __m512i __A, 1662 const int __imm) 1663{ 1664 return (__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di) __A, 1665 __imm, 1666 (__v2di) 1667 _mm_setzero_di (), 1668 (__mmask8) 1669 __U); 1670} 1671 1672extern __inline __m512d 1673__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1674_mm512_range_round_pd (__m512d __A, __m512d __B, int __C, 1675 const int __R) 1676{ 1677 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A, 1678 (__v8df) __B, __C, 1679 (__v8df) 1680 _mm512_setzero_pd (), 1681 (__mmask8) -1, 1682 __R); 1683} 1684 1685extern __inline __m512d 1686__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1687_mm512_mask_range_round_pd (__m512d __W, __mmask8 __U, 1688 __m512d __A, __m512d __B, int __C, 1689 const int __R) 1690{ 1691 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A, 1692 (__v8df) __B, __C, 1693 (__v8df) __W, 1694 (__mmask8) __U, 1695 __R); 1696} 1697 1698extern __inline __m512d 1699__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1700_mm512_maskz_range_round_pd (__mmask8 __U, __m512d __A, __m512d __B, 1701 int __C, const int __R) 1702{ 1703 return (__m512d) __builtin_ia32_rangepd512_mask ((__v8df) __A, 1704 (__v8df) __B, __C, 1705 (__v8df) 1706 _mm512_setzero_pd (), 1707 (__mmask8) __U, 1708 __R); 1709} 1710 1711extern __inline __m512 1712__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1713_mm512_range_round_ps (__m512 __A, __m512 __B, int __C, const int __R) 1714{ 1715 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A, 1716 (__v16sf) __B, __C, 1717 (__v16sf) 1718 _mm512_setzero_ps (), 1719 (__mmask16) -1, 1720 __R); 1721} 1722 1723extern __inline __m512 1724__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1725_mm512_mask_range_round_ps (__m512 __W, __mmask16 __U, 1726 __m512 __A, __m512 __B, int __C, 1727 const int __R) 1728{ 1729 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A, 1730 (__v16sf) __B, __C, 1731 (__v16sf) __W, 1732 (__mmask16) __U, 1733 __R); 1734} 1735 1736extern __inline __m512 1737__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1738_mm512_maskz_range_round_ps (__mmask16 __U, __m512 __A, __m512 __B, 1739 int __C, const int __R) 1740{ 1741 return (__m512) __builtin_ia32_rangeps512_mask ((__v16sf) __A, 1742 (__v16sf) __B, __C, 1743 (__v16sf) 1744 _mm512_setzero_ps (), 1745 (__mmask16) __U, 1746 __R); 1747} 1748 1749extern __inline __m512i 1750__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1751_mm512_inserti32x8 (__m512i __A, __m256i __B, const int __imm) 1752{ 1753 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A, 1754 (__v8si) __B, 1755 __imm, 1756 (__v16si) 1757 _mm512_setzero_si512 (), 1758 (__mmask16) -1); 1759} 1760 1761extern __inline __m512i 1762__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1763_mm512_mask_inserti32x8 (__m512i __W, __mmask16 __U, __m512i __A, 1764 __m256i __B, const int __imm) 1765{ 1766 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A, 1767 (__v8si) __B, 1768 __imm, 1769 (__v16si) __W, 1770 (__mmask16) __U); 1771} 1772 1773extern __inline __m512i 1774__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1775_mm512_maskz_inserti32x8 (__mmask16 __U, __m512i __A, __m256i __B, 1776 const int __imm) 1777{ 1778 return (__m512i) __builtin_ia32_inserti32x8_mask ((__v16si) __A, 1779 (__v8si) __B, 1780 __imm, 1781 (__v16si) 1782 _mm512_setzero_si512 (), 1783 (__mmask16) __U); 1784} 1785 1786extern __inline __m512 1787__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1788_mm512_insertf32x8 (__m512 __A, __m256 __B, const int __imm) 1789{ 1790 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A, 1791 (__v8sf) __B, 1792 __imm, 1793 (__v16sf) 1794 _mm512_setzero_ps (), 1795 (__mmask16) -1); 1796} 1797 1798extern __inline __m512 1799__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1800_mm512_mask_insertf32x8 (__m512 __W, __mmask16 __U, __m512 __A, 1801 __m256 __B, const int __imm) 1802{ 1803 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A, 1804 (__v8sf) __B, 1805 __imm, 1806 (__v16sf) __W, 1807 (__mmask16) __U); 1808} 1809 1810extern __inline __m512 1811__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1812_mm512_maskz_insertf32x8 (__mmask16 __U, __m512 __A, __m256 __B, 1813 const int __imm) 1814{ 1815 return (__m512) __builtin_ia32_insertf32x8_mask ((__v16sf) __A, 1816 (__v8sf) __B, 1817 __imm, 1818 (__v16sf) 1819 _mm512_setzero_ps (), 1820 (__mmask16) __U); 1821} 1822 1823extern __inline __m512i 1824__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1825_mm512_inserti64x2 (__m512i __A, __m128i __B, const int __imm) 1826{ 1827 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A, 1828 (__v2di) __B, 1829 __imm, 1830 (__v8di) 1831 _mm512_setzero_si512 (), 1832 (__mmask8) - 1833 1); 1834} 1835 1836extern __inline __m512i 1837__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1838_mm512_mask_inserti64x2 (__m512i __W, __mmask8 __U, __m512i __A, 1839 __m128i __B, const int __imm) 1840{ 1841 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A, 1842 (__v2di) __B, 1843 __imm, 1844 (__v8di) __W, 1845 (__mmask8) 1846 __U); 1847} 1848 1849extern __inline __m512i 1850__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1851_mm512_maskz_inserti64x2 (__mmask8 __U, __m512i __A, __m128i __B, 1852 const int __imm) 1853{ 1854 return (__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di) __A, 1855 (__v2di) __B, 1856 __imm, 1857 (__v8di) 1858 _mm512_setzero_si512 (), 1859 (__mmask8) 1860 __U); 1861} 1862 1863extern __inline __m512d 1864__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1865_mm512_insertf64x2 (__m512d __A, __m128d __B, const int __imm) 1866{ 1867 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A, 1868 (__v2df) __B, 1869 __imm, 1870 (__v8df) 1871 _mm512_setzero_pd (), 1872 (__mmask8) - 1873 1); 1874} 1875 1876extern __inline __m512d 1877__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1878_mm512_mask_insertf64x2 (__m512d __W, __mmask8 __U, __m512d __A, 1879 __m128d __B, const int __imm) 1880{ 1881 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A, 1882 (__v2df) __B, 1883 __imm, 1884 (__v8df) __W, 1885 (__mmask8) 1886 __U); 1887} 1888 1889extern __inline __m512d 1890__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1891_mm512_maskz_insertf64x2 (__mmask8 __U, __m512d __A, __m128d __B, 1892 const int __imm) 1893{ 1894 return (__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df) __A, 1895 (__v2df) __B, 1896 __imm, 1897 (__v8df) 1898 _mm512_setzero_pd (), 1899 (__mmask8) 1900 __U); 1901} 1902 1903extern __inline __mmask8 1904__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1905_mm512_mask_fpclass_pd_mask (__mmask8 __U, __m512d __A, 1906 const int __imm) 1907{ 1908 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A, 1909 __imm, __U); 1910} 1911 1912extern __inline __mmask8 1913__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1914_mm512_fpclass_pd_mask (__m512d __A, const int __imm) 1915{ 1916 return (__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) __A, 1917 __imm, 1918 (__mmask8) -1); 1919} 1920 1921extern __inline __mmask16 1922__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1923_mm512_mask_fpclass_ps_mask (__mmask16 __U, __m512 __A, 1924 const int __imm) 1925{ 1926 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A, 1927 __imm, __U); 1928} 1929 1930extern __inline __mmask16 1931__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) 1932_mm512_fpclass_ps_mask (__m512 __A, const int __imm) 1933{ 1934 return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A, 1935 __imm, 1936 (__mmask16) - 1937 1); 1938} 1939 1940#else 1941#define _mm_range_sd(A, B, C) \ 1942 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \ 1943 (__v2df)(__m128d)(B), (int)(C), \ 1944 _MM_FROUND_CUR_DIRECTION)) 1945 1946#define _mm_range_ss(A, B, C) \ 1947 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \ 1948 (__v4sf)(__m128)(B), (int)(C), \ 1949 _MM_FROUND_CUR_DIRECTION)) 1950 1951#define _mm_range_round_sd(A, B, C, R) \ 1952 ((__m128d) __builtin_ia32_rangesd128_round ((__v2df)(__m128d)(A), \ 1953 (__v2df)(__m128d)(B), (int)(C), (R))) 1954 1955#define _mm_range_round_ss(A, B, C, R) \ 1956 ((__m128) __builtin_ia32_rangess128_round ((__v4sf)(__m128)(A), \ 1957 (__v4sf)(__m128)(B), (int)(C), (R))) 1958 1959#define _mm512_cvtt_roundpd_epi64(A, B) \ 1960 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 1961 1962#define _mm512_mask_cvtt_roundpd_epi64(W, U, A, B) \ 1963 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)(W), (U), (B))) 1964 1965#define _mm512_maskz_cvtt_roundpd_epi64(U, A, B) \ 1966 ((__m512i)__builtin_ia32_cvttpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 1967 1968#define _mm512_cvtt_roundpd_epu64(A, B) \ 1969 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 1970 1971#define _mm512_mask_cvtt_roundpd_epu64(W, U, A, B) \ 1972 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)(W), (U), (B))) 1973 1974#define _mm512_maskz_cvtt_roundpd_epu64(U, A, B) \ 1975 ((__m512i)__builtin_ia32_cvttpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 1976 1977#define _mm512_cvtt_roundps_epi64(A, B) \ 1978 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 1979 1980#define _mm512_mask_cvtt_roundps_epi64(W, U, A, B) \ 1981 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)(W), (U), (B))) 1982 1983#define _mm512_maskz_cvtt_roundps_epi64(U, A, B) \ 1984 ((__m512i)__builtin_ia32_cvttps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 1985 1986#define _mm512_cvtt_roundps_epu64(A, B) \ 1987 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 1988 1989#define _mm512_mask_cvtt_roundps_epu64(W, U, A, B) \ 1990 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)(W), (U), (B))) 1991 1992#define _mm512_maskz_cvtt_roundps_epu64(U, A, B) \ 1993 ((__m512i)__builtin_ia32_cvttps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 1994 1995#define _mm512_cvt_roundpd_epi64(A, B) \ 1996 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 1997 1998#define _mm512_mask_cvt_roundpd_epi64(W, U, A, B) \ 1999 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)(W), (U), (B))) 2000 2001#define _mm512_maskz_cvt_roundpd_epi64(U, A, B) \ 2002 ((__m512i)__builtin_ia32_cvtpd2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 2003 2004#define _mm512_cvt_roundpd_epu64(A, B) \ 2005 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 2006 2007#define _mm512_mask_cvt_roundpd_epu64(W, U, A, B) \ 2008 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)(W), (U), (B))) 2009 2010#define _mm512_maskz_cvt_roundpd_epu64(U, A, B) \ 2011 ((__m512i)__builtin_ia32_cvtpd2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 2012 2013#define _mm512_cvt_roundps_epi64(A, B) \ 2014 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 2015 2016#define _mm512_mask_cvt_roundps_epi64(W, U, A, B) \ 2017 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)(W), (U), (B))) 2018 2019#define _mm512_maskz_cvt_roundps_epi64(U, A, B) \ 2020 ((__m512i)__builtin_ia32_cvtps2qq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 2021 2022#define _mm512_cvt_roundps_epu64(A, B) \ 2023 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), -1, (B))) 2024 2025#define _mm512_mask_cvt_roundps_epu64(W, U, A, B) \ 2026 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)(W), (U), (B))) 2027 2028#define _mm512_maskz_cvt_roundps_epu64(U, A, B) \ 2029 ((__m512i)__builtin_ia32_cvtps2uqq512_mask((A), (__v8di)_mm512_setzero_si512 (), (U), (B))) 2030 2031#define _mm512_cvt_roundepi64_ps(A, B) \ 2032 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B))) 2033 2034#define _mm512_mask_cvt_roundepi64_ps(W, U, A, B) \ 2035 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (W), (U), (B))) 2036 2037#define _mm512_maskz_cvt_roundepi64_ps(U, A, B) \ 2038 ((__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B))) 2039 2040#define _mm512_cvt_roundepu64_ps(A, B) \ 2041 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), -1, (B))) 2042 2043#define _mm512_mask_cvt_roundepu64_ps(W, U, A, B) \ 2044 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (W), (U), (B))) 2045 2046#define _mm512_maskz_cvt_roundepu64_ps(U, A, B) \ 2047 ((__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(A), (__v8sf)_mm256_setzero_ps(), (U), (B))) 2048 2049#define _mm512_cvt_roundepi64_pd(A, B) \ 2050 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B))) 2051 2052#define _mm512_mask_cvt_roundepi64_pd(W, U, A, B) \ 2053 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (W), (U), (B))) 2054 2055#define _mm512_maskz_cvt_roundepi64_pd(U, A, B) \ 2056 ((__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B))) 2057 2058#define _mm512_cvt_roundepu64_pd(A, B) \ 2059 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), -1, (B))) 2060 2061#define _mm512_mask_cvt_roundepu64_pd(W, U, A, B) \ 2062 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (W), (U), (B))) 2063 2064#define _mm512_maskz_cvt_roundepu64_pd(U, A, B) \ 2065 ((__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(A), (__v8df)_mm512_setzero_pd(), (U), (B))) 2066 2067#define _mm512_reduce_pd(A, B) \ 2068 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \ 2069 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)-1)) 2070 2071#define _mm512_mask_reduce_pd(W, U, A, B) \ 2072 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \ 2073 (int)(B), (__v8df)(__m512d)(W), (__mmask8)(U))) 2074 2075#define _mm512_maskz_reduce_pd(U, A, B) \ 2076 ((__m512d) __builtin_ia32_reducepd512_mask ((__v8df)(__m512d)(A), \ 2077 (int)(B), (__v8df)_mm512_setzero_pd(), (__mmask8)(U))) 2078 2079#define _mm512_reduce_ps(A, B) \ 2080 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \ 2081 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)-1)) 2082 2083#define _mm512_mask_reduce_ps(W, U, A, B) \ 2084 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \ 2085 (int)(B), (__v16sf)(__m512)(W), (__mmask16)(U))) 2086 2087#define _mm512_maskz_reduce_ps(U, A, B) \ 2088 ((__m512) __builtin_ia32_reduceps512_mask ((__v16sf)(__m512)(A), \ 2089 (int)(B), (__v16sf)_mm512_setzero_ps(), (__mmask16)(U))) 2090 2091#define _mm512_extractf32x8_ps(X, C) \ 2092 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \ 2093 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8)-1)) 2094 2095#define _mm512_mask_extractf32x8_ps(W, U, X, C) \ 2096 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \ 2097 (int) (C), (__v8sf)(__m256) (W), (__mmask8) (U))) 2098 2099#define _mm512_maskz_extractf32x8_ps(U, X, C) \ 2100 ((__m256) __builtin_ia32_extractf32x8_mask ((__v16sf)(__m512) (X), \ 2101 (int) (C), (__v8sf)(__m256) _mm256_setzero_ps(), (__mmask8) (U))) 2102 2103#define _mm512_extractf64x2_pd(X, C) \ 2104 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\ 2105 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8)-1)) 2106 2107#define _mm512_mask_extractf64x2_pd(W, U, X, C) \ 2108 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\ 2109 (int) (C), (__v2df)(__m128d) (W), (__mmask8) (U))) 2110 2111#define _mm512_maskz_extractf64x2_pd(U, X, C) \ 2112 ((__m128d) __builtin_ia32_extractf64x2_512_mask ((__v8df)(__m512d) (X),\ 2113 (int) (C), (__v2df)(__m128d) _mm_setzero_pd(), (__mmask8) (U))) 2114 2115#define _mm512_extracti32x8_epi32(X, C) \ 2116 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \ 2117 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8)-1)) 2118 2119#define _mm512_mask_extracti32x8_epi32(W, U, X, C) \ 2120 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \ 2121 (int) (C), (__v8si)(__m256i) (W), (__mmask8) (U))) 2122 2123#define _mm512_maskz_extracti32x8_epi32(U, X, C) \ 2124 ((__m256i) __builtin_ia32_extracti32x8_mask ((__v16si)(__m512i) (X), \ 2125 (int) (C), (__v8si)(__m256i) _mm256_setzero_si256(), (__mmask8) (U))) 2126 2127#define _mm512_extracti64x2_epi64(X, C) \ 2128 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\ 2129 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8)-1)) 2130 2131#define _mm512_mask_extracti64x2_epi64(W, U, X, C) \ 2132 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\ 2133 (int) (C), (__v2di)(__m128i) (W), (__mmask8) (U))) 2134 2135#define _mm512_maskz_extracti64x2_epi64(U, X, C) \ 2136 ((__m128i) __builtin_ia32_extracti64x2_512_mask ((__v8di)(__m512i) (X),\ 2137 (int) (C), (__v2di)(__m128i) _mm_setzero_di(), (__mmask8) (U))) 2138 2139#define _mm512_range_pd(A, B, C) \ 2140 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \ 2141 (__v8df)(__m512d)(B), (int)(C), \ 2142 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION)) 2143 2144#define _mm512_mask_range_pd(W, U, A, B, C) \ 2145 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \ 2146 (__v8df)(__m512d)(B), (int)(C), \ 2147 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION)) 2148 2149#define _mm512_maskz_range_pd(U, A, B, C) \ 2150 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \ 2151 (__v8df)(__m512d)(B), (int)(C), \ 2152 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION)) 2153 2154#define _mm512_range_ps(A, B, C) \ 2155 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \ 2156 (__v16sf)(__m512)(B), (int)(C), \ 2157 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION)) 2158 2159#define _mm512_mask_range_ps(W, U, A, B, C) \ 2160 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \ 2161 (__v16sf)(__m512)(B), (int)(C), \ 2162 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION)) 2163 2164#define _mm512_maskz_range_ps(U, A, B, C) \ 2165 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \ 2166 (__v16sf)(__m512)(B), (int)(C), \ 2167 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION)) 2168 2169#define _mm512_range_round_pd(A, B, C, R) \ 2170 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \ 2171 (__v8df)(__m512d)(B), (int)(C), \ 2172 (__v8df)_mm512_setzero_pd(), (__mmask8)-1, (R))) 2173 2174#define _mm512_mask_range_round_pd(W, U, A, B, C, R) \ 2175 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \ 2176 (__v8df)(__m512d)(B), (int)(C), \ 2177 (__v8df)(__m512d)(W), (__mmask8)(U), (R))) 2178 2179#define _mm512_maskz_range_round_pd(U, A, B, C, R) \ 2180 ((__m512d) __builtin_ia32_rangepd512_mask ((__v8df)(__m512d)(A), \ 2181 (__v8df)(__m512d)(B), (int)(C), \ 2182 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), (R))) 2183 2184#define _mm512_range_round_ps(A, B, C, R) \ 2185 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \ 2186 (__v16sf)(__m512)(B), (int)(C), \ 2187 (__v16sf)_mm512_setzero_ps(), (__mmask16)-1, (R))) 2188 2189#define _mm512_mask_range_round_ps(W, U, A, B, C, R) \ 2190 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \ 2191 (__v16sf)(__m512)(B), (int)(C), \ 2192 (__v16sf)(__m512)(W), (__mmask16)(U), (R))) 2193 2194#define _mm512_maskz_range_round_ps(U, A, B, C, R) \ 2195 ((__m512) __builtin_ia32_rangeps512_mask ((__v16sf)(__m512)(A), \ 2196 (__v16sf)(__m512)(B), (int)(C), \ 2197 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), (R))) 2198 2199#define _mm512_insertf64x2(X, Y, C) \ 2200 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\ 2201 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (X), \ 2202 (__mmask8)-1)) 2203 2204#define _mm512_mask_insertf64x2(W, U, X, Y, C) \ 2205 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\ 2206 (__v2df)(__m128d) (Y), (int) (C), (__v8df)(__m512d) (W), \ 2207 (__mmask8) (U))) 2208 2209#define _mm512_maskz_insertf64x2(U, X, Y, C) \ 2210 ((__m512d) __builtin_ia32_insertf64x2_512_mask ((__v8df)(__m512d) (X),\ 2211 (__v2df)(__m128d) (Y), (int) (C), \ 2212 (__v8df)(__m512d) _mm512_setzero_pd(), (__mmask8) (U))) 2213 2214#define _mm512_inserti64x2(X, Y, C) \ 2215 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\ 2216 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (X), (__mmask8)-1)) 2217 2218#define _mm512_mask_inserti64x2(W, U, X, Y, C) \ 2219 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\ 2220 (__v2di)(__m128i) (Y), (int) (C), (__v8di)(__m512i) (W), \ 2221 (__mmask8) (U))) 2222 2223#define _mm512_maskz_inserti64x2(U, X, Y, C) \ 2224 ((__m512i) __builtin_ia32_inserti64x2_512_mask ((__v8di)(__m512i) (X),\ 2225 (__v2di)(__m128i) (Y), (int) (C), \ 2226 (__v8di)(__m512i) _mm512_setzero_si512 (), (__mmask8) (U))) 2227 2228#define _mm512_insertf32x8(X, Y, C) \ 2229 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \ 2230 (__v8sf)(__m256) (Y), (int) (C),\ 2231 (__v16sf)(__m512)_mm512_setzero_ps(),\ 2232 (__mmask16)-1)) 2233 2234#define _mm512_mask_insertf32x8(W, U, X, Y, C) \ 2235 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \ 2236 (__v8sf)(__m256) (Y), (int) (C),\ 2237 (__v16sf)(__m512)(W),\ 2238 (__mmask16)(U))) 2239 2240#define _mm512_maskz_insertf32x8(U, X, Y, C) \ 2241 ((__m512) __builtin_ia32_insertf32x8_mask ((__v16sf)(__m512) (X), \ 2242 (__v8sf)(__m256) (Y), (int) (C),\ 2243 (__v16sf)(__m512)_mm512_setzero_ps(),\ 2244 (__mmask16)(U))) 2245 2246#define _mm512_inserti32x8(X, Y, C) \ 2247 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \ 2248 (__v8si)(__m256i) (Y), (int) (C),\ 2249 (__v16si)(__m512i)_mm512_setzero_si512 (),\ 2250 (__mmask16)-1)) 2251 2252#define _mm512_mask_inserti32x8(W, U, X, Y, C) \ 2253 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \ 2254 (__v8si)(__m256i) (Y), (int) (C),\ 2255 (__v16si)(__m512i)(W),\ 2256 (__mmask16)(U))) 2257 2258#define _mm512_maskz_inserti32x8(U, X, Y, C) \ 2259 ((__m512i) __builtin_ia32_inserti32x8_mask ((__v16si)(__m512i) (X), \ 2260 (__v8si)(__m256i) (Y), (int) (C),\ 2261 (__v16si)(__m512i)_mm512_setzero_si512 (),\ 2262 (__mmask16)(U))) 2263 2264#define _mm_fpclass_ss_mask(X, C) \ 2265 ((__mmask8) __builtin_ia32_fpclassss ((__v4sf) (__m128) (X), (int) (C))) \ 2266 2267#define _mm_fpclass_sd_mask(X, C) \ 2268 ((__mmask8) __builtin_ia32_fpclasssd ((__v2df) (__m128d) (X), (int) (C))) \ 2269 2270#define _mm512_mask_fpclass_pd_mask(u, X, C) \ 2271 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \ 2272 (int) (C), (__mmask8)(u))) 2273 2274#define _mm512_mask_fpclass_ps_mask(u, x, c) \ 2275 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ 2276 (int) (c),(__mmask8)(u))) 2277 2278#define _mm512_fpclass_pd_mask(X, C) \ 2279 ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \ 2280 (int) (C), (__mmask8)-1)) 2281 2282#define _mm512_fpclass_ps_mask(x, c) \ 2283 ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ 2284 (int) (c),(__mmask8)-1)) 2285 2286#define _mm_reduce_sd(A, B, C) \ 2287 ((__m128d) __builtin_ia32_reducesd ((__v2df)(__m128d)(A), \ 2288 (__v2df)(__m128d)(B), (int)(C))) \ 2289 2290#define _mm_reduce_ss(A, B, C) \ 2291 ((__m128) __builtin_ia32_reducess ((__v4sf)(__m128)(A), \ 2292 (__v4sf)(__m128)(A), (int)(C))) \ 2293 2294#endif 2295 2296#ifdef __DISABLE_AVX512DQ__ 2297#undef __DISABLE_AVX512DQ__ 2298#pragma GCC pop_options 2299#endif /* __DISABLE_AVX512DQ__ */ 2300 2301#endif /* _AVX512DQINTRIN_H_INCLUDED */ 2302