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

Reply via email to