summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-12-09 16:52:29 +0000
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-12-09 16:52:29 +0000
commit3014435ca93d284551f72c5558194d511edca93a (patch)
tree61a45f9752a728ec0854980efc1633775b23baab /llvm/lib/Target/PowerPC/PPCSubtarget.cpp
parenta4f104b2ce0f17f74d6db2d89169f0b01053eeb6 (diff)
downloadbcm5719-llvm-3014435ca93d284551f72c5558194d511edca93a.tar.gz
bcm5719-llvm-3014435ca93d284551f72c5558194d511edca93a.zip
[PowerPC 3/4] Little-endian adjustments for VSX vector shuffle
When performing instruction selection for ISD::VECTOR_SHUFFLE, there is special code for handling v2f64 and v2i64 using VSX instructions. This code must be adjusted for little-endian. Because the two inputs are treated as a double-wide register, we must swap their order for little endian. To get the appropriate mask elements to use with the big-endian biased XXPERMDI instruction, we must reverse their order and invert the bits. A new test is added to test the 16 possible values of the shuffle mask. It is initially disabled for reasons specified in the test. It is re-enabled by patch 4/4. llvm-svn: 223791
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCSubtarget.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud