https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112438
--- Comment #9 from JuzheZhong <juzhe.zhong at rivai dot ai> --- 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 vadd.vv v2,v2,v1 bne a0,zero,.L3 .L5: ret Seems correct ?