https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112438
--- Comment #10 from Kito Cheng <kito at gcc dot gnu.org> --- (In reply to JuzheZhong from comment #9) > I have a draft patch to fix it: > > foo: > ble a0,zero,.L5 > vsetvli a5,zero,e32,m1,ta,ma > vid.v v2 > .L3: > vsetvli a5,a0,e32,m1,ta,ma > slli a4,a5,2 > vle32.v v3,0(a1) > sub a0,a0,a5 > vadd.vv v1,v2,v3 > vse32.v v1,0(a2) > add a1,a1,a4 > add a2,a2,a4 > vsetvli a4,zero,e32,m1,ta,ma > vmv.v.x v1,a5 ^^^^ this splat must be under "vsetvli a5,a0,e32,m1,ta,ma" rather than "vsetvli a4,zero,e32,m1,ta,ma" > vadd.vv v2,v2,v1 > bne a0,zero,.L3 > .L5: > ret > > Seems correct ?