[PATCH] D158625: [RISCV] Use vmv.v.x if Hi bits are undef when lowering splat_vector_parts

Luke Lau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 23 08:22:05 PDT 2023


luke created this revision.
luke added reviewers: craig.topper, reames, frasercrmck.
Herald added subscribers: jobnoorman, asb, sunshaoce, pmatos, VincentWu, vkmr, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, hiraditya, arichardson.
Herald added a project: All.
luke requested review of this revision.
Herald added subscribers: llvm-commits, wangpc, alextsao1999, eopXD, MaskRay.
Herald added a project: LLVM.

When lowering a splat_vector_parts, if the hi bits are undefined then we can
splat the lo bits without having to check if it's going to be sign extended or
not, because those bits will be undefined anyway.

I've handled it for both fixed and scalable vectors, but there's no diff 
on the scalable vror tests, since the hi bits aren't combined away to 
undef in SimplifyDemanded for scalable vectors. I'm not sure why that is.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D158625

Files:
  llvm/lib/Target/RISCV/RISCVISelLowering.cpp
  llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
  llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158625.552724.patch
Type: text/x-patch
Size: 23174 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230823/d4ab944b/attachment.bin>


More information about the llvm-commits mailing list