https://github.com/moorabbit created https://github.com/llvm/llvm-project/pull/158663
The following AVX[512] intrinsics are now constexpr: - `_mm512_mask_cvtepi8_epi32` - `_mm512_maskz_cvtepi8_epi32` - `_mm512_mask_cvtepi8_epi64` - `_mm512_maskz_cvtepi8_epi64` - ` _mm512_mask_cvtepi16_epi32` - ` _mm512_maskz_cvtepi16_epi32` - ` _mm512_mask_cvtepi16_epi64` - ` _mm512_maskz_cvtepi16_epi64` - ` _mm512_mask_cvtepi32_epi64` - ` _mm512_maskz_cvtepi32_epi64` - ` _mm512_mask_cvtepu8_epi32` - ` _mm512_maskz_cvtepu8_epi32` - ` _mm512_mask_cvtepu8_epi64` - ` _mm512_maskz_cvtepu8_epi64` - ` _mm512_mask_cvtepu16_epi32` - ` _mm512_maskz_cvtepu16_epi32` - `_mm512_mask_cvtepu16_epi64` - `_mm512_maskz_cvtepu16_epi64` - `_mm512_mask_cvtepu32_epi64` - `_mm512_maskz_cvtepu32_epi64` - `_mm512_mask_cvtepi8_epi16` - `_mm512_maskz_cvtepi8_epi16` - `_mm512_mask_cvtepu8_epi16` - `_mm512_maskz_cvtepu8_epi16` - `_mm_cvtepi16_epi8` - `_mm256_cvtepi16_epi8` - `_mm256_mask_cvtepi16_epi8` - `_mm256_maskz_cvtepi16_epi8` This PR is part 1 of a series of PRs fixing [#154539](https://github.com/llvm/llvm-project/issues/154539) >From 661f9800b2748115366058051730c8c14bff64a3 Mon Sep 17 00:00:00 2001 From: moorabbit <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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> <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> >From cbc6c9f4cec831f6db49665606560ec37f32b1c1 Mon Sep 17 00:00:00 2001 From: moorabbit <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 <moorab...@proton.me> 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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits