[PATCH] D157872: [SelectionDAG] Use TypeSize variant of ComputeValueVTs to compute correct offsets for scalable aggregate types.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 14 11:18:06 PDT 2023


craig.topper added inline comments.


================
Comment at: llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.ll:2
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc -mtriple riscv64 -mattr=+v -riscv-enable-subreg-liveness < %s  | FileCheck %s
+; RUN: llc -mtriple riscv64 -mattr=+m,+v -riscv-enable-subreg-liveness < %s  | FileCheck %s
 
----------------
paulwalker-arm wrote:
> craig.topper wrote:
> > Why do we need to add +m, but have no other changes to the test?
> This test triggered a crash that reported the "m" extension is required for the requested operation.
> 
> The code quality of `vrgatherei16-subreg-liveness.ll` was substantially worse after this fix with extra stack accesses and the like. I figured this was vscale mul related and so tried enabling the "m" extension and the original test output was obtained.
> 
> I don't know enough to understand why but figured that an existing issue was being masked by the missing "offset is scaled" information.
I took a look. Looks like we have a `t2: i64 = vscale Constant:i64<0>` that gets lowered to mul and then immediately converted to a libcall.

I guess we should have a vscale combine for 0?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D157872



More information about the llvm-commits mailing list