]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - opencl/llvm.git/commit
SDAG: Legalize vector BSWAP into a shuffle if the shuffle is legal but the bswap...
authorBenjamin Kramer <benny.kra@googlemail.com>
Mon, 19 May 2014 13:12:38 +0000 (13:12 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Mon, 19 May 2014 13:12:38 +0000 (13:12 +0000)
commitbb81d9d5fae81ce2a032d632c7268818ff97a864
treed1cac95ebe746dc3639a76a756f1b48d1afec473
parent306cd28e214a7913e5f0fec865e0857609e164b3
SDAG: Legalize vector BSWAP into a shuffle if the shuffle is legal but the bswap not.

- On ARM/ARM64 we get a vrev because the shuffle matching code is really smart. We still unroll anything that's not v4i32 though.
- On X86 we get a pshufb with SSSE3. Required more cleverness in isShuffleMaskLegal.
- On PPC we get a vperm for v8i16 and v4i32. v2i64 is unrolled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209123 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM64/ARM64ISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/ARM/vrev.ll
test/CodeGen/ARM64/rev.ll
test/CodeGen/X86/bswap-vector.ll