https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113607
--- Comment #13 from JuzheZhong <juzhe.zhong at rivai dot ai> --- Ok. I found a regression between rvv-next and trunk. I believe it is GCC-12 vs GCC-14: rvv-next: ... .L11: li t1,31 mv a2,a1 bleu a7,t1,.L12 bne a6,zero,.L13 li a5,1 subw a5,a5,a3 andi a5,a5,0xff vsetvli a4,zero,e64,m1,ta,mu vmv.v.i v24,0 vmv.v.x v27,a1 vmv1r.v v26,v24 .L14: vsetvli a3,a5,e64,m1,tu,mu sub a5,a5,a3 vmsne.vi v0,v27,0 vmerge.vim v25,v26,1,v0 vadd.vv v24,v24,v25 bne a5,zero,.L14 vsetvli a5,zero,e64,m1,ta,mu vmv.s.x v25,zero li a3,0 vredsum.vs v25,v24,v25 vmv.x.s a5,v25 j .L17 ... RVV trunk GCC: .L8: lui a0,%hi(h) lb a4,%lo(h)(a0) bgt a4,zero,.L37 lui a5,%hi(f) lh t1,%lo(f)(a5) lui a3,%hi(g) addi a3,a3,%lo(g) lw a6,4(a3) not a1,a6 slliw a5,t1,3 srai a1,a1,63 subw a5,a5,t1 lw a7,32(a3) and a1,a6,a1 addiw a2,a5,1 bne a7,zero,.L13 bne t1,zero,.L14 mv a5,a6 blt a6,zero,.L44 .L15: li a3,31 sext.w a2,a5 bleu a6,a3,.L16 li a3,1 .L20: addiw a5,a4,1 bgt a6,zero,.L45 slliw a4,a5,24 sraiw a4,a4,24 bne a4,a3,.L20 li a5,0 li a2,0 j .L19 .L37: lui a5,%hi(c) .L11: lw a0,%lo(c)(a5) addi a0,a0,-6 snez a0,a0 ret I don't think it will affect the correctness. But it's interesting observations..