llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-x86

Author: None (sskzakaria)

<details>
<summary>Changes</summary>

Adding Constexpr tests for 
```
_mm_test_epi8_mask _mm_mask_test_epi8_mask
_mm_test_epi16_mask _mm_mask_test_epi16_mask
_mm_test_epi64_mask _mm_mask_test_epi32_mask
_mm_test_epi32_mask _mm_mask_test_epi64_mask
_mm_testn_epi8_mask _mm_mask_testn_epi8_mask
_mm_testn_epi16_mask _mm_mask_testn_epi16_mask
_mm_testn_epi64_mask _mm_mask_testn_epi32_mask
_mm_testn_epi32_mask _mm_mask_testn_epi64_mask

_mm256_test_epi8_mask _mm256_mask_test_epi8_mask
_mm256_test_epi16_mask _mm256_mask_test_epi16_mask
_mm256_test_epi64_mask _mm256_mask_test_epi32_mask
_mm256_test_epi32_mask _mm256_mask_test_epi64_mask
_mm256_testn_epi8_mask _mm256_mask_testn_epi8_mask
_mm256_testn_epi16_mask _mm256_mask_testn_epi16_mask
_mm256_testn_epi64_mask _mm256_mask_testn_epi32_mask
_mm256_testn_epi32_mask _mm256_mask_testn_epi64_mask

_mm512_test_epi8_mask _mm512_mask_test_epi8_mask
_mm512_test_epi16_mask _mm512_mask_test_epi16_mask
_mm512_test_epi64_mask _mm512_mask_test_epi32_mask
_mm512_test_epi32_mask _mm512_mask_test_epi64_mask
_mm512_testn_epi8_mask _mm512_mask_testn_epi8_mask
_mm512_testn_epi16_mask _mm512_mask_testn_epi16_mask
_mm512_testn_epi64_mask _mm512_mask_testn_epi32_mask
_mm512_testn_epi32_mask _mm512_mask_testn_epi64_mask

```

 FIXES #<!-- -->162071

---

Patch is 26.22 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/174021.diff


4 Files Affected:

- (modified) clang/lib/Headers/avx512vlbwintrin.h (+24-36) 
- (modified) clang/lib/Headers/avx512vlintrin.h (+32-48) 
- (modified) clang/test/CodeGen/X86/avx512vl-builtins.c (+88) 
- (modified) clang/test/CodeGen/X86/avx512vlbw-builtins.c (+68) 


``````````diff
diff --git a/clang/lib/Headers/avx512vlbwintrin.h 
b/clang/lib/Headers/avx512vlbwintrin.h
index b66d3961dffc9..d5e197d0009d6 100644
--- a/clang/lib/Headers/avx512vlbwintrin.h
+++ b/clang/lib/Headers/avx512vlbwintrin.h
@@ -2394,36 +2394,31 @@ _mm256_test_epi8_mask(__m256i __A, __m256i __B) {
                                   _mm256_setzero_si256());
 }
 
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
-_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask32 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_test_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpneq_epi8_mask (__U, _mm256_and_si256(__A, __B),
                                        _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_test_epi16_mask (__m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_test_epi16_mask(__m128i __A, __m128i __B) {
   return _mm_cmpneq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_test_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpneq_epi16_mask (__U, _mm_and_si128 (__A, __B),
                                      _mm_setzero_si128());
 }
 
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
-_mm256_test_epi16_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask16 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_test_epi16_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpneq_epi16_mask (_mm256_and_si256 (__A, __B),
                                    _mm256_setzero_si256 ());
 }
 
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
-_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask16 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_test_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpneq_epi16_mask (__U, _mm256_and_si256(__A, __B),
                                         _mm256_setzero_si256());
 }
@@ -2433,49 +2428,42 @@ _mm_testn_epi8_mask(__m128i __A, __m128i __B) {
   return _mm_cmpeq_epi8_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS128
-_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask16 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_testn_epi8_mask(__mmask16 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpeq_epi8_mask (__U, _mm_and_si128 (__A, __B),
                                   _mm_setzero_si128());
 }
 
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
-_mm256_testn_epi8_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask32 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_testn_epi8_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpeq_epi8_mask (_mm256_and_si256 (__A, __B),
                                  _mm256_setzero_si256());
 }
 
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS256
-_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask32 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_testn_epi8_mask(__mmask32 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpeq_epi8_mask (__U, _mm256_and_si256 (__A, __B),
                                       _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_testn_epi16_mask (__m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_testn_epi16_mask(__m128i __A, __m128i __B) {
   return _mm_cmpeq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_testn_epi16_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpeq_epi16_mask (__U, _mm_and_si128(__A, __B), 
_mm_setzero_si128());
 }
 
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
-_mm256_testn_epi16_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask16 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_testn_epi16_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpeq_epi16_mask (_mm256_and_si256(__A, __B),
                                   _mm256_setzero_si256());
 }
 
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS256
-_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask16 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_testn_epi16_mask(__mmask16 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpeq_epi16_mask (__U, _mm256_and_si256 (__A, __B),
                                        _mm256_setzero_si256());
 }
diff --git a/clang/lib/Headers/avx512vlintrin.h 
b/clang/lib/Headers/avx512vlintrin.h
index 6e2b19c8a2f7b..04111fd33eb65 100644
--- a/clang/lib/Headers/avx512vlintrin.h
+++ b/clang/lib/Headers/avx512vlintrin.h
@@ -5887,110 +5887,94 @@ _mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, 
__m256i __C) {
                                           (__v8sf)_mm256_setzero_ps());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_test_epi32_mask (__m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_test_epi32_mask(__m128i __A, __m128i __B) {
   return _mm_cmpneq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpneq_epi32_mask (__U, _mm_and_si128 (__A, __B),
                                      _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_test_epi32_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpneq_epi32_mask (_mm256_and_si256 (__A, __B),
                                    _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpneq_epi32_mask (__U, _mm256_and_si256 (__A, __B),
                                         _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_test_epi64_mask (__m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_test_epi64_mask(__m128i __A, __m128i __B) {
   return _mm_cmpneq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpneq_epi64_mask (__U, _mm_and_si128 (__A, __B),
                                      _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_test_epi64_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpneq_epi64_mask (_mm256_and_si256 (__A, __B),
                                    _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpneq_epi64_mask (__U, _mm256_and_si256 (__A, __B),
                                         _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_testn_epi32_mask (__m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
   return _mm_cmpeq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpeq_epi32_mask (__U, _mm_and_si128 (__A, __B),
                                     _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpeq_epi32_mask (_mm256_and_si256 (__A, __B),
                                   _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpeq_epi32_mask (__U, _mm256_and_si256 (__A, __B),
                                        _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_testn_epi64_mask (__m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
   return _mm_cmpeq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
-_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS128_CONSTEXPR
+_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   return _mm_mask_cmpeq_epi64_mask (__U, _mm_and_si128 (__A, __B),
                                     _mm_setzero_si128());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
   return _mm256_cmpeq_epi64_mask (_mm256_and_si256 (__A, __B),
                                   _mm256_setzero_si256());
 }
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
-_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
+static __inline__ __mmask8 __DEFAULT_FN_ATTRS256_CONSTEXPR
+_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) {
   return _mm256_mask_cmpeq_epi64_mask (__U, _mm256_and_si256 (__A, __B),
                                        _mm256_setzero_si256());
 }
diff --git a/clang/test/CodeGen/X86/avx512vl-builtins.c 
b/clang/test/CodeGen/X86/avx512vl-builtins.c
index 013c19ba7a929..c4e787ac85d29 100644
--- a/clang/test/CodeGen/X86/avx512vl-builtins.c
+++ b/clang/test/CodeGen/X86/avx512vl-builtins.c
@@ -8248,6 +8248,11 @@ __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i 
__B) {
   return _mm_test_epi32_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_test_epi32_mask(
+    ((__m128i)(__v4si){0, -109, 61, -125}),
+    ((__m128i)(__v4si){-110, -109, 24, 112})
+) == (__mmask8)0x6);
+
 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   // CHECK-LABEL: test_mm_mask_test_epi32_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8256,6 +8261,12 @@ __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, 
__m128i __A, __m128i __B) {
   return _mm_mask_test_epi32_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_mask_test_epi32_mask(
+    (__mmask8)0xc,
+    ((__m128i)(__v4si){70, 14, 98, -97}),
+    ((__m128i)(__v4si){70, -109, 75, -97})
+) == (__mmask8)0xc);
+
 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) {
   // CHECK-LABEL: test_mm256_test_epi32_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8263,6 +8274,11 @@ __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i 
__B) {
   return _mm256_test_epi32_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_test_epi32_mask(
+    ((__m256i)(__v8si){80, -8, -96, 29, -30, 124, 32, -108}),
+    ((__m256i)(__v8si){-80, 81, -52, 29, 29, 124, 127, 108})
+) == (__mmask8)0xef);
+
 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i 
__B) {
   // CHECK-LABEL: test_mm256_mask_test_epi32_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8271,6 +8287,12 @@ __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, 
__m256i __A, __m256i __B)
   return _mm256_mask_test_epi32_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_mask_test_epi32_mask(
+    (__mmask8)0xb9,
+    ((__m256i)(__v8si){63, 102, 65, 107, 31, -24, -109, 113}),
+    ((__m256i)(__v8si){-64, -102, 65, -8, 31, -50, 108, -98})
+) == (__mmask8)0xb8);
+
 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) {
   // CHECK-LABEL: test_mm_test_epi64_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8278,6 +8300,11 @@ __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i 
__B) {
   return _mm_test_epi64_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_test_epi64_mask(
+    ((__m128i)(__v2di){33698, -44147}),
+    ((__m128i)(__v2di){56499, -20755})
+) == (__mmask8)0x3);
+
 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) {
   // CHECK-LABEL: test_mm_mask_test_epi64_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8286,6 +8313,12 @@ __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, 
__m128i __A, __m128i __B) {
   return _mm_mask_test_epi64_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_mask_test_epi64_mask(
+    (__mmask8)0x2,
+    ((__m128i)(__v2di){-124, -2299}),
+    ((__m128i)(__v2di){86100, 552445})
+) == (__mmask8)0x2);
+
 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) {
   // CHECK-LABEL: test_mm256_test_epi64_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8293,6 +8326,11 @@ __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i 
__B) {
   return _mm256_test_epi64_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_test_epi64_mask(
+    ((__m256i)(__v4di){-70, -11203, -19, -69143}),
+    ((__m256i)(__v4di){-55003, 22655, -63728, 326379})
+) == (__mmask8)0xf);
+
 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i 
__B) {
   // CHECK-LABEL: test_mm256_mask_test_epi64_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8301,6 +8339,12 @@ __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, 
__m256i __A, __m256i __B)
   return _mm256_mask_test_epi64_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_mask_test_epi64_mask(
+    (__mmask8)0xa,
+    ((__m256i)(__v4di){24, -44260, 200, -37960}),
+    ((__m256i)(__v4di){5806, 30268, -78192, 758524})
+) == (__mmask8)0xa);
+
 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) {
   // CHECK-LABEL: test_mm_testn_epi32_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8308,6 +8352,11 @@ __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i 
__B) {
   return _mm_testn_epi32_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_testn_epi32_mask(
+    ((__m128i)(__v4si){9711, 247117, -39835, 93758}),
+    ((__m128i)(__v4si){-774681, 693085, 256884, 609599})
+) == (__mmask8)0x0);
+
 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) 
{
   // CHECK-LABEL: test_mm_mask_testn_epi32_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8316,6 +8365,12 @@ __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, 
__m128i __A, __m128i __B) {
   return _mm_mask_testn_epi32_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_mask_testn_epi32_mask(
+    (__mmask8)0xf0,
+    ((__m128i)(__v4si){13807, 5601, 45363, -64113}),
+    ((__m128i)(__v4si){140515, 221935, -127957, 67775})
+) == (__mmask8)0x0);
+
 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) {
   // CHECK-LABEL: test_mm256_testn_epi32_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8323,6 +8378,11 @@ __mmask8 test_mm256_testn_epi32_mask(__m256i __A, 
__m256i __B) {
   return _mm256_testn_epi32_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_testn_epi32_mask(
+    ((__m256i)(__v8si){40445, 245961, 61407, 263397, 56243, -139540, 8675, 
-450842}),
+    ((__m256i)(__v8si){-960187, 506335, 818314, 32765, 104115, 783086, 
-339212, 377838})
+) == (__mmask8)0x00);
+
 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i 
__B) {
   // CHECK-LABEL: test_mm256_mask_testn_epi32_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8331,6 +8391,12 @@ __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, 
__m256i __A, __m256i __B
   return _mm256_mask_testn_epi32_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_mask_testn_epi32_mask(
+    (__mmask8)0xf0,
+    ((__m256i)(__v8si){37022, 426122, 41425, -140420, 52378, 242117, 39078, 
192582}),
+    ((__m256i)(__v8si){-440264, 968190, 640358, 596732, -676272, 446165, 
987171, 953551})
+) == (__mmask8)0x00);
+
 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) {
   // CHECK-LABEL: test_mm_testn_epi64_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8338,6 +8404,11 @@ __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i 
__B) {
   return _mm_testn_epi64_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_testn_epi64_mask(
+    ((__m128i)(__v2di){8, -95314}),
+    ((__m128i)(__v2di){85958, 501758})
+) == (__mmask8)0x1);
+
 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) 
{
   // CHECK-LABEL: test_mm_mask_testn_epi64_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -8346,6 +8417,12 @@ __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, 
__m128i __A, __m128i __B) {
   return _mm_mask_testn_epi64_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_mask_testn_epi64_mask(
+    (__mmask8)0x2,
+    ((__m128i)(__v2di){-124, -2299}),
+    ((__m128i)(__v2di){86100, 552445})
+) == (__mmask8)0x0);
+
 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) {
   // CHECK-LABEL: test_mm256_testn_epi64_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8353,6 +8430,11 @@ __mmask8 test_mm256_testn_epi64_mask(__m256i __A, 
__m256i __B) {
   return _mm256_testn_epi64_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_testn_epi64_mask(
+    ((__m256i)(__v4di){-70, -11203, -19, -69143}),
+    ((__m256i)(__v4di){-55003, 22655, -63728, 326379})
+) == (__mmask8)0x0);
+
 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i 
__B) {
   // CHECK-LABEL: test_mm256_mask_testn_epi64_mask
   // CHECK: and <4 x i64> %{{.*}}, %{{.*}}
@@ -8361,6 +8443,12 @@ __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, 
__m256i __A, __m256i __B
   return _mm256_mask_testn_epi64_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_mask_testn_epi64_mask(
+    (__mmask8)0xa,
+    ((__m256i)(__v4di){24, -44260, 200, -37960}),
+    ((__m256i)(__v4di){5806, 30268, -78192, 758524})
+) == (__mmask8)0x0);
+
 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, 
__m128i __B) {
   // CHECK-LABEL: test_mm_mask_unpackhi_epi32
   // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 
2, i32 6, i32 3, i32 7>
diff --git a/clang/test/CodeGen/X86/avx512vlbw-builtins.c 
b/clang/test/CodeGen/X86/avx512vlbw-builtins.c
index 9f70f4639b4ab..0ee14909ae805 100644
--- a/clang/test/CodeGen/X86/avx512vlbw-builtins.c
+++ b/clang/test/CodeGen/X86/avx512vlbw-builtins.c
@@ -3094,6 +3094,12 @@ __mmask32 test_mm256_mask_test_epi8_mask(__mmask32 __U, 
__m256i __A, __m256i __B
   return _mm256_mask_test_epi8_mask(__U, __A, __B); 
 }
 
+TEST_CONSTEXPR(_mm256_mask_test_epi8_mask(
+    (__mmask32)0xb367f726,
+    ((__m256i)(__v32qs){78, -1, -104, -14, -4, -40, -90, -76, -61, 79, 2, 
-107, 87, -81, 119, 10, 9, -52, -1, -7, -91, 125, 125, -48, -47, -99, -65, 
-127, 66, -68, -3, 15}),
+    ((__m256i)(__v32qs){-79, 55, 24, 68, 3, 118, 43, -10, 68, -80, 112, 106, 
84, -30, 119, 41, 79, 51, 1, 74, 84, -125, -125, 29, -112, 99, -65, 11, -67, 
97, 3, 15})
+) == (__mmask32)0xa365f126);
+
 __mmask8 test_mm_test_epi16_mask(__m128i __A, __m128i __B) {
   // CHECK-LABEL: test_mm_test_epi16_mask
   // CHECK: and <2 x i64> %{{.*}}, %{{.*}}
@@ -3101,6 +3107,11 @@ __mmask8 test_mm_test_epi16_mask(__m128i __A, __m128i 
__B) {
   return _mm_test_epi16_mask(__A, __B); 
 }
 
+TEST_CONSTEXPR(_mm_test_epi16_mask(
+    ((__m128i)(__v8hi){108, -67, -74, 111, 4...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/174021
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to