Path: blob/master/tools/android-sdk/renderscript/clang-include/avx512vlcdintrin.h
496 views
/*===---- avx512vlcdintrin.h - AVX512VL and AVX512CD 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*/22#ifndef __IMMINTRIN_H23#error "Never use <avx512vlcdintrin.h> directly; include <immintrin.h> instead."24#endif2526#ifndef __AVX512VLCDINTRIN_H27#define __AVX512VLCDINTRIN_H2829/* Define the default attributes for the functions in this file. */30#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd")))313233static __inline__ __m128i __DEFAULT_FN_ATTRS34_mm_broadcastmb_epi64 (__mmask8 __A)35{36return (__m128i) __builtin_ia32_broadcastmb128 (__A);37}3839static __inline__ __m256i __DEFAULT_FN_ATTRS40_mm256_broadcastmb_epi64 (__mmask8 __A)41{42return (__m256i) __builtin_ia32_broadcastmb256 (__A);43}4445static __inline__ __m128i __DEFAULT_FN_ATTRS46_mm_broadcastmw_epi32 (__mmask16 __A)47{48return (__m128i) __builtin_ia32_broadcastmw128 (__A);49}5051static __inline__ __m256i __DEFAULT_FN_ATTRS52_mm256_broadcastmw_epi32 (__mmask16 __A)53{54return (__m256i) __builtin_ia32_broadcastmw256 (__A);55}565758static __inline__ __m128i __DEFAULT_FN_ATTRS59_mm_conflict_epi64 (__m128i __A)60{61return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,62(__v2di) _mm_undefined_si128 (),63(__mmask8) -1);64}6566static __inline__ __m128i __DEFAULT_FN_ATTRS67_mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A)68{69return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,70(__v2di) __W,71(__mmask8) __U);72}7374static __inline__ __m128i __DEFAULT_FN_ATTRS75_mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A)76{77return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,78(__v2di)79_mm_setzero_di (),80(__mmask8) __U);81}8283static __inline__ __m256i __DEFAULT_FN_ATTRS84_mm256_conflict_epi64 (__m256i __A)85{86return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,87(__v4di) _mm256_undefined_si256 (),88(__mmask8) -1);89}9091static __inline__ __m256i __DEFAULT_FN_ATTRS92_mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A)93{94return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,95(__v4di) __W,96(__mmask8) __U);97}9899static __inline__ __m256i __DEFAULT_FN_ATTRS100_mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A)101{102return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,103(__v4di) _mm256_setzero_si256 (),104(__mmask8) __U);105}106107static __inline__ __m128i __DEFAULT_FN_ATTRS108_mm_conflict_epi32 (__m128i __A)109{110return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,111(__v4si) _mm_undefined_si128 (),112(__mmask8) -1);113}114115static __inline__ __m128i __DEFAULT_FN_ATTRS116_mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A)117{118return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,119(__v4si) __W,120(__mmask8) __U);121}122123static __inline__ __m128i __DEFAULT_FN_ATTRS124_mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A)125{126return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,127(__v4si) _mm_setzero_si128 (),128(__mmask8) __U);129}130131static __inline__ __m256i __DEFAULT_FN_ATTRS132_mm256_conflict_epi32 (__m256i __A)133{134return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,135(__v8si) _mm256_undefined_si256 (),136(__mmask8) -1);137}138139static __inline__ __m256i __DEFAULT_FN_ATTRS140_mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A)141{142return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,143(__v8si) __W,144(__mmask8) __U);145}146147static __inline__ __m256i __DEFAULT_FN_ATTRS148_mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A)149{150return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,151(__v8si)152_mm256_setzero_si256 (),153(__mmask8) __U);154}155156static __inline__ __m128i __DEFAULT_FN_ATTRS157_mm_lzcnt_epi32 (__m128i __A)158{159return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,160(__v4si)161_mm_setzero_si128 (),162(__mmask8) -1);163}164165static __inline__ __m128i __DEFAULT_FN_ATTRS166_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)167{168return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,169(__v4si) __W,170(__mmask8) __U);171}172173static __inline__ __m128i __DEFAULT_FN_ATTRS174_mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A)175{176return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,177(__v4si)178_mm_setzero_si128 (),179(__mmask8) __U);180}181182static __inline__ __m256i __DEFAULT_FN_ATTRS183_mm256_lzcnt_epi32 (__m256i __A)184{185return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,186(__v8si)187_mm256_setzero_si256 (),188(__mmask8) -1);189}190191static __inline__ __m256i __DEFAULT_FN_ATTRS192_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)193{194return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,195(__v8si) __W,196(__mmask8) __U);197}198199static __inline__ __m256i __DEFAULT_FN_ATTRS200_mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A)201{202return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,203(__v8si)204_mm256_setzero_si256 (),205(__mmask8) __U);206}207208static __inline__ __m128i __DEFAULT_FN_ATTRS209_mm_lzcnt_epi64 (__m128i __A)210{211return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,212(__v2di)213_mm_setzero_di (),214(__mmask8) -1);215}216217static __inline__ __m128i __DEFAULT_FN_ATTRS218_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)219{220return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,221(__v2di) __W,222(__mmask8) __U);223}224225static __inline__ __m128i __DEFAULT_FN_ATTRS226_mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A)227{228return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,229(__v2di)230_mm_setzero_di (),231(__mmask8) __U);232}233234static __inline__ __m256i __DEFAULT_FN_ATTRS235_mm256_lzcnt_epi64 (__m256i __A)236{237return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,238(__v4di)239_mm256_setzero_si256 (),240(__mmask8) -1);241}242243static __inline__ __m256i __DEFAULT_FN_ATTRS244_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)245{246return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,247(__v4di) __W,248(__mmask8) __U);249}250251static __inline__ __m256i __DEFAULT_FN_ATTRS252_mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A)253{254return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,255(__v4di)256_mm256_setzero_si256 (),257(__mmask8) __U);258}259260#undef __DEFAULT_FN_ATTRS261262#endif /* __AVX512VLCDINTRIN_H */263264265