https://github.com/bursow updated 
https://github.com/llvm/llvm-project/pull/156260

>From 96b664cb2f16fc8ad29d0273cc62be906afb2491 Mon Sep 17 00:00:00 2001
From: Burhan <sega...@hotmail.com>
Date: Sun, 31 Aug 2025 21:14:20 +0300
Subject: [PATCH 1/3] [X86] Update BMI, BMI2 and TBM constexpr tests

Update constexpr tests in these files to use the TEST_CONSTEXPR helper macro 
for clarity and consistency.
---
 clang/test/CodeGen/X86/bmi-builtins.c  | 117 +++++++++++++------------
 clang/test/CodeGen/X86/bmi2-builtins.c |  61 ++++++-------
 clang/test/CodeGen/X86/tbm-builtins.c  |  49 ++++++-----
 3 files changed, 115 insertions(+), 112 deletions(-)

diff --git a/clang/test/CodeGen/X86/bmi-builtins.c 
b/clang/test/CodeGen/X86/bmi-builtins.c
index ded40ca59781e..ffbc1da3000cc 100644
--- a/clang/test/CodeGen/X86/bmi-builtins.c
+++ b/clang/test/CodeGen/X86/bmi-builtins.c
@@ -5,6 +5,7 @@
 
 
 #include <immintrin.h>
+#include <builtin_test_helpers.h>
 
 // NOTE: This should match the tests in 
llvm/test/CodeGen/X86/bmi-intrinsics-fast-isel.ll
 
@@ -237,85 +238,85 @@ unsigned long long test_blsr_u64(unsigned long long __X) {
 
 // Test constexpr handling.
 #if defined(__cplusplus) && (__cplusplus >= 201103L)
-char andnu32[__andn_u32(0x01234567, 0xFECDBA98) == (~0x01234567 & 0xFECDBA98) 
? 1 : -1];
-char andn2u32[_andn_u32(0x01234567, 0xFECDBA98) == (~0x01234567 & 0xFECDBA98) 
? 1 : -1];
+TEST_CONSTEXPR(__andn_u32(0x01234567, 0xFECDBA98) == (~0x01234567 & 
0xFECDBA98));
+TEST_CONSTEXPR(_andn_u32(0x01234567, 0xFECDBA98) == (~0x01234567 & 
0xFECDBA98));
 
-char bextr32_0[__bextr_u32(0x00000000, 0x00000000) == 0x00000000 ? 1 : -1];
-char bextr32_1[__bextr_u32(0x000003F0, 0xFFFF1004) == 0x0000003F ? 1 : -1];
-char bextr32_2[__bextr_u32(0x000003F0, 0xFFFF3008) == 0x00000003 ? 1 : -1];
+TEST_CONSTEXPR(__bextr_u32(0x00000000, 0x00000000) == 0x00000000);
+TEST_CONSTEXPR(__bextr_u32(0x000003F0, 0xFFFF1004) == 0x0000003F);
+TEST_CONSTEXPR(__bextr_u32(0x000003F0, 0xFFFF3008) == 0x00000003);
 
-char bextr32_3[_bextr2_u32(0x00000000, 0x00000000) == 0x00000000 ? 1 : -1];
-char bextr32_4[_bextr2_u32(0x000003F0, 0xFFFF1004) == 0x0000003F ? 1 : -1];
-char bextr32_5[_bextr2_u32(0x000003F0, 0xFFFF3008) == 0x00000003 ? 1 : -1];
+TEST_CONSTEXPR(_bextr2_u32(0x00000000, 0x00000000) == 0x00000000);
+TEST_CONSTEXPR(_bextr2_u32(0x000003F0, 0xFFFF1004) == 0x0000003F);
+TEST_CONSTEXPR(_bextr2_u32(0x000003F0, 0xFFFF3008) == 0x00000003);
 
-char bextr32_6[_bextr_u32(0x00000000, 0x00000000, 0x00000000) == 0x00000000 ? 
1 : -1];
-char bextr32_7[_bextr_u32(0x000003F0, 0xFFFFFF04, 0xFFFFFF10) == 0x0000003F ? 
1 : -1];
-char bextr32_8[_bextr_u32(0x000003F0, 0xFFFFFF08, 0xFFFFFF30) == 0x00000003 ? 
1 : -1];
+TEST_CONSTEXPR(_bextr_u32(0x00000000, 0x00000000, 0x00000000) == 0x00000000);
+TEST_CONSTEXPR(_bextr_u32(0x000003F0, 0xFFFFFF04, 0xFFFFFF10) == 0x0000003F);
+TEST_CONSTEXPR(_bextr_u32(0x000003F0, 0xFFFFFF08, 0xFFFFFF30) == 0x00000003);
 
-char blsiu32[__blsi_u32(0x89ABCDEF) == (0x89ABCDEF & -0x89ABCDEF) ? 1 : -1];
-char blsi2u32[_blsi_u32(0x89ABCDEF) == (0x89ABCDEF & -0x89ABCDEF) ? 1 : -1];
+TEST_CONSTEXPR(__blsi_u32(0x89ABCDEF) == (0x89ABCDEF & -0x89ABCDEF));
+TEST_CONSTEXPR(_blsi_u32(0x89ABCDEF) == (0x89ABCDEF & -0x89ABCDEF));
 
-char blsmasku32[__blsmsk_u32(0x89ABCDEF) == (0x89ABCDEF ^ (0x89ABCDEF - 1)) ? 
1 : -1];
-char blsmask2u32[_blsmsk_u32(0x89ABCDEF) == (0x89ABCDEF ^ (0x89ABCDEF - 1)) ? 
1 : -1];
+TEST_CONSTEXPR(__blsmsk_u32(0x89ABCDEF) == (0x89ABCDEF ^ (0x89ABCDEF - 1)));
+TEST_CONSTEXPR(_blsmsk_u32(0x89ABCDEF) == (0x89ABCDEF ^ (0x89ABCDEF - 1)));
 
-char blsru32[__blsr_u32(0x89ABCDEF) == (0x89ABCDEF & (0x89ABCDEF - 1)) ? 1 : 
-1];
-char blsr2u32[_blsr_u32(0x89ABCDEF) == (0x89ABCDEF & (0x89ABCDEF - 1)) ? 1 : 
-1];
+TEST_CONSTEXPR(__blsr_u32(0x89ABCDEF) == (0x89ABCDEF & (0x89ABCDEF - 1)));
+TEST_CONSTEXPR(_blsr_u32(0x89ABCDEF) == (0x89ABCDEF & (0x89ABCDEF - 1)));
 
-char tzcntu16_0[__tzcnt_u16(0x0000) == 16 ? 1 : -1];
-char tzcntu16_1[__tzcnt_u16(0x0001) ==  0 ? 1 : -1];
-char tzcntu16_2[__tzcnt_u16(0x0010) ==  4 ? 1 : -1];
+TEST_CONSTEXPR(__tzcnt_u16(0x0000) == 16);
+TEST_CONSTEXPR(__tzcnt_u16(0x0001) == 0);
+TEST_CONSTEXPR(__tzcnt_u16(0x0010) == 4);
 
-char tzcnt2u16_0[_tzcnt_u16(0x0000) == 16 ? 1 : -1];
-char tzcnt2u16_1[_tzcnt_u16(0x0001) ==  0 ? 1 : -1];
-char tzcnt2u16_2[_tzcnt_u16(0x0010) ==  4 ? 1 : -1];
+TEST_CONSTEXPR(_tzcnt_u16(0x0000) == 16);
+TEST_CONSTEXPR(_tzcnt_u16(0x0001) == 0);
+TEST_CONSTEXPR(_tzcnt_u16(0x0010) == 4);
 
-char tzcntu32_0[__tzcnt_u32(0x00000000) == 32 ? 1 : -1];
-char tzcntu32_1[__tzcnt_u32(0x00000001) ==  0 ? 1 : -1];
-char tzcntu32_2[__tzcnt_u32(0x00000080) ==  7 ? 1 : -1];
+TEST_CONSTEXPR(__tzcnt_u32(0x00000000) == 32);
+TEST_CONSTEXPR(__tzcnt_u32(0x00000001) == 0);
+TEST_CONSTEXPR(__tzcnt_u32(0x00000080) == 7);
 
-char tzcnt2u32_0[_tzcnt_u32(0x00000000) == 32 ? 1 : -1];
-char tzcnt2u32_1[_tzcnt_u32(0x00000001) ==  0 ? 1 : -1];
-char tzcnt2u32_2[_tzcnt_u32(0x00000080) ==  7 ? 1 : -1];
+TEST_CONSTEXPR(_tzcnt_u32(0x00000000) == 32);
+TEST_CONSTEXPR(_tzcnt_u32(0x00000001) == 0);
+TEST_CONSTEXPR(_tzcnt_u32(0x00000080) == 7);
 
-char tzcnt3u32_0[_mm_tzcnt_32(0x00000000) == 32 ? 1 : -1];
-char tzcnt3u32_1[_mm_tzcnt_32(0x00000001) ==  0 ? 1 : -1];
-char tzcnt3u32_2[_mm_tzcnt_32(0x00000080) ==  7 ? 1 : -1];
+TEST_CONSTEXPR(_mm_tzcnt_32(0x00000000) == 32);
+TEST_CONSTEXPR(_mm_tzcnt_32(0x00000001) == 0);
+TEST_CONSTEXPR(_mm_tzcnt_32(0x00000080) == 7);
 
 #ifdef __x86_64__
-char andnu64[__andn_u64(0x0123456789ABCDEFULL, 0xFECDBA9876543210ULL) == 
(~0x0123456789ABCDEFULL & 0xFECDBA9876543210ULL) ? 1 : -1];
-char andn2u64[_andn_u64(0x0123456789ABCDEFULL, 0xFECDBA9876543210ULL) == 
(~0x0123456789ABCDEFULL & 0xFECDBA9876543210ULL) ? 1 : -1];
+TEST_CONSTEXPR(__andn_u64(0x0123456789ABCDEFULL, 0xFECDBA9876543210ULL) == 
(~0x0123456789ABCDEFULL & 0xFECDBA9876543210ULL));
+TEST_CONSTEXPR(_andn_u64(0x0123456789ABCDEFULL, 0xFECDBA9876543210ULL) == 
(~0x0123456789ABCDEFULL & 0xFECDBA9876543210ULL));
 
-char bextr64_0[__bextr_u64(0x0000000000000000ULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL ? 1 : -1];
-char bextr64_1[__bextr_u64(0xF000000000000001ULL, 0x0000000000004001ULL) == 
0x7800000000000000ULL ? 1 : -1];
-char bextr64_2[__bextr_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFF1001ULL) == 
0x0000000000000000ULL ? 1 : -1];
+TEST_CONSTEXPR(__bextr_u64(0x0000000000000000ULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL);
+TEST_CONSTEXPR(__bextr_u64(0xF000000000000001ULL, 0x0000000000004001ULL) == 
0x7800000000000000ULL);
+TEST_CONSTEXPR(__bextr_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFF1001ULL) == 
0x0000000000000000ULL);
 
-char bextr64_3[_bextr2_u64(0x0000000000000000ULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL ? 1 : -1];
-char bextr64_4[_bextr2_u64(0xF000000000000001ULL, 0x0000000000004001ULL) == 
0x7800000000000000ULL ? 1 : -1];
-char bextr64_5[_bextr2_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFF1001ULL) == 
0x0000000000000000ULL ? 1 : -1];
+TEST_CONSTEXPR(_bextr2_u64(0x0000000000000000ULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL);
+TEST_CONSTEXPR(_bextr2_u64(0xF000000000000001ULL, 0x0000000000004001ULL) == 
0x7800000000000000ULL);
+TEST_CONSTEXPR(_bextr2_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFF1001ULL) == 
0x0000000000000000ULL);
 
-char bextr64_6[_bextr_u64(0x0000000000000000ULL, 0x0000000000000000ULL, 
0x0000000000000000ULL) == 0x0000000000000000ULL ? 1 : -1];
-char bextr64_7[_bextr_u64(0xF000000000000001ULL, 0x0000000000000001ULL, 
0x0000000000000040ULL) == 0x7800000000000000ULL ? 1 : -1];
-char bextr64_8[_bextr_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFFFF01ULL, 
0xFFFFFFFFFFFFFF10ULL) == 0x0000000000000000ULL ? 1 : -1];
+TEST_CONSTEXPR(_bextr_u64(0x0000000000000000ULL, 0x0000000000000000ULL, 
0x0000000000000000ULL) == 0x0000000000000000ULL);
+TEST_CONSTEXPR(_bextr_u64(0xF000000000000001ULL, 0x0000000000000001ULL, 
0x0000000000000040ULL) == 0x7800000000000000ULL);
+TEST_CONSTEXPR(_bextr_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFFFF01ULL, 
0xFFFFFFFFFFFFFF10ULL) == 0x0000000000000000ULL);
 
-char blsiu64[__blsi_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
-0x0123456789ABCDEFULL) ? 1 : -1];
-char blsi2u64[_blsi_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
-0x0123456789ABCDEFULL) ? 1 : -1];
+TEST_CONSTEXPR(__blsi_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
-0x0123456789ABCDEFULL));
+TEST_CONSTEXPR(_blsi_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
-0x0123456789ABCDEFULL));
 
-char blsmasku64[__blsmsk_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL 
^ (0x0123456789ABCDEFULL - 1)) ? 1 : -1];
-char blsmask2u64[_blsmsk_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL 
^ (0x0123456789ABCDEFULL - 1)) ? 1 : -1];
+TEST_CONSTEXPR(__blsmsk_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL ^ 
(0x0123456789ABCDEFULL - 1)));
+TEST_CONSTEXPR(_blsmsk_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL ^ 
(0x0123456789ABCDEFULL - 1)));
 
-char blsru64[__blsr_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
(0x0123456789ABCDEFULL - 1)) ? 1 : -1];
-char blsr2u64[_blsr_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
(0x0123456789ABCDEFULL - 1)) ? 1 : -1];
+TEST_CONSTEXPR(__blsr_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
(0x0123456789ABCDEFULL - 1)));
+TEST_CONSTEXPR(_blsr_u64(0x0123456789ABCDEFULL) == (0x0123456789ABCDEFULL & 
(0x0123456789ABCDEFULL - 1)));
 
-char tzcntu64_0[__tzcnt_u64(0x0000000000000000ULL) == 64 ? 1 : -1];
-char tzcntu64_1[__tzcnt_u64(0x0000000000000001ULL) ==  0 ? 1 : -1];
-char tzcntu64_2[__tzcnt_u64(0x0000000800000000ULL) == 35 ? 1 : -1];
+TEST_CONSTEXPR(__tzcnt_u64(0x0000000000000000ULL) == 64);
+TEST_CONSTEXPR(__tzcnt_u64(0x0000000000000001ULL) == 0);
+TEST_CONSTEXPR(__tzcnt_u64(0x0000000800000000ULL) == 35);
 
-char tzcnt2u64_0[_tzcnt_u64(0x0000000000000000ULL) == 64 ? 1 : -1];
-char tzcnt2u64_1[_tzcnt_u64(0x0000000000000001ULL) ==  0 ? 1 : -1];
-char tzcnt2u64_2[_tzcnt_u64(0x0000000800000000ULL) == 35 ? 1 : -1];
+TEST_CONSTEXPR(_tzcnt_u64(0x0000000000000000ULL) == 64);
+TEST_CONSTEXPR(_tzcnt_u64(0x0000000000000001ULL) == 0);
+TEST_CONSTEXPR(_tzcnt_u64(0x0000000800000000ULL) == 35);
 
-char tzcnt3u64_0[_mm_tzcnt_64(0x0000000000000000ULL) == 64 ? 1 : -1];
-char tzcnt3u64_1[_mm_tzcnt_64(0x0000000000000001ULL) ==  0 ? 1 : -1];
-char tzcnt3u64_2[_mm_tzcnt_64(0x0000000800000000ULL) == 35 ? 1 : -1];
+TEST_CONSTEXPR(_mm_tzcnt_64(0x0000000000000000ULL) == 64);
+TEST_CONSTEXPR(_mm_tzcnt_64(0x0000000000000001ULL) == 0);
+TEST_CONSTEXPR(_mm_tzcnt_64(0x0000000800000000ULL) == 35);
 #endif
 #endif
\ No newline at end of file
diff --git a/clang/test/CodeGen/X86/bmi2-builtins.c 
b/clang/test/CodeGen/X86/bmi2-builtins.c
index 48424f553768b..629fa9aed2ae2 100644
--- a/clang/test/CodeGen/X86/bmi2-builtins.c
+++ b/clang/test/CodeGen/X86/bmi2-builtins.c
@@ -5,6 +5,7 @@
 
 
 #include <immintrin.h>
+#include "builtin_test_helpers.h"
 
 unsigned int test_bzhi_u32(unsigned int __X, unsigned int __Y) {
   // CHECK: @llvm.x86.bmi.bzhi.32
@@ -54,22 +55,22 @@ unsigned long long test_mulx_u64(unsigned long long __X, 
unsigned long long __Y,
 
 // Test constexpr handling.
 #if defined(__cplusplus) && (__cplusplus >= 201103L)
-char bzhi32_0[_bzhi_u32(0x89ABCDEF,   0) == 0x00000000 ? 1 : -1];
-char bzhi32_1[_bzhi_u32(0x89ABCDEF,  16) == 0x0000CDEF ? 1 : -1];
-char bzhi32_2[_bzhi_u32(0x89ABCDEF,  31) == 0x09ABCDEF ? 1 : -1];
-char bzhi32_3[_bzhi_u32(0x89ABCDEF,  32) == 0x89ABCDEF ? 1 : -1];
-char bzhi32_4[_bzhi_u32(0x89ABCDEF,  99) == 0x89ABCDEF ? 1 : -1];
-char bzhi32_5[_bzhi_u32(0x89ABCDEF, 260) == 0x0000000F ? 1 : -1];
-
-char pdep32_0[_pdep_u32(0x89ABCDEF,  0x00000000) == 0x00000000 ? 1 : -1];
-char pdep32_1[_pdep_u32(0x89ABCDEF,  0x000000F0) == 0x000000F0 ? 1 : -1];
-char pdep32_2[_pdep_u32(0x89ABCDEF,  0xF00000F0) == 0xE00000F0 ? 1 : -1];
-char pdep32_3[_pdep_u32(0x89ABCDEF,  0xFFFFFFFF) == 0x89ABCDEF ? 1 : -1];
-
-char pext32_0[_pext_u32(0x89ABCDEF,  0x00000000) == 0x00000000 ? 1 : -1];
-char pext32_1[_pext_u32(0x89ABCDEF,  0x000000F0) == 0x0000000E ? 1 : -1];
-char pext32_2[_pext_u32(0x89ABCDEF,  0xF00000F0) == 0x0000008E ? 1 : -1];
-char pext32_3[_pext_u32(0x89ABCDEF,  0xFFFFFFFF) == 0x89ABCDEF ? 1 : -1];
+TEST_CONSTEXPR(_bzhi_u32(0x89ABCDEF,   0) == 0x00000000);
+TEST_CONSTEXPR(_bzhi_u32(0x89ABCDEF,  16) == 0x0000CDEF);
+TEST_CONSTEXPR(_bzhi_u32(0x89ABCDEF,  31) == 0x09ABCDEF);
+TEST_CONSTEXPR(_bzhi_u32(0x89ABCDEF,  32) == 0x89ABCDEF);
+TEST_CONSTEXPR(_bzhi_u32(0x89ABCDEF,  99) == 0x89ABCDEF);
+TEST_CONSTEXPR(_bzhi_u32(0x89ABCDEF, 260) == 0x0000000F);
+
+TEST_CONSTEXPR(_pdep_u32(0x89ABCDEF,  0x00000000) == 0x00000000);
+TEST_CONSTEXPR(_pdep_u32(0x89ABCDEF,  0x000000F0) == 0x000000F0);
+TEST_CONSTEXPR(_pdep_u32(0x89ABCDEF,  0xF00000F0) == 0xE00000F0);
+TEST_CONSTEXPR(_pdep_u32(0x89ABCDEF,  0xFFFFFFFF) == 0x89ABCDEF);
+
+TEST_CONSTEXPR(_pext_u32(0x89ABCDEF,  0x00000000) == 0x00000000);
+TEST_CONSTEXPR(_pext_u32(0x89ABCDEF,  0x000000F0) == 0x0000000E);
+TEST_CONSTEXPR(_pext_u32(0x89ABCDEF,  0xF00000F0) == 0x0000008E);
+TEST_CONSTEXPR(_pext_u32(0x89ABCDEF,  0xFFFFFFFF) == 0x89ABCDEF);
 
 constexpr unsigned long long
 test_mulx_u32(unsigned int X, unsigned int Y)
@@ -84,20 +85,20 @@ void mulxu32() {
 }
 
 #ifdef __x86_64__
-char bzhi64_0[_bzhi_u64(0x0123456789ABCDEFULL,   0) == 0x0000000000000000ULL ? 
1 : -1];
-char bzhi64_1[_bzhi_u64(0x0123456789ABCDEFULL,  32) == 0x0000000089ABCDEFULL ? 
1 : -1];
-char bzhi64_2[_bzhi_u64(0x0123456789ABCDEFULL,  99) == 0x0123456789ABCDEFULL ? 
1 : -1];
-char bzhi64_3[_bzhi_u64(0x0123456789ABCDEFULL, 520) == 0x00000000000000EFULL ? 
1 : -1];
-
-char pdep64_0[_pdep_u64(0x0123456789ABCDEFULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL ? 1 : -1];
-char pdep64_1[_pdep_u64(0x0123456789ABCDEFULL, 0x00000000000000F0ULL) == 
0x00000000000000F0ULL ? 1 : -1];
-char pdep64_2[_pdep_u64(0x0123456789ABCDEFULL, 0xF00000F0F00000F0ULL) == 
0xC00000D0E00000F0ULL ? 1 : -1];
-char pdep64_3[_pdep_u64(0x0123456789ABCDEFULL, 0xFFFFFFFFFFFFFFFFULL) == 
0x0123456789ABCDEFULL ? 1 : -1];
-
-char pext64_0[_pext_u64(0x0123456789ABCDEFULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL ? 1 : -1];
-char pext64_1[_pext_u64(0x0123456789ABCDEFULL, 0x00000000000000F0ULL) == 
0x000000000000000EULL ? 1 : -1];
-char pext64_2[_pext_u64(0x0123456789ABCDEFULL, 0xF00000F0F00000F0ULL) == 
0x000000000000068EULL ? 1 : -1];
-char pext64_3[_pext_u64(0x0123456789ABCDEFULL, 0xFFFFFFFFFFFFFFFFULL) == 
0x0123456789ABCDEFULL ? 1 : -1];
+TEST_CONSTEXPR(_bzhi_u64(0x0123456789ABCDEFULL,   0) == 0x0000000000000000ULL);
+TEST_CONSTEXPR(_bzhi_u64(0x0123456789ABCDEFULL,  32) == 0x0000000089ABCDEFULL);
+TEST_CONSTEXPR(_bzhi_u64(0x0123456789ABCDEFULL,  99) == 0x0123456789ABCDEFULL);
+TEST_CONSTEXPR(_bzhi_u64(0x0123456789ABCDEFULL, 520) == 0x00000000000000EFULL);
+
+TEST_CONSTEXPR(_pdep_u64(0x0123456789ABCDEFULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL);
+TEST_CONSTEXPR(_pdep_u64(0x0123456789ABCDEFULL, 0x00000000000000F0ULL) == 
0x00000000000000F0ULL);
+TEST_CONSTEXPR(_pdep_u64(0x0123456789ABCDEFULL, 0xF00000F0F00000F0ULL) == 
0xC00000D0E00000F0ULL);
+TEST_CONSTEXPR(_pdep_u64(0x0123456789ABCDEFULL, 0xFFFFFFFFFFFFFFFFULL) == 
0x0123456789ABCDEFULL);
+
+TEST_CONSTEXPR(_pext_u64(0x0123456789ABCDEFULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL);
+TEST_CONSTEXPR(_pext_u64(0x0123456789ABCDEFULL, 0x00000000000000F0ULL) == 
0x000000000000000EULL);
+TEST_CONSTEXPR(_pext_u64(0x0123456789ABCDEFULL, 0xF00000F0F00000F0ULL) == 
0x000000000000068EULL);
+TEST_CONSTEXPR(_pext_u64(0x0123456789ABCDEFULL, 0xFFFFFFFFFFFFFFFFULL) == 
0x0123456789ABCDEFULL);
 
 constexpr unsigned __int128
 test_mulx_u64(unsigned long long X, unsigned long long Y)
diff --git a/clang/test/CodeGen/X86/tbm-builtins.c 
b/clang/test/CodeGen/X86/tbm-builtins.c
index d916627a23f57..43b4c43377837 100644
--- a/clang/test/CodeGen/X86/tbm-builtins.c
+++ b/clang/test/CodeGen/X86/tbm-builtins.c
@@ -2,6 +2,7 @@
 // RUN: %clang_cc1 -x c++ -std=c++11 -ffreestanding %s 
-triple=x86_64-unknown-unknown -target-feature +tbm -emit-llvm -o - | FileCheck 
%s
 
 #include <x86intrin.h>
+#include "builtin_test_helpers.h"
 
 // NOTE: This should match the tests in 
llvm/test/CodeGen/X86/tbm-intrinsics-fast-isel.ll
 
@@ -181,31 +182,31 @@ unsigned long long test__tzmsk_u64(unsigned long long a) {
 
 // Test constexpr handling.
 #if defined(__cplusplus) && (__cplusplus >= 201103L)
-char bextri32_0[__bextri_u32(0x00000000, 0x00000000) == 0x00000000 ? 1 : -1];
-char bextri32_1[__bextri_u32(0x000003F0, 0xFFFF1004) == 0x0000003F ? 1 : -1];
-char bextri32_2[__bextri_u32(0x000003F0, 0xFFFF3008) == 0x00000003 ? 1 : -1];
-
-char blcfill32[__blcfill_u32(0x89ABCDEF) == (0x89ABCDEF & (0x89ABCDEF + 1)) ? 
1 : -1];
-char blci32[__blci_u32(0x89ABCDEF) == (0x89ABCDEF | ~(0x89ABCDEF + 1)) ? 1 : 
-1];
-char blcmsk32[__blcmsk_u32(0x89ABCDEF) == (0x89ABCDEF ^ (0x89ABCDEF + 1)) ? 1 
: -1];
-char blcs32[__blcs_u32(0x89ABCDEF) == (0x89ABCDEF | (0x89ABCDEF + 1)) ? 1 : 
-1];
-char blsfill32[__blsfill_u32(0x89ABCDEF) == (0x89ABCDEF | (0x89ABCDEF - 1)) ? 
1 : -1];
-char blsic32[__blsic_u32(0x89ABCDEF) == (~0x89ABCDEF | (0x89ABCDEF - 1)) ? 1 : 
-1];
-char t1mskc32[__t1mskc_u32(0x89ABCDEF) == (~0x89ABCDEF | (0x89ABCDEF + 1)) ? 1 
: -1];
-char tzmsk32[__tzmsk_u32(0x89ABCDEF) == (~0x89ABCDEF & (0x89ABCDEF - 1)) ? 1 : 
-1];
+TEST_CONSTEXPR(__bextri_u32(0x00000000, 0x00000000) == 0x00000000);
+TEST_CONSTEXPR(__bextri_u32(0x000003F0, 0xFFFF1004) == 0x0000003F);
+TEST_CONSTEXPR(__bextri_u32(0x000003F0, 0xFFFF3008) == 0x00000003);
+
+TEST_CONSTEXPR(__blcfill_u32(0x89ABCDEF) == (0x89ABCDEF & (0x89ABCDEF + 1)));
+TEST_CONSTEXPR(__blci_u32(0x89ABCDEF) == (0x89ABCDEF | ~(0x89ABCDEF + 1)));
+TEST_CONSTEXPR(__blcmsk_u32(0x89ABCDEF) == (0x89ABCDEF ^ (0x89ABCDEF + 1)));
+TEST_CONSTEXPR(__blcs_u32(0x89ABCDEF) == (0x89ABCDEF | (0x89ABCDEF + 1)));
+TEST_CONSTEXPR(__blsfill_u32(0x89ABCDEF) == (0x89ABCDEF | (0x89ABCDEF - 1)));
+TEST_CONSTEXPR(__blsic_u32(0x89ABCDEF) == (~0x89ABCDEF | (0x89ABCDEF - 1)));
+TEST_CONSTEXPR(__t1mskc_u32(0x89ABCDEF) == (~0x89ABCDEF | (0x89ABCDEF + 1)));
+TEST_CONSTEXPR(__tzmsk_u32(0x89ABCDEF) == (~0x89ABCDEF & (0x89ABCDEF - 1)));
 
 #ifdef __x86_64__
-char bextri64_0[__bextri_u64(0x0000000000000000ULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL ? 1 : -1];
-char bextri64_1[__bextri_u64(0xF000000000000001ULL, 0x0000000000004001ULL) == 
0x7800000000000000ULL ? 1 : -1];
-char bextri64_2[__bextri_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFF1001ULL) == 
0x0000000000000000ULL ? 1 : -1];
-
-char blcfill64[__blcfill_u64(0xFEDCBA9876543210) == (0xFEDCBA9876543210 & 
(0xFEDCBA9876543210 + 1)) ? 1 : -1];
-char blci64[__blci_u64(0xFEDCBA9876543210) == (0xFEDCBA9876543210 | 
~(0xFEDCBA9876543210 + 1)) ? 1 : -1];
-char blcmsk64[__blcmsk_u64(0xFEDCBA9876543210) == (0xFEDCBA9876543210 ^ 
(0xFEDCBA9876543210 + 1)) ? 1 : -1];
-char blcs64[__blcs_u64(0xFEDCBA9876543210) == (0xFEDCBA9876543210 | 
(0xFEDCBA9876543210 + 1)) ? 1 : -1];
-char blsfill64[__blsfill_u64(0xFEDCBA9876543210) == (0xFEDCBA9876543210 | 
(0xFEDCBA9876543210 - 1)) ? 1 : -1];
-char blsic64[__blsic_u64(0xFEDCBA9876543210) == (~0xFEDCBA9876543210 | 
(0xFEDCBA9876543210 - 1)) ? 1 : -1];
-char t1mskc64[__t1mskc_u64(0xFEDCBA9876543210) == (~0xFEDCBA9876543210 | 
(0xFEDCBA9876543210 + 1)) ? 1 : -1];
-char tzmsk64[__tzmsk_u64(0xFEDCBA9876543210) == (~0xFEDCBA9876543210 & 
(0xFEDCBA9876543210 - 1)) ? 1 : -1];
+TEST_CONSTEXPR(__bextri_u64(0x0000000000000000ULL, 0x0000000000000000ULL) == 
0x0000000000000000ULL);
+TEST_CONSTEXPR(__bextri_u64(0xF000000000000001ULL, 0x0000000000004001ULL) == 
0x7800000000000000ULL);
+TEST_CONSTEXPR(__bextri_u64(0xF000000000000001ULL, 0xFFFFFFFFFFFF1001ULL) == 
0x0000000000000000ULL);
+
+TEST_CONSTEXPR(__blcfill_u64(0xFEDCBA9876543210ULL) == (0xFEDCBA9876543210ULL 
& (0xFEDCBA9876543210ULL + 1)));
+TEST_CONSTEXPR(__blci_u64(0xFEDCBA9876543210ULL) == (0xFEDCBA9876543210ULL | 
~(0xFEDCBA9876543210ULL + 1)));
+TEST_CONSTEXPR(__blcmsk_u64(0xFEDCBA9876543210ULL) == (0xFEDCBA9876543210ULL ^ 
(0xFEDCBA9876543210ULL + 1)));
+TEST_CONSTEXPR(__blcs_u64(0xFEDCBA9876543210ULL) == (0xFEDCBA9876543210ULL | 
(0xFEDCBA9876543210ULL + 1)));
+TEST_CONSTEXPR(__blsfill_u64(0xFEDCBA9876543210ULL) == (0xFEDCBA9876543210ULL 
| (0xFEDCBA9876543210ULL - 1)));
+TEST_CONSTEXPR(__blsic_u64(0xFEDCBA9876543210ULL) == (~0xFEDCBA9876543210ULL | 
(0xFEDCBA9876543210ULL - 1)));
+TEST_CONSTEXPR(__t1mskc_u64(0xFEDCBA9876543210ULL) == (~0xFEDCBA9876543210ULL 
| (0xFEDCBA9876543210ULL + 1)));
+TEST_CONSTEXPR(__tzmsk_u64(0xFEDCBA9876543210ULL) == (~0xFEDCBA9876543210ULL & 
(0xFEDCBA9876543210ULL - 1)));
 #endif
 #endif

>From b6f2164ca2f345b90bb78a847cbbf03801e548fd Mon Sep 17 00:00:00 2001
From: Burhan <sega...@hotmail.com>
Date: Sun, 31 Aug 2025 21:47:31 +0300
Subject: [PATCH 2/3] Fix: Use double quotes for builtin_test_helpers.h include

---
 clang/test/CodeGen/X86/bmi-builtins.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/CodeGen/X86/bmi-builtins.c 
b/clang/test/CodeGen/X86/bmi-builtins.c
index ffbc1da3000cc..a68853f595f9d 100644
--- a/clang/test/CodeGen/X86/bmi-builtins.c
+++ b/clang/test/CodeGen/X86/bmi-builtins.c
@@ -5,7 +5,7 @@
 
 
 #include <immintrin.h>
-#include <builtin_test_helpers.h>
+#include "builtin_test_helpers.h"
 
 // NOTE: This should match the tests in 
llvm/test/CodeGen/X86/bmi-intrinsics-fast-isel.ll
 

>From 9fd27a5a68e309efaedbe74de7e4830232c2090f Mon Sep 17 00:00:00 2001
From: Burhan <sega...@hotmail.com>
Date: Sun, 31 Aug 2025 22:11:29 +0300
Subject: [PATCH 3/3] Fix: builtin_test_helpers.h

---
 clang/test/CodeGen/X86/builtin_test_helpers.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/CodeGen/X86/builtin_test_helpers.h 
b/clang/test/CodeGen/X86/builtin_test_helpers.h
index 2476a2b7c723a..77bb19265d070 100644
--- a/clang/test/CodeGen/X86/builtin_test_helpers.h
+++ b/clang/test/CodeGen/X86/builtin_test_helpers.h
@@ -290,7 +290,7 @@ constexpr bool match_v64qu(__m512i _v, unsigned char __e00, 
unsigned char __e01,
          v[56] == __e56 && v[57] == __e57 && v[58] == __e58 && v[59] == __e59 
&& v[60] == __e60 && v[61] == __e61 && v[62] == __e62 && v[63] == __e63;
 }
 
-#define TEST_CONSTEXPR(...) static_assert(__VA_ARGS__)
+#define TEST_CONSTEXPR(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
 
 #else
 

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to