[PATCH] D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT

Sam Tebbs via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 30 07:51:46 PDT 2020


samtebbs created this revision.
samtebbs added reviewers: samparker, SjoerdMeijer, dmgreen.
Herald added subscribers: llvm-commits, danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.
samtebbs requested review of this revision.

There were cases where a VCMP and a VPST were merged even if the VCMP didn't have the same defs of its operands as the VPST. This is fixed by adding RDA checks for the defs.

This however gave rise to cases where the new VPST created would precede the un-merged VCMP and so would fail a predicate mask assertion since the VCMP wasn't predicated. This was solved by converting the VCMP to a VPT instead of inserting the new VPST.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D90461

Files:
  llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vcmp-vpst-combination.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90461.301896.patch
Type: text/x-patch
Size: 7523 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201030/126c5c1b/attachment.bin>


More information about the llvm-commits mailing list