summaryrefslogtreecommitdiffstats
path: root/clang/unittests/Format/FormatTest.cpp
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2015-05-19 12:24:52 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2015-05-19 12:24:52 +0000
commitc8cd58fa265a982ddcacb8181fdab64873ef2f55 (patch)
tree2efa6f5e45be1c718bd5d2b2846c1b16d4ff2501 /clang/unittests/Format/FormatTest.cpp
parentd6e09e85f972678cc52d754917c6fb7c24efaed5 (diff)
downloadbcm5719-llvm-c8cd58fa265a982ddcacb8181fdab64873ef2f55.tar.gz
bcm5719-llvm-c8cd58fa265a982ddcacb8181fdab64873ef2f55.zip
[mips] Correct and improve special-case shuffle instructions.
Summary: The documentation writes vectors highest-index first whereas LLVM-IR writes them lowest-index first. As a result, instructions defined in terms of left_half() and right_half() had the halves reversed. In addition to correcting them, they have been improved to allow shuffles that use the same operand twice or in reverse order. For example, ilvev used to accept masks of the form: <0, n, 2, n+2, 4, n+4, ...> but now accepts: <0, 0, 2, 2, 4, 4, ...> <n, n, n+2, n+2, n+4, n+4, ...> <0, n, 2, n+2, 4, n+4, ...> <n, 0, n+2, 2, n+4, 4, ...> One further improvement is that splati.[bhwd] is now the preferred instruction for splat-like operations. The other special shuffles are no longer used for splats. This lead to the discovery that <0, 0, ...> would not cause splati.[hwd] to be selected and this has also been fixed. This fixes the enc-3des test from the test-suite on Mips64r6 with MSA. Reviewers: vkalintiris Reviewed By: vkalintiris Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9660 llvm-svn: 237689
Diffstat (limited to 'clang/unittests/Format/FormatTest.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud