gcc/0079-LoongArch-Modify-the-check-type-of-the-vector-builti.patch

69 lines
4.1 KiB
Diff
Raw Normal View History

From bedb0338fadc373eeafc418a7bf6395d37eec78c Mon Sep 17 00:00:00 2001
From: chenxiaolong <chenxiaolong@loongson.cn>
Date: Wed, 13 Dec 2023 09:31:07 +0800
Subject: [PATCH 079/188] LoongArch: Modify the check type of the vector
builtin function.
On LoongArch architecture, using the latest gcc14 in regression test,
it is found that the vector test cases in vector directory appear FAIL
entries with unmatched pointer types. In order to solve this kind of
problem, the type of the variable in the check result is modified with
the parameter type defined in the vector builtin function.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/vector/simd_correctness_check.h:The variable
types in the check results are modified in conjunction with the
parameter types defined in the vector builtin function.
---
.../loongarch/vector/simd_correctness_check.h | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h b/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
index eb7fbd59c..551340bd5 100644
--- a/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
+++ b/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
@@ -8,11 +8,12 @@
int fail = 0; \
for (size_t i = 0; i < sizeof (res) / sizeof (res[0]); ++i) \
{ \
- long *temp_ref = &ref[i], *temp_res = &res[i]; \
+ long long *temp_ref = (long long *)&ref[i], \
+ *temp_res = (long long *)&res[i]; \
if (abs (*temp_ref - *temp_res) > 0) \
{ \
printf (" error: %s at line %ld , expected " #ref \
- "[%ld]:0x%lx, got: 0x%lx\n", \
+ "[%ld]:0x%016lx, got: 0x%016lx\n", \
__FILE__, line, i, *temp_ref, *temp_res); \
fail = 1; \
} \
@@ -28,11 +29,11 @@
int fail = 0; \
for (size_t i = 0; i < sizeof (res) / sizeof (res[0]); ++i) \
{ \
- int *temp_ref = &ref[i], *temp_res = &res[i]; \
+ int *temp_ref = (int *)&ref[i], *temp_res = (int *)&res[i]; \
if (abs (*temp_ref - *temp_res) > 0) \
{ \
printf (" error: %s at line %ld , expected " #ref \
- "[%ld]:0x%x, got: 0x%x\n", \
+ "[%ld]:0x%08x, got: 0x%08x\n", \
__FILE__, line, i, *temp_ref, *temp_res); \
fail = 1; \
} \
@@ -47,8 +48,8 @@
{ \
if (ref != res) \
{ \
- printf (" error: %s at line %ld , expected %d, got %d\n", __FILE__, \
- line, ref, res); \
+ printf (" error: %s at line %ld , expected 0x:%016x", \
+ "got 0x:%016x\n", __FILE__, line, ref, res); \
} \
} \
while (0)
--
2.43.0