> > riscv support for vectorization tests in the testsuite is somewhat > confused: we enable only compilation of vector tests with riscv_v_ok, > even though it checks for runtime and execution support, but the > various vect_* effective targets only reflect riscv_v, so when testing > with riscv_v_ok && ! riscv_v, we get undesirable failures. > > Unlike other targets, that use <foo> for a compile-time property and > <foo_hw> for a runtime property, or <foo_ok> for a compile-time > property and <foo> for a runtime property, riscv seems to use <foo> > for a property enabled by default and <foo_ok> for a property > available with compile-time flags. > > I've added riscv_v_okc to check for tooling support for compilation > with vectors enabled, bypassing runtime support. > check_vect_support_and_set_flags, that sets things up for the vect > tests, now enables execution with riscv_v_ok, just like riscv_v, > including the use of -mno-vector-strict-align, so that we don't get > unexpected differences when execution of vector instructions is > available. Otherwise, when riscv_v_okc is available, vect tests > default to compilation only.
I agree with your diagnosis but not entirely with the treatment :) Rather than adding a third option, I'd prefer regularizing the existing once to match what others are doing, i.e. riscv_v -> can compiler vector (with or without added options, add options if necessary) riscv_v_hw -> can execute vector I realize there are tons of tests that don't follow a proper scheme but I would hope rewriting to be mostly mechanical? -- Regards Robin
