11188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker/*===------------- avx512cdintrin.h - AVX512CD intrinsics ------------------=== 21188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * 31188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * 41188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * Permission is hereby granted, free of charge, to any person obtaining a copy 51188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * of this software and associated documentation files (the "Software"), to deal 61188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * in the Software without restriction, including without limitation the rights 71188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 81188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * copies of the Software, and to permit persons to whom the Software is 91188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * furnished to do so, subject to the following conditions: 101188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * 111188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * The above copyright notice and this permission notice shall be included in 121188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * all copies or substantial portions of the Software. 131188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * 141188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 151188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 161188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 171188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 181188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 191188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 201188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * THE SOFTWARE. 211188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker * 221188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker *===-----------------------------------------------------------------------=== 231188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker */ 241188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#ifndef __IMMINTRIN_H 251188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#error "Never use <avx512cdintrin.h> directly; include <immintrin.h> instead." 261188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif 271188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 281188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#ifndef __AVX512CDINTRIN_H 291188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#define __AVX512CDINTRIN_H 301188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 311188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker/* Define the default attributes for the functions in this file. */ 321188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"))) 331188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 341188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 351188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_conflict_epi64 (__m512i __A) 361188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 371188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A, 381188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v8di) _mm512_setzero_si512 (), 391188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask8) -1); 401188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 411188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 421188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 431188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_mask_conflict_epi64 (__m512i __W, __mmask8 __U, __m512i __A) 441188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 451188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A, 461188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v8di) __W, 471188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask8) __U); 481188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 491188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 501188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 511188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_maskz_conflict_epi64 (__mmask8 __U, __m512i __A) 521188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 531188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vpconflictdi_512_mask ((__v8di) __A, 541188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v8di) _mm512_setzero_si512 (), 551188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask8) __U); 561188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 571188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 581188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 591188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_conflict_epi32 (__m512i __A) 601188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 611188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A, 621188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v16si) _mm512_setzero_si512 (), 631188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask16) -1); 641188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 651188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 661188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 671188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_mask_conflict_epi32 (__m512i __W, __mmask16 __U, __m512i __A) 681188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 691188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A, 701188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v16si) __W, 711188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask16) __U); 721188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 731188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 741188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 751188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_maskz_conflict_epi32 (__mmask16 __U, __m512i __A) 761188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 771188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vpconflictsi_512_mask ((__v16si) __A, 781188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v16si) _mm512_setzero_si512 (), 791188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask16) __U); 801188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 811188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 821188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 831188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_lzcnt_epi32 (__m512i __A) 841188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 851188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A, 861188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v16si) _mm512_setzero_si512 (), 871188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask16) -1); 881188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 891188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 901188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 911188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_mask_lzcnt_epi32 (__m512i __W, __mmask16 __U, __m512i __A) 921188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 931188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A, 941188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v16si) __W, 951188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask16) __U); 961188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 971188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 981188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 991188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_maskz_lzcnt_epi32 (__mmask16 __U, __m512i __A) 1001188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 1011188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vplzcntd_512_mask ((__v16si) __A, 1021188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v16si) _mm512_setzero_si512 (), 1031188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask16) __U); 1041188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 1051188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1061188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 1071188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_lzcnt_epi64 (__m512i __A) 1081188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 1091188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A, 1101188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v8di) _mm512_setzero_si512 (), 1111188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask8) -1); 1121188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 1131188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1141188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 1151188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_mask_lzcnt_epi64 (__m512i __W, __mmask8 __U, __m512i __A) 1161188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 1171188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A, 1181188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v8di) __W, 1191188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask8) __U); 1201188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 1211188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1221188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 1231188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_maskz_lzcnt_epi64 (__mmask8 __U, __m512i __A) 1241188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 1251188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_vplzcntq_512_mask ((__v8di) __A, 1261188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__v8di) _mm512_setzero_si512 (), 1271188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker (__mmask8) __U); 1281188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 1291188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1301188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 1311188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_broadcastmb_epi64 (__mmask8 __A) 1321188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 1331188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_broadcastmb512 (__A); 1341188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 1351188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1361188dcf30923cb444143ffa4b83dc951037e76agitbuildkickerstatic __inline__ __m512i __DEFAULT_FN_ATTRS 1371188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker_mm512_broadcastmw_epi32 (__mmask16 __A) 1381188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker{ 1391188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker return (__m512i) __builtin_ia32_broadcastmw512 (__A); 1401188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker} 1411188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1421188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#undef __DEFAULT_FN_ATTRS 1431188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker 1441188dcf30923cb444143ffa4b83dc951037e76agitbuildkicker#endif 145