The rvv_zvl*_ok checks use the same check_runtime property despite
testing different vector lengths. Whichever check runs first supplies
the cached result for all of them. Thus a VLEN=128 check can control
VLEN=256 tests and vice versa, causing unsupported tests to run or
supported tests to be skipped.
Give each check a unique property. The existing tests already cover
the affected checks and expose this order-dependent intermittent
failure, so no new testcase is needed.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp (check_effective_target_rvv_zvl128b_ok):
Use a unique check_runtime property name.
(check_effective_target_rvv_zvl256b_ok): Likewise.
(check_effective_target_rvv_zvl_ge_256b_ok): Likewise.
(check_effective_target_rvv_zvl512b_ok): Likewise.
Signed-off-by: Jin Ma <[email protected]>
---
gcc/testsuite/lib/target-supports.exp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
index 1727887d3f4..13a26910094 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2177,7 +2177,7 @@ proc check_effective_target_riscv_v { } {
proc check_effective_target_rvv_zvl128b_ok { } {
# Check if the target has a VLENB of 16.
set gcc_march [riscv_get_arch]
- return [check_runtime ${gcc_march}_exec {
+ return [check_runtime ${gcc_march}_zvl128b_exec {
int main()
{
int vlenb = 0;
@@ -2195,7 +2195,7 @@ proc check_effective_target_rvv_zvl128b_ok { } {
proc check_effective_target_rvv_zvl256b_ok { } {
# Check if the target has a VLENB of 32.
set gcc_march [riscv_get_arch]
- return [check_runtime ${gcc_march}_exec {
+ return [check_runtime ${gcc_march}_zvl256b_exec {
int main()
{
int vlenb = 0;
@@ -2213,7 +2213,7 @@ proc check_effective_target_rvv_zvl256b_ok { } {
proc check_effective_target_rvv_zvl_ge_256b_ok { } {
# Check if the target has at least a VLENB of 32.
set gcc_march [riscv_get_arch]
- return [check_runtime ${gcc_march}_exec {
+ return [check_runtime ${gcc_march}_zvl_ge_256b_exec {
int main()
{
int vlenb = 0;
@@ -2231,7 +2231,7 @@ proc check_effective_target_rvv_zvl_ge_256b_ok { } {
proc check_effective_target_rvv_zvl512b_ok { } {
# Check if the target has a VLENB of 64.
set gcc_march [riscv_get_arch]
- return [check_runtime ${gcc_march}_exec {
+ return [check_runtime ${gcc_march}_zvl512b_exec {
int main()
{
int vlenb = 0;
--
2.52.0