diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-12-09 16:52:29 +0000 |
---|---|---|
committer | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-12-09 16:52:29 +0000 |
commit | 3014435ca93d284551f72c5558194d511edca93a (patch) | |
tree | 61a45f9752a728ec0854980efc1633775b23baab /llvm/lib/Target/PowerPC/PPCSubtarget.cpp | |
parent | a4f104b2ce0f17f74d6db2d89169f0b01053eeb6 (diff) | |
download | bcm5719-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