Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
661f980
_mm512_mask_cvtepi8_epi32
moorabbit Sep 14, 2025
3c3ab1e
_mm512_maskz_cvtepi8_epi32
moorabbit Sep 14, 2025
768abfc
_mm512_mask_cvtepi8_epi64
moorabbit Sep 14, 2025
70a51e1
_mm512_maskz_cvtepi8_epi64
moorabbit Sep 14, 2025
afe14d3
_mm512_mask_cvtepi16_epi32
moorabbit Sep 14, 2025
ee9eafa
_mm512_maskz_cvtepi16_epi32
moorabbit Sep 14, 2025
be011af
_mm512_mask_cvtepi16_epi64
moorabbit Sep 14, 2025
2704865
_mm512_maskz_cvtepi16_epi64
moorabbit Sep 14, 2025
dd66726
_mm512_mask_cvtepi32_epi64
moorabbit Sep 14, 2025
85107c6
_mm512_maskz_cvtepi32_epi64
moorabbit Sep 14, 2025
5017950
_mm512_mask_cvtepu8_epi32
moorabbit Sep 14, 2025
6dddb91
_mm512_maskz_cvtepu8_epi32
moorabbit Sep 14, 2025
895bdf1
_mm512_mask_cvtepu8_epi64
moorabbit Sep 14, 2025
ce8f7c4
_mm512_maskz_cvtepu8_epi64
moorabbit Sep 14, 2025
fb326b2
_mm512_mask_cvtepu16_epi32
moorabbit Sep 14, 2025
e919253
_mm512_maskz_cvtepu16_epi32
moorabbit Sep 14, 2025
7442adb
_mm512_mask_cvtepu16_epi64
moorabbit Sep 14, 2025
003e0c3
_mm512_maskz_cvtepu16_epi64
moorabbit Sep 14, 2025
70c66b0
_mm512_mask_cvtepu32_epi64
moorabbit Sep 14, 2025
dd694ad
_mm512_maskz_cvtepu32_epi64
moorabbit Sep 14, 2025
971d215
_mm512_mask_cvtepi8_epi16
moorabbit Sep 14, 2025
4f2b929
_mm512_maskz_cvtepi8_epi16
moorabbit Sep 14, 2025
cda8248
_mm512_mask_cvtepu8_epi16
moorabbit Sep 14, 2025
251fed0
_mm512_maskz_cvtepu8_epi16
moorabbit Sep 14, 2025
cbc6c9f
_mm_cvtepi16_epi8
moorabbit Sep 14, 2025
c432692
_mm256_cvtepi16_epi8
moorabbit Sep 15, 2025
87972d4
_mm256_mask_cvtepi16_epi8
moorabbit Sep 15, 2025
4b9a850
_mm256_maskz_cvtepi16_epi8
moorabbit Sep 15, 2025
ea97d22
Merge branch 'main' into constexpr-avx512-integer-intrinsics-part-1
moorabbit Sep 15, 2025
950a727
Merge branch 'main' into constexpr-avx512-integer-intrinsics-part-1
RKSimon Sep 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 8 additions & 13 deletions clang/lib/Headers/avx512bwintrin.h
Original file line number Diff line number Diff line change
Expand Up @@ -1325,17 +1325,15 @@ _mm512_cvtepi8_epi16(__m256i __A) {
return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
(__v32hi)_mm512_cvtepi8_epi16(__A),
(__v32hi)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
(__v32hi)_mm512_cvtepi8_epi16(__A),
(__v32hi)_mm512_setzero_si512());
Expand All @@ -1346,23 +1344,20 @@ _mm512_cvtepu8_epi16(__m256i __A) {
return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
(__v32hi)_mm512_cvtepu8_epi16(__A),
(__v32hi)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
(__v32hi)_mm512_cvtepu8_epi16(__A),
(__v32hi)_mm512_setzero_si512());
}


#define _mm512_shufflehi_epi16(A, imm) \
((__m512i)__builtin_ia32_pshufhw512((__v32hi)(__m512i)(A), (int)(imm)))

Expand Down
100 changes: 40 additions & 60 deletions clang/lib/Headers/avx512fintrin.h
Original file line number Diff line number Diff line change
Expand Up @@ -4520,17 +4520,15 @@ _mm512_cvtepi8_epi32(__m128i __A) {
return (__m512i)__builtin_convertvector((__v16qs)__A, __v16si);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepi8_epi32(__A),
(__v16si)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepi8_epi32(__A),
(__v16si)_mm512_setzero_si512());
Expand All @@ -4543,17 +4541,15 @@ _mm512_cvtepi8_epi64(__m128i __A) {
return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__A, (__v16qs)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepi8_epi64(__A),
(__v8di)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepi8_epi64(__A),
(__v8di)_mm512_setzero_si512 ());
Expand All @@ -4564,17 +4560,15 @@ _mm512_cvtepi32_epi64(__m256i __X) {
return (__m512i)__builtin_convertvector((__v8si)__X, __v8di);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepi32_epi64(__X),
(__v8di)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepi32_epi64(__X),
(__v8di)_mm512_setzero_si512());
Expand All @@ -4585,17 +4579,15 @@ _mm512_cvtepi16_epi32(__m256i __A) {
return (__m512i)__builtin_convertvector((__v16hi)__A, __v16si);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepi16_epi32(__A),
(__v16si)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepi16_epi32(__A),
(__v16si)_mm512_setzero_si512 ());
Expand All @@ -4606,17 +4598,15 @@ _mm512_cvtepi16_epi64(__m128i __A) {
return (__m512i)__builtin_convertvector((__v8hi)__A, __v8di);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepi16_epi64(__A),
(__v8di)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepi16_epi64(__A),
(__v8di)_mm512_setzero_si512());
Expand All @@ -4627,17 +4617,15 @@ _mm512_cvtepu8_epi32(__m128i __A) {
return (__m512i)__builtin_convertvector((__v16qu)__A, __v16si);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepu8_epi32(__A),
(__v16si)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepu8_epi32(__A),
(__v16si)_mm512_setzero_si512());
Expand All @@ -4648,17 +4636,15 @@ _mm512_cvtepu8_epi64(__m128i __A) {
return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__A, (__v16qu)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepu8_epi64(__A),
(__v8di)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepu8_epi64(__A),
(__v8di)_mm512_setzero_si512());
Expand All @@ -4669,17 +4655,15 @@ _mm512_cvtepu32_epi64(__m256i __X) {
return (__m512i)__builtin_convertvector((__v8su)__X, __v8di);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepu32_epi64(__X),
(__v8di)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepu32_epi64(__X),
(__v8di)_mm512_setzero_si512());
Expand All @@ -4690,17 +4674,15 @@ _mm512_cvtepu16_epi32(__m256i __A) {
return (__m512i)__builtin_convertvector((__v16hu)__A, __v16si);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepu16_epi32(__A),
(__v16si)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) {
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
(__v16si)_mm512_cvtepu16_epi32(__A),
(__v16si)_mm512_setzero_si512());
Expand All @@ -4711,17 +4693,15 @@ _mm512_cvtepu16_epi64(__m128i __A) {
return (__m512i)__builtin_convertvector((__v8hu)__A, __v8di);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepu16_epi64(__A),
(__v8di)__W);
}

static __inline__ __m512i __DEFAULT_FN_ATTRS512
_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
{
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) {
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
(__v8di)_mm512_cvtepu16_epi64(__A),
(__v8di)_mm512_setzero_si512());
Expand Down
16 changes: 8 additions & 8 deletions clang/lib/Headers/avx512vlbwintrin.h
Original file line number Diff line number Diff line change
Expand Up @@ -1436,8 +1436,8 @@ _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) {
__M);
}

static __inline__ __m128i __DEFAULT_FN_ATTRS128
_mm_cvtepi16_epi8 (__m128i __A) {
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
_mm_cvtepi16_epi8(__m128i __A) {
return (__m128i)__builtin_shufflevector(
__builtin_convertvector((__v8hi)__A, __v8qi),
(__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
Expand Down Expand Up @@ -1477,20 +1477,20 @@ _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
__builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M);
}

static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_cvtepi16_epi8 (__m256i __A) {
static __inline__ __m128i __DEFAULT_FN_ATTRS256_CONSTEXPR
_mm256_cvtepi16_epi8(__m256i __A) {
return (__m128i)__builtin_convertvector((__v16hi) __A, __v16qi);
}

static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) {
static __inline__ __m128i __DEFAULT_FN_ATTRS256_CONSTEXPR
_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
(__v16qi)_mm256_cvtepi16_epi8(__A),
(__v16qi)__O);
}

static __inline__ __m128i __DEFAULT_FN_ATTRS256
_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) {
static __inline__ __m128i __DEFAULT_FN_ATTRS256_CONSTEXPR
_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) {
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
(__v16qi)_mm256_cvtepi16_epi8(__A),
(__v16qi)_mm_setzero_si128());
Expand Down
8 changes: 8 additions & 0 deletions clang/test/CodeGen/X86/avx512bw-builtins.c
Original file line number Diff line number Diff line change
Expand Up @@ -1729,13 +1729,17 @@ __m512i test_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
return _mm512_mask_cvtepi8_epi16(__W, __U, __A);
}

TEST_CONSTEXPR(match_v32hi(_mm512_mask_cvtepi8_epi16(_mm512_set1_epi16(-777), /*1001 1100 0011 1010 0011 1100 1010 0101=*/0x9c3a3ca5, (__m256i)(__v32qs){1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16, 17, -18, 19, -20, 21, -22, 23, -24, 25, -26, 27, -28, 29, -30, 31, -32}), 1, -777, 3, -777, -777, -6, -777, -8, -777, -777, 11, -12, 13, -14, -777, -777, -777, -18, -777, -20, 21, -22, -777, -777, -777, -777, 27, -28, 29, -777, -777, -32));

__m512i test_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) {
// CHECK-LABEL: test_mm512_maskz_cvtepi8_epi16
// 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);
}

TEST_CONSTEXPR(match_v32hi(_mm512_maskz_cvtepi8_epi16(/*1001 1100 0011 1010 0011 1100 1010 0101=*/0x9c3a3ca5, (__m256i)(__v32qs){1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16, 17, -18, 19, -20, 21, -22, 23, -24, 25, -26, 27, -28, 29, -30, 31, -32}), 1, 0, 3, 0, 0, -6, 0, -8, 0, 0, 11, -12, 13, -14, 0, 0, 0, -18, 0, -20, 21, -22, 0, 0, 0, 0, 27, -28, 29, 0, 0, -32));

__m512i test_mm512_cvtepu8_epi16(__m256i __A) {
// CHECK-LABEL: test_mm512_cvtepu8_epi16
// CHECK: zext <32 x i8> %{{.*}} to <32 x i16>
Expand All @@ -1750,13 +1754,17 @@ __m512i test_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) {
return _mm512_mask_cvtepu8_epi16(__W, __U, __A);
}

TEST_CONSTEXPR(match_v32hi(_mm512_mask_cvtepu8_epi16(_mm512_set1_epi16(-777), /*1001 1100 0011 1010 0011 1100 1010 0101=*/0x9c3a3ca5, (__m256i)(__v32qu){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}), 1, -777, 3, -777, -777, 6, -777, 8, -777, -777, 11, 12, 13, 14, -777, -777, -777, 18, -777, 20, 21, 22, -777, -777, -777, -777, 27, 28, 29, -777, -777, 32));

__m512i test_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) {
// CHECK-LABEL: test_mm512_maskz_cvtepu8_epi16
// 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);
}

TEST_CONSTEXPR(match_v32hi(_mm512_maskz_cvtepu8_epi16(/*1001 1100 0011 1010 0011 1100 1010 0101=*/0x9c3a3ca5, (__m256i)(__v32qu){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}), 1, 0, 3, 0, 0, 6, 0, 8, 0, 0, 11, 12, 13, 14, 0, 0, 0, 18, 0, 20, 21, 22, 0, 0, 0, 0, 27, 28, 29, 0, 0, 32));

__m512i test_mm512_shufflehi_epi16(__m512i __A) {
// CHECK-LABEL: test_mm512_shufflehi_epi16
// CHECK: shufflevector <32 x i16> %{{.*}}, <32 x i16> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 5, i32 4, i32 4, i32 8, i32 9, i32 10, i32 11, i32 13, i32 13, i32 12, i32 12, i32 16, i32 17, i32 18, i32 19, i32 21, i32 21, i32 20, i32 20, i32 24, i32 25, i32 26, i32 27, i32 29, i32 29, i32 28, i32 28>
Expand Down
Loading