summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-12-09 16:43:32 +0000
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-12-09 16:43:32 +0000
commit10f6eb91a085a56de43e4f7eb685c8bff3a8ac6a (patch)
treebf0d75013bb1f626970ae6005b1cb7a17b286755 /llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
parentcbc5703aeb2164ceddd4006cf965ab648618926d (diff)
downloadbcm5719-llvm-10f6eb91a085a56de43e4f7eb685c8bff3a8ac6a.tar.gz
bcm5719-llvm-10f6eb91a085a56de43e4f7eb685c8bff3a8ac6a.zip
[PowerPC 2/4] Little-endian adjustments for VSX insert/extract operations
For little endian, we need to make some straightforward adjustments in the code expansions for scalar_to_vector and vector_extract of v2f64. First, scalar_to_vector must place the scalar into vector element zero. However, our implementation of SUBREG_TO_REG will place it into big-element vector element zero (high-order bits), and for little endian we need it in the low-order bits. The LE implementation splats the high-order doubleword into the low-order doubleword. Second, the meaning of (vector_extract x, 0) and (vector_extract x, 1) must be reversed for similar reasons. A new test is added that tests code generation for insertelement and extractelement for both element 0 and element 1. It is disabled in this patch but enabled in patch 4/4, for reasons stated in the test. llvm-svn: 223788
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud