https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114639
--- Comment #11 from Li Pan <pan2.li at intel dot com> --- (In reply to Li Pan from comment #10) > The #define FUNCTION_VALUE_REGNO_P(N) ((N) == GP_RETURN || (N) == FP_RETURN) > of the riscv backend doesn't honor vector mode. Then the below part > > 370 ................ if (!targetm.calls.function_value_regno_p > (copy_start)) > > 371 ................ copy_num = 0; > > 372 ................ else > 373 ................ copy_num = hard_regno_nregs (copy_start, > 374 ................................................ GET_MODE (copy_reg)); > > will have copy_num == 0 and then went to a different code path. > > Let me run fully riscv regression test for this fix first. Maybe misunderstand here, need to double-check the vector ABI for return values.