[PATCH] D149169: [RISCV] Cost constant materialization of vectors in phis
Luke Lau via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 27 02:58:10 PDT 2023
luke added inline comments.
================
Comment at: llvm/test/Analysis/CostModel/RISCV/rvv-phi-const.ll:8
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: br label %d
-; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %x = phi <2 x i8> [ <i8 1, i8 -1>, %a ], [ <i8 -1, i8 1>, %b ]
+; CHECK-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %x = phi <2 x i8> [ <i8 1, i8 -1>, %a ], [ <i8 -1, i8 1>, %b ]
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i8> %x
----------------
ABataev wrote:
> luke wrote:
> > The generated code:
> > ```
> > f: # @f
> > .cfi_startproc
> > # %bb.0:
> > vsetivli zero, 2, e8, mf8, ta, ma
> > vid.v v8
> > andi a0, a0, 1
> > vadd.vv v8, v8, v8
> > beqz a0, .LBB0_2
> > # %bb.1:
> > vrsub.vi v8, v8, 1
> > ret
> > .LBB0_2: # %b
> > vadd.vi v8, v8, -1
> > ret
> > ```
> I have one concern here about loops. In the loop we need to account for the materialization cost only once, if the input constant is a live-in. So for such values better to consider it free, I assume.
That's a good point. The cost of constants in stores must also be currently affected by this too right?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149169/new/
https://reviews.llvm.org/D149169
More information about the llvm-commits
mailing list