AArch64/ARM64: port BSL logic from AArch64 & enable test.
authorTim Northover <tnorthover@apple.com>
Fri, 18 Apr 2014 09:31:01 +0000 (09:31 +0000)
committerTim Northover <tnorthover@apple.com>
Fri, 18 Apr 2014 09:31:01 +0000 (09:31 +0000)
commit937290d7ed33e1955e2a76649678acfa5e69ede1
tree00251c61417df1ad1a4040a531a8ae742505e937
parent2f5d14af9d13ea08fa8df0d9083df6f918894f11
AArch64/ARM64: port BSL logic from AArch64 & enable test.

I enhanced it a little in the process. The decision shouldn't really be beased
on whether a BUILD_VECTOR is a splat: any set of constants will do the job
provided they're related in the correct way.

Also, the BUILD_VECTOR could be any operand of the incoming AND nodes, so it's
best to check for all 4 possibilities rather than assuming it'll be the RHS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206569 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM64/ARM64ISelLowering.cpp
lib/Target/ARM64/ARM64ISelLowering.h
lib/Target/ARM64/ARM64InstrInfo.td
test/CodeGen/AArch64/neon-bitwise-instructions.ll
test/CodeGen/AArch64/neon-bsl.ll