https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116573
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- So with the patch I see tons of "regressions" (https://github.com/ewlu/gcc-precommit-ci/issues/2248#issuecomment-2355417578) like for example for gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-1.c we go from .L6: mv a4,a3 bleu a3,a5,.L5 csrr a4,vlenb .L5: vsetvli zero,a4,e8,m1,ta,ma vle8.v v1,0(a1) vle8.v v2,0(a2) vsetvli a6,zero,e8,m1,ta,ma vsaddu.vv v1,v1,v2 vsetvli zero,a4,e8,m1,ta,ma vse8.v v1,0(a0) add a1,a1,a5 add a2,a2,a5 add a0,a0,a5 mv a4,a3 sub a3,a3,a5 bgtu a4,a5,.L6 to .L5: vsetvli a5,a3,e8,m1,ta,ma vle8.v v1,0(a1) vle8.v v2,0(a2) vsaddu.vv v1,v1,v2 vse8.v v1,0(a0) add a1,a1,a5 add a2,a2,a5 add a0,a0,a5 sub a3,a3,a5 bne a3,zero,.L5 so we're now using .SELECT_VL where we didn't before. Unfortunately all the regressing testcases are compile-only :/ I think the new variant is OK, we're accessing all uchar8_t data only, I don't know why we rejected the use of .SELECT_VL for this earlier. I do not feel like checking all of the 900 additional FAILs that appear in the CI though.