https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121910
--- Comment #5 from Zhongyao Chen <chenzhongyao.hit at gmail dot com> --- I have doubts about the following code: Why does it return regno_alignment when the calculated lmul is greater than RVV_M8? I change the return to RVV_M8, and then the issue disappeared, no register spill. However, I'm unsure if the changes is appropriate. what you think? @@ -632,7 +726,7 @@ compute_estimated_lmul (loop_vec_info loop_vinfo, machine_mode m ode) int estimated_lmul = estimated_vf * GET_MODE_BITSIZE (mode).to_constant () / TARGET_MIN_VLEN; if (estimated_lmul > RVV_M8) - return regno_alignment; + return RVV_M8; else return estimated_lmul; }