OSDN Git Service

[AArch64] Optimize some simple TBZ/TBNZ cases.
authorGeoff Berry <gberry@codeaurora.org>
Mon, 4 Jan 2016 18:55:47 +0000 (18:55 +0000)
committerGeoff Berry <gberry@codeaurora.org>
Mon, 4 Jan 2016 18:55:47 +0000 (18:55 +0000)
commita1c12525dcbaa0c116d8e308a4f68718ed32ca4c
tree282b7af70f182d64727eec2d9534a53acdceb12b
parentd84e2865f64b93c520e11ff15c4dce9aabfcad33
[AArch64] Optimize some simple TBZ/TBNZ cases.

Summary:
Add some AArch64 dag combines to optimize some simple TBZ/TBNZ cases:

 (tbz (and x, m), b) -> (tbz x, b)
 (tbz (shl x, c), b) -> (tbz x, b-c)
 (tbz (shr x, c), b) -> (tbz x, b+c)
 (tbz (xor x, -1), b) -> (tbnz x, b)

Reviewers: jmolloy, mcrosier, t.p.northover

Subscribers: aemerson, rengolin, llvm-commits

Differential Revision: http://reviews.llvm.org/D15702

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256765 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
test/CodeGen/AArch64/tbz-tbnz.ll