[PATCH] D106261: [ARM][LowOverheadLoops] Allow unpredicated VORRs if the operand def produces zeroed false lanes
    Sam Tebbs via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Jul 19 03:44:30 PDT 2021
    
    
  
samtebbs created this revision.
samtebbs added reviewers: dmgreen, SjoerdMeijer, NickGuy.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
samtebbs requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
  A VORR of the form $qX = VORR $qY, $qY essentially just moves $qY into
  $qX but is currently not allowed in a tail-predicated loop.
  
  If the definition of $qY produces zeroed false lanes then we now
  consider the VORR to produce zeroed false lanes as well, since it
  doesn't modify the incoming lane values.
  
  This required modifying some existing tests that used a VORR of this
  format to test unpredicated instructions that defined a live-out.
Repository:
  rG LLVM Github Monorepo
https://reviews.llvm.org/D106261
Files:
  llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/vorr-false-lanes-zero.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106261.359733.patch
Type: text/x-patch
Size: 46197 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210719/e9c9ffe0/attachment-0001.bin>
    
    
More information about the llvm-commits
mailing list