]> granicus.if.org Git - llvm/commit
[AArch64] Avoid materializing constant 1 when generating cneg instructions.
authorChad Rosier <mcrosier@codeaurora.org>
Wed, 26 Oct 2016 18:15:32 +0000 (18:15 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Wed, 26 Oct 2016 18:15:32 +0000 (18:15 +0000)
commit1d0dc0fb0bffd71dd885ba15b29d91035e822bd0
tree91beb9e8c4fd692414d82db999821f37a032e96f
parent9eeea0a8bb333f974682207233220c35cce169f6
[AArch64] Avoid materializing constant 1 when generating cneg instructions.

Instead of

 cmp w0, #1
 orr w8, wzr, #0x1
 cneg w0, w8, ne

we now generate

 cmp w0, #1
 csinv w0, w0, wzr, eq

PR28965

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285217 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
test/CodeGen/AArch64/cond-sel-value-prop.ll