https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122448

--- Comment #7 from Robin Dapp <rdapp at gcc dot gnu.org> ---
Looks like another case of lifting up a vsetvl where we shouldn't.

...
        ld      s8,40(sp)
        .cfi_restore 24
        ld      s9,32(sp)
        .cfi_restore 25
        vsetvli a5,zero,e16,m1,ta,ma  # This clobbers a5
.L12:
        beq     a1,zero,.L29
        sb      a5,%lo(d)(s11)        # Here we store the value to be printed
        sh      a4,%lo(c)(s10)

a5 is zero before the vsetvli and 8 after.

Still need to figure out where exactly we go wrong.
I'm pretty sure we check for "transparency" before lifting up a vsetvl.

Reply via email to