[PATCH] D129735: [WIP][RISCV] Add new pass to transform undef to pesudo for vector values.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 21 11:54:49 PDT 2022


craig.topper added a comment.

I remember now. It only miscompiles with `-riscv-enable-subreg-liveness`

That produces

  foo:                                    # @foo
          .cfi_startproc
  # %bb.0:                                # %loopIR.preheader.i.i
          vsetvli a0, zero, e16, mf4, ta, ma
          vid.v   v8
          vadd.vi v10, v8, 1
          vadd.vi v12, v8, 3
  .LBB0_1:                                # %loopIR3.i.i
                                          # =>This Inner Loop Header: Depth=1
          vl1r.v  v9, (zero)
          vsetivli        zero, 4, e8, m1, ta, ma
          vrgatherei16.vv v11, v9, v8
          vrgatherei16.vv v13, v9, v10
          vsetvli a0, zero, e8, m1, ta, ma
          vand.vv v11, v11, v13
          vsetivli        zero, 4, e8, m1, ta, ma
          vrgatherei16.vv v13, v9, v12 <- this instruction violates the early clobber constraint
          vsetvli a0, zero, e8, m1, ta, ma
          vand.vv v9, v11, v13
          vs1r.v  v9, (zero)
          j       .LBB0_1
  .Lfunc_end0:
          .size   foo, .Lfunc_end0-foo
          .cfi_endproc
                                          # -- End function                        
          .section        ".note.GNU-stack","", at progbits


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129735/new/

https://reviews.llvm.org/D129735



More information about the llvm-commits mailing list