ARM: Use a dedicated intrinsic for vector bitwise select.
authorJim Grosbach <grosbach@apple.com>
Fri, 21 Sep 2012 00:18:20 +0000 (00:18 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 21 Sep 2012 00:18:20 +0000 (00:18 +0000)
commitced674e470bb949d0adce90d79563789439333a8
tree2882d1ce74924c07a1228e276526e1f3b0d23857
parente6e2d8cd90ceb5190aa646dc06584027f7d492d0
ARM: Use a dedicated intrinsic for vector bitwise select.

The expression based expansion too often results in IR level optimizations
splitting the intermediate values into separate basic blocks, preventing
the formation of the VBSL instruction as the code author intended. In
particular, LICM would often hoist part of the computation out of a loop.

rdar://11011471

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164340 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IntrinsicsARM.td
lib/Target/ARM/ARMInstrNEON.td
test/CodeGen/ARM/vbsl.ll