[PowerPC] Add a pattern for a runtime bit check
authorHal Finkel <hfinkel@anl.gov>
Fri, 2 Sep 2016 02:34:44 +0000 (02:34 +0000)
committerHal Finkel <hfinkel@anl.gov>
Fri, 2 Sep 2016 02:34:44 +0000 (02:34 +0000)
commita39fd4bc532a8d277aa5d19d07a26a97e123ae8c
tree47b908ef30e65a8032c1b1b5b709ed9a8b2b36bb
parent4b5e7f750c8f629bae39fa18e424057f28436cb2
[PowerPC] Add a pattern for a runtime bit check

Following a suggestion by Sanjay, we should lower:

  %shl = shl i32 1, %y
  %and = and i32 %x, %shl
  %cmp = icmp eq i32 %and, %shl
  ret i1 %cmp

into:

  subfic r4, r4, 32
  rlwnm r3, r3, r4, 31, 31

Add this pattern and some associated patterns for the 64-bit case and the
not-equal case. Fixes PR27356.

llvm-svn: 280454
llvm/lib/Target/PowerPC/PPCInstrInfo.td
llvm/test/CodeGen/PowerPC/shift-cmp.ll [new file with mode: 0644]