Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512dqintrin.h
496 views
/*===---- avx512dqintrin.h - AVX512DQ intrinsics ---------------------------===1*2* Permission is hereby granted, free of charge, to any person obtaining a copy3* of this software and associated documentation files (the "Software"), to deal4* in the Software without restriction, including without limitation the rights5* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell6* copies of the Software, and to permit persons to whom the Software is7* furnished to do so, subject to the following conditions:8*9* The above copyright notice and this permission notice shall be included in10* all copies or substantial portions of the Software.11*12* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR13* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,14* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE15* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER16* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,17* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN18* THE SOFTWARE.19*20*===-----------------------------------------------------------------------===21*/2223#ifndef __IMMINTRIN_H24#error "Never use <avx512dqintrin.h> directly; include <immintrin.h> instead."25#endif2627#ifndef __AVX512DQINTRIN_H28#define __AVX512DQINTRIN_H2930/* Define the default attributes for the functions in this file. */31#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512dq")))3233static __inline__ __m512i __DEFAULT_FN_ATTRS34_mm512_mullo_epi64 (__m512i __A, __m512i __B) {35return (__m512i) ((__v8du) __A * (__v8du) __B);36}3738static __inline__ __m512i __DEFAULT_FN_ATTRS39_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {40return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,41(__v8di) __B,42(__v8di) __W,43(__mmask8) __U);44}4546static __inline__ __m512i __DEFAULT_FN_ATTRS47_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) {48return (__m512i) __builtin_ia32_pmullq512_mask ((__v8di) __A,49(__v8di) __B,50(__v8di)51_mm512_setzero_si512 (),52(__mmask8) __U);53}5455static __inline__ __m512d __DEFAULT_FN_ATTRS56_mm512_xor_pd (__m512d __A, __m512d __B) {57return (__m512d) ((__v8du) __A ^ (__v8du) __B);58}5960static __inline__ __m512d __DEFAULT_FN_ATTRS61_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {62return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,63(__v8df) __B,64(__v8df) __W,65(__mmask8) __U);66}6768static __inline__ __m512d __DEFAULT_FN_ATTRS69_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B) {70return (__m512d) __builtin_ia32_xorpd512_mask ((__v8df) __A,71(__v8df) __B,72(__v8df)73_mm512_setzero_pd (),74(__mmask8) __U);75}7677static __inline__ __m512 __DEFAULT_FN_ATTRS78_mm512_xor_ps (__m512 __A, __m512 __B) {79return (__m512) ((__v16su) __A ^ (__v16su) __B);80}8182static __inline__ __m512 __DEFAULT_FN_ATTRS83_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {84return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,85(__v16sf) __B,86(__v16sf) __W,87(__mmask16) __U);88}8990static __inline__ __m512 __DEFAULT_FN_ATTRS91_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B) {92return (__m512) __builtin_ia32_xorps512_mask ((__v16sf) __A,93(__v16sf) __B,94(__v16sf)95_mm512_setzero_ps (),96(__mmask16) __U);97}9899static __inline__ __m512d __DEFAULT_FN_ATTRS100_mm512_or_pd (__m512d __A, __m512d __B) {101return (__m512d) ((__v8du) __A | (__v8du) __B);102}103104static __inline__ __m512d __DEFAULT_FN_ATTRS105_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {106return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,107(__v8df) __B,108(__v8df) __W,109(__mmask8) __U);110}111112static __inline__ __m512d __DEFAULT_FN_ATTRS113_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B) {114return (__m512d) __builtin_ia32_orpd512_mask ((__v8df) __A,115(__v8df) __B,116(__v8df)117_mm512_setzero_pd (),118(__mmask8) __U);119}120121static __inline__ __m512 __DEFAULT_FN_ATTRS122_mm512_or_ps (__m512 __A, __m512 __B) {123return (__m512) ((__v16su) __A | (__v16su) __B);124}125126static __inline__ __m512 __DEFAULT_FN_ATTRS127_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {128return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,129(__v16sf) __B,130(__v16sf) __W,131(__mmask16) __U);132}133134static __inline__ __m512 __DEFAULT_FN_ATTRS135_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B) {136return (__m512) __builtin_ia32_orps512_mask ((__v16sf) __A,137(__v16sf) __B,138(__v16sf)139_mm512_setzero_ps (),140(__mmask16) __U);141}142143static __inline__ __m512d __DEFAULT_FN_ATTRS144_mm512_and_pd (__m512d __A, __m512d __B) {145return (__m512d) ((__v8du) __A & (__v8du) __B);146}147148static __inline__ __m512d __DEFAULT_FN_ATTRS149_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {150return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,151(__v8df) __B,152(__v8df) __W,153(__mmask8) __U);154}155156static __inline__ __m512d __DEFAULT_FN_ATTRS157_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B) {158return (__m512d) __builtin_ia32_andpd512_mask ((__v8df) __A,159(__v8df) __B,160(__v8df)161_mm512_setzero_pd (),162(__mmask8) __U);163}164165static __inline__ __m512 __DEFAULT_FN_ATTRS166_mm512_and_ps (__m512 __A, __m512 __B) {167return (__m512) ((__v16su) __A & (__v16su) __B);168}169170static __inline__ __m512 __DEFAULT_FN_ATTRS171_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {172return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,173(__v16sf) __B,174(__v16sf) __W,175(__mmask16) __U);176}177178static __inline__ __m512 __DEFAULT_FN_ATTRS179_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B) {180return (__m512) __builtin_ia32_andps512_mask ((__v16sf) __A,181(__v16sf) __B,182(__v16sf)183_mm512_setzero_ps (),184(__mmask16) __U);185}186187static __inline__ __m512d __DEFAULT_FN_ATTRS188_mm512_andnot_pd (__m512d __A, __m512d __B) {189return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,190(__v8df) __B,191(__v8df)192_mm512_setzero_pd (),193(__mmask8) -1);194}195196static __inline__ __m512d __DEFAULT_FN_ATTRS197_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {198return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,199(__v8df) __B,200(__v8df) __W,201(__mmask8) __U);202}203204static __inline__ __m512d __DEFAULT_FN_ATTRS205_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B) {206return (__m512d) __builtin_ia32_andnpd512_mask ((__v8df) __A,207(__v8df) __B,208(__v8df)209_mm512_setzero_pd (),210(__mmask8) __U);211}212213static __inline__ __m512 __DEFAULT_FN_ATTRS214_mm512_andnot_ps (__m512 __A, __m512 __B) {215return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,216(__v16sf) __B,217(__v16sf)218_mm512_setzero_ps (),219(__mmask16) -1);220}221222static __inline__ __m512 __DEFAULT_FN_ATTRS223_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {224return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,225(__v16sf) __B,226(__v16sf) __W,227(__mmask16) __U);228}229230static __inline__ __m512 __DEFAULT_FN_ATTRS231_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B) {232return (__m512) __builtin_ia32_andnps512_mask ((__v16sf) __A,233(__v16sf) __B,234(__v16sf)235_mm512_setzero_ps (),236(__mmask16) __U);237}238239static __inline__ __m512i __DEFAULT_FN_ATTRS240_mm512_cvtpd_epi64 (__m512d __A) {241return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,242(__v8di) _mm512_setzero_si512(),243(__mmask8) -1,244_MM_FROUND_CUR_DIRECTION);245}246247static __inline__ __m512i __DEFAULT_FN_ATTRS248_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {249return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,250(__v8di) __W,251(__mmask8) __U,252_MM_FROUND_CUR_DIRECTION);253}254255static __inline__ __m512i __DEFAULT_FN_ATTRS256_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) {257return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,258(__v8di) _mm512_setzero_si512(),259(__mmask8) __U,260_MM_FROUND_CUR_DIRECTION);261}262263#define _mm512_cvt_roundpd_epi64(A, R) __extension__ ({ \264(__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \265(__v8di)_mm512_setzero_si512(), \266(__mmask8)-1, (int)(R)); })267268#define _mm512_mask_cvt_roundpd_epi64(W, U, A, R) __extension__ ({ \269(__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \270(__v8di)(__m512i)(W), \271(__mmask8)(U), (int)(R)); })272273#define _mm512_maskz_cvt_roundpd_epi64(U, A, R) __extension__ ({ \274(__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \275(__v8di)_mm512_setzero_si512(), \276(__mmask8)(U), (int)(R)); })277278static __inline__ __m512i __DEFAULT_FN_ATTRS279_mm512_cvtpd_epu64 (__m512d __A) {280return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,281(__v8di) _mm512_setzero_si512(),282(__mmask8) -1,283_MM_FROUND_CUR_DIRECTION);284}285286static __inline__ __m512i __DEFAULT_FN_ATTRS287_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {288return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,289(__v8di) __W,290(__mmask8) __U,291_MM_FROUND_CUR_DIRECTION);292}293294static __inline__ __m512i __DEFAULT_FN_ATTRS295_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) {296return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,297(__v8di) _mm512_setzero_si512(),298(__mmask8) __U,299_MM_FROUND_CUR_DIRECTION);300}301302#define _mm512_cvt_roundpd_epu64(A, R) __extension__ ({ \303(__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \304(__v8di)_mm512_setzero_si512(), \305(__mmask8)-1, (int)(R)); })306307#define _mm512_mask_cvt_roundpd_epu64(W, U, A, R) __extension__ ({ \308(__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \309(__v8di)(__m512i)(W), \310(__mmask8)(U), (int)(R)); })311312#define _mm512_maskz_cvt_roundpd_epu64(U, A, R) __extension__ ({ \313(__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \314(__v8di)_mm512_setzero_si512(), \315(__mmask8)(U), (int)(R)); })316317static __inline__ __m512i __DEFAULT_FN_ATTRS318_mm512_cvtps_epi64 (__m256 __A) {319return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,320(__v8di) _mm512_setzero_si512(),321(__mmask8) -1,322_MM_FROUND_CUR_DIRECTION);323}324325static __inline__ __m512i __DEFAULT_FN_ATTRS326_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {327return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,328(__v8di) __W,329(__mmask8) __U,330_MM_FROUND_CUR_DIRECTION);331}332333static __inline__ __m512i __DEFAULT_FN_ATTRS334_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) {335return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,336(__v8di) _mm512_setzero_si512(),337(__mmask8) __U,338_MM_FROUND_CUR_DIRECTION);339}340341#define _mm512_cvt_roundps_epi64(A, R) __extension__ ({ \342(__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \343(__v8di)_mm512_setzero_si512(), \344(__mmask8)-1, (int)(R)); })345346#define _mm512_mask_cvt_roundps_epi64(W, U, A, R) __extension__ ({ \347(__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \348(__v8di)(__m512i)(W), \349(__mmask8)(U), (int)(R)); })350351#define _mm512_maskz_cvt_roundps_epi64(U, A, R) __extension__ ({ \352(__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \353(__v8di)_mm512_setzero_si512(), \354(__mmask8)(U), (int)(R)); })355356static __inline__ __m512i __DEFAULT_FN_ATTRS357_mm512_cvtps_epu64 (__m256 __A) {358return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,359(__v8di) _mm512_setzero_si512(),360(__mmask8) -1,361_MM_FROUND_CUR_DIRECTION);362}363364static __inline__ __m512i __DEFAULT_FN_ATTRS365_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {366return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,367(__v8di) __W,368(__mmask8) __U,369_MM_FROUND_CUR_DIRECTION);370}371372static __inline__ __m512i __DEFAULT_FN_ATTRS373_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) {374return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,375(__v8di) _mm512_setzero_si512(),376(__mmask8) __U,377_MM_FROUND_CUR_DIRECTION);378}379380#define _mm512_cvt_roundps_epu64(A, R) __extension__ ({ \381(__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \382(__v8di)_mm512_setzero_si512(), \383(__mmask8)-1, (int)(R)); })384385#define _mm512_mask_cvt_roundps_epu64(W, U, A, R) __extension__ ({ \386(__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \387(__v8di)(__m512i)(W), \388(__mmask8)(U), (int)(R)); })389390#define _mm512_maskz_cvt_roundps_epu64(U, A, R) __extension__ ({ \391(__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \392(__v8di)_mm512_setzero_si512(), \393(__mmask8)(U), (int)(R)); })394395396static __inline__ __m512d __DEFAULT_FN_ATTRS397_mm512_cvtepi64_pd (__m512i __A) {398return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,399(__v8df) _mm512_setzero_pd(),400(__mmask8) -1,401_MM_FROUND_CUR_DIRECTION);402}403404static __inline__ __m512d __DEFAULT_FN_ATTRS405_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) {406return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,407(__v8df) __W,408(__mmask8) __U,409_MM_FROUND_CUR_DIRECTION);410}411412static __inline__ __m512d __DEFAULT_FN_ATTRS413_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) {414return (__m512d) __builtin_ia32_cvtqq2pd512_mask ((__v8di) __A,415(__v8df) _mm512_setzero_pd(),416(__mmask8) __U,417_MM_FROUND_CUR_DIRECTION);418}419420#define _mm512_cvt_roundepi64_pd(A, R) __extension__ ({ \421(__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \422(__v8df)_mm512_setzero_pd(), \423(__mmask8)-1, (int)(R)); })424425#define _mm512_mask_cvt_roundepi64_pd(W, U, A, R) __extension__ ({ \426(__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \427(__v8df)(__m512d)(W), \428(__mmask8)(U), (int)(R)); })429430#define _mm512_maskz_cvt_roundepi64_pd(U, A, R) __extension__ ({ \431(__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \432(__v8df)_mm512_setzero_pd(), \433(__mmask8)(U), (int)(R)); })434435static __inline__ __m256 __DEFAULT_FN_ATTRS436_mm512_cvtepi64_ps (__m512i __A) {437return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,438(__v8sf) _mm256_setzero_ps(),439(__mmask8) -1,440_MM_FROUND_CUR_DIRECTION);441}442443static __inline__ __m256 __DEFAULT_FN_ATTRS444_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) {445return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,446(__v8sf) __W,447(__mmask8) __U,448_MM_FROUND_CUR_DIRECTION);449}450451static __inline__ __m256 __DEFAULT_FN_ATTRS452_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) {453return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,454(__v8sf) _mm256_setzero_ps(),455(__mmask8) __U,456_MM_FROUND_CUR_DIRECTION);457}458459#define _mm512_cvt_roundepi64_ps(A, R) __extension__ ({ \460(__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \461(__v8sf)_mm256_setzero_ps(), \462(__mmask8)-1, (int)(R)); })463464#define _mm512_mask_cvt_roundepi64_ps(W, U, A, R) __extension__ ({ \465(__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \466(__v8sf)(__m256)(W), (__mmask8)(U), \467(int)(R)); })468469#define _mm512_maskz_cvt_roundepi64_ps(U, A, R) __extension__ ({ \470(__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \471(__v8sf)_mm256_setzero_ps(), \472(__mmask8)(U), (int)(R)); })473474475static __inline__ __m512i __DEFAULT_FN_ATTRS476_mm512_cvttpd_epi64 (__m512d __A) {477return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,478(__v8di) _mm512_setzero_si512(),479(__mmask8) -1,480_MM_FROUND_CUR_DIRECTION);481}482483static __inline__ __m512i __DEFAULT_FN_ATTRS484_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {485return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,486(__v8di) __W,487(__mmask8) __U,488_MM_FROUND_CUR_DIRECTION);489}490491static __inline__ __m512i __DEFAULT_FN_ATTRS492_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) {493return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,494(__v8di) _mm512_setzero_si512(),495(__mmask8) __U,496_MM_FROUND_CUR_DIRECTION);497}498499#define _mm512_cvtt_roundpd_epi64(A, R) __extension__ ({ \500(__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \501(__v8di)_mm512_setzero_si512(), \502(__mmask8)-1, (int)(R)); })503504#define _mm512_mask_cvtt_roundpd_epi64(W, U, A, R) __extension__ ({ \505(__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \506(__v8di)(__m512i)(W), \507(__mmask8)(U), (int)(R)); })508509#define _mm512_maskz_cvtt_roundpd_epi64(U, A, R) __extension__ ({ \510(__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \511(__v8di)_mm512_setzero_si512(), \512(__mmask8)(U), (int)(R)); })513514static __inline__ __m512i __DEFAULT_FN_ATTRS515_mm512_cvttpd_epu64 (__m512d __A) {516return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,517(__v8di) _mm512_setzero_si512(),518(__mmask8) -1,519_MM_FROUND_CUR_DIRECTION);520}521522static __inline__ __m512i __DEFAULT_FN_ATTRS523_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {524return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,525(__v8di) __W,526(__mmask8) __U,527_MM_FROUND_CUR_DIRECTION);528}529530static __inline__ __m512i __DEFAULT_FN_ATTRS531_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) {532return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,533(__v8di) _mm512_setzero_si512(),534(__mmask8) __U,535_MM_FROUND_CUR_DIRECTION);536}537538#define _mm512_cvtt_roundpd_epu64(A, R) __extension__ ({ \539(__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \540(__v8di)_mm512_setzero_si512(), \541(__mmask8)-1, (int)(R)); })542543#define _mm512_mask_cvtt_roundpd_epu64(W, U, A, R) __extension__ ({ \544(__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \545(__v8di)(__m512i)(W), \546(__mmask8)(U), (int)(R)); })547548#define _mm512_maskz_cvtt_roundpd_epu64(U, A, R) __extension__ ({ \549(__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \550(__v8di)_mm512_setzero_si512(), \551(__mmask8)(U), (int)(R)); })552553static __inline__ __m512i __DEFAULT_FN_ATTRS554_mm512_cvttps_epi64 (__m256 __A) {555return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,556(__v8di) _mm512_setzero_si512(),557(__mmask8) -1,558_MM_FROUND_CUR_DIRECTION);559}560561static __inline__ __m512i __DEFAULT_FN_ATTRS562_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {563return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,564(__v8di) __W,565(__mmask8) __U,566_MM_FROUND_CUR_DIRECTION);567}568569static __inline__ __m512i __DEFAULT_FN_ATTRS570_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) {571return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,572(__v8di) _mm512_setzero_si512(),573(__mmask8) __U,574_MM_FROUND_CUR_DIRECTION);575}576577#define _mm512_cvtt_roundps_epi64(A, R) __extension__ ({ \578(__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \579(__v8di)_mm512_setzero_si512(), \580(__mmask8)-1, (int)(R)); })581582#define _mm512_mask_cvtt_roundps_epi64(W, U, A, R) __extension__ ({ \583(__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \584(__v8di)(__m512i)(W), \585(__mmask8)(U), (int)(R)); })586587#define _mm512_maskz_cvtt_roundps_epi64(U, A, R) __extension__ ({ \588(__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \589(__v8di)_mm512_setzero_si512(), \590(__mmask8)(U), (int)(R)); })591592static __inline__ __m512i __DEFAULT_FN_ATTRS593_mm512_cvttps_epu64 (__m256 __A) {594return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,595(__v8di) _mm512_setzero_si512(),596(__mmask8) -1,597_MM_FROUND_CUR_DIRECTION);598}599600static __inline__ __m512i __DEFAULT_FN_ATTRS601_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {602return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,603(__v8di) __W,604(__mmask8) __U,605_MM_FROUND_CUR_DIRECTION);606}607608static __inline__ __m512i __DEFAULT_FN_ATTRS609_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) {610return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,611(__v8di) _mm512_setzero_si512(),612(__mmask8) __U,613_MM_FROUND_CUR_DIRECTION);614}615616#define _mm512_cvtt_roundps_epu64(A, R) __extension__ ({ \617(__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \618(__v8di)_mm512_setzero_si512(), \619(__mmask8)-1, (int)(R)); })620621#define _mm512_mask_cvtt_roundps_epu64(W, U, A, R) __extension__ ({ \622(__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \623(__v8di)(__m512i)(W), \624(__mmask8)(U), (int)(R)); })625626#define _mm512_maskz_cvtt_roundps_epu64(U, A, R) __extension__ ({ \627(__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \628(__v8di)_mm512_setzero_si512(), \629(__mmask8)(U), (int)(R)); })630631static __inline__ __m512d __DEFAULT_FN_ATTRS632_mm512_cvtepu64_pd (__m512i __A) {633return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,634(__v8df) _mm512_setzero_pd(),635(__mmask8) -1,636_MM_FROUND_CUR_DIRECTION);637}638639static __inline__ __m512d __DEFAULT_FN_ATTRS640_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) {641return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,642(__v8df) __W,643(__mmask8) __U,644_MM_FROUND_CUR_DIRECTION);645}646647static __inline__ __m512d __DEFAULT_FN_ATTRS648_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) {649return (__m512d) __builtin_ia32_cvtuqq2pd512_mask ((__v8di) __A,650(__v8df) _mm512_setzero_pd(),651(__mmask8) __U,652_MM_FROUND_CUR_DIRECTION);653}654655#define _mm512_cvt_roundepu64_pd(A, R) __extension__ ({ \656(__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \657(__v8df)_mm512_setzero_pd(), \658(__mmask8)-1, (int)(R)); })659660#define _mm512_mask_cvt_roundepu64_pd(W, U, A, R) __extension__ ({ \661(__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \662(__v8df)(__m512d)(W), \663(__mmask8)(U), (int)(R)); })664665666#define _mm512_maskz_cvt_roundepu64_pd(U, A, R) __extension__ ({ \667(__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \668(__v8df)_mm512_setzero_pd(), \669(__mmask8)(U), (int)(R)); })670671672static __inline__ __m256 __DEFAULT_FN_ATTRS673_mm512_cvtepu64_ps (__m512i __A) {674return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,675(__v8sf) _mm256_setzero_ps(),676(__mmask8) -1,677_MM_FROUND_CUR_DIRECTION);678}679680static __inline__ __m256 __DEFAULT_FN_ATTRS681_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) {682return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,683(__v8sf) __W,684(__mmask8) __U,685_MM_FROUND_CUR_DIRECTION);686}687688static __inline__ __m256 __DEFAULT_FN_ATTRS689_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) {690return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,691(__v8sf) _mm256_setzero_ps(),692(__mmask8) __U,693_MM_FROUND_CUR_DIRECTION);694}695696#define _mm512_cvt_roundepu64_ps(A, R) __extension__ ({ \697(__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \698(__v8sf)_mm256_setzero_ps(), \699(__mmask8)-1, (int)(R)); })700701#define _mm512_mask_cvt_roundepu64_ps(W, U, A, R) __extension__ ({ \702(__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \703(__v8sf)(__m256)(W), (__mmask8)(U), \704(int)(R)); })705706#define _mm512_maskz_cvt_roundepu64_ps(U, A, R) __extension__ ({ \707(__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \708(__v8sf)_mm256_setzero_ps(), \709(__mmask8)(U), (int)(R)); })710711#define _mm512_range_pd(A, B, C) __extension__ ({ \712(__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \713(__v8df)(__m512d)(B), (int)(C), \714(__v8df)_mm512_setzero_pd(), \715(__mmask8)-1, \716_MM_FROUND_CUR_DIRECTION); })717718#define _mm512_mask_range_pd(W, U, A, B, C) __extension__ ({ \719(__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \720(__v8df)(__m512d)(B), (int)(C), \721(__v8df)(__m512d)(W), (__mmask8)(U), \722_MM_FROUND_CUR_DIRECTION); })723724#define _mm512_maskz_range_pd(U, A, B, C) __extension__ ({ \725(__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \726(__v8df)(__m512d)(B), (int)(C), \727(__v8df)_mm512_setzero_pd(), \728(__mmask8)(U), \729_MM_FROUND_CUR_DIRECTION); })730731#define _mm512_range_round_pd(A, B, C, R) __extension__ ({ \732(__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \733(__v8df)(__m512d)(B), (int)(C), \734(__v8df)_mm512_setzero_pd(), \735(__mmask8)-1, (int)(R)); })736737#define _mm512_mask_range_round_pd(W, U, A, B, C, R) __extension__ ({ \738(__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \739(__v8df)(__m512d)(B), (int)(C), \740(__v8df)(__m512d)(W), (__mmask8)(U), \741(int)(R)); })742743#define _mm512_maskz_range_round_pd(U, A, B, C, R) __extension__ ({ \744(__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \745(__v8df)(__m512d)(B), (int)(C), \746(__v8df)_mm512_setzero_pd(), \747(__mmask8)(U), (int)(R)); })748749#define _mm512_range_ps(A, B, C) __extension__ ({ \750(__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \751(__v16sf)(__m512)(B), (int)(C), \752(__v16sf)_mm512_setzero_ps(), \753(__mmask16)-1, \754_MM_FROUND_CUR_DIRECTION); })755756#define _mm512_mask_range_ps(W, U, A, B, C) __extension__ ({ \757(__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \758(__v16sf)(__m512)(B), (int)(C), \759(__v16sf)(__m512)(W), (__mmask16)(U), \760_MM_FROUND_CUR_DIRECTION); })761762#define _mm512_maskz_range_ps(U, A, B, C) __extension__ ({ \763(__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \764(__v16sf)(__m512)(B), (int)(C), \765(__v16sf)_mm512_setzero_ps(), \766(__mmask16)(U), \767_MM_FROUND_CUR_DIRECTION); })768769#define _mm512_range_round_ps(A, B, C, R) __extension__ ({ \770(__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \771(__v16sf)(__m512)(B), (int)(C), \772(__v16sf)_mm512_setzero_ps(), \773(__mmask16)-1, (int)(R)); })774775#define _mm512_mask_range_round_ps(W, U, A, B, C, R) __extension__ ({ \776(__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \777(__v16sf)(__m512)(B), (int)(C), \778(__v16sf)(__m512)(W), (__mmask16)(U), \779(int)(R)); })780781#define _mm512_maskz_range_round_ps(U, A, B, C, R) __extension__ ({ \782(__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \783(__v16sf)(__m512)(B), (int)(C), \784(__v16sf)_mm512_setzero_ps(), \785(__mmask16)(U), (int)(R)); })786787#define _mm_range_round_ss(A, B, C, R) __extension__ ({ \788(__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \789(__v4sf)(__m128)(B), \790(__v4sf)_mm_setzero_ps(), \791(__mmask8) -1, (int)(C),\792(int)(R)); })793794#define _mm_range_ss(A ,B , C) _mm_range_round_ss(A, B, C ,_MM_FROUND_CUR_DIRECTION)795796#define _mm_mask_range_round_ss(W, U, A, B, C, R) __extension__ ({ \797(__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \798(__v4sf)(__m128)(B), \799(__v4sf)(__m128)(W),\800(__mmask8)(U), (int)(C),\801(int)(R)); })802803#define _mm_mask_range_ss(W , U, A, B, C) _mm_mask_range_round_ss(W, U, A, B, C , _MM_FROUND_CUR_DIRECTION)804805#define _mm_maskz_range_round_ss(U, A, B, C, R) __extension__ ({ \806(__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \807(__v4sf)(__m128)(B), \808(__v4sf)_mm_setzero_ps(), \809(__mmask8)(U), (int)(C),\810(int)(R)); })811812#define _mm_maskz_range_ss(U, A ,B , C) _mm_maskz_range_round_ss(U, A, B, C ,_MM_FROUND_CUR_DIRECTION)813814#define _mm_range_round_sd(A, B, C, R) __extension__ ({ \815(__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \816(__v2df)(__m128d)(B), \817(__v2df)_mm_setzero_pd(), \818(__mmask8) -1, (int)(C),\819(int)(R)); })820821#define _mm_range_sd(A ,B , C) _mm_range_round_sd(A, B, C ,_MM_FROUND_CUR_DIRECTION)822823#define _mm_mask_range_round_sd(W, U, A, B, C, R) __extension__ ({ \824(__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \825(__v2df)(__m128d)(B), \826(__v2df)(__m128d)(W),\827(__mmask8)(U), (int)(C),\828(int)(R)); })829830#define _mm_mask_range_sd(W, U, A, B, C) _mm_mask_range_round_sd(W, U, A, B, C ,_MM_FROUND_CUR_DIRECTION)831832#define _mm_maskz_range_round_sd(U, A, B, C, R) __extension__ ({ \833(__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \834(__v2df)(__m128d)(B), \835(__v2df)_mm_setzero_pd(), \836(__mmask8)(U), (int)(C),\837(int)(R)); })838839#define _mm_maskz_range_sd(U, A, B, C) _mm_maskz_range_round_sd(U, A, B, C ,_MM_FROUND_CUR_DIRECTION)840841#define _mm512_reduce_pd(A, B) __extension__ ({ \842(__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \843(__v8df)_mm512_setzero_pd(), \844(__mmask8)-1, \845_MM_FROUND_CUR_DIRECTION); })846847#define _mm512_mask_reduce_pd(W, U, A, B) __extension__ ({ \848(__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \849(__v8df)(__m512d)(W), \850(__mmask8)(U), \851_MM_FROUND_CUR_DIRECTION); })852853#define _mm512_maskz_reduce_pd(U, A, B) __extension__ ({ \854(__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \855(__v8df)_mm512_setzero_pd(), \856(__mmask8)(U), \857_MM_FROUND_CUR_DIRECTION); })858859#define _mm512_reduce_ps(A, B) __extension__ ({ \860(__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \861(__v16sf)_mm512_setzero_ps(), \862(__mmask16)-1, \863_MM_FROUND_CUR_DIRECTION); })864865#define _mm512_mask_reduce_ps(W, U, A, B) __extension__ ({ \866(__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \867(__v16sf)(__m512)(W), \868(__mmask16)(U), \869_MM_FROUND_CUR_DIRECTION); })870871#define _mm512_maskz_reduce_ps(U, A, B) __extension__ ({ \872(__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \873(__v16sf)_mm512_setzero_ps(), \874(__mmask16)(U), \875_MM_FROUND_CUR_DIRECTION); })876877#define _mm512_reduce_round_pd(A, B, R) __extension__ ({\878(__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \879(__v8df)_mm512_setzero_pd(), \880(__mmask8)-1, (int)(R)); })881882#define _mm512_mask_reduce_round_pd(W, U, A, B, R) __extension__ ({\883(__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \884(__v8df)(__m512d)(W), \885(__mmask8)(U), (int)(R)); })886887#define _mm512_maskz_reduce_round_pd(U, A, B, R) __extension__ ({\888(__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \889(__v8df)_mm512_setzero_pd(), \890(__mmask8)(U), (int)(R)); })891892#define _mm512_reduce_round_ps(A, B, R) __extension__ ({\893(__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \894(__v16sf)_mm512_setzero_ps(), \895(__mmask16)-1, (int)(R)); })896897#define _mm512_mask_reduce_round_ps(W, U, A, B, R) __extension__ ({\898(__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \899(__v16sf)(__m512)(W), \900(__mmask16)(U), (int)(R)); })901902#define _mm512_maskz_reduce_round_ps(U, A, B, R) __extension__ ({\903(__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \904(__v16sf)_mm512_setzero_ps(), \905(__mmask16)(U), (int)(R)); })906907#define _mm_reduce_ss(A, B, C) __extension__ ({ \908(__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \909(__v4sf)(__m128)(B), \910(__v4sf)_mm_setzero_ps(), (__mmask8)-1, \911(int)(C), _MM_FROUND_CUR_DIRECTION); })912913#define _mm_mask_reduce_ss(W, U, A, B, C) __extension__ ({ \914(__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \915(__v4sf)(__m128)(B), \916(__v4sf)(__m128)(W), (__mmask8)(U), \917(int)(C), _MM_FROUND_CUR_DIRECTION); })918919#define _mm_maskz_reduce_ss(U, A, B, C) __extension__ ({ \920(__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \921(__v4sf)(__m128)(B), \922(__v4sf)_mm_setzero_ps(), \923(__mmask8)(U), (int)(C), \924_MM_FROUND_CUR_DIRECTION); })925926#define _mm_reduce_round_ss(A, B, C, R) __extension__ ({ \927(__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \928(__v4sf)(__m128)(B), \929(__v4sf)_mm_setzero_ps(), (__mmask8)-1, \930(int)(C), (int)(R)); })931932#define _mm_mask_reduce_round_ss(W, U, A, B, C, R) __extension__ ({ \933(__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \934(__v4sf)(__m128)(B), \935(__v4sf)(__m128)(W), (__mmask8)(U), \936(int)(C), (int)(R)); })937938#define _mm_maskz_reduce_round_ss(U, A, B, C, R) __extension__ ({ \939(__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \940(__v4sf)(__m128)(B), \941(__v4sf)_mm_setzero_ps(), \942(__mmask8)(U), (int)(C), (int)(R)); })943944#define _mm_reduce_sd(A, B, C) __extension__ ({ \945(__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \946(__v2df)(__m128d)(B), \947(__v2df)_mm_setzero_pd(), \948(__mmask8)-1, (int)(C), \949_MM_FROUND_CUR_DIRECTION); })950951#define _mm_mask_reduce_sd(W, U, A, B, C) __extension__ ({ \952(__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \953(__v2df)(__m128d)(B), \954(__v2df)(__m128d)(W), (__mmask8)(U), \955(int)(C), _MM_FROUND_CUR_DIRECTION); })956957#define _mm_maskz_reduce_sd(U, A, B, C) __extension__ ({ \958(__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \959(__v2df)(__m128d)(B), \960(__v2df)_mm_setzero_pd(), \961(__mmask8)(U), (int)(C), \962_MM_FROUND_CUR_DIRECTION); })963964#define _mm_reduce_round_sd(A, B, C, R) __extension__ ({ \965(__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \966(__v2df)(__m128d)(B), \967(__v2df)_mm_setzero_pd(), \968(__mmask8)-1, (int)(C), (int)(R)); })969970#define _mm_mask_reduce_round_sd(W, U, A, B, C, R) __extension__ ({ \971(__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \972(__v2df)(__m128d)(B), \973(__v2df)(__m128d)(W), (__mmask8)(U), \974(int)(C), (int)(R)); })975976#define _mm_maskz_reduce_round_sd(U, A, B, C, R) __extension__ ({ \977(__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \978(__v2df)(__m128d)(B), \979(__v2df)_mm_setzero_pd(), \980(__mmask8)(U), (int)(C), (int)(R)); })981982static __inline__ __mmask16 __DEFAULT_FN_ATTRS983_mm512_movepi32_mask (__m512i __A)984{985return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);986}987988static __inline__ __m512i __DEFAULT_FN_ATTRS989_mm512_movm_epi32 (__mmask16 __A)990{991return (__m512i) __builtin_ia32_cvtmask2d512 (__A);992}993994static __inline__ __m512i __DEFAULT_FN_ATTRS995_mm512_movm_epi64 (__mmask8 __A)996{997return (__m512i) __builtin_ia32_cvtmask2q512 (__A);998}9991000static __inline__ __mmask8 __DEFAULT_FN_ATTRS1001_mm512_movepi64_mask (__m512i __A)1002{1003return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);1004}100510061007static __inline__ __m512 __DEFAULT_FN_ATTRS1008_mm512_broadcast_f32x2 (__m128 __A)1009{1010return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,1011(__v16sf)_mm512_undefined_ps(),1012(__mmask16) -1);1013}10141015static __inline__ __m512 __DEFAULT_FN_ATTRS1016_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)1017{1018return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,1019(__v16sf)1020__O, __M);1021}10221023static __inline__ __m512 __DEFAULT_FN_ATTRS1024_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)1025{1026return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,1027(__v16sf)_mm512_setzero_ps (),1028__M);1029}10301031static __inline__ __m512 __DEFAULT_FN_ATTRS1032_mm512_broadcast_f32x8 (__m256 __A)1033{1034return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,1035_mm512_undefined_ps(),1036(__mmask16) -1);1037}10381039static __inline__ __m512 __DEFAULT_FN_ATTRS1040_mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)1041{1042return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,1043(__v16sf)__O,1044__M);1045}10461047static __inline__ __m512 __DEFAULT_FN_ATTRS1048_mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)1049{1050return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,1051(__v16sf)_mm512_setzero_ps (),1052__M);1053}10541055static __inline__ __m512d __DEFAULT_FN_ATTRS1056_mm512_broadcast_f64x2 (__m128d __A)1057{1058return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,1059(__v8df)_mm512_undefined_pd(),1060(__mmask8) -1);1061}10621063static __inline__ __m512d __DEFAULT_FN_ATTRS1064_mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)1065{1066return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,1067(__v8df)1068__O, __M);1069}10701071static __inline__ __m512d __DEFAULT_FN_ATTRS1072_mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)1073{1074return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,1075(__v8df)_mm512_setzero_ps (),1076__M);1077}10781079static __inline__ __m512i __DEFAULT_FN_ATTRS1080_mm512_broadcast_i32x2 (__m128i __A)1081{1082return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,1083(__v16si)_mm512_setzero_si512(),1084(__mmask16) -1);1085}10861087static __inline__ __m512i __DEFAULT_FN_ATTRS1088_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)1089{1090return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,1091(__v16si)1092__O, __M);1093}10941095static __inline__ __m512i __DEFAULT_FN_ATTRS1096_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)1097{1098return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,1099(__v16si)_mm512_setzero_si512 (),1100__M);1101}11021103static __inline__ __m512i __DEFAULT_FN_ATTRS1104_mm512_broadcast_i32x8 (__m256i __A)1105{1106return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,1107(__v16si)_mm512_setzero_si512(),1108(__mmask16) -1);1109}11101111static __inline__ __m512i __DEFAULT_FN_ATTRS1112_mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)1113{1114return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,1115(__v16si)__O,1116__M);1117}11181119static __inline__ __m512i __DEFAULT_FN_ATTRS1120_mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)1121{1122return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,1123(__v16si)1124_mm512_setzero_si512 (),1125__M);1126}11271128static __inline__ __m512i __DEFAULT_FN_ATTRS1129_mm512_broadcast_i64x2 (__m128i __A)1130{1131return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,1132(__v8di)_mm512_setzero_si512(),1133(__mmask8) -1);1134}11351136static __inline__ __m512i __DEFAULT_FN_ATTRS1137_mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)1138{1139return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,1140(__v8di)1141__O, __M);1142}11431144static __inline__ __m512i __DEFAULT_FN_ATTRS1145_mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)1146{1147return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,1148(__v8di)_mm512_setzero_si512 (),1149__M);1150}11511152#define _mm512_extractf32x8_ps(A, imm) __extension__ ({ \1153(__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \1154(__v8sf)_mm256_setzero_ps(), \1155(__mmask8)-1); })11561157#define _mm512_mask_extractf32x8_ps(W, U, A, imm) __extension__ ({ \1158(__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \1159(__v8sf)(__m256)(W), \1160(__mmask8)(U)); })11611162#define _mm512_maskz_extractf32x8_ps(U, A, imm) __extension__ ({ \1163(__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \1164(__v8sf)_mm256_setzero_ps(), \1165(__mmask8)(U)); })11661167#define _mm512_extractf64x2_pd(A, imm) __extension__ ({ \1168(__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \1169(int)(imm), \1170(__v2df)_mm_setzero_pd(), \1171(__mmask8)-1); })11721173#define _mm512_mask_extractf64x2_pd(W, U, A, imm) __extension__ ({ \1174(__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \1175(int)(imm), \1176(__v2df)(__m128d)(W), \1177(__mmask8)(U)); })11781179#define _mm512_maskz_extractf64x2_pd(U, A, imm) __extension__ ({ \1180(__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \1181(int)(imm), \1182(__v2df)_mm_setzero_pd(), \1183(__mmask8)(U)); })11841185#define _mm512_extracti32x8_epi32(A, imm) __extension__ ({ \1186(__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \1187(__v8si)_mm256_setzero_si256(), \1188(__mmask8)-1); })11891190#define _mm512_mask_extracti32x8_epi32(W, U, A, imm) __extension__ ({ \1191(__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \1192(__v8si)(__m256i)(W), \1193(__mmask8)(U)); })11941195#define _mm512_maskz_extracti32x8_epi32(U, A, imm) __extension__ ({ \1196(__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \1197(__v8si)_mm256_setzero_si256(), \1198(__mmask8)(U)); })11991200#define _mm512_extracti64x2_epi64(A, imm) __extension__ ({ \1201(__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \1202(int)(imm), \1203(__v2di)_mm_setzero_di(), \1204(__mmask8)-1); })12051206#define _mm512_mask_extracti64x2_epi64(W, U, A, imm) __extension__ ({ \1207(__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \1208(int)(imm), \1209(__v2di)(__m128i)(W), \1210(__mmask8)(U)); })12111212#define _mm512_maskz_extracti64x2_epi64(U, A, imm) __extension__ ({ \1213(__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \1214(int)(imm), \1215(__v2di)_mm_setzero_di(), \1216(__mmask8)(U)); })12171218#define _mm512_insertf32x8(A, B, imm) __extension__ ({ \1219(__m512)__builtin_ia32_insertf32x8_mask((__v16sf)(__m512)(A), \1220(__v8sf)(__m256)(B), (int)(imm), \1221(__v16sf)_mm512_setzero_ps(), \1222(__mmask16)-1); })12231224#define _mm512_mask_insertf32x8(W, U, A, B, imm) __extension__ ({ \1225(__m512)__builtin_ia32_insertf32x8_mask((__v16sf)(__m512)(A), \1226(__v8sf)(__m256)(B), (int)(imm), \1227(__v16sf)(__m512)(W), \1228(__mmask16)(U)); })12291230#define _mm512_maskz_insertf32x8(U, A, B, imm) __extension__ ({ \1231(__m512)__builtin_ia32_insertf32x8_mask((__v16sf)(__m512)(A), \1232(__v8sf)(__m256)(B), (int)(imm), \1233(__v16sf)_mm512_setzero_ps(), \1234(__mmask16)(U)); })12351236#define _mm512_insertf64x2(A, B, imm) __extension__ ({ \1237(__m512d)__builtin_ia32_insertf64x2_512_mask((__v8df)(__m512d)(A), \1238(__v2df)(__m128d)(B), \1239(int)(imm), \1240(__v8df)_mm512_setzero_pd(), \1241(__mmask8)-1); })12421243#define _mm512_mask_insertf64x2(W, U, A, B, imm) __extension__ ({ \1244(__m512d)__builtin_ia32_insertf64x2_512_mask((__v8df)(__m512d)(A), \1245(__v2df)(__m128d)(B), \1246(int)(imm), \1247(__v8df)(__m512d)(W), \1248(__mmask8)(U)); })12491250#define _mm512_maskz_insertf64x2(U, A, B, imm) __extension__ ({ \1251(__m512d)__builtin_ia32_insertf64x2_512_mask((__v8df)(__m512d)(A), \1252(__v2df)(__m128d)(B), \1253(int)(imm), \1254(__v8df)_mm512_setzero_pd(), \1255(__mmask8)(U)); })12561257#define _mm512_inserti32x8(A, B, imm) __extension__ ({ \1258(__m512i)__builtin_ia32_inserti32x8_mask((__v16si)(__m512i)(A), \1259(__v8si)(__m256i)(B), (int)(imm), \1260(__v16si)_mm512_setzero_si512(), \1261(__mmask16)-1); })12621263#define _mm512_mask_inserti32x8(W, U, A, B, imm) __extension__ ({ \1264(__m512i)__builtin_ia32_inserti32x8_mask((__v16si)(__m512i)(A), \1265(__v8si)(__m256i)(B), (int)(imm), \1266(__v16si)(__m512i)(W), \1267(__mmask16)(U)); })12681269#define _mm512_maskz_inserti32x8(U, A, B, imm) __extension__ ({ \1270(__m512i)__builtin_ia32_inserti32x8_mask((__v16si)(__m512i)(A), \1271(__v8si)(__m256i)(B), (int)(imm), \1272(__v16si)_mm512_setzero_si512(), \1273(__mmask16)(U)); })12741275#define _mm512_inserti64x2(A, B, imm) __extension__ ({ \1276(__m512i)__builtin_ia32_inserti64x2_512_mask((__v8di)(__m512i)(A), \1277(__v2di)(__m128i)(B), \1278(int)(imm), \1279(__v8di)_mm512_setzero_si512(), \1280(__mmask8)-1); })12811282#define _mm512_mask_inserti64x2(W, U, A, B, imm) __extension__ ({ \1283(__m512i)__builtin_ia32_inserti64x2_512_mask((__v8di)(__m512i)(A), \1284(__v2di)(__m128i)(B), \1285(int)(imm), \1286(__v8di)(__m512i)(W), \1287(__mmask8)(U)); })12881289#define _mm512_maskz_inserti64x2(U, A, B, imm) __extension__ ({ \1290(__m512i)__builtin_ia32_inserti64x2_512_mask((__v8di)(__m512i)(A), \1291(__v2di)(__m128i)(B), \1292(int)(imm), \1293(__v8di)_mm512_setzero_si512(), \1294(__mmask8)(U)); })12951296#define _mm512_mask_fpclass_ps_mask(U, A, imm) __extension__ ({ \1297(__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \1298(int)(imm), (__mmask16)(U)); })12991300#define _mm512_fpclass_ps_mask(A, imm) __extension__ ({ \1301(__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \1302(int)(imm), (__mmask16)-1); })13031304#define _mm512_mask_fpclass_pd_mask(U, A, imm) __extension__ ({ \1305(__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \1306(__mmask8)(U)); })13071308#define _mm512_fpclass_pd_mask(A, imm) __extension__ ({ \1309(__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \1310(__mmask8)-1); })13111312#define _mm_fpclass_sd_mask(A, imm) __extension__ ({ \1313(__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \1314(__mmask8)-1); })13151316#define _mm_mask_fpclass_sd_mask(U, A, imm) __extension__ ({ \1317(__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \1318(__mmask8)(U)); })13191320#define _mm_fpclass_ss_mask(A, imm) __extension__ ({ \1321(__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \1322(__mmask8)-1); })13231324#define _mm_mask_fpclass_ss_mask(U, A, imm) __extension__ ({ \1325(__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \1326(__mmask8)(U)); })13271328#undef __DEFAULT_FN_ATTRS13291330#endif133113321333