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 ?

Reply via email to