https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112387
--- Comment #1 from JuzheZhong <juzhe.zhong at rivai dot ai> --- Oh. I see. with -fno-vect-cost-model, it can SLP now: https://godbolt.org/z/q5se4sd9x foo: beq a3,zero,.L8 csrr a6,vlenb srli a4,a6,3 slli a3,a3,1 neg t1,a4 vsetvli a5,zero,e64,m1,ta,ma vmv.v.i v2,1 vid.v v0 vand.vi v0,v0,1 vmseq.vi v0,v0,1 vmerge.vim v2,v2,2,v0 .L3: minu a5,a3,a4 vsetvli zero,a5,e64,m1,ta,ma mv a7,a3 vle64.v v1,0(a2) vsll.vi v1,v1,3 vluxei64.v v1,(a1),v1 vadd.vv v1,v1,v2 vse64.v v1,0(a0) add a2,a2,a6 add a0,a0,a6 add a3,a3,t1 bgtu a7,a4,.L3 .L8: ret It's odd.... I think SLP should always preferrable choice.