================
@@ -52,3 +56,35 @@ __m256i test_mm256_madd52lo_avx_epu64(__m256i __X, __m256i
__Y, __m256i __Z) {
// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64>
%{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}})
return _mm256_madd52lo_avx_epu64(__X, __Y, __Z);
}
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52lo_epu64((__m128i)((__v2du){0, 0}),
(__m128i)((__v2du){10, 0}), (__m128i)((__v2du){5, 0})), 50, 0));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52lo_epu64((__m128i)((__v2du){100, 0}),
(__m128i)((__v2du){20, 0}), (__m128i)((__v2du){30, 0})), 700, 0));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52lo_epu64((__m128i)((__v2du){1, 2}),
(__m128i)((__v2du){10, 20}), (__m128i)((__v2du){2, 3})), 21, 62));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52lo_epu64((__m128i)((__v2du){0, 0}),
(__m128i)((__v2du){0xFFFFFFFFFFFFFull, 0}), (__m128i)((__v2du){1, 0})),
0xFFFFFFFFFFFFFull, 0));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52lo_epu64((__m256i)((__v4du){1, 2, 3,
4}), (__m256i)((__v4du){10, 20, 30, 40}), (__m256i)((__v4du){2, 3, 4, 5})), 21,
62, 123, 204));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52hi_epu64((__m128i)((__v2du){100, 0}),
(__m128i)((__v2du){10, 0}), (__m128i)((__v2du){5, 0})), 100, 0));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52hi_epu64((__m128i)((__v2du){0, 0}),
(__m128i)((__v2du){0xFFFFFFFFFFFFFull, 0}),
(__m128i)((__v2du){0xFFFFFFFFFFFFFull, 0})), 0xFFFFFFFFFFFFEull, 0));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52hi_epu64((__m256i)((__v4du){100, 200,
300, 400}), (__m256i)((__v4du){10, 20, 30, 40}), (__m256i)((__v4du){5, 6, 7,
8})), 100, 200, 300, 400));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52hi_epu64((__m256i)((__v4du){0, 0, 0,
0}), (__m256i)((__v4du){0xFFFFFFFFFFFFFull, 0, 0, 0}),
(__m256i)((__v4du){0xFFFFFFFFFFFFFull, 0, 0, 0})), 0xFFFFFFFFFFFFEull, 0, 0,
0));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52lo_epu64((__m256i)((__v4du){0, 0, 0,
0}), (__m256i)((__v4du){0xFFFFFFFFFFFFFull, 0, 0, 0}), (__m256i)((__v4du){1, 0,
0, 0})), 0xFFFFFFFFFFFFFull, 0, 0, 0));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52lo_epu64((__m256i)((__v4du){0, 0, 0,
0}), (__m256i)((__v4du){0x1F000000000000ull, 0, 0, 0}), (__m256i)((__v4du){2,
0, 0, 0})), 0xE000000000000ull, 0, 0, 0));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52lo_avx_epu64((__m128i)((__v2du){5, 10}),
(__m128i)((__v2du){100, 200}), (__m128i)((__v2du){7, 8})), 705, 1610));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52lo_avx_epu64((__m256i)((__v4du){1, 2,
3, 4}), (__m256i)((__v4du){10, 20, 30, 40}), (__m256i)((__v4du){2, 3, 4, 5})),
21, 62, 123, 204));
+
+TEST_CONSTEXPR(match_v2di(_mm_madd52hi_avx_epu64((__m128i)((__v2du){50, 100}),
(__m128i)((__v2du){10, 20}), (__m128i)((__v2du){5, 6})), 50, 100));
+
+TEST_CONSTEXPR(match_v4di(_mm256_madd52hi_avx_epu64((__m256i)((__v4du){0, 0,
0, 0}), (__m256i)((__v4du){0xFFFFFFFFFFFFFull, 0xFFFFFFFFFFFFFull, 0, 0}),
(__m256i)((__v4du){0xFFFFFFFFFFFFFull, 0xFFFFFFFFFFFFFull, 0, 0})),
0xFFFFFFFFFFFFEull, 0xFFFFFFFFFFFFEull, 0, 0));
+
+// expected-no-diagnostics
----------------
chaitanyav wrote:
```
+ /Users/nagachaitanyavellanki/scratch/llvm-project/build/bin/clang -cc1
-internal-isystem
/Users/nagachaitanyavellanki/scratch/llvm-project/build/lib/clang/22/include
-nostdsysteminc -x c++ -std=c++2a -fsyntax-only
/Users/nagachaitanyavellanki/scratch/llvm-project/clang/test/CodeGen/X86/avxifma-builtins.c
-triple=x86_64-unknown-unknown -target-feature +avxifma -ffreestanding -verify
error: no expected directives found: consider use of 'expected-no-diagnostics'
```
https://github.com/llvm/llvm-project/pull/161056
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits