[PATCH] D93867: [RISCV] Add earlyclobber of destination register to vmsbf.m/vmsif.m/vmsof.m instructions

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 28 11:44:11 PST 2020


craig.topper created this revision.
craig.topper added reviewers: khchen, HsiangKai.
Herald added subscribers: frasercrmck, NickHung, evandro, luismarques, apazos, sameer.abuasal, pzheng, s.egerton, lenary, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya.
craig.topper requested review of this revision.
Herald added a subscriber: MaskRay.
Herald added a project: LLVM.

The spec for these instructions include this note. "The destination register
cannot overlap either the source register or the mask register ('v0') if the
instruction is masked." So we need earlyclobber to enforce this constraint.

I've regenerated the tests with update_llc_test_checks.py to show the
effects of the earlyclobber.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D93867

Files:
  llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
  llvm/test/CodeGen/RISCV/rvv/vmsbf-rv32.ll
  llvm/test/CodeGen/RISCV/rvv/vmsbf-rv64.ll
  llvm/test/CodeGen/RISCV/rvv/vmsif-rv32.ll
  llvm/test/CodeGen/RISCV/rvv/vmsif-rv64.ll
  llvm/test/CodeGen/RISCV/rvv/vmsof-rv32.ll
  llvm/test/CodeGen/RISCV/rvv/vmsof-rv64.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93867.313879.patch
Type: text/x-patch
Size: 61104 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201228/cbc8ac4b/attachment.bin>


More information about the llvm-commits mailing list