Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512bwintrin.h
496 views
/*===------------- avx512bwintrin.h - AVX512BW intrinsics ------------------===1*2*3* Permission is hereby granted, free of charge, to any person obtaining a copy4* of this software and associated documentation files (the "Software"), to deal5* in the Software without restriction, including without limitation the rights6* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell7* copies of the Software, and to permit persons to whom the Software is8* furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice shall be included in11* all copies or substantial portions of the Software.12*13* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR14* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,15* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE16* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER17* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,18* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN19* THE SOFTWARE.20*21*===-----------------------------------------------------------------------===22*/23#ifndef __IMMINTRIN_H24#error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."25#endif2627#ifndef __AVX512BWINTRIN_H28#define __AVX512BWINTRIN_H2930typedef unsigned int __mmask32;31typedef unsigned long long __mmask64;3233/* Define the default attributes for the functions in this file. */34#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))3536static __inline __m512i __DEFAULT_FN_ATTRS37_mm512_setzero_qi(void) {38return (__m512i)(__v64qi){ 0, 0, 0, 0, 0, 0, 0, 0,390, 0, 0, 0, 0, 0, 0, 0,400, 0, 0, 0, 0, 0, 0, 0,410, 0, 0, 0, 0, 0, 0, 0,420, 0, 0, 0, 0, 0, 0, 0,430, 0, 0, 0, 0, 0, 0, 0,440, 0, 0, 0, 0, 0, 0, 0,450, 0, 0, 0, 0, 0, 0, 0 };46}4748static __inline __m512i __DEFAULT_FN_ATTRS49_mm512_setzero_hi(void) {50return (__m512i)(__v32hi){ 0, 0, 0, 0, 0, 0, 0, 0,510, 0, 0, 0, 0, 0, 0, 0,520, 0, 0, 0, 0, 0, 0, 0,530, 0, 0, 0, 0, 0, 0, 0 };54}5556/* Integer compare */5758static __inline__ __mmask64 __DEFAULT_FN_ATTRS59_mm512_cmpeq_epi8_mask(__m512i __a, __m512i __b) {60return (__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b,61(__mmask64)-1);62}6364static __inline__ __mmask64 __DEFAULT_FN_ATTRS65_mm512_mask_cmpeq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {66return (__mmask64)__builtin_ia32_pcmpeqb512_mask((__v64qi)__a, (__v64qi)__b,67__u);68}6970static __inline__ __mmask64 __DEFAULT_FN_ATTRS71_mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) {72return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0,73(__mmask64)-1);74}7576static __inline__ __mmask64 __DEFAULT_FN_ATTRS77_mm512_mask_cmpeq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {78return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 0,79__u);80}8182static __inline__ __mmask32 __DEFAULT_FN_ATTRS83_mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) {84return (__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b,85(__mmask32)-1);86}8788static __inline__ __mmask32 __DEFAULT_FN_ATTRS89_mm512_mask_cmpeq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {90return (__mmask32)__builtin_ia32_pcmpeqw512_mask((__v32hi)__a, (__v32hi)__b,91__u);92}9394static __inline__ __mmask32 __DEFAULT_FN_ATTRS95_mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) {96return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0,97(__mmask32)-1);98}99100static __inline__ __mmask32 __DEFAULT_FN_ATTRS101_mm512_mask_cmpeq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {102return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 0,103__u);104}105106static __inline__ __mmask64 __DEFAULT_FN_ATTRS107_mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) {108return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,109(__mmask64)-1);110}111112static __inline__ __mmask64 __DEFAULT_FN_ATTRS113_mm512_mask_cmpge_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {114return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,115__u);116}117118static __inline__ __mmask64 __DEFAULT_FN_ATTRS119_mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) {120return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,121(__mmask64)-1);122}123124static __inline__ __mmask64 __DEFAULT_FN_ATTRS125_mm512_mask_cmpge_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {126return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 5,127__u);128}129130static __inline__ __mmask32 __DEFAULT_FN_ATTRS131_mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) {132return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,133(__mmask32)-1);134}135136static __inline__ __mmask32 __DEFAULT_FN_ATTRS137_mm512_mask_cmpge_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {138return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,139__u);140}141142static __inline__ __mmask32 __DEFAULT_FN_ATTRS143_mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) {144return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,145(__mmask32)-1);146}147148static __inline__ __mmask32 __DEFAULT_FN_ATTRS149_mm512_mask_cmpge_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {150return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 5,151__u);152}153154static __inline__ __mmask64 __DEFAULT_FN_ATTRS155_mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) {156return (__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b,157(__mmask64)-1);158}159160static __inline__ __mmask64 __DEFAULT_FN_ATTRS161_mm512_mask_cmpgt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {162return (__mmask64)__builtin_ia32_pcmpgtb512_mask((__v64qi)__a, (__v64qi)__b,163__u);164}165166static __inline__ __mmask64 __DEFAULT_FN_ATTRS167_mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) {168return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6,169(__mmask64)-1);170}171172static __inline__ __mmask64 __DEFAULT_FN_ATTRS173_mm512_mask_cmpgt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {174return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 6,175__u);176}177178static __inline__ __mmask32 __DEFAULT_FN_ATTRS179_mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) {180return (__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b,181(__mmask32)-1);182}183184static __inline__ __mmask32 __DEFAULT_FN_ATTRS185_mm512_mask_cmpgt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {186return (__mmask32)__builtin_ia32_pcmpgtw512_mask((__v32hi)__a, (__v32hi)__b,187__u);188}189190static __inline__ __mmask32 __DEFAULT_FN_ATTRS191_mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) {192return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6,193(__mmask32)-1);194}195196static __inline__ __mmask32 __DEFAULT_FN_ATTRS197_mm512_mask_cmpgt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {198return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 6,199__u);200}201202static __inline__ __mmask64 __DEFAULT_FN_ATTRS203_mm512_cmple_epi8_mask(__m512i __a, __m512i __b) {204return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,205(__mmask64)-1);206}207208static __inline__ __mmask64 __DEFAULT_FN_ATTRS209_mm512_mask_cmple_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {210return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,211__u);212}213214static __inline__ __mmask64 __DEFAULT_FN_ATTRS215_mm512_cmple_epu8_mask(__m512i __a, __m512i __b) {216return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,217(__mmask64)-1);218}219220static __inline__ __mmask64 __DEFAULT_FN_ATTRS221_mm512_mask_cmple_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {222return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 2,223__u);224}225226static __inline__ __mmask32 __DEFAULT_FN_ATTRS227_mm512_cmple_epi16_mask(__m512i __a, __m512i __b) {228return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,229(__mmask32)-1);230}231232static __inline__ __mmask32 __DEFAULT_FN_ATTRS233_mm512_mask_cmple_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {234return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,235__u);236}237238static __inline__ __mmask32 __DEFAULT_FN_ATTRS239_mm512_cmple_epu16_mask(__m512i __a, __m512i __b) {240return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,241(__mmask32)-1);242}243244static __inline__ __mmask32 __DEFAULT_FN_ATTRS245_mm512_mask_cmple_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {246return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 2,247__u);248}249250static __inline__ __mmask64 __DEFAULT_FN_ATTRS251_mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) {252return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,253(__mmask64)-1);254}255256static __inline__ __mmask64 __DEFAULT_FN_ATTRS257_mm512_mask_cmplt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {258return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,259__u);260}261262static __inline__ __mmask64 __DEFAULT_FN_ATTRS263_mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) {264return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,265(__mmask64)-1);266}267268static __inline__ __mmask64 __DEFAULT_FN_ATTRS269_mm512_mask_cmplt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {270return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 1,271__u);272}273274static __inline__ __mmask32 __DEFAULT_FN_ATTRS275_mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) {276return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,277(__mmask32)-1);278}279280static __inline__ __mmask32 __DEFAULT_FN_ATTRS281_mm512_mask_cmplt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {282return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,283__u);284}285286static __inline__ __mmask32 __DEFAULT_FN_ATTRS287_mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) {288return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,289(__mmask32)-1);290}291292static __inline__ __mmask32 __DEFAULT_FN_ATTRS293_mm512_mask_cmplt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {294return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 1,295__u);296}297298static __inline__ __mmask64 __DEFAULT_FN_ATTRS299_mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) {300return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,301(__mmask64)-1);302}303304static __inline__ __mmask64 __DEFAULT_FN_ATTRS305_mm512_mask_cmpneq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) {306return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,307__u);308}309310static __inline__ __mmask64 __DEFAULT_FN_ATTRS311_mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) {312return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,313(__mmask64)-1);314}315316static __inline__ __mmask64 __DEFAULT_FN_ATTRS317_mm512_mask_cmpneq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) {318return (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)__a, (__v64qi)__b, 4,319__u);320}321322static __inline__ __mmask32 __DEFAULT_FN_ATTRS323_mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) {324return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,325(__mmask32)-1);326}327328static __inline__ __mmask32 __DEFAULT_FN_ATTRS329_mm512_mask_cmpneq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) {330return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,331__u);332}333334static __inline__ __mmask32 __DEFAULT_FN_ATTRS335_mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) {336return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,337(__mmask32)-1);338}339340static __inline__ __mmask32 __DEFAULT_FN_ATTRS341_mm512_mask_cmpneq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) {342return (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)__a, (__v32hi)__b, 4,343__u);344}345346static __inline__ __m512i __DEFAULT_FN_ATTRS347_mm512_add_epi8 (__m512i __A, __m512i __B) {348return (__m512i) ((__v64qu) __A + (__v64qu) __B);349}350351static __inline__ __m512i __DEFAULT_FN_ATTRS352_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {353return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,354(__v64qi) __B,355(__v64qi) __W,356(__mmask64) __U);357}358359static __inline__ __m512i __DEFAULT_FN_ATTRS360_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {361return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A,362(__v64qi) __B,363(__v64qi) _mm512_setzero_qi(),364(__mmask64) __U);365}366367static __inline__ __m512i __DEFAULT_FN_ATTRS368_mm512_sub_epi8 (__m512i __A, __m512i __B) {369return (__m512i) ((__v64qu) __A - (__v64qu) __B);370}371372static __inline__ __m512i __DEFAULT_FN_ATTRS373_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {374return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,375(__v64qi) __B,376(__v64qi) __W,377(__mmask64) __U);378}379380static __inline__ __m512i __DEFAULT_FN_ATTRS381_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) {382return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A,383(__v64qi) __B,384(__v64qi) _mm512_setzero_qi(),385(__mmask64) __U);386}387388static __inline__ __m512i __DEFAULT_FN_ATTRS389_mm512_add_epi16 (__m512i __A, __m512i __B) {390return (__m512i) ((__v32hu) __A + (__v32hu) __B);391}392393static __inline__ __m512i __DEFAULT_FN_ATTRS394_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {395return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,396(__v32hi) __B,397(__v32hi) __W,398(__mmask32) __U);399}400401static __inline__ __m512i __DEFAULT_FN_ATTRS402_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {403return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A,404(__v32hi) __B,405(__v32hi) _mm512_setzero_hi(),406(__mmask32) __U);407}408409static __inline__ __m512i __DEFAULT_FN_ATTRS410_mm512_sub_epi16 (__m512i __A, __m512i __B) {411return (__m512i) ((__v32hu) __A - (__v32hu) __B);412}413414static __inline__ __m512i __DEFAULT_FN_ATTRS415_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {416return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,417(__v32hi) __B,418(__v32hi) __W,419(__mmask32) __U);420}421422static __inline__ __m512i __DEFAULT_FN_ATTRS423_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {424return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A,425(__v32hi) __B,426(__v32hi) _mm512_setzero_hi(),427(__mmask32) __U);428}429430static __inline__ __m512i __DEFAULT_FN_ATTRS431_mm512_mullo_epi16 (__m512i __A, __m512i __B) {432return (__m512i) ((__v32hu) __A * (__v32hu) __B);433}434435static __inline__ __m512i __DEFAULT_FN_ATTRS436_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {437return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,438(__v32hi) __B,439(__v32hi) __W,440(__mmask32) __U);441}442443static __inline__ __m512i __DEFAULT_FN_ATTRS444_mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) {445return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A,446(__v32hi) __B,447(__v32hi) _mm512_setzero_hi(),448(__mmask32) __U);449}450451static __inline__ __m512i __DEFAULT_FN_ATTRS452_mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)453{454return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,455(__v64qi) __W,456(__v64qi) __A);457}458459static __inline__ __m512i __DEFAULT_FN_ATTRS460_mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)461{462return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,463(__v32hi) __W,464(__v32hi) __A);465}466467static __inline__ __m512i __DEFAULT_FN_ATTRS468_mm512_abs_epi8 (__m512i __A)469{470return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,471(__v64qi) _mm512_setzero_qi(),472(__mmask64) -1);473}474475static __inline__ __m512i __DEFAULT_FN_ATTRS476_mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)477{478return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,479(__v64qi) __W,480(__mmask64) __U);481}482483static __inline__ __m512i __DEFAULT_FN_ATTRS484_mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)485{486return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A,487(__v64qi) _mm512_setzero_qi(),488(__mmask64) __U);489}490491static __inline__ __m512i __DEFAULT_FN_ATTRS492_mm512_abs_epi16 (__m512i __A)493{494return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,495(__v32hi) _mm512_setzero_hi(),496(__mmask32) -1);497}498499static __inline__ __m512i __DEFAULT_FN_ATTRS500_mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)501{502return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,503(__v32hi) __W,504(__mmask32) __U);505}506507static __inline__ __m512i __DEFAULT_FN_ATTRS508_mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)509{510return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A,511(__v32hi) _mm512_setzero_hi(),512(__mmask32) __U);513}514515static __inline__ __m512i __DEFAULT_FN_ATTRS516_mm512_packs_epi32 (__m512i __A, __m512i __B)517{518return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,519(__v16si) __B,520(__v32hi) _mm512_setzero_hi(),521(__mmask32) -1);522}523524static __inline__ __m512i __DEFAULT_FN_ATTRS525_mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B)526{527return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,528(__v16si) __B,529(__v32hi) _mm512_setzero_hi(),530__M);531}532533static __inline__ __m512i __DEFAULT_FN_ATTRS534_mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A,535__m512i __B)536{537return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A,538(__v16si) __B,539(__v32hi) __W,540__M);541}542543static __inline__ __m512i __DEFAULT_FN_ATTRS544_mm512_packs_epi16 (__m512i __A, __m512i __B)545{546return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,547(__v32hi) __B,548(__v64qi) _mm512_setzero_qi(),549(__mmask64) -1);550}551552static __inline__ __m512i __DEFAULT_FN_ATTRS553_mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A,554__m512i __B)555{556return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,557(__v32hi) __B,558(__v64qi) __W,559(__mmask64) __M);560}561562static __inline__ __m512i __DEFAULT_FN_ATTRS563_mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B)564{565return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A,566(__v32hi) __B,567(__v64qi) _mm512_setzero_qi(),568__M);569}570571static __inline__ __m512i __DEFAULT_FN_ATTRS572_mm512_packus_epi32 (__m512i __A, __m512i __B)573{574return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,575(__v16si) __B,576(__v32hi) _mm512_setzero_hi(),577(__mmask32) -1);578}579580static __inline__ __m512i __DEFAULT_FN_ATTRS581_mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B)582{583return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,584(__v16si) __B,585(__v32hi) _mm512_setzero_hi(),586__M);587}588589static __inline__ __m512i __DEFAULT_FN_ATTRS590_mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A,591__m512i __B)592{593return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A,594(__v16si) __B,595(__v32hi) __W,596__M);597}598599static __inline__ __m512i __DEFAULT_FN_ATTRS600_mm512_packus_epi16 (__m512i __A, __m512i __B)601{602return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,603(__v32hi) __B,604(__v64qi) _mm512_setzero_qi(),605(__mmask64) -1);606}607608static __inline__ __m512i __DEFAULT_FN_ATTRS609_mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A,610__m512i __B)611{612return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,613(__v32hi) __B,614(__v64qi) __W,615(__mmask64) __M);616}617618static __inline__ __m512i __DEFAULT_FN_ATTRS619_mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B)620{621return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A,622(__v32hi) __B,623(__v64qi) _mm512_setzero_qi(),624(__mmask64) __M);625}626627static __inline__ __m512i __DEFAULT_FN_ATTRS628_mm512_adds_epi8 (__m512i __A, __m512i __B)629{630return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,631(__v64qi) __B,632(__v64qi) _mm512_setzero_qi(),633(__mmask64) -1);634}635636static __inline__ __m512i __DEFAULT_FN_ATTRS637_mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,638__m512i __B)639{640return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,641(__v64qi) __B,642(__v64qi) __W,643(__mmask64) __U);644}645646static __inline__ __m512i __DEFAULT_FN_ATTRS647_mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)648{649return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,650(__v64qi) __B,651(__v64qi) _mm512_setzero_qi(),652(__mmask64) __U);653}654655static __inline__ __m512i __DEFAULT_FN_ATTRS656_mm512_adds_epi16 (__m512i __A, __m512i __B)657{658return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,659(__v32hi) __B,660(__v32hi) _mm512_setzero_hi(),661(__mmask32) -1);662}663664static __inline__ __m512i __DEFAULT_FN_ATTRS665_mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,666__m512i __B)667{668return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,669(__v32hi) __B,670(__v32hi) __W,671(__mmask32) __U);672}673674static __inline__ __m512i __DEFAULT_FN_ATTRS675_mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)676{677return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,678(__v32hi) __B,679(__v32hi) _mm512_setzero_hi(),680(__mmask32) __U);681}682683static __inline__ __m512i __DEFAULT_FN_ATTRS684_mm512_adds_epu8 (__m512i __A, __m512i __B)685{686return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,687(__v64qi) __B,688(__v64qi) _mm512_setzero_qi(),689(__mmask64) -1);690}691692static __inline__ __m512i __DEFAULT_FN_ATTRS693_mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,694__m512i __B)695{696return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,697(__v64qi) __B,698(__v64qi) __W,699(__mmask64) __U);700}701702static __inline__ __m512i __DEFAULT_FN_ATTRS703_mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)704{705return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,706(__v64qi) __B,707(__v64qi) _mm512_setzero_qi(),708(__mmask64) __U);709}710711static __inline__ __m512i __DEFAULT_FN_ATTRS712_mm512_adds_epu16 (__m512i __A, __m512i __B)713{714return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,715(__v32hi) __B,716(__v32hi) _mm512_setzero_hi(),717(__mmask32) -1);718}719720static __inline__ __m512i __DEFAULT_FN_ATTRS721_mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,722__m512i __B)723{724return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,725(__v32hi) __B,726(__v32hi) __W,727(__mmask32) __U);728}729730static __inline__ __m512i __DEFAULT_FN_ATTRS731_mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)732{733return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,734(__v32hi) __B,735(__v32hi) _mm512_setzero_hi(),736(__mmask32) __U);737}738739static __inline__ __m512i __DEFAULT_FN_ATTRS740_mm512_avg_epu8 (__m512i __A, __m512i __B)741{742return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,743(__v64qi) __B,744(__v64qi) _mm512_setzero_qi(),745(__mmask64) -1);746}747748static __inline__ __m512i __DEFAULT_FN_ATTRS749_mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,750__m512i __B)751{752return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,753(__v64qi) __B,754(__v64qi) __W,755(__mmask64) __U);756}757758static __inline__ __m512i __DEFAULT_FN_ATTRS759_mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)760{761return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A,762(__v64qi) __B,763(__v64qi) _mm512_setzero_qi(),764(__mmask64) __U);765}766767static __inline__ __m512i __DEFAULT_FN_ATTRS768_mm512_avg_epu16 (__m512i __A, __m512i __B)769{770return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,771(__v32hi) __B,772(__v32hi) _mm512_setzero_hi(),773(__mmask32) -1);774}775776static __inline__ __m512i __DEFAULT_FN_ATTRS777_mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,778__m512i __B)779{780return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,781(__v32hi) __B,782(__v32hi) __W,783(__mmask32) __U);784}785786static __inline__ __m512i __DEFAULT_FN_ATTRS787_mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)788{789return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A,790(__v32hi) __B,791(__v32hi) _mm512_setzero_hi(),792(__mmask32) __U);793}794795static __inline__ __m512i __DEFAULT_FN_ATTRS796_mm512_max_epi8 (__m512i __A, __m512i __B)797{798return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,799(__v64qi) __B,800(__v64qi) _mm512_setzero_qi(),801(__mmask64) -1);802}803804static __inline__ __m512i __DEFAULT_FN_ATTRS805_mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)806{807return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,808(__v64qi) __B,809(__v64qi) _mm512_setzero_qi(),810(__mmask64) __M);811}812813static __inline__ __m512i __DEFAULT_FN_ATTRS814_mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A,815__m512i __B)816{817return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A,818(__v64qi) __B,819(__v64qi) __W,820(__mmask64) __M);821}822823static __inline__ __m512i __DEFAULT_FN_ATTRS824_mm512_max_epi16 (__m512i __A, __m512i __B)825{826return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,827(__v32hi) __B,828(__v32hi) _mm512_setzero_hi(),829(__mmask32) -1);830}831832static __inline__ __m512i __DEFAULT_FN_ATTRS833_mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)834{835return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,836(__v32hi) __B,837(__v32hi) _mm512_setzero_hi(),838(__mmask32) __M);839}840841static __inline__ __m512i __DEFAULT_FN_ATTRS842_mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,843__m512i __B)844{845return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A,846(__v32hi) __B,847(__v32hi) __W,848(__mmask32) __M);849}850851static __inline__ __m512i __DEFAULT_FN_ATTRS852_mm512_max_epu8 (__m512i __A, __m512i __B)853{854return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,855(__v64qi) __B,856(__v64qi) _mm512_setzero_qi(),857(__mmask64) -1);858}859860static __inline__ __m512i __DEFAULT_FN_ATTRS861_mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)862{863return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,864(__v64qi) __B,865(__v64qi) _mm512_setzero_qi(),866(__mmask64) __M);867}868869static __inline__ __m512i __DEFAULT_FN_ATTRS870_mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A,871__m512i __B)872{873return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A,874(__v64qi) __B,875(__v64qi) __W,876(__mmask64) __M);877}878879static __inline__ __m512i __DEFAULT_FN_ATTRS880_mm512_max_epu16 (__m512i __A, __m512i __B)881{882return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,883(__v32hi) __B,884(__v32hi) _mm512_setzero_hi(),885(__mmask32) -1);886}887888static __inline__ __m512i __DEFAULT_FN_ATTRS889_mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)890{891return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,892(__v32hi) __B,893(__v32hi) _mm512_setzero_hi(),894(__mmask32) __M);895}896897static __inline__ __m512i __DEFAULT_FN_ATTRS898_mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A,899__m512i __B)900{901return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A,902(__v32hi) __B,903(__v32hi) __W,904(__mmask32) __M);905}906907static __inline__ __m512i __DEFAULT_FN_ATTRS908_mm512_min_epi8 (__m512i __A, __m512i __B)909{910return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,911(__v64qi) __B,912(__v64qi) _mm512_setzero_qi(),913(__mmask64) -1);914}915916static __inline__ __m512i __DEFAULT_FN_ATTRS917_mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)918{919return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,920(__v64qi) __B,921(__v64qi) _mm512_setzero_qi(),922(__mmask64) __M);923}924925static __inline__ __m512i __DEFAULT_FN_ATTRS926_mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A,927__m512i __B)928{929return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A,930(__v64qi) __B,931(__v64qi) __W,932(__mmask64) __M);933}934935static __inline__ __m512i __DEFAULT_FN_ATTRS936_mm512_min_epi16 (__m512i __A, __m512i __B)937{938return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,939(__v32hi) __B,940(__v32hi) _mm512_setzero_hi(),941(__mmask32) -1);942}943944static __inline__ __m512i __DEFAULT_FN_ATTRS945_mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)946{947return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,948(__v32hi) __B,949(__v32hi) _mm512_setzero_hi(),950(__mmask32) __M);951}952953static __inline__ __m512i __DEFAULT_FN_ATTRS954_mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A,955__m512i __B)956{957return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A,958(__v32hi) __B,959(__v32hi) __W,960(__mmask32) __M);961}962963static __inline__ __m512i __DEFAULT_FN_ATTRS964_mm512_min_epu8 (__m512i __A, __m512i __B)965{966return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,967(__v64qi) __B,968(__v64qi) _mm512_setzero_qi(),969(__mmask64) -1);970}971972static __inline__ __m512i __DEFAULT_FN_ATTRS973_mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)974{975return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,976(__v64qi) __B,977(__v64qi) _mm512_setzero_qi(),978(__mmask64) __M);979}980981static __inline__ __m512i __DEFAULT_FN_ATTRS982_mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A,983__m512i __B)984{985return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A,986(__v64qi) __B,987(__v64qi) __W,988(__mmask64) __M);989}990991static __inline__ __m512i __DEFAULT_FN_ATTRS992_mm512_min_epu16 (__m512i __A, __m512i __B)993{994return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,995(__v32hi) __B,996(__v32hi) _mm512_setzero_hi(),997(__mmask32) -1);998}9991000static __inline__ __m512i __DEFAULT_FN_ATTRS1001_mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)1002{1003return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,1004(__v32hi) __B,1005(__v32hi) _mm512_setzero_hi(),1006(__mmask32) __M);1007}10081009static __inline__ __m512i __DEFAULT_FN_ATTRS1010_mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A,1011__m512i __B)1012{1013return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A,1014(__v32hi) __B,1015(__v32hi) __W,1016(__mmask32) __M);1017}10181019static __inline__ __m512i __DEFAULT_FN_ATTRS1020_mm512_shuffle_epi8 (__m512i __A, __m512i __B)1021{1022return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,1023(__v64qi) __B,1024(__v64qi) _mm512_setzero_qi(),1025(__mmask64) -1);1026}10271028static __inline__ __m512i __DEFAULT_FN_ATTRS1029_mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A,1030__m512i __B)1031{1032return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,1033(__v64qi) __B,1034(__v64qi) __W,1035(__mmask64) __U);1036}10371038static __inline__ __m512i __DEFAULT_FN_ATTRS1039_mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B)1040{1041return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A,1042(__v64qi) __B,1043(__v64qi) _mm512_setzero_qi(),1044(__mmask64) __U);1045}10461047static __inline__ __m512i __DEFAULT_FN_ATTRS1048_mm512_subs_epi8 (__m512i __A, __m512i __B)1049{1050return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,1051(__v64qi) __B,1052(__v64qi) _mm512_setzero_qi(),1053(__mmask64) -1);1054}10551056static __inline__ __m512i __DEFAULT_FN_ATTRS1057_mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,1058__m512i __B)1059{1060return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,1061(__v64qi) __B,1062(__v64qi) __W,1063(__mmask64) __U);1064}10651066static __inline__ __m512i __DEFAULT_FN_ATTRS1067_mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)1068{1069return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,1070(__v64qi) __B,1071(__v64qi) _mm512_setzero_qi(),1072(__mmask64) __U);1073}10741075static __inline__ __m512i __DEFAULT_FN_ATTRS1076_mm512_subs_epi16 (__m512i __A, __m512i __B)1077{1078return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,1079(__v32hi) __B,1080(__v32hi) _mm512_setzero_hi(),1081(__mmask32) -1);1082}10831084static __inline__ __m512i __DEFAULT_FN_ATTRS1085_mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1086__m512i __B)1087{1088return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,1089(__v32hi) __B,1090(__v32hi) __W,1091(__mmask32) __U);1092}10931094static __inline__ __m512i __DEFAULT_FN_ATTRS1095_mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)1096{1097return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,1098(__v32hi) __B,1099(__v32hi) _mm512_setzero_hi(),1100(__mmask32) __U);1101}11021103static __inline__ __m512i __DEFAULT_FN_ATTRS1104_mm512_subs_epu8 (__m512i __A, __m512i __B)1105{1106return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,1107(__v64qi) __B,1108(__v64qi) _mm512_setzero_qi(),1109(__mmask64) -1);1110}11111112static __inline__ __m512i __DEFAULT_FN_ATTRS1113_mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,1114__m512i __B)1115{1116return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,1117(__v64qi) __B,1118(__v64qi) __W,1119(__mmask64) __U);1120}11211122static __inline__ __m512i __DEFAULT_FN_ATTRS1123_mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)1124{1125return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,1126(__v64qi) __B,1127(__v64qi) _mm512_setzero_qi(),1128(__mmask64) __U);1129}11301131static __inline__ __m512i __DEFAULT_FN_ATTRS1132_mm512_subs_epu16 (__m512i __A, __m512i __B)1133{1134return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,1135(__v32hi) __B,1136(__v32hi) _mm512_setzero_hi(),1137(__mmask32) -1);1138}11391140static __inline__ __m512i __DEFAULT_FN_ATTRS1141_mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,1142__m512i __B)1143{1144return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,1145(__v32hi) __B,1146(__v32hi) __W,1147(__mmask32) __U);1148}11491150static __inline__ __m512i __DEFAULT_FN_ATTRS1151_mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)1152{1153return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,1154(__v32hi) __B,1155(__v32hi) _mm512_setzero_hi(),1156(__mmask32) __U);1157}11581159static __inline__ __m512i __DEFAULT_FN_ATTRS1160_mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I,1161__mmask32 __U, __m512i __B)1162{1163return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A,1164(__v32hi) __I /* idx */ ,1165(__v32hi) __B,1166(__mmask32) __U);1167}11681169static __inline__ __m512i __DEFAULT_FN_ATTRS1170_mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B)1171{1172return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */,1173(__v32hi) __A,1174(__v32hi) __B,1175(__mmask32) -1);1176}11771178static __inline__ __m512i __DEFAULT_FN_ATTRS1179_mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U,1180__m512i __I, __m512i __B)1181{1182return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I /* idx */,1183(__v32hi) __A,1184(__v32hi) __B,1185(__mmask32) __U);1186}11871188static __inline__ __m512i __DEFAULT_FN_ATTRS1189_mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A,1190__m512i __I, __m512i __B)1191{1192return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I1193/* idx */ ,1194(__v32hi) __A,1195(__v32hi) __B,1196(__mmask32) __U);1197}11981199static __inline__ __m512i __DEFAULT_FN_ATTRS1200_mm512_mulhrs_epi16 (__m512i __A, __m512i __B)1201{1202return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,1203(__v32hi) __B,1204(__v32hi) _mm512_setzero_hi(),1205(__mmask32) -1);1206}12071208static __inline__ __m512i __DEFAULT_FN_ATTRS1209_mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1210__m512i __B)1211{1212return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,1213(__v32hi) __B,1214(__v32hi) __W,1215(__mmask32) __U);1216}12171218static __inline__ __m512i __DEFAULT_FN_ATTRS1219_mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)1220{1221return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A,1222(__v32hi) __B,1223(__v32hi) _mm512_setzero_hi(),1224(__mmask32) __U);1225}12261227static __inline__ __m512i __DEFAULT_FN_ATTRS1228_mm512_mulhi_epi16 (__m512i __A, __m512i __B)1229{1230return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,1231(__v32hi) __B,1232(__v32hi) _mm512_setzero_hi(),1233(__mmask32) -1);1234}12351236static __inline__ __m512i __DEFAULT_FN_ATTRS1237_mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1238__m512i __B)1239{1240return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,1241(__v32hi) __B,1242(__v32hi) __W,1243(__mmask32) __U);1244}12451246static __inline__ __m512i __DEFAULT_FN_ATTRS1247_mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B)1248{1249return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A,1250(__v32hi) __B,1251(__v32hi) _mm512_setzero_hi(),1252(__mmask32) __U);1253}12541255static __inline__ __m512i __DEFAULT_FN_ATTRS1256_mm512_mulhi_epu16 (__m512i __A, __m512i __B)1257{1258return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,1259(__v32hi) __B,1260(__v32hi) _mm512_setzero_hi(),1261(__mmask32) -1);1262}12631264static __inline__ __m512i __DEFAULT_FN_ATTRS1265_mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A,1266__m512i __B)1267{1268return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,1269(__v32hi) __B,1270(__v32hi) __W,1271(__mmask32) __U);1272}12731274static __inline__ __m512i __DEFAULT_FN_ATTRS1275_mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)1276{1277return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A,1278(__v32hi) __B,1279(__v32hi) _mm512_setzero_hi(),1280(__mmask32) __U);1281}12821283static __inline__ __m512i __DEFAULT_FN_ATTRS1284_mm512_maddubs_epi16 (__m512i __X, __m512i __Y) {1285return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,1286(__v64qi) __Y,1287(__v32hi) _mm512_setzero_hi(),1288(__mmask32) -1);1289}12901291static __inline__ __m512i __DEFAULT_FN_ATTRS1292_mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X,1293__m512i __Y) {1294return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,1295(__v64qi) __Y,1296(__v32hi) __W,1297(__mmask32) __U);1298}12991300static __inline__ __m512i __DEFAULT_FN_ATTRS1301_mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y) {1302return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X,1303(__v64qi) __Y,1304(__v32hi) _mm512_setzero_hi(),1305(__mmask32) __U);1306}13071308static __inline__ __m512i __DEFAULT_FN_ATTRS1309_mm512_madd_epi16 (__m512i __A, __m512i __B) {1310return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,1311(__v32hi) __B,1312(__v16si) _mm512_setzero_si512(),1313(__mmask16) -1);1314}13151316static __inline__ __m512i __DEFAULT_FN_ATTRS1317_mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A,1318__m512i __B) {1319return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,1320(__v32hi) __B,1321(__v16si) __W,1322(__mmask16) __U);1323}13241325static __inline__ __m512i __DEFAULT_FN_ATTRS1326_mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B) {1327return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A,1328(__v32hi) __B,1329(__v16si) _mm512_setzero_si512(),1330(__mmask16) __U);1331}13321333static __inline__ __m256i __DEFAULT_FN_ATTRS1334_mm512_cvtsepi16_epi8 (__m512i __A) {1335return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,1336(__v32qi)_mm256_setzero_si256(),1337(__mmask32) -1);1338}13391340static __inline__ __m256i __DEFAULT_FN_ATTRS1341_mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {1342return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,1343(__v32qi)__O,1344__M);1345}13461347static __inline__ __m256i __DEFAULT_FN_ATTRS1348_mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) {1349return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,1350(__v32qi) _mm256_setzero_si256(),1351__M);1352}13531354static __inline__ __m256i __DEFAULT_FN_ATTRS1355_mm512_cvtusepi16_epi8 (__m512i __A) {1356return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,1357(__v32qi) _mm256_setzero_si256(),1358(__mmask32) -1);1359}13601361static __inline__ __m256i __DEFAULT_FN_ATTRS1362_mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {1363return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,1364(__v32qi) __O,1365__M);1366}13671368static __inline__ __m256i __DEFAULT_FN_ATTRS1369_mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) {1370return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,1371(__v32qi) _mm256_setzero_si256(),1372__M);1373}13741375static __inline__ __m256i __DEFAULT_FN_ATTRS1376_mm512_cvtepi16_epi8 (__m512i __A) {1377return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,1378(__v32qi) _mm256_setzero_si256(),1379(__mmask32) -1);1380}13811382static __inline__ __m256i __DEFAULT_FN_ATTRS1383_mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {1384return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,1385(__v32qi) __O,1386__M);1387}13881389static __inline__ __m256i __DEFAULT_FN_ATTRS1390_mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) {1391return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,1392(__v32qi) _mm256_setzero_si256(),1393__M);1394}13951396static __inline__ void __DEFAULT_FN_ATTRS1397_mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)1398{1399__builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);1400}14011402static __inline__ void __DEFAULT_FN_ATTRS1403_mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)1404{1405__builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);1406}14071408static __inline__ void __DEFAULT_FN_ATTRS1409_mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)1410{1411__builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);1412}14131414static __inline__ __m512i __DEFAULT_FN_ATTRS1415_mm512_unpackhi_epi8(__m512i __A, __m512i __B) {1416return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,14178, 64+8, 9, 64+9,141810, 64+10, 11, 64+11,141912, 64+12, 13, 64+13,142014, 64+14, 15, 64+15,142124, 64+24, 25, 64+25,142226, 64+26, 27, 64+27,142328, 64+28, 29, 64+29,142430, 64+30, 31, 64+31,142540, 64+40, 41, 64+41,142642, 64+42, 43, 64+43,142744, 64+44, 45, 64+45,142846, 64+46, 47, 64+47,142956, 64+56, 57, 64+57,143058, 64+58, 59, 64+59,143160, 64+60, 61, 64+61,143262, 64+62, 63, 64+63);1433}14341435static __inline__ __m512i __DEFAULT_FN_ATTRS1436_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {1437return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,1438(__v64qi)_mm512_unpackhi_epi8(__A, __B),1439(__v64qi)__W);1440}14411442static __inline__ __m512i __DEFAULT_FN_ATTRS1443_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {1444return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,1445(__v64qi)_mm512_unpackhi_epi8(__A, __B),1446(__v64qi)_mm512_setzero_qi());1447}14481449static __inline__ __m512i __DEFAULT_FN_ATTRS1450_mm512_unpackhi_epi16(__m512i __A, __m512i __B) {1451return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,14524, 32+4, 5, 32+5,14536, 32+6, 7, 32+7,145412, 32+12, 13, 32+13,145514, 32+14, 15, 32+15,145620, 32+20, 21, 32+21,145722, 32+22, 23, 32+23,145828, 32+28, 29, 32+29,145930, 32+30, 31, 32+31);1460}14611462static __inline__ __m512i __DEFAULT_FN_ATTRS1463_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {1464return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,1465(__v32hi)_mm512_unpackhi_epi16(__A, __B),1466(__v32hi)__W);1467}14681469static __inline__ __m512i __DEFAULT_FN_ATTRS1470_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {1471return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,1472(__v32hi)_mm512_unpackhi_epi16(__A, __B),1473(__v32hi)_mm512_setzero_hi());1474}14751476static __inline__ __m512i __DEFAULT_FN_ATTRS1477_mm512_unpacklo_epi8(__m512i __A, __m512i __B) {1478return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,14790, 64+0, 1, 64+1,14802, 64+2, 3, 64+3,14814, 64+4, 5, 64+5,14826, 64+6, 7, 64+7,148316, 64+16, 17, 64+17,148418, 64+18, 19, 64+19,148520, 64+20, 21, 64+21,148622, 64+22, 23, 64+23,148732, 64+32, 33, 64+33,148834, 64+34, 35, 64+35,148936, 64+36, 37, 64+37,149038, 64+38, 39, 64+39,149148, 64+48, 49, 64+49,149250, 64+50, 51, 64+51,149352, 64+52, 53, 64+53,149454, 64+54, 55, 64+55);1495}14961497static __inline__ __m512i __DEFAULT_FN_ATTRS1498_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {1499return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,1500(__v64qi)_mm512_unpacklo_epi8(__A, __B),1501(__v64qi)__W);1502}15031504static __inline__ __m512i __DEFAULT_FN_ATTRS1505_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {1506return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,1507(__v64qi)_mm512_unpacklo_epi8(__A, __B),1508(__v64qi)_mm512_setzero_qi());1509}15101511static __inline__ __m512i __DEFAULT_FN_ATTRS1512_mm512_unpacklo_epi16(__m512i __A, __m512i __B) {1513return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,15140, 32+0, 1, 32+1,15152, 32+2, 3, 32+3,15168, 32+8, 9, 32+9,151710, 32+10, 11, 32+11,151816, 32+16, 17, 32+17,151918, 32+18, 19, 32+19,152024, 32+24, 25, 32+25,152126, 32+26, 27, 32+27);1522}15231524static __inline__ __m512i __DEFAULT_FN_ATTRS1525_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {1526return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,1527(__v32hi)_mm512_unpacklo_epi16(__A, __B),1528(__v32hi)__W);1529}15301531static __inline__ __m512i __DEFAULT_FN_ATTRS1532_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {1533return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,1534(__v32hi)_mm512_unpacklo_epi16(__A, __B),1535(__v32hi)_mm512_setzero_hi());1536}15371538static __inline__ __m512i __DEFAULT_FN_ATTRS1539_mm512_cvtepi8_epi16 (__m256i __A)1540{1541return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,1542(__v32hi)1543_mm512_setzero_hi (),1544(__mmask32) -1);1545}15461547static __inline__ __m512i __DEFAULT_FN_ATTRS1548_mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)1549{1550return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,1551(__v32hi) __W,1552(__mmask32) __U);1553}15541555static __inline__ __m512i __DEFAULT_FN_ATTRS1556_mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A)1557{1558return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,1559(__v32hi)1560_mm512_setzero_hi(),1561(__mmask32) __U);1562}15631564static __inline__ __m512i __DEFAULT_FN_ATTRS1565_mm512_cvtepu8_epi16 (__m256i __A)1566{1567return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,1568(__v32hi)1569_mm512_setzero_hi (),1570(__mmask32) -1);1571}15721573static __inline__ __m512i __DEFAULT_FN_ATTRS1574_mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)1575{1576return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,1577(__v32hi) __W,1578(__mmask32) __U);1579}15801581static __inline__ __m512i __DEFAULT_FN_ATTRS1582_mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A)1583{1584return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,1585(__v32hi)1586_mm512_setzero_hi(),1587(__mmask32) __U);1588}158915901591#define _mm512_cmp_epi8_mask(a, b, p) __extension__ ({ \1592(__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \1593(__v64qi)(__m512i)(b), (int)(p), \1594(__mmask64)-1); })15951596#define _mm512_mask_cmp_epi8_mask(m, a, b, p) __extension__ ({ \1597(__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \1598(__v64qi)(__m512i)(b), (int)(p), \1599(__mmask64)(m)); })16001601#define _mm512_cmp_epu8_mask(a, b, p) __extension__ ({ \1602(__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \1603(__v64qi)(__m512i)(b), (int)(p), \1604(__mmask64)-1); })16051606#define _mm512_mask_cmp_epu8_mask(m, a, b, p) __extension__ ({ \1607(__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \1608(__v64qi)(__m512i)(b), (int)(p), \1609(__mmask64)(m)); })16101611#define _mm512_cmp_epi16_mask(a, b, p) __extension__ ({ \1612(__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \1613(__v32hi)(__m512i)(b), (int)(p), \1614(__mmask32)-1); })16151616#define _mm512_mask_cmp_epi16_mask(m, a, b, p) __extension__ ({ \1617(__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \1618(__v32hi)(__m512i)(b), (int)(p), \1619(__mmask32)(m)); })16201621#define _mm512_cmp_epu16_mask(a, b, p) __extension__ ({ \1622(__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \1623(__v32hi)(__m512i)(b), (int)(p), \1624(__mmask32)-1); })16251626#define _mm512_mask_cmp_epu16_mask(m, a, b, p) __extension__ ({ \1627(__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \1628(__v32hi)(__m512i)(b), (int)(p), \1629(__mmask32)(m)); })16301631#define _mm512_shufflehi_epi16(A, imm) __extension__ ({ \1632(__m512i)__builtin_shufflevector((__v32hi)(__m512i)(A), \1633(__v32hi)_mm512_undefined_epi32(), \16340, 1, 2, 3, \16354 + (((imm) >> 0) & 0x3), \16364 + (((imm) >> 2) & 0x3), \16374 + (((imm) >> 4) & 0x3), \16384 + (((imm) >> 6) & 0x3), \16398, 9, 10, 11, \164012 + (((imm) >> 0) & 0x3), \164112 + (((imm) >> 2) & 0x3), \164212 + (((imm) >> 4) & 0x3), \164312 + (((imm) >> 6) & 0x3), \164416, 17, 18, 19, \164520 + (((imm) >> 0) & 0x3), \164620 + (((imm) >> 2) & 0x3), \164720 + (((imm) >> 4) & 0x3), \164820 + (((imm) >> 6) & 0x3), \164924, 25, 26, 27, \165028 + (((imm) >> 0) & 0x3), \165128 + (((imm) >> 2) & 0x3), \165228 + (((imm) >> 4) & 0x3), \165328 + (((imm) >> 6) & 0x3)); })16541655#define _mm512_mask_shufflehi_epi16(W, U, A, imm) __extension__ ({ \1656(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \1657(__v32hi)_mm512_shufflehi_epi16((A), \1658(imm)), \1659(__v32hi)(__m512i)(W)); })16601661#define _mm512_maskz_shufflehi_epi16(U, A, imm) __extension__ ({ \1662(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \1663(__v32hi)_mm512_shufflehi_epi16((A), \1664(imm)), \1665(__v32hi)_mm512_setzero_hi()); })16661667#define _mm512_shufflelo_epi16(A, imm) __extension__ ({ \1668(__m512i)__builtin_shufflevector((__v32hi)(__m512i)(A), \1669(__v32hi)_mm512_undefined_epi32(), \16700 + (((imm) >> 0) & 0x3), \16710 + (((imm) >> 2) & 0x3), \16720 + (((imm) >> 4) & 0x3), \16730 + (((imm) >> 6) & 0x3), \16744, 5, 6, 7, \16758 + (((imm) >> 0) & 0x3), \16768 + (((imm) >> 2) & 0x3), \16778 + (((imm) >> 4) & 0x3), \16788 + (((imm) >> 6) & 0x3), \167912, 13, 14, 15, \168016 + (((imm) >> 0) & 0x3), \168116 + (((imm) >> 2) & 0x3), \168216 + (((imm) >> 4) & 0x3), \168316 + (((imm) >> 6) & 0x3), \168420, 21, 22, 23, \168524 + (((imm) >> 0) & 0x3), \168624 + (((imm) >> 2) & 0x3), \168724 + (((imm) >> 4) & 0x3), \168824 + (((imm) >> 6) & 0x3), \168928, 29, 30, 31); })169016911692#define _mm512_mask_shufflelo_epi16(W, U, A, imm) __extension__ ({ \1693(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \1694(__v32hi)_mm512_shufflelo_epi16((A), \1695(imm)), \1696(__v32hi)(__m512i)(W)); })169716981699#define _mm512_maskz_shufflelo_epi16(U, A, imm) __extension__ ({ \1700(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \1701(__v32hi)_mm512_shufflelo_epi16((A), \1702(imm)), \1703(__v32hi)_mm512_setzero_hi()); })17041705static __inline__ __m512i __DEFAULT_FN_ATTRS1706_mm512_sllv_epi16 (__m512i __A, __m512i __B)1707{1708return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,1709(__v32hi) __B,1710(__v32hi)1711_mm512_setzero_hi (),1712(__mmask32) -1);1713}17141715static __inline__ __m512i __DEFAULT_FN_ATTRS1716_mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1717__m512i __B)1718{1719return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,1720(__v32hi) __B,1721(__v32hi) __W,1722(__mmask32) __U);1723}17241725static __inline__ __m512i __DEFAULT_FN_ATTRS1726_mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)1727{1728return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A,1729(__v32hi) __B,1730(__v32hi)1731_mm512_setzero_hi (),1732(__mmask32) __U);1733}17341735static __inline__ __m512i __DEFAULT_FN_ATTRS1736_mm512_sll_epi16 (__m512i __A, __m128i __B)1737{1738return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,1739(__v8hi) __B,1740(__v32hi)1741_mm512_setzero_hi (),1742(__mmask32) -1);1743}17441745static __inline__ __m512i __DEFAULT_FN_ATTRS1746_mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1747__m128i __B)1748{1749return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,1750(__v8hi) __B,1751(__v32hi) __W,1752(__mmask32) __U);1753}17541755static __inline__ __m512i __DEFAULT_FN_ATTRS1756_mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B)1757{1758return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,1759(__v8hi) __B,1760(__v32hi)1761_mm512_setzero_hi (),1762(__mmask32) __U);1763}17641765#define _mm512_slli_epi16(A, B) __extension__ ({ \1766(__m512i)__builtin_ia32_psllwi512_mask((__v32hi)(__m512i)(A), (int)(B), \1767(__v32hi)_mm512_setzero_hi(), \1768(__mmask32)-1); })17691770#define _mm512_mask_slli_epi16(W, U, A, B) __extension__ ({ \1771(__m512i)__builtin_ia32_psllwi512_mask((__v32hi)(__m512i)(A), (int)(B), \1772(__v32hi)(__m512i)(W), \1773(__mmask32)(U)); })17741775#define _mm512_maskz_slli_epi16(U, A, B) __extension__ ({ \1776(__m512i)__builtin_ia32_psllwi512_mask((__v32hi)(__m512i)(A), (int)(B), \1777(__v32hi)_mm512_setzero_hi(), \1778(__mmask32)(U)); })17791780#define _mm512_bslli_epi128(a, imm) __extension__ ({ \1781(__m512i)__builtin_shufflevector( \1782(__v64qi)_mm512_setzero_si512(), \1783(__v64qi)(__m512i)(a), \1784((char)(imm)&0xF0) ? 0 : ((char)(imm)>0x0 ? 16 : 64) - (char)(imm), \1785((char)(imm)&0xF0) ? 1 : ((char)(imm)>0x1 ? 17 : 65) - (char)(imm), \1786((char)(imm)&0xF0) ? 2 : ((char)(imm)>0x2 ? 18 : 66) - (char)(imm), \1787((char)(imm)&0xF0) ? 3 : ((char)(imm)>0x3 ? 19 : 67) - (char)(imm), \1788((char)(imm)&0xF0) ? 4 : ((char)(imm)>0x4 ? 20 : 68) - (char)(imm), \1789((char)(imm)&0xF0) ? 5 : ((char)(imm)>0x5 ? 21 : 69) - (char)(imm), \1790((char)(imm)&0xF0) ? 6 : ((char)(imm)>0x6 ? 22 : 70) - (char)(imm), \1791((char)(imm)&0xF0) ? 7 : ((char)(imm)>0x7 ? 23 : 71) - (char)(imm), \1792((char)(imm)&0xF0) ? 8 : ((char)(imm)>0x8 ? 24 : 72) - (char)(imm), \1793((char)(imm)&0xF0) ? 9 : ((char)(imm)>0x9 ? 25 : 73) - (char)(imm), \1794((char)(imm)&0xF0) ? 10 : ((char)(imm)>0xA ? 26 : 74) - (char)(imm), \1795((char)(imm)&0xF0) ? 11 : ((char)(imm)>0xB ? 27 : 75) - (char)(imm), \1796((char)(imm)&0xF0) ? 12 : ((char)(imm)>0xC ? 28 : 76) - (char)(imm), \1797((char)(imm)&0xF0) ? 13 : ((char)(imm)>0xD ? 29 : 77) - (char)(imm), \1798((char)(imm)&0xF0) ? 14 : ((char)(imm)>0xE ? 30 : 78) - (char)(imm), \1799((char)(imm)&0xF0) ? 15 : ((char)(imm)>0xF ? 31 : 79) - (char)(imm), \1800((char)(imm)&0xF0) ? 16 : ((char)(imm)>0x0 ? 32 : 80) - (char)(imm), \1801((char)(imm)&0xF0) ? 17 : ((char)(imm)>0x1 ? 33 : 81) - (char)(imm), \1802((char)(imm)&0xF0) ? 18 : ((char)(imm)>0x2 ? 34 : 82) - (char)(imm), \1803((char)(imm)&0xF0) ? 19 : ((char)(imm)>0x3 ? 35 : 83) - (char)(imm), \1804((char)(imm)&0xF0) ? 20 : ((char)(imm)>0x4 ? 36 : 84) - (char)(imm), \1805((char)(imm)&0xF0) ? 21 : ((char)(imm)>0x5 ? 37 : 85) - (char)(imm), \1806((char)(imm)&0xF0) ? 22 : ((char)(imm)>0x6 ? 38 : 86) - (char)(imm), \1807((char)(imm)&0xF0) ? 23 : ((char)(imm)>0x7 ? 39 : 87) - (char)(imm), \1808((char)(imm)&0xF0) ? 24 : ((char)(imm)>0x8 ? 40 : 88) - (char)(imm), \1809((char)(imm)&0xF0) ? 25 : ((char)(imm)>0x9 ? 41 : 89) - (char)(imm), \1810((char)(imm)&0xF0) ? 26 : ((char)(imm)>0xA ? 42 : 90) - (char)(imm), \1811((char)(imm)&0xF0) ? 27 : ((char)(imm)>0xB ? 43 : 91) - (char)(imm), \1812((char)(imm)&0xF0) ? 28 : ((char)(imm)>0xC ? 44 : 92) - (char)(imm), \1813((char)(imm)&0xF0) ? 29 : ((char)(imm)>0xD ? 45 : 93) - (char)(imm), \1814((char)(imm)&0xF0) ? 30 : ((char)(imm)>0xE ? 46 : 94) - (char)(imm), \1815((char)(imm)&0xF0) ? 31 : ((char)(imm)>0xF ? 47 : 95) - (char)(imm), \1816((char)(imm)&0xF0) ? 32 : ((char)(imm)>0x0 ? 48 : 96) - (char)(imm), \1817((char)(imm)&0xF0) ? 33 : ((char)(imm)>0x1 ? 49 : 97) - (char)(imm), \1818((char)(imm)&0xF0) ? 34 : ((char)(imm)>0x2 ? 50 : 98) - (char)(imm), \1819((char)(imm)&0xF0) ? 35 : ((char)(imm)>0x3 ? 51 : 99) - (char)(imm), \1820((char)(imm)&0xF0) ? 36 : ((char)(imm)>0x4 ? 52 : 100) - (char)(imm), \1821((char)(imm)&0xF0) ? 37 : ((char)(imm)>0x5 ? 53 : 101) - (char)(imm), \1822((char)(imm)&0xF0) ? 38 : ((char)(imm)>0x6 ? 54 : 102) - (char)(imm), \1823((char)(imm)&0xF0) ? 39 : ((char)(imm)>0x7 ? 55 : 103) - (char)(imm), \1824((char)(imm)&0xF0) ? 40 : ((char)(imm)>0x8 ? 56 : 104) - (char)(imm), \1825((char)(imm)&0xF0) ? 41 : ((char)(imm)>0x9 ? 57 : 105) - (char)(imm), \1826((char)(imm)&0xF0) ? 42 : ((char)(imm)>0xA ? 58 : 106) - (char)(imm), \1827((char)(imm)&0xF0) ? 43 : ((char)(imm)>0xB ? 59 : 107) - (char)(imm), \1828((char)(imm)&0xF0) ? 44 : ((char)(imm)>0xC ? 60 : 108) - (char)(imm), \1829((char)(imm)&0xF0) ? 45 : ((char)(imm)>0xD ? 61 : 109) - (char)(imm), \1830((char)(imm)&0xF0) ? 46 : ((char)(imm)>0xE ? 62 : 110) - (char)(imm), \1831((char)(imm)&0xF0) ? 47 : ((char)(imm)>0xF ? 63 : 111) - (char)(imm), \1832((char)(imm)&0xF0) ? 48 : ((char)(imm)>0x0 ? 64 : 112) - (char)(imm), \1833((char)(imm)&0xF0) ? 49 : ((char)(imm)>0x1 ? 65 : 113) - (char)(imm), \1834((char)(imm)&0xF0) ? 50 : ((char)(imm)>0x2 ? 66 : 114) - (char)(imm), \1835((char)(imm)&0xF0) ? 51 : ((char)(imm)>0x3 ? 67 : 115) - (char)(imm), \1836((char)(imm)&0xF0) ? 52 : ((char)(imm)>0x4 ? 68 : 116) - (char)(imm), \1837((char)(imm)&0xF0) ? 53 : ((char)(imm)>0x5 ? 69 : 117) - (char)(imm), \1838((char)(imm)&0xF0) ? 54 : ((char)(imm)>0x6 ? 70 : 118) - (char)(imm), \1839((char)(imm)&0xF0) ? 55 : ((char)(imm)>0x7 ? 71 : 119) - (char)(imm), \1840((char)(imm)&0xF0) ? 56 : ((char)(imm)>0x8 ? 72 : 120) - (char)(imm), \1841((char)(imm)&0xF0) ? 57 : ((char)(imm)>0x9 ? 73 : 121) - (char)(imm), \1842((char)(imm)&0xF0) ? 58 : ((char)(imm)>0xA ? 74 : 122) - (char)(imm), \1843((char)(imm)&0xF0) ? 59 : ((char)(imm)>0xB ? 75 : 123) - (char)(imm), \1844((char)(imm)&0xF0) ? 60 : ((char)(imm)>0xC ? 76 : 124) - (char)(imm), \1845((char)(imm)&0xF0) ? 61 : ((char)(imm)>0xD ? 77 : 125) - (char)(imm), \1846((char)(imm)&0xF0) ? 62 : ((char)(imm)>0xE ? 78 : 126) - (char)(imm), \1847((char)(imm)&0xF0) ? 63 : ((char)(imm)>0xF ? 79 : 127) - (char)(imm)); })18481849static __inline__ __m512i __DEFAULT_FN_ATTRS1850_mm512_srlv_epi16 (__m512i __A, __m512i __B)1851{1852return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,1853(__v32hi) __B,1854(__v32hi)1855_mm512_setzero_hi (),1856(__mmask32) -1);1857}18581859static __inline__ __m512i __DEFAULT_FN_ATTRS1860_mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1861__m512i __B)1862{1863return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,1864(__v32hi) __B,1865(__v32hi) __W,1866(__mmask32) __U);1867}18681869static __inline__ __m512i __DEFAULT_FN_ATTRS1870_mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B)1871{1872return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A,1873(__v32hi) __B,1874(__v32hi)1875_mm512_setzero_hi (),1876(__mmask32) __U);1877}18781879static __inline__ __m512i __DEFAULT_FN_ATTRS1880_mm512_srav_epi16 (__m512i __A, __m512i __B)1881{1882return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,1883(__v32hi) __B,1884(__v32hi)1885_mm512_setzero_hi (),1886(__mmask32) -1);1887}18881889static __inline__ __m512i __DEFAULT_FN_ATTRS1890_mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1891__m512i __B)1892{1893return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,1894(__v32hi) __B,1895(__v32hi) __W,1896(__mmask32) __U);1897}18981899static __inline__ __m512i __DEFAULT_FN_ATTRS1900_mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B)1901{1902return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A,1903(__v32hi) __B,1904(__v32hi)1905_mm512_setzero_hi (),1906(__mmask32) __U);1907}19081909static __inline__ __m512i __DEFAULT_FN_ATTRS1910_mm512_sra_epi16 (__m512i __A, __m128i __B)1911{1912return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,1913(__v8hi) __B,1914(__v32hi)1915_mm512_setzero_hi (),1916(__mmask32) -1);1917}19181919static __inline__ __m512i __DEFAULT_FN_ATTRS1920_mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1921__m128i __B)1922{1923return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,1924(__v8hi) __B,1925(__v32hi) __W,1926(__mmask32) __U);1927}19281929static __inline__ __m512i __DEFAULT_FN_ATTRS1930_mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B)1931{1932return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,1933(__v8hi) __B,1934(__v32hi)1935_mm512_setzero_hi (),1936(__mmask32) __U);1937}19381939#define _mm512_srai_epi16(A, B) __extension__ ({ \1940(__m512i)__builtin_ia32_psrawi512_mask((__v32hi)(__m512i)(A), (int)(B), \1941(__v32hi)_mm512_setzero_hi(), \1942(__mmask32)-1); })19431944#define _mm512_mask_srai_epi16(W, U, A, B) __extension__ ({ \1945(__m512i)__builtin_ia32_psrawi512_mask((__v32hi)(__m512i)(A), (int)(B), \1946(__v32hi)(__m512i)(W), \1947(__mmask32)(U)); })19481949#define _mm512_maskz_srai_epi16(U, A, B) __extension__ ({ \1950(__m512i)__builtin_ia32_psrawi512_mask((__v32hi)(__m512i)(A), (int)(B), \1951(__v32hi)_mm512_setzero_hi(), \1952(__mmask32)(U)); })195319541955static __inline__ __m512i __DEFAULT_FN_ATTRS1956_mm512_srl_epi16 (__m512i __A, __m128i __B)1957{1958return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,1959(__v8hi) __B,1960(__v32hi)1961_mm512_setzero_hi (),1962(__mmask32) -1);1963}19641965static __inline__ __m512i __DEFAULT_FN_ATTRS1966_mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A,1967__m128i __B)1968{1969return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,1970(__v8hi) __B,1971(__v32hi) __W,1972(__mmask32) __U);1973}19741975static __inline__ __m512i __DEFAULT_FN_ATTRS1976_mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B)1977{1978return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,1979(__v8hi) __B,1980(__v32hi)1981_mm512_setzero_hi (),1982(__mmask32) __U);1983}19841985#define _mm512_srli_epi16(A, imm) __extension__ ({ \1986(__m512i)__builtin_ia32_psrlwi512_mask((__v32hi)(__m512i)(A), (int)(imm), \1987(__v32hi)_mm512_setzero_hi(), \1988(__mmask32)-1); })19891990#define _mm512_mask_srli_epi16(W, U, A, imm) __extension__ ({ \1991(__m512i)__builtin_ia32_psrlwi512_mask((__v32hi)(__m512i)(A), (int)(imm), \1992(__v32hi)(__m512i)(W), \1993(__mmask32)(U)); })19941995#define _mm512_maskz_srli_epi16(U, A, imm) __extension__ ({ \1996(__m512i)__builtin_ia32_psrlwi512_mask((__v32hi)(__m512i)(A), (int)(imm), \1997(__v32hi)_mm512_setzero_hi(), \1998(__mmask32)(U)); })19992000#define _mm512_bsrli_epi128(a, imm) __extension__ ({ \2001(__m512i)__builtin_shufflevector( \2002(__v64qi)(__m512i)(a), \2003(__v64qi)_mm512_setzero_si512(), \2004((char)(imm)&0xF0) ? 64 : (char)(imm) + ((char)(imm)>0xF ? 48 : 0), \2005((char)(imm)&0xF0) ? 65 : (char)(imm) + ((char)(imm)>0xE ? 49 : 1), \2006((char)(imm)&0xF0) ? 66 : (char)(imm) + ((char)(imm)>0xD ? 50 : 2), \2007((char)(imm)&0xF0) ? 67 : (char)(imm) + ((char)(imm)>0xC ? 51 : 3), \2008((char)(imm)&0xF0) ? 68 : (char)(imm) + ((char)(imm)>0xB ? 52 : 4), \2009((char)(imm)&0xF0) ? 69 : (char)(imm) + ((char)(imm)>0xA ? 53 : 5), \2010((char)(imm)&0xF0) ? 70 : (char)(imm) + ((char)(imm)>0x9 ? 54 : 6), \2011((char)(imm)&0xF0) ? 71 : (char)(imm) + ((char)(imm)>0x8 ? 55 : 7), \2012((char)(imm)&0xF0) ? 72 : (char)(imm) + ((char)(imm)>0x7 ? 56 : 8), \2013((char)(imm)&0xF0) ? 73 : (char)(imm) + ((char)(imm)>0x6 ? 57 : 9), \2014((char)(imm)&0xF0) ? 74 : (char)(imm) + ((char)(imm)>0x5 ? 58 : 10), \2015((char)(imm)&0xF0) ? 75 : (char)(imm) + ((char)(imm)>0x4 ? 59 : 11), \2016((char)(imm)&0xF0) ? 76 : (char)(imm) + ((char)(imm)>0x3 ? 60 : 12), \2017((char)(imm)&0xF0) ? 77 : (char)(imm) + ((char)(imm)>0x2 ? 61 : 13), \2018((char)(imm)&0xF0) ? 78 : (char)(imm) + ((char)(imm)>0x1 ? 62 : 14), \2019((char)(imm)&0xF0) ? 79 : (char)(imm) + ((char)(imm)>0x0 ? 63 : 15), \2020((char)(imm)&0xF0) ? 80 : (char)(imm) + ((char)(imm)>0xF ? 64 : 16), \2021((char)(imm)&0xF0) ? 81 : (char)(imm) + ((char)(imm)>0xE ? 65 : 17), \2022((char)(imm)&0xF0) ? 82 : (char)(imm) + ((char)(imm)>0xD ? 66 : 18), \2023((char)(imm)&0xF0) ? 83 : (char)(imm) + ((char)(imm)>0xC ? 67 : 19), \2024((char)(imm)&0xF0) ? 84 : (char)(imm) + ((char)(imm)>0xB ? 68 : 20), \2025((char)(imm)&0xF0) ? 85 : (char)(imm) + ((char)(imm)>0xA ? 69 : 21), \2026((char)(imm)&0xF0) ? 86 : (char)(imm) + ((char)(imm)>0x9 ? 70 : 22), \2027((char)(imm)&0xF0) ? 87 : (char)(imm) + ((char)(imm)>0x8 ? 71 : 23), \2028((char)(imm)&0xF0) ? 88 : (char)(imm) + ((char)(imm)>0x7 ? 72 : 24), \2029((char)(imm)&0xF0) ? 89 : (char)(imm) + ((char)(imm)>0x6 ? 73 : 25), \2030((char)(imm)&0xF0) ? 90 : (char)(imm) + ((char)(imm)>0x5 ? 74 : 26), \2031((char)(imm)&0xF0) ? 91 : (char)(imm) + ((char)(imm)>0x4 ? 75 : 27), \2032((char)(imm)&0xF0) ? 92 : (char)(imm) + ((char)(imm)>0x3 ? 76 : 28), \2033((char)(imm)&0xF0) ? 93 : (char)(imm) + ((char)(imm)>0x2 ? 77 : 29), \2034((char)(imm)&0xF0) ? 94 : (char)(imm) + ((char)(imm)>0x1 ? 78 : 30), \2035((char)(imm)&0xF0) ? 95 : (char)(imm) + ((char)(imm)>0x0 ? 79 : 31), \2036((char)(imm)&0xF0) ? 96 : (char)(imm) + ((char)(imm)>0xF ? 80 : 32), \2037((char)(imm)&0xF0) ? 97 : (char)(imm) + ((char)(imm)>0xE ? 81 : 33), \2038((char)(imm)&0xF0) ? 98 : (char)(imm) + ((char)(imm)>0xD ? 82 : 34), \2039((char)(imm)&0xF0) ? 99 : (char)(imm) + ((char)(imm)>0xC ? 83 : 35), \2040((char)(imm)&0xF0) ? 100 : (char)(imm) + ((char)(imm)>0xB ? 84 : 36), \2041((char)(imm)&0xF0) ? 101 : (char)(imm) + ((char)(imm)>0xA ? 85 : 37), \2042((char)(imm)&0xF0) ? 102 : (char)(imm) + ((char)(imm)>0x9 ? 86 : 38), \2043((char)(imm)&0xF0) ? 103 : (char)(imm) + ((char)(imm)>0x8 ? 87 : 39), \2044((char)(imm)&0xF0) ? 104 : (char)(imm) + ((char)(imm)>0x7 ? 88 : 40), \2045((char)(imm)&0xF0) ? 105 : (char)(imm) + ((char)(imm)>0x6 ? 89 : 41), \2046((char)(imm)&0xF0) ? 106 : (char)(imm) + ((char)(imm)>0x5 ? 90 : 42), \2047((char)(imm)&0xF0) ? 107 : (char)(imm) + ((char)(imm)>0x4 ? 91 : 43), \2048((char)(imm)&0xF0) ? 108 : (char)(imm) + ((char)(imm)>0x3 ? 92 : 44), \2049((char)(imm)&0xF0) ? 109 : (char)(imm) + ((char)(imm)>0x2 ? 93 : 45), \2050((char)(imm)&0xF0) ? 110 : (char)(imm) + ((char)(imm)>0x1 ? 94 : 46), \2051((char)(imm)&0xF0) ? 111 : (char)(imm) + ((char)(imm)>0x0 ? 95 : 47), \2052((char)(imm)&0xF0) ? 112 : (char)(imm) + ((char)(imm)>0xF ? 96 : 48), \2053((char)(imm)&0xF0) ? 113 : (char)(imm) + ((char)(imm)>0xE ? 97 : 49), \2054((char)(imm)&0xF0) ? 114 : (char)(imm) + ((char)(imm)>0xD ? 98 : 50), \2055((char)(imm)&0xF0) ? 115 : (char)(imm) + ((char)(imm)>0xC ? 99 : 51), \2056((char)(imm)&0xF0) ? 116 : (char)(imm) + ((char)(imm)>0xB ? 100 : 52), \2057((char)(imm)&0xF0) ? 117 : (char)(imm) + ((char)(imm)>0xA ? 101 : 53), \2058((char)(imm)&0xF0) ? 118 : (char)(imm) + ((char)(imm)>0x9 ? 102 : 54), \2059((char)(imm)&0xF0) ? 119 : (char)(imm) + ((char)(imm)>0x8 ? 103 : 55), \2060((char)(imm)&0xF0) ? 120 : (char)(imm) + ((char)(imm)>0x7 ? 104 : 56), \2061((char)(imm)&0xF0) ? 121 : (char)(imm) + ((char)(imm)>0x6 ? 105 : 57), \2062((char)(imm)&0xF0) ? 122 : (char)(imm) + ((char)(imm)>0x5 ? 106 : 58), \2063((char)(imm)&0xF0) ? 123 : (char)(imm) + ((char)(imm)>0x4 ? 107 : 59), \2064((char)(imm)&0xF0) ? 124 : (char)(imm) + ((char)(imm)>0x3 ? 108 : 60), \2065((char)(imm)&0xF0) ? 125 : (char)(imm) + ((char)(imm)>0x2 ? 109 : 61), \2066((char)(imm)&0xF0) ? 126 : (char)(imm) + ((char)(imm)>0x1 ? 110 : 62), \2067((char)(imm)&0xF0) ? 127 : (char)(imm) + ((char)(imm)>0x0 ? 111 : 63)); })20682069static __inline__ __m512i __DEFAULT_FN_ATTRS2070_mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)2071{2072return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,2073(__v32hi) __A,2074(__v32hi) __W);2075}20762077static __inline__ __m512i __DEFAULT_FN_ATTRS2078_mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)2079{2080return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,2081(__v32hi) __A,2082(__v32hi) _mm512_setzero_hi ());2083}20842085static __inline__ __m512i __DEFAULT_FN_ATTRS2086_mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)2087{2088return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,2089(__v64qi) __A,2090(__v64qi) __W);2091}20922093static __inline__ __m512i __DEFAULT_FN_ATTRS2094_mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)2095{2096return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,2097(__v64qi) __A,2098(__v64qi) _mm512_setzero_hi ());2099}21002101static __inline__ __m512i __DEFAULT_FN_ATTRS2102_mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)2103{2104return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,2105(__v64qi) __O,2106__M);2107}21082109static __inline__ __m512i __DEFAULT_FN_ATTRS2110_mm512_maskz_set1_epi8 (__mmask64 __M, char __A)2111{2112return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A,2113(__v64qi)2114_mm512_setzero_qi(),2115__M);2116}21172118static __inline__ __mmask64 __DEFAULT_FN_ATTRS2119_mm512_kunpackd (__mmask64 __A, __mmask64 __B)2120{2121return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,2122(__mmask64) __B);2123}21242125static __inline__ __mmask32 __DEFAULT_FN_ATTRS2126_mm512_kunpackw (__mmask32 __A, __mmask32 __B)2127{2128return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,2129(__mmask32) __B);2130}21312132static __inline__ __m512i __DEFAULT_FN_ATTRS2133_mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)2134{2135return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,2136(__v32hi) __W,2137(__mmask32) __U);2138}21392140static __inline__ __m512i __DEFAULT_FN_ATTRS2141_mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)2142{2143return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,2144(__v32hi)2145_mm512_setzero_hi (),2146(__mmask32) __U);2147}21482149static __inline__ __m512i __DEFAULT_FN_ATTRS2150_mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)2151{2152return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,2153(__v64qi) __W,2154(__mmask64) __U);2155}21562157static __inline__ __m512i __DEFAULT_FN_ATTRS2158_mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)2159{2160return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,2161(__v64qi)2162_mm512_setzero_hi (),2163(__mmask64) __U);2164}2165static __inline__ void __DEFAULT_FN_ATTRS2166_mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)2167{2168__builtin_ia32_storedquhi512_mask ((__v32hi *) __P,2169(__v32hi) __A,2170(__mmask32) __U);2171}21722173static __inline__ void __DEFAULT_FN_ATTRS2174_mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)2175{2176__builtin_ia32_storedquqi512_mask ((__v64qi *) __P,2177(__v64qi) __A,2178(__mmask64) __U);2179}21802181static __inline__ __mmask64 __DEFAULT_FN_ATTRS2182_mm512_test_epi8_mask (__m512i __A, __m512i __B)2183{2184return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,2185(__v64qi) __B,2186(__mmask64) -1);2187}21882189static __inline__ __mmask64 __DEFAULT_FN_ATTRS2190_mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)2191{2192return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,2193(__v64qi) __B, __U);2194}21952196static __inline__ __mmask32 __DEFAULT_FN_ATTRS2197_mm512_test_epi16_mask (__m512i __A, __m512i __B)2198{2199return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,2200(__v32hi) __B,2201(__mmask32) -1);2202}22032204static __inline__ __mmask32 __DEFAULT_FN_ATTRS2205_mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)2206{2207return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,2208(__v32hi) __B, __U);2209}22102211static __inline__ __mmask64 __DEFAULT_FN_ATTRS2212_mm512_testn_epi8_mask (__m512i __A, __m512i __B)2213{2214return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,2215(__v64qi) __B,2216(__mmask64) -1);2217}22182219static __inline__ __mmask64 __DEFAULT_FN_ATTRS2220_mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)2221{2222return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,2223(__v64qi) __B, __U);2224}22252226static __inline__ __mmask32 __DEFAULT_FN_ATTRS2227_mm512_testn_epi16_mask (__m512i __A, __m512i __B)2228{2229return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,2230(__v32hi) __B,2231(__mmask32) -1);2232}22332234static __inline__ __mmask32 __DEFAULT_FN_ATTRS2235_mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)2236{2237return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,2238(__v32hi) __B, __U);2239}22402241static __inline__ __mmask64 __DEFAULT_FN_ATTRS2242_mm512_movepi8_mask (__m512i __A)2243{2244return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);2245}22462247static __inline__ __mmask32 __DEFAULT_FN_ATTRS2248_mm512_movepi16_mask (__m512i __A)2249{2250return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);2251}22522253static __inline__ __m512i __DEFAULT_FN_ATTRS2254_mm512_movm_epi8 (__mmask64 __A)2255{2256return (__m512i) __builtin_ia32_cvtmask2b512 (__A);2257}22582259static __inline__ __m512i __DEFAULT_FN_ATTRS2260_mm512_movm_epi16 (__mmask32 __A)2261{2262return (__m512i) __builtin_ia32_cvtmask2w512 (__A);2263}22642265static __inline__ __m512i __DEFAULT_FN_ATTRS2266_mm512_broadcastb_epi8 (__m128i __A)2267{2268return (__m512i)__builtin_shufflevector((__v16qi) __A,2269(__v16qi)_mm_undefined_si128(),22700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,22710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,22720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,22730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);2274}22752276static __inline__ __m512i __DEFAULT_FN_ATTRS2277_mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)2278{2279return (__m512i)__builtin_ia32_selectb_512(__M,2280(__v64qi) _mm512_broadcastb_epi8(__A),2281(__v64qi) __O);2282}22832284static __inline__ __m512i __DEFAULT_FN_ATTRS2285_mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)2286{2287return (__m512i)__builtin_ia32_selectb_512(__M,2288(__v64qi) _mm512_broadcastb_epi8(__A),2289(__v64qi) _mm512_setzero_si512());2290}22912292static __inline__ __m512i __DEFAULT_FN_ATTRS2293_mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)2294{2295return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,2296(__v32hi) __O,2297__M);2298}22992300static __inline__ __m512i __DEFAULT_FN_ATTRS2301_mm512_maskz_set1_epi16 (__mmask32 __M, short __A)2302{2303return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,2304(__v32hi) _mm512_setzero_hi(),2305__M);2306}23072308static __inline__ __m512i __DEFAULT_FN_ATTRS2309_mm512_broadcastw_epi16 (__m128i __A)2310{2311return (__m512i)__builtin_shufflevector((__v8hi) __A,2312(__v8hi)_mm_undefined_si128(),23130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,23140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);2315}23162317static __inline__ __m512i __DEFAULT_FN_ATTRS2318_mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)2319{2320return (__m512i)__builtin_ia32_selectw_512(__M,2321(__v32hi) _mm512_broadcastw_epi16(__A),2322(__v32hi) __O);2323}23242325static __inline__ __m512i __DEFAULT_FN_ATTRS2326_mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)2327{2328return (__m512i)__builtin_ia32_selectw_512(__M,2329(__v32hi) _mm512_broadcastw_epi16(__A),2330(__v32hi) _mm512_setzero_si512());2331}23322333static __inline__ __m512i __DEFAULT_FN_ATTRS2334_mm512_permutexvar_epi16 (__m512i __A, __m512i __B)2335{2336return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,2337(__v32hi) __A,2338(__v32hi) _mm512_undefined_epi32 (),2339(__mmask32) -1);2340}23412342static __inline__ __m512i __DEFAULT_FN_ATTRS2343_mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,2344__m512i __B)2345{2346return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,2347(__v32hi) __A,2348(__v32hi) _mm512_setzero_hi(),2349(__mmask32) __M);2350}23512352static __inline__ __m512i __DEFAULT_FN_ATTRS2353_mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,2354__m512i __B)2355{2356return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,2357(__v32hi) __A,2358(__v32hi) __W,2359(__mmask32) __M);2360}23612362#define _mm512_alignr_epi8(A, B, N) __extension__ ({\2363(__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \2364(__v64qi)(__m512i)(B), (int)(N), \2365(__v64qi)_mm512_undefined_pd(), \2366(__mmask64)-1); })23672368#define _mm512_mask_alignr_epi8(W, U, A, B, N) __extension__({\2369(__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \2370(__v64qi)(__m512i)(B), (int)(N), \2371(__v64qi)(__m512i)(W), \2372(__mmask64)(U)); })23732374#define _mm512_maskz_alignr_epi8(U, A, B, N) __extension__({\2375(__m512i)__builtin_ia32_palignr512_mask((__v64qi)(__m512i)(A), \2376(__v64qi)(__m512i)(B), (int)(N), \2377(__v64qi)_mm512_setzero_si512(), \2378(__mmask64)(U)); })23792380#define _mm512_dbsad_epu8(A, B, imm) __extension__ ({\2381(__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \2382(__v64qi)(__m512i)(B), (int)(imm), \2383(__v32hi)_mm512_undefined_epi32(), \2384(__mmask32)-1); })23852386#define _mm512_mask_dbsad_epu8(W, U, A, B, imm) ({\2387(__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \2388(__v64qi)(__m512i)(B), (int)(imm), \2389(__v32hi)(__m512i)(W), \2390(__mmask32)(U)); })23912392#define _mm512_maskz_dbsad_epu8(U, A, B, imm) ({\2393(__m512i)__builtin_ia32_dbpsadbw512_mask((__v64qi)(__m512i)(A), \2394(__v64qi)(__m512i)(B), (int)(imm), \2395(__v32hi)_mm512_setzero_hi(), \2396(__mmask32)(U)); })23972398static __inline__ __m512i __DEFAULT_FN_ATTRS2399_mm512_sad_epu8 (__m512i __A, __m512i __B)2400{2401return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,2402(__v64qi) __B);2403}2404240524062407#undef __DEFAULT_FN_ATTRS24082409#endif241024112412