16bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/*===---- avx512vlcdintrin.h - AVX512VL and AVX512CD intrinsics ---------------------------===
26bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
36bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * Permission is hereby granted, free of charge, to any person obtaining a copy
46bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * of this software and associated documentation files (the "Software"), to deal
56bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * in the Software without restriction, including without limitation the rights
66bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
76bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * copies of the Software, and to permit persons to whom the Software is
86bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * furnished to do so, subject to the following conditions:
96bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The above copyright notice and this permission notice shall be included in
116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * all copies or substantial portions of the Software.
126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * THE SOFTWARE.
206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *
216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker *===-----------------------------------------------------------------------===
226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */
236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __IMMINTRIN_H
246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#error "Never use <avx512vlcdintrin.h> directly; include <immintrin.h> instead."
256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif
266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __AVX512VLCDINTRIN_H
286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __AVX512VLCDINTRIN_H
296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* Define the default attributes for the functions in this file. */
316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd")))
326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_broadcastmb_epi64 (__mmask8 __A)
366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_broadcastmb128 (__A);
386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_broadcastmb_epi64 (__mmask8 __A)
426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_broadcastmb256 (__A);
446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_broadcastmw_epi32 (__mmask16 __A)
486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_broadcastmw128 (__A);
506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_broadcastmw_epi32 (__mmask16 __A)
546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_broadcastmw256 (__A);
566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_conflict_epi64 (__m128i __A)
616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v2di) _mm_undefined_si128 (),
646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) -1);
656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v2di) __W,
726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A)
776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v2di)
806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               _mm_setzero_di (),
816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_conflict_epi64 (__m256i __A)
866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v4di)  _mm256_undefined_si256 (),
896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) -1);
906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v4di) __W,
976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
1016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A)
1026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
1046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v4di) _mm256_setzero_si256 (),
1056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
1066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
1096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_conflict_epi32 (__m128i __A)
1106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
1126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v4si) _mm_undefined_si128 (),
1136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) -1);
1146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
1176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
1186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
1206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v4si) __W,
1216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
1226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
1256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A)
1266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
1286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v4si) _mm_setzero_si128 (),
1296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
1306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
1336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_conflict_epi32 (__m256i __A)
1346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
1366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v8si) _mm256_undefined_si256 (),
1376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) -1);
1386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
1416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
1426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
1446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v8si) __W,
1456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
1466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
1496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A)
1506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
1526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__v8si)
1536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               _mm256_setzero_si256 (),
1546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker               (__mmask8) __U);
1556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
1586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_lzcnt_epi32 (__m128i __A)
1596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
1616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v4si)
1626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm_setzero_si128 (),
1636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) -1);
1646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
1676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
1686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
1706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v4si) __W,
1716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
1726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
1756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A)
1766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
1786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v4si)
1796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm_setzero_si128 (),
1806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
1816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
1846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_lzcnt_epi32 (__m256i __A)
1856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
1876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v8si)
1886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm256_setzero_si256 (),
1896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) -1);
1906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
1926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
1936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
1946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
1956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
1966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v8si) __W,
1976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
1986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
1996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
2016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A)
2026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
2046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v8si)
2056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm256_setzero_si256 (),
2066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
2076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
2106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_lzcnt_epi64 (__m128i __A)
2116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
2136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v2di)
2146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm_setzero_di (),
2156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) -1);
2166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
2196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
2206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
2226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v2di) __W,
2236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
2246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m128i __DEFAULT_FN_ATTRS
2276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A)
2286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
2306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v2di)
2316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm_setzero_di (),
2326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
2336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
2366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_lzcnt_epi64 (__m256i __A)
2376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
2396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v4di)
2406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm256_setzero_si256 (),
2416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) -1);
2426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
2456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
2466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
2486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v4di) __W,
2496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
2506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickerstatic __inline__ __m256i __DEFAULT_FN_ATTRS
2536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker_mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A)
2546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker{
2556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker  return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
2566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__v4di)
2576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 _mm256_setzero_si256 (),
2586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker                 (__mmask8) __U);
2596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker}
2606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#undef __DEFAULT_FN_ATTRS
2626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker
2636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __AVX512VLCDINTRIN_H */
264