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

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 15 03:19:13 PDT 2023


paulwalker-arm 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
 
----------------
craig.topper wrote:
> 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?
Thanks for the investigation @craig.topper , I can confirm updating getVScale() removes the need for the `+m` test changes. If there's no objection I'll land it as part of this patch.


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