From 661f9800b2748115366058051730c8c14bff64a3 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 07:36:30 -0400 Subject: [PATCH 01/28] _mm512_mask_cvtepi8_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 7ba09039cd826..f54d07ffe9392 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4524,9 +4524,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index f93216e546a63..ffc831f0de413 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3921,6 +3921,8 @@ __m512i test_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) { return _mm512_mask_cvtepi8_epi32(__W, __U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_mask_cvtepi8_epi32(_mm512_set1_epi32(-777), /*1010 0101 1101 0101=*/0xa5d5, _mm_setr_epi8(1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16)), 1, -777, 3, -777, 5, -777, 7, -8, 9, -777, 11, -777, -777, -14, -777, -16)); + __m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepi8_epi32 // CHECK: sext <16 x i8> %{{.*}} to <16 x i32> From 3c3ab1e7d7aff5c63e1ac1ec34fc31f4ccc6a650 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 07:40:25 -0400 Subject: [PATCH 02/28] _mm512_maskz_cvtepi8_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index f54d07ffe9392..3869abbc9aa7b 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4531,9 +4531,8 @@ _mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index ffc831f0de413..a5a7847d9f750 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3930,6 +3930,8 @@ __m512i test_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) { return _mm512_maskz_cvtepi8_epi32(__U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_maskz_cvtepi8_epi32(/*1010 0101 1101 0101=*/0xa5d5, _mm_setr_epi8(1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16)), 1, 0, 3, 0, 5, 0, 7, -8, 9, 0, 11, 0, 0, -14, 0, -16)); + __m512i test_mm512_cvtepi8_epi64(__m128i __A) { // CHECK-LABEL: test_mm512_cvtepi8_epi64 // CHECK: sext <8 x i8> %{{.*}} to <8 x i64> From 768abfc86ee71126e65d65a64960b7cc439de7c1 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 16:30:58 -0400 Subject: [PATCH 03/28] _mm512_mask_cvtepi8_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 3869abbc9aa7b..edf90364de57d 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4545,9 +4545,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index a5a7847d9f750..56123c4b23c0a 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3947,6 +3947,8 @@ __m512i test_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return _mm512_mask_cvtepi8_epi64(__W, __U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_mask_cvtepi8_epi64(_mm512_set1_epi64((long long) -777), /*1101 1100=*/0xdc, _mm_setr_epi8(1, -2, 3, -4, 5, -6, 7, -8, 0, 0, 0, 0, 0, 0, 0, 0)), -777, -777, 3, -4, 5, -777, 7, -8)); + __m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepi8_epi64 // CHECK: sext <8 x i8> %{{.*}} to <8 x i64> From 70a51e170de37f1325a45a11ccb7f8e4fce7b6aa Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:06:18 -0400 Subject: [PATCH 04/28] _mm512_maskz_cvtepi8_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index edf90364de57d..cf9210e2a90e2 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4552,9 +4552,8 @@ _mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __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 ()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 56123c4b23c0a..a9f6b4e8b741e 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3956,6 +3956,8 @@ __m512i test_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { return _mm512_maskz_cvtepi8_epi64(__U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_maskz_cvtepi8_epi64(/*1101 1100=*/0xdc, _mm_setr_epi8(1, -2, 3, -4, 5, -6, 7, -8, 0, 0, 0, 0, 0, 0, 0, 0)), 0, 0, 3, -4, 5, 0, 7, -8)); + __m512i test_mm512_cvtepi32_epi64(__m256i __X) { // CHECK-LABEL: test_mm512_cvtepi32_epi64 // CHECK: sext <8 x i32> %{{.*}} to <8 x i64> From afe14d3a66992f103602f81b36951f455c7b3d6b Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:12:37 -0400 Subject: [PATCH 05/28] _mm512_mask_cvtepi16_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index cf9210e2a90e2..42739294504da 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4585,9 +4585,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index a9f6b4e8b741e..21a1e171b0a4d 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3995,6 +3995,8 @@ __m512i test_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) return _mm512_mask_cvtepi16_epi32(__W, __U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_mask_cvtepi16_epi32(_mm512_set1_epi32(-777), /*1001 1101 1001 1110=*/0x9d9e, _mm256_setr_epi16(1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16)), -777, -2, 3, -4, 5, -777, -777, -8, 9, -777, 11, -12, 13, -777, -777, -16)); + __m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepi16_epi32 // CHECK: sext <16 x i16> %{{.*}} to <16 x i32> From ee9eafa57094c5623f4f37e0e4e54f212a291c6f Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:13:45 -0400 Subject: [PATCH 06/28] _mm512_maskz_cvtepi16_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 42739294504da..98a8e60c9af84 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4592,9 +4592,8 @@ _mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __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 ()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 21a1e171b0a4d..cffe817a7a2d2 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4004,6 +4004,8 @@ __m512i test_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) { return _mm512_maskz_cvtepi16_epi32(__U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_maskz_cvtepi16_epi32(/*1001 1101 1001 1110=*/0x9d9e, _mm256_setr_epi16(1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16)), 0, -2, 3, -4, 5, 0, 0, -8, 9, 0, 11, -12, 13, 0, 0, -16)); + __m512i test_mm512_cvtepi16_epi64(__m128i __A) { // CHECK-LABEL: test_mm512_cvtepi16_epi64 // CHECK: sext <8 x i16> %{{.*}} to <8 x i64> From be011af4262650fdcbb2145ae67e81967ff94f1d Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:19:35 -0400 Subject: [PATCH 07/28] _mm512_mask_cvtepi16_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 98a8e60c9af84..3d23f683ab03d 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4604,9 +4604,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index cffe817a7a2d2..2240fa82da436 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4021,6 +4021,8 @@ __m512i test_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return _mm512_mask_cvtepi16_epi64(__W, __U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_mask_cvtepi16_epi64(_mm512_set1_epi64((long long) -777), /*1100 0011=*/0xc3, _mm_setr_epi16(1, -2, 3, -4, 5, -6, 7, -8)), 1, -2, -777, -777, -777, -777, 7, -8)); + __m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepi16_epi64 // CHECK: sext <8 x i16> %{{.*}} to <8 x i64> From 2704865700944ca25b18bd3df371e9e18621fcec Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:21:20 -0400 Subject: [PATCH 08/28] _mm512_maskz_cvtepi16_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 3d23f683ab03d..d14e9328bf729 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4611,9 +4611,8 @@ _mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 2240fa82da436..7f1684d31d17a 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4030,6 +4030,8 @@ __m512i test_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { return _mm512_maskz_cvtepi16_epi64(__U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_maskz_cvtepi16_epi64(/*1100 0011=*/0xc3, _mm_setr_epi16(1, -2, 3, -4, 5, -6, 7, -8)), 1, -2, 0, 0, 0, 0, 7, -8)); + __m512i test_mm512_cvtepu8_epi32(__m128i __A) { // CHECK-LABEL: test_mm512_cvtepu8_epi32 // CHECK: zext <16 x i8> %{{.*}} to <16 x i32> From dd66726e41a7b9e3f0c158d67885a9ef1c061e0b Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:25:04 -0400 Subject: [PATCH 09/28] _mm512_mask_cvtepi32_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index d14e9328bf729..cd4f645491827 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4564,9 +4564,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 7f1684d31d17a..62517baee869b 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3973,6 +3973,8 @@ __m512i test_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) { return _mm512_mask_cvtepi32_epi64(__W, __U, __X); } +TEST_CONSTEXPR(match_v8di(_mm512_mask_cvtepi32_epi64(_mm512_set1_epi64((long long) -777), /*0011 1010=*/0x3a, _mm256_setr_epi32(1, -2, 3, -4, 5, -6, 7, -8)), -777, -2, -777, -4, 5, -6, -777, -777)); + __m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) { // CHECK-LABEL: test_mm512_maskz_cvtepi32_epi64 // CHECK: sext <8 x i32> %{{.*}} to <8 x i64> From 85107c6c9721629c268a27c69432ab1d6f5682e0 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:26:12 -0400 Subject: [PATCH 10/28] _mm512_maskz_cvtepi32_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index cd4f645491827..10920dd3415e6 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4571,9 +4571,8 @@ _mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 62517baee869b..2084f302e3c2b 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -3982,6 +3982,8 @@ __m512i test_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) { return _mm512_maskz_cvtepi32_epi64(__U, __X); } +TEST_CONSTEXPR(match_v8di(_mm512_maskz_cvtepi32_epi64(/*0011 1010=*/0x3a, _mm256_setr_epi32(1, -2, 3, -4, 5, -6, 7, -8)), 0, -2, 0, -4, 5, -6, 0, 0)); + __m512i test_mm512_cvtepi16_epi32(__m256i __A) { // CHECK-LABEL: test_mm512_cvtepi16_epi32 // CHECK: sext <16 x i16> %{{.*}} to <16 x i32> From 5017950ee82691c9f082e1b538ff694d4f34c04c Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:32:36 -0400 Subject: [PATCH 11/28] _mm512_mask_cvtepu8_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 10920dd3415e6..499322a785cb1 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4621,9 +4621,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 2084f302e3c2b..c4bda66627429 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4051,6 +4051,8 @@ __m512i test_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) { return _mm512_mask_cvtepu8_epi32(__W, __U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_mask_cvtepu8_epi32(_mm512_set1_epi32(-777), /*1010 0101 1101 0101=*/0xa5d5, (__m128i)(__v16qu){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), 1, -777, 3, -777, 5, -777, 7, 8, 9, -777, 11, -777, -777, 14, -777, 16)); + __m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepu8_epi32 // CHECK: zext <16 x i8> %{{.*}} to <16 x i32> From 6dddb91fd670c599a9ed6bddc482714a8d1f7b60 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:34:04 -0400 Subject: [PATCH 12/28] _mm512_maskz_cvtepu8_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 499322a785cb1..b2252067781cb 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4628,9 +4628,8 @@ _mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index c4bda66627429..6a5072a7b4914 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4060,6 +4060,8 @@ __m512i test_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) { return _mm512_maskz_cvtepu8_epi32(__U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_maskz_cvtepu8_epi32(/*1010 0101 1101 0101=*/0xa5d5, (__m128i)(__v16qu){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), 1, 0, 3, 0, 5, 0, 7, 8, 9, 0, 11, 0, 0, 14, 0, 16)); + __m512i test_mm512_cvtepu8_epi64(__m128i __A) { // CHECK-LABEL: test_mm512_cvtepu8_epi64 // CHECK: zext <8 x i8> %{{.*}} to <8 x i64> From 895bdf104f22fcf895d4d5f2ba9cffd9125d5565 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:39:10 -0400 Subject: [PATCH 13/28] _mm512_mask_cvtepu8_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index b2252067781cb..9956a9eab1c5b 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4640,9 +4640,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 6a5072a7b4914..c82f0c443bbcf 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4077,6 +4077,8 @@ __m512i test_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return _mm512_mask_cvtepu8_epi64(__W, __U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_mask_cvtepu8_epi64(_mm512_set1_epi64((long long) -777), /*1011 1001=*/0xb9, (__m128i)(__v16qu){1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0}), 1, -777, -777, 4, 5, 6, -777, 8)); + __m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepu8_epi64 // CHECK: zext <8 x i8> %{{.*}} to <8 x i64> From ce8f7c4c7c218efadf05529742fe513539d145db Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:42:11 -0400 Subject: [PATCH 14/28] _mm512_maskz_cvtepu8_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 9956a9eab1c5b..21cceae8cea62 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4647,9 +4647,8 @@ _mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index c82f0c443bbcf..2a1a67174d265 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4086,6 +4086,8 @@ __m512i test_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { return _mm512_maskz_cvtepu8_epi64(__U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_maskz_cvtepu8_epi64(/*1011 1001=*/0xb9, (__m128i)(__v16qu){1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0}), 1, 0, 0, 4, 5, 6, 0, 8)); + __m512i test_mm512_cvtepu32_epi64(__m256i __X) { // CHECK-LABEL: test_mm512_cvtepu32_epi64 // CHECK: zext <8 x i32> %{{.*}} to <8 x i64> From fb326b2b90feb61dbcc6f042679cf53f69a2049a Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:46:34 -0400 Subject: [PATCH 15/28] _mm512_mask_cvtepu16_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 21cceae8cea62..60966beaa25b7 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4680,9 +4680,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 2a1a67174d265..006d8920609d5 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4123,6 +4123,8 @@ __m512i test_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) return _mm512_mask_cvtepu16_epi32(__W, __U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_mask_cvtepu16_epi32(_mm512_set1_epi32(-777), /*1001 0110 1010 0010=*/0x96a2, (__m256i)(__v16hu){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), -777, 2, -777, -777, -777, 6, -777, 8, -777, 10, 11, -777, 13, -777, -777, 16)); + __m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepu16_epi32 // CHECK: zext <16 x i16> %{{.*}} to <16 x i32> From e9192531eca743152b402bd40031be375061c883 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:47:50 -0400 Subject: [PATCH 16/28] _mm512_maskz_cvtepu16_epi32 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 60966beaa25b7..5db125e256103 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4687,9 +4687,8 @@ _mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 006d8920609d5..550aca6db59e2 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4132,6 +4132,8 @@ __m512i test_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) { return _mm512_maskz_cvtepu16_epi32(__U, __A); } +TEST_CONSTEXPR(match_v16si(_mm512_maskz_cvtepu16_epi32(/*1001 0110 1010 0010=*/0x96a2, (__m256i)(__v16hu){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), 0, 2, 0, 0, 0, 6, 0, 8, 0, 10, 11, 0, 13, 0, 0, 16)); + __m512i test_mm512_cvtepu16_epi64(__m128i __A) { // CHECK-LABEL: test_mm512_cvtepu16_epi64 // CHECK: zext <8 x i16> %{{.*}} to <8 x i64> From 7442adba263f4127a68d12a47a6cb92186fc4c43 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:51:15 -0400 Subject: [PATCH 17/28] _mm512_mask_cvtepu16_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 5db125e256103..c536daaa932af 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4699,9 +4699,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 550aca6db59e2..6ea81cb74a55e 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4148,6 +4148,8 @@ __m512i test_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return _mm512_mask_cvtepu16_epi64(__W, __U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_mask_cvtepu16_epi64(_mm512_set1_epi64((long long) -777), /*0000 0101=*/0x05, (__m128i)(__v8hu){1, 2, 3, 4, 5, 6, 7, 8}), 1, -777, 3, -777, -777, -777, -777, -777)); + __m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { // CHECK-LABEL: test_mm512_maskz_cvtepu16_epi64 // CHECK: zext <8 x i16> %{{.*}} to <8 x i64> From 003e0c306c6bd69a6092c7b419759104e1311977 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:53:18 -0400 Subject: [PATCH 18/28] _mm512_maskz_cvtepu16_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index c536daaa932af..3383581bd3664 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4706,9 +4706,8 @@ _mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 6ea81cb74a55e..975b9f2221b61 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4157,6 +4157,8 @@ __m512i test_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { return _mm512_maskz_cvtepu16_epi64(__U, __A); } +TEST_CONSTEXPR(match_v8di(_mm512_maskz_cvtepu16_epi64(/*0000 0101=*/0x05, (__m128i)(__v8hu){1, 2, 3, 4, 5, 6, 7, 8}), 1, 0, 3, 0, 0, 0, 0, 0)); + __m512i test_mm512_rol_epi32(__m512i __A) { // CHECK-LABEL: test_mm512_rol_epi32 // CHECK: @llvm.fshl.v16i32 From 70c66b03bce251b50deae7bfed9facee92f75cb3 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:57:13 -0400 Subject: [PATCH 19/28] _mm512_mask_cvtepu32_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 3383581bd3664..7a3c7e21d0401 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4659,9 +4659,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 975b9f2221b61..8c827a971d1aa 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4102,6 +4102,8 @@ __m512i test_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) { return _mm512_mask_cvtepu32_epi64(__W, __U, __X); } +TEST_CONSTEXPR(match_v8di(_mm512_mask_cvtepu32_epi64(_mm512_set1_epi64((long long) -777), /*0101 0001=*/0x51, (__m256i)(__v8su){1, 2, 3, 4, 5, 6, 7, 8}), 1, -777, -777, -777, 5, -777, 7, -777)); + __m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) { // CHECK-LABEL: test_mm512_maskz_cvtepu32_epi64 // CHECK: zext <8 x i32> %{{.*}} to <8 x i64> From dd694adeeec458ca2fd2291e784277d72495b314 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 17:58:25 -0400 Subject: [PATCH 20/28] _mm512_maskz_cvtepu32_epi64 --- clang/lib/Headers/avx512fintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512f-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 7a3c7e21d0401..9c32d1104e0c9 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4666,9 +4666,8 @@ _mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __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()); diff --git a/clang/test/CodeGen/X86/avx512f-builtins.c b/clang/test/CodeGen/X86/avx512f-builtins.c index 8c827a971d1aa..5b71925fa4afa 100644 --- a/clang/test/CodeGen/X86/avx512f-builtins.c +++ b/clang/test/CodeGen/X86/avx512f-builtins.c @@ -4111,6 +4111,8 @@ __m512i test_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) { return _mm512_maskz_cvtepu32_epi64(__U, __X); } +TEST_CONSTEXPR(match_v8di(_mm512_maskz_cvtepu32_epi64(/*0101 0001=*/0x51, (__m256i)(__v8su){1, 2, 3, 4, 5, 6, 7, 8}), 1, 0, 0, 0, 5, 0, 7, 0)); + __m512i test_mm512_cvtepu16_epi32(__m256i __A) { // CHECK-LABEL: test_mm512_cvtepu16_epi32 // CHECK: zext <16 x i16> %{{.*}} to <16 x i32> From 971d2157abea6120eda2e167a085abe4e248ca19 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 18:12:12 -0400 Subject: [PATCH 21/28] _mm512_mask_cvtepi8_epi16 --- clang/lib/Headers/avx512bwintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512bw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512bwintrin.h b/clang/lib/Headers/avx512bwintrin.h index 42fce7d89e1bb..51a682a9f106c 100644 --- a/clang/lib/Headers/avx512bwintrin.h +++ b/clang/lib/Headers/avx512bwintrin.h @@ -1327,9 +1327,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512bw-builtins.c b/clang/test/CodeGen/X86/avx512bw-builtins.c index 9d605efcbd758..b3e0579794cc3 100644 --- a/clang/test/CodeGen/X86/avx512bw-builtins.c +++ b/clang/test/CodeGen/X86/avx512bw-builtins.c @@ -1683,6 +1683,8 @@ __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> From 4f2b9290cf25ccdb38311198141452d6a442f341 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 18:13:34 -0400 Subject: [PATCH 22/28] _mm512_maskz_cvtepi8_epi16 --- clang/lib/Headers/avx512bwintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512bw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512bwintrin.h b/clang/lib/Headers/avx512bwintrin.h index 51a682a9f106c..172478b2b18cf 100644 --- a/clang/lib/Headers/avx512bwintrin.h +++ b/clang/lib/Headers/avx512bwintrin.h @@ -1334,9 +1334,8 @@ _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __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()); diff --git a/clang/test/CodeGen/X86/avx512bw-builtins.c b/clang/test/CodeGen/X86/avx512bw-builtins.c index b3e0579794cc3..bc3a2a6dc28a4 100644 --- a/clang/test/CodeGen/X86/avx512bw-builtins.c +++ b/clang/test/CodeGen/X86/avx512bw-builtins.c @@ -1692,6 +1692,8 @@ __m512i test_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) { 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> From cda8248032762ef91cb5a05cd75f711f36d31779 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 18:15:31 -0400 Subject: [PATCH 23/28] _mm512_mask_cvtepu8_epi16 --- clang/lib/Headers/avx512bwintrin.h | 5 ++--- clang/test/CodeGen/X86/avx512bw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Headers/avx512bwintrin.h b/clang/lib/Headers/avx512bwintrin.h index 172478b2b18cf..7939fe8b65758 100644 --- a/clang/lib/Headers/avx512bwintrin.h +++ b/clang/lib/Headers/avx512bwintrin.h @@ -1346,9 +1346,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512bw-builtins.c b/clang/test/CodeGen/X86/avx512bw-builtins.c index bc3a2a6dc28a4..b39cd7670db4b 100644 --- a/clang/test/CodeGen/X86/avx512bw-builtins.c +++ b/clang/test/CodeGen/X86/avx512bw-builtins.c @@ -1708,6 +1708,8 @@ __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> From 251fed0a5a914baae8a3923f5d3f2ce05a8dec80 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 18:16:59 -0400 Subject: [PATCH 24/28] _mm512_maskz_cvtepu8_epi16 --- clang/lib/Headers/avx512bwintrin.h | 6 ++---- clang/test/CodeGen/X86/avx512bw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/clang/lib/Headers/avx512bwintrin.h b/clang/lib/Headers/avx512bwintrin.h index 7939fe8b65758..593d64232c62a 100644 --- a/clang/lib/Headers/avx512bwintrin.h +++ b/clang/lib/Headers/avx512bwintrin.h @@ -1353,15 +1353,13 @@ _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __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))) diff --git a/clang/test/CodeGen/X86/avx512bw-builtins.c b/clang/test/CodeGen/X86/avx512bw-builtins.c index b39cd7670db4b..fa1dbe7fc3860 100644 --- a/clang/test/CodeGen/X86/avx512bw-builtins.c +++ b/clang/test/CodeGen/X86/avx512bw-builtins.c @@ -1717,6 +1717,8 @@ __m512i test_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) { 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> From cbc6c9f4cec831f6db49665606560ec37f32b1c1 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Sun, 14 Sep 2025 18:27:17 -0400 Subject: [PATCH 25/28] _mm_cvtepi16_epi8 --- clang/lib/Headers/avx512vlbwintrin.h | 4 ++-- clang/test/CodeGen/X86/avx512vlbw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/lib/Headers/avx512vlbwintrin.h b/clang/lib/Headers/avx512vlbwintrin.h index 6e3efa7b3562c..464e1f34ea1d2 100644 --- a/clang/lib/Headers/avx512vlbwintrin.h +++ b/clang/lib/Headers/avx512vlbwintrin.h @@ -1440,8 +1440,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, diff --git a/clang/test/CodeGen/X86/avx512vlbw-builtins.c b/clang/test/CodeGen/X86/avx512vlbw-builtins.c index d62235a630fd8..8f062537e7593 100644 --- a/clang/test/CodeGen/X86/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/X86/avx512vlbw-builtins.c @@ -1928,6 +1928,8 @@ __m128i test_mm_cvtepi16_epi8(__m128i __A) { return _mm_cvtepi16_epi8(__A); } +TEST_CONSTEXPR(match_v16qi(_mm_cvtepi16_epi8((__m128i)(__v8hi){1, 2, 3, 4, 5, 6, 7, 8}), 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0)); + __m128i test_mm_mask_cvtepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: test_mm_mask_cvtepi16_epi8 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128 From c43269273ab865776b09aa054167d0dd0ad8c1ef Mon Sep 17 00:00:00 2001 From: moorabbit Date: Mon, 15 Sep 2025 10:12:03 -0400 Subject: [PATCH 26/28] _mm256_cvtepi16_epi8 --- clang/lib/Headers/avx512vlbwintrin.h | 4 ++-- clang/test/CodeGen/X86/avx512vlbw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/lib/Headers/avx512vlbwintrin.h b/clang/lib/Headers/avx512vlbwintrin.h index 464e1f34ea1d2..c93c5033a3b48 100644 --- a/clang/lib/Headers/avx512vlbwintrin.h +++ b/clang/lib/Headers/avx512vlbwintrin.h @@ -1481,8 +1481,8 @@ _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); } diff --git a/clang/test/CodeGen/X86/avx512vlbw-builtins.c b/clang/test/CodeGen/X86/avx512vlbw-builtins.c index 8f062537e7593..7bebce342d014 100644 --- a/clang/test/CodeGen/X86/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/X86/avx512vlbw-builtins.c @@ -1948,6 +1948,8 @@ __m128i test_mm256_cvtepi16_epi8(__m256i __A) { return _mm256_cvtepi16_epi8(__A); } +TEST_CONSTEXPR(match_v16qi(_mm256_cvtepi16_epi8((__m256i)(__v16hi){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)); + __m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) { // CHECK-LABEL: test_mm256_mask_cvtepi16_epi8 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8> From 87972d4b11fca48d2f3985395ef66e894f12f0ea Mon Sep 17 00:00:00 2001 From: moorabbit Date: Mon, 15 Sep 2025 10:17:39 -0400 Subject: [PATCH 27/28] _mm256_mask_cvtepi16_epi8 --- clang/lib/Headers/avx512vlbwintrin.h | 4 ++-- clang/test/CodeGen/X86/avx512vlbw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/lib/Headers/avx512vlbwintrin.h b/clang/lib/Headers/avx512vlbwintrin.h index c93c5033a3b48..ec516dc8caa5e 100644 --- a/clang/lib/Headers/avx512vlbwintrin.h +++ b/clang/lib/Headers/avx512vlbwintrin.h @@ -1486,8 +1486,8 @@ _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); diff --git a/clang/test/CodeGen/X86/avx512vlbw-builtins.c b/clang/test/CodeGen/X86/avx512vlbw-builtins.c index 7bebce342d014..6b28040a04219 100644 --- a/clang/test/CodeGen/X86/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/X86/avx512vlbw-builtins.c @@ -1957,6 +1957,8 @@ __m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) { return _mm256_mask_cvtepi16_epi8(__O, __M, __A); } +TEST_CONSTEXPR(match_v16qi(_mm256_mask_cvtepi16_epi8(_mm_set1_epi8(-177), /*1010 0011 0011 0101=*/0xa335, (__m256i)(__v16hi){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), 1, -177, 3, -177, 5, 6, -177, -177, 9, 10, -177, -177, -177, 14, -177, 16)); + __m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) { // CHECK-LABEL: test_mm256_maskz_cvtepi16_epi8 // CHECK: trunc <16 x i16> %{{.*}} to <16 x i8> From 4b9a8504d23460941b91b7d6969c28f4374f3fa3 Mon Sep 17 00:00:00 2001 From: moorabbit Date: Mon, 15 Sep 2025 10:18:57 -0400 Subject: [PATCH 28/28] _mm256_maskz_cvtepi16_epi8 --- clang/lib/Headers/avx512vlbwintrin.h | 4 ++-- clang/test/CodeGen/X86/avx512vlbw-builtins.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/lib/Headers/avx512vlbwintrin.h b/clang/lib/Headers/avx512vlbwintrin.h index ec516dc8caa5e..17ecd29741047 100644 --- a/clang/lib/Headers/avx512vlbwintrin.h +++ b/clang/lib/Headers/avx512vlbwintrin.h @@ -1493,8 +1493,8 @@ _mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __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()); diff --git a/clang/test/CodeGen/X86/avx512vlbw-builtins.c b/clang/test/CodeGen/X86/avx512vlbw-builtins.c index 6b28040a04219..719a2c400c1a2 100644 --- a/clang/test/CodeGen/X86/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/X86/avx512vlbw-builtins.c @@ -1966,6 +1966,8 @@ __m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) { return _mm256_maskz_cvtepi16_epi8(__M, __A); } +TEST_CONSTEXPR(match_v16qi(_mm256_maskz_cvtepi16_epi8(/*1010 0011 0011 0101=*/0xa335, (__m256i)(__v16hi){1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}), 1, 0, 3, 0, 5, 6, 0, 0, 9, 10, 0, 0, 0, 14, 0, 16)); + __m128i test_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { // CHECK-LABEL: test_mm_mask_mulhrs_epi16 // CHECK: @llvm.x86.ssse3.pmul.hr.sw