LGTM, we found that issue in last week as well...:P

Jin Ma <[email protected]> 於 2026年8月21日週五 上午12:11寫道:
>
> 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
>

Reply via email to