Yes, I agree with the general assessment (and didn't mean to insinuate that the FAILs are compiler's or a fault of the patch.
> So these 2 failures in RV32 are not the compile's bugs. I have seen: > /* { dg-do run { target { { {riscv_vector} && {rv64} } } } } */ in > these testcases which can not work to block execution in RV32 (Since > such testcase only needs to be tested on RV64). I think this is the > issue we need to figure out. Yeah sure, we need to be able to run tests only for specific targets. Why does {riscv_vector} && {rv64} not work? For zvfh I'm testing something like the following: proc check_effective_target_riscv_zvfh { } { if { ![istarget rv32*-*-*] && ![istarget rv64*-*-*] } then { return 0; } if !check_effective_target_riscv_vector then { return 0; } return [ [check_runtime riscv_check_zvfh { int main (void) { asm ("vsetivli zero,8,e16,m1,ta,ma"); asm ("vfadd.vv %%v8,%%v8,%%v16" : : : "%%v8"); return 0; } } "-march=rv64gcv_zvfh" ] || ... ] Regards Robin