forked from OSchip/llvm-project
[AVX-512] Replace 512-bit pmovzx/sx builtins with native IR.
llvm-svn: 284936
This commit is contained in:
parent
4ef879ac2c
commit
0c5da26572
|
@ -1388,18 +1388,6 @@ TARGET_BUILTIN(__builtin_ia32_rangepd512_mask, "V8dV8dV8dIiV8dUcIi", "", "avx512
|
|||
TARGET_BUILTIN(__builtin_ia32_rangeps512_mask, "V16fV16fV16fIiV16fUsIi", "", "avx512dq")
|
||||
TARGET_BUILTIN(__builtin_ia32_reducepd512_mask, "V8dV8dIiV8dUcIi", "", "avx512dq")
|
||||
TARGET_BUILTIN(__builtin_ia32_reduceps512_mask, "V16fV16fIiV16fUsIi", "", "avx512dq")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovsxbw512_mask, "V32sV32cV32sUi","","avx512bw")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovsxbd512_mask, "V16iV16cV16iUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovsxbq512_mask, "V8LLiV16cV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovsxdq512_mask, "V8LLiV8iV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovsxwd512_mask, "V16iV16sV16iUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovsxwq512_mask, "V8LLiV8sV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovzxbw512_mask, "V32sV32cV32sUi","","avx512bw")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovzxbd512_mask, "V16iV16cV16iUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovzxbq512_mask, "V8LLiV16cV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovzxdq512_mask, "V8LLiV8iV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovzxwd512_mask, "V16iV16sV16iUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_pmovzxwq512_mask, "V8LLiV8sV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_prold512_mask, "V16iV16iIiV16iUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_prolq512_mask, "V8LLiV8LLiIiV8LLiUc","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_prold128_mask, "V4iV4iIiV4iUc","","avx512vl")
|
||||
|
|
|
@ -1527,55 +1527,49 @@ _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
|
|||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepi8_epi16 (__m256i __A)
|
||||
_mm512_cvtepi8_epi16(__m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
|
||||
(__v32hi)
|
||||
_mm512_setzero_hi (),
|
||||
(__mmask32) -1);
|
||||
/* This function always performs a signed extension, but __v32qi is a char
|
||||
which may be signed or unsigned, so use __v32qs. */
|
||||
return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
|
||||
_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
|
||||
(__v32hi) __W,
|
||||
(__mmask32) __U);
|
||||
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
|
||||
(__v32hi)_mm512_cvtepi8_epi16(__A),
|
||||
(__v32hi)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A)
|
||||
_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A,
|
||||
(__v32hi)
|
||||
_mm512_setzero_hi(),
|
||||
(__mmask32) __U);
|
||||
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
|
||||
(__v32hi)_mm512_cvtepi8_epi16(__A),
|
||||
(__v32hi)_mm512_setzero_hi());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepu8_epi16 (__m256i __A)
|
||||
_mm512_cvtepu8_epi16(__m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
|
||||
(__v32hi)
|
||||
_mm512_setzero_hi (),
|
||||
(__mmask32) -1);
|
||||
return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A)
|
||||
_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
|
||||
(__v32hi) __W,
|
||||
(__mmask32) __U);
|
||||
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
|
||||
(__v32hi)_mm512_cvtepu8_epi16(__A),
|
||||
(__v32hi)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A)
|
||||
_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A,
|
||||
(__v32hi)
|
||||
_mm512_setzero_hi(),
|
||||
(__mmask32) __U);
|
||||
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
|
||||
(__v32hi)_mm512_cvtepu8_epi16(__A),
|
||||
(__v32hi)_mm512_setzero_hi());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -5000,263 +5000,227 @@ _mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
|
|||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepi8_epi32 (__m128i __A)
|
||||
_mm512_cvtepi8_epi32(__m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) -1);
|
||||
/* This function always performs a signed extension, but __v16qi is a char
|
||||
which may be signed or unsigned, so use __v16qs. */
|
||||
return (__m512i)__builtin_convertvector((__v16qs)__A, __v16si);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
|
||||
_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
|
||||
(__v16si) __W,
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepi8_epi32(__A),
|
||||
(__v16si)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A)
|
||||
_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepi8_epi32(__A),
|
||||
(__v16si)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepi8_epi64 (__m128i __A)
|
||||
_mm512_cvtepi8_epi64(__m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) -1);
|
||||
/* This function always performs a signed extension, but __v16qi is a char
|
||||
which may be signed or unsigned, so use __v16qs. */
|
||||
return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__A, (__v16qs)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
|
||||
_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
|
||||
(__v8di) __W,
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepi8_epi64(__A),
|
||||
(__v8di)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
|
||||
_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepi8_epi64(__A),
|
||||
(__v8di)_mm512_setzero_si512 ());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepi32_epi64 (__m256i __X)
|
||||
_mm512_cvtepi32_epi64(__m256i __X)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) -1);
|
||||
return (__m512i)__builtin_convertvector((__v8si)__X, __v8di);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
|
||||
_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
|
||||
(__v8di) __W,
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepi32_epi64(__X),
|
||||
(__v8di)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X)
|
||||
_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepi32_epi64(__X),
|
||||
(__v8di)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepi16_epi32 (__m256i __A)
|
||||
_mm512_cvtepi16_epi32(__m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) -1);
|
||||
return (__m512i)__builtin_convertvector((__v16hi)__A, __v16si);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
|
||||
_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
|
||||
(__v16si) __W,
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepi16_epi32(__A),
|
||||
(__v16si)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A)
|
||||
_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepi16_epi32(__A),
|
||||
(__v16si)_mm512_setzero_si512 ());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepi16_epi64 (__m128i __A)
|
||||
_mm512_cvtepi16_epi64(__m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) -1);
|
||||
return (__m512i)__builtin_convertvector((__v8hi)__A, __v8di);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
|
||||
_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
|
||||
(__v8di) __W,
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepi16_epi64(__A),
|
||||
(__v8di)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
|
||||
_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepi16_epi64(__A),
|
||||
(__v8di)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepu8_epi32 (__m128i __A)
|
||||
_mm512_cvtepu8_epi32(__m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) -1);
|
||||
return (__m512i)__builtin_convertvector((__v16qu)__A, __v16si);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
|
||||
_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
|
||||
(__v16si) __W,
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepu8_epi32(__A),
|
||||
(__v16si)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A)
|
||||
_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepu8_epi32(__A),
|
||||
(__v16si)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepu8_epi64 (__m128i __A)
|
||||
_mm512_cvtepu8_epi64(__m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) -1);
|
||||
return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__A, (__v16qu)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
|
||||
_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
|
||||
(__v8di) __W,
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepu8_epi64(__A),
|
||||
(__v8di)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
|
||||
_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepu8_epi64(__A),
|
||||
(__v8di)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepu32_epi64 (__m256i __X)
|
||||
_mm512_cvtepu32_epi64(__m256i __X)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) -1);
|
||||
return (__m512i)__builtin_convertvector((__v8su)__X, __v8di);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
|
||||
_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
|
||||
(__v8di) __W,
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepu32_epi64(__X),
|
||||
(__v8di)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X)
|
||||
_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepu32_epi64(__X),
|
||||
(__v8di)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepu16_epi32 (__m256i __A)
|
||||
_mm512_cvtepu16_epi32(__m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) -1);
|
||||
return (__m512i)__builtin_convertvector((__v16hu)__A, __v16si);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
|
||||
_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
|
||||
(__v16si) __W,
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepu16_epi32(__A),
|
||||
(__v16si)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A)
|
||||
_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
|
||||
(__v16si)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask16) __U);
|
||||
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
||||
(__v16si)_mm512_cvtepu16_epi32(__A),
|
||||
(__v16si)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_cvtepu16_epi64 (__m128i __A)
|
||||
_mm512_cvtepu16_epi64(__m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) -1);
|
||||
return (__m512i)__builtin_convertvector((__v8hu)__A, __v8di);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
|
||||
_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
|
||||
(__v8di) __W,
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepu16_epi64(__A),
|
||||
(__v8di)__W);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
|
||||
_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
|
||||
{
|
||||
return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
|
||||
(__v8di)
|
||||
_mm512_setzero_si512 (),
|
||||
(__mmask8) __U);
|
||||
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
||||
(__v8di)_mm512_cvtepu16_epi64(__A),
|
||||
(__v8di)_mm512_setzero_si512());
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
|
|
|
@ -1087,37 +1087,41 @@ __m512i test_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B)
|
|||
|
||||
__m512i test_mm512_cvtepi8_epi16(__m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepi8_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
|
||||
// CHECK: sext <32 x i8> %{{.*}} to <32 x i16>
|
||||
return _mm512_cvtepi8_epi16(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepi8_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
|
||||
// CHECK: sext <32 x i8> %{{.*}} to <32 x i16>
|
||||
// CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
|
||||
return _mm512_mask_cvtepi8_epi16(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.w.512
|
||||
// CHECK: sext <32 x i8> %{{.*}} to <32 x i16>
|
||||
// CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
|
||||
return _mm512_maskz_cvtepi8_epi16(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepu8_epi16(__m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepu8_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
|
||||
// CHECK: zext <32 x i8> %{{.*}} to <32 x i16>
|
||||
return _mm512_cvtepu8_epi16(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepu8_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
|
||||
// CHECK: zext <32 x i8> %{{.*}} to <32 x i16>
|
||||
// CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
|
||||
return _mm512_mask_cvtepu8_epi16(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.w.512
|
||||
// CHECK: zext <32 x i8> %{{.*}} to <32 x i16>
|
||||
// CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
|
||||
return _mm512_maskz_cvtepu8_epi16(__U, __A);
|
||||
}
|
||||
|
||||
|
|
|
@ -2457,181 +2457,201 @@ __m512i test_mm512_undefined_epi32() {
|
|||
|
||||
__m512i test_mm512_cvtepi8_epi32(__m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepi8_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
|
||||
// CHECK: sext <16 x i8> %{{.*}} to <16 x i32>
|
||||
return _mm512_cvtepi8_epi32(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepi8_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
|
||||
// CHECK: sext <16 x i8> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_mask_cvtepi8_epi32(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.d.512
|
||||
// CHECK: sext <16 x i8> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_maskz_cvtepi8_epi32(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepi8_epi64(__m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepi8_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
|
||||
// CHECK: sext <8 x i8> %{{.*}} to <8 x i64>
|
||||
return _mm512_cvtepi8_epi64(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepi8_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
|
||||
// CHECK: sext <8 x i8> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_mask_cvtepi8_epi64(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepi8_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxb.q.512
|
||||
// CHECK: sext <8 x i8> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_maskz_cvtepi8_epi64(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepi32_epi64(__m256i __X) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepi32_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
|
||||
// CHECK: sext <8 x i32> %{{.*}} to <8 x i64>
|
||||
return _mm512_cvtepi32_epi64(__X);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepi32_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
|
||||
// CHECK: sext <8 x i32> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_mask_cvtepi32_epi64(__W, __U, __X);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepi32_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxd.q.512
|
||||
// CHECK: sext <8 x i32> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_maskz_cvtepi32_epi64(__U, __X);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepi16_epi32(__m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepi16_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
|
||||
// CHECK: sext <16 x i16> %{{.*}} to <16 x i32>
|
||||
return _mm512_cvtepi16_epi32(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepi16_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
|
||||
// CHECK: sext <16 x i16> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_mask_cvtepi16_epi32(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxw.d.512
|
||||
// CHECK: sext <16 x i16> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_maskz_cvtepi16_epi32(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepi16_epi64(__m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepi16_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
|
||||
// CHECK: sext <8 x i16> %{{.*}} to <8 x i64>
|
||||
return _mm512_cvtepi16_epi64(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepi16_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
|
||||
// CHECK: sext <8 x i16> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_mask_cvtepi16_epi64(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovsxw.q.512
|
||||
// CHECK: sext <8 x i16> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_maskz_cvtepi16_epi64(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepu8_epi32(__m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepu8_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
|
||||
// CHECK: zext <16 x i8> %{{.*}} to <16 x i32>
|
||||
return _mm512_cvtepu8_epi32(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepu8_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
|
||||
// CHECK: zext <16 x i8> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_mask_cvtepu8_epi32(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.d.512
|
||||
// CHECK: zext <16 x i8> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_maskz_cvtepu8_epi32(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepu8_epi64(__m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepu8_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
|
||||
// CHECK: zext <8 x i8> %{{.*}} to <8 x i64>
|
||||
return _mm512_cvtepu8_epi64(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepu8_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
|
||||
// CHECK: zext <8 x i8> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_mask_cvtepu8_epi64(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepu8_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxb.q.512
|
||||
// CHECK: zext <8 x i8> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_maskz_cvtepu8_epi64(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepu32_epi64(__m256i __X) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepu32_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
|
||||
// CHECK: zext <8 x i32> %{{.*}} to <8 x i64>
|
||||
return _mm512_cvtepu32_epi64(__X);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepu32_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
|
||||
// CHECK: zext <8 x i32> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_mask_cvtepu32_epi64(__W, __U, __X);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepu32_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxd.q.512
|
||||
// CHECK: zext <8 x i32> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_maskz_cvtepu32_epi64(__U, __X);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepu16_epi32(__m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepu16_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
|
||||
// CHECK: zext <16 x i16> %{{.*}} to <16 x i32>
|
||||
return _mm512_cvtepu16_epi32(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepu16_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
|
||||
// CHECK: zext <16 x i16> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_mask_cvtepu16_epi32(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxw.d.512
|
||||
// CHECK: zext <16 x i16> %{{.*}} to <16 x i32>
|
||||
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
|
||||
return _mm512_maskz_cvtepu16_epi32(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_cvtepu16_epi64(__m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_cvtepu16_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
|
||||
// CHECK: zext <8 x i16> %{{.*}} to <8 x i64>
|
||||
return _mm512_cvtepu16_epi64(__A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cvtepu16_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
|
||||
// CHECK: zext <8 x i16> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_mask_cvtepu16_epi64(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_cvtepu16_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.pmovzxw.q.512
|
||||
// CHECK: zext <8 x i16> %{{.*}} to <8 x i64>
|
||||
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
|
||||
return _mm512_maskz_cvtepu16_epi64(__U, __A);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue