summaryrefslogtreecommitdiffstats
path: root/lldb/source/DataFormatters/FormatManager.cpp
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2015-07-01 19:40:07 +0000
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>2015-07-01 19:40:07 +0000
commitae94f11d55bdcea4a5dfaa32c52d2ba2c0bb7613 (patch)
tree68eaf4cd9418788038479278825a06165e5b6df6 /lldb/source/DataFormatters/FormatManager.cpp
parent5327b8900122dc753d570ab37c156c2fbcef46d8 (diff)
downloadbcm5719-llvm-ae94f11d55bdcea4a5dfaa32c52d2ba2c0bb7613.tar.gz
bcm5719-llvm-ae94f11d55bdcea4a5dfaa32c52d2ba2c0bb7613.zip
[PPC64LE] Enable missing lxvdsx optimization, and related swap optimization
When adding little-endian vector support for PowerPC last year, I inadvertently disabled an optimization that recognizes a load-splat idiom and generates the lxvdsx instruction. This patch moves the offending logic so lxvdsx is once again generated. This pattern is frequently generated by the vectorizer for scalar loads of an effective constant. Previously the lxvdsx instruction was wrongly listed as lane-sensitive for the VSX swap optimization (since both doublewords are identical, swaps are safe). This patch fixes this as well, so that vectorized code using lxvdsx can now have swaps removed from the computation. There is an existing test (@test50) in test/CodeGen/PowerPC/vsx.ll that checks for the missing optimization. However, vsx.ll was only being tested for POWER7 with big-endian code generation. I've added a little-endian RUN statement and expected LE code generation for all the tests in vsx.ll to give us a bit better VSX coverage, including what's needed for this patch. llvm-svn: 241183
Diffstat (limited to 'lldb/source/DataFormatters/FormatManager.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud