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 ?

Reply via email to