Daniel Sanders
dfce63b1ba
[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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237689 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-19 12:24:52 +00:00
..
2015-05-08 00:57:22 +00:00
2015-05-12 12:29:17 +00:00
2015-04-29 12:28:58 +00:00
2014-05-09 09:46:21 +00:00
2014-05-09 09:46:21 +00:00
2015-05-19 12:24:52 +00:00
2015-02-27 19:29:02 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-05-08 00:57:22 +00:00
2015-01-26 17:33:46 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2014-06-12 11:55:58 +00:00
2014-08-08 15:47:17 +00:00
2015-01-26 17:33:46 +00:00
2014-07-14 09:40:29 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-02 10:14:54 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-02-27 21:17:42 +00:00
2015-01-26 17:33:46 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2014-11-07 16:54:21 +00:00
2014-07-14 12:41:31 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 09:01:39 +00:00
2015-05-08 00:57:22 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2014-11-07 16:54:21 +00:00
2014-11-07 16:54:21 +00:00
2014-11-07 16:54:21 +00:00
2015-02-27 21:17:42 +00:00
2014-11-07 16:54:21 +00:00
2015-04-13 18:47:19 +00:00
2015-05-14 13:17:56 +00:00
2015-04-17 12:01:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-06-12 10:54:16 +00:00
2015-02-27 21:17:42 +00:00
2014-04-14 16:00:28 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-03-09 22:45:16 +00:00
2014-11-05 22:42:31 +00:00
2014-04-14 16:00:28 +00:00
2015-05-12 17:14:05 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-03-02 12:47:32 +00:00
2015-02-26 12:29:48 +00:00
2015-02-26 12:29:48 +00:00
2015-02-27 21:17:42 +00:00
2015-02-25 15:24:37 +00:00
2015-04-22 18:04:12 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-10-16 15:41:51 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-01-26 17:33:46 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2014-09-02 13:54:53 +00:00
2015-02-27 21:17:42 +00:00
2015-03-24 15:19:14 +00:00
2015-03-30 13:27:25 +00:00
2015-03-24 11:26:34 +00:00
2015-03-30 13:27:25 +00:00
2015-02-27 21:17:42 +00:00
2014-05-22 11:46:58 +00:00
2014-05-22 11:46:58 +00:00
2014-05-22 11:46:58 +00:00
2014-05-22 11:46:58 +00:00
2014-05-22 11:46:58 +00:00
2014-05-22 11:46:58 +00:00
2015-02-26 12:29:48 +00:00
2014-12-17 10:56:16 +00:00
2015-03-13 18:20:45 +00:00
2015-03-24 15:19:14 +00:00
2015-05-08 09:10:15 +00:00
2014-04-14 16:00:28 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-05-08 00:57:22 +00:00
2015-02-27 19:29:02 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2014-06-09 22:42:55 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-26 12:29:48 +00:00
2015-02-27 21:17:42 +00:00
2014-11-07 16:54:21 +00:00
2015-05-08 00:57:22 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2015-03-04 15:47:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2014-12-18 16:39:29 +00:00
2014-11-21 22:04:35 +00:00
2015-02-27 21:17:42 +00:00
2015-02-13 17:51:27 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2014-04-16 11:46:59 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-12-11 13:56:23 +00:00
2015-02-27 21:17:42 +00:00
2015-03-11 20:28:31 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-04 15:47:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2014-09-29 21:57:54 +00:00
2014-09-29 21:57:54 +00:00
2015-04-24 19:32:54 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-02-26 12:29:48 +00:00
2015-02-27 21:17:42 +00:00
2015-02-26 12:29:48 +00:00
2015-02-26 12:29:48 +00:00
2015-02-26 12:29:48 +00:00
2015-02-27 21:17:42 +00:00
2014-04-14 16:00:28 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-04-14 16:00:28 +00:00
2014-06-12 10:44:10 +00:00
2015-04-21 10:49:03 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-01-26 17:33:46 +00:00
2015-01-09 17:21:30 +00:00
2015-01-09 17:21:30 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2014-07-21 10:45:47 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2014-06-23 19:43:40 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-07-14 12:41:31 +00:00
2014-11-07 16:54:21 +00:00
2015-04-15 06:24:07 +00:00
2014-04-14 16:00:28 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2014-12-15 19:07:53 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-26 12:29:48 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-05-08 00:57:22 +00:00
2015-05-08 00:57:22 +00:00
2015-02-27 21:17:42 +00:00
2014-06-12 13:39:06 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-05-08 00:57:22 +00:00
2014-04-14 16:00:28 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-01-26 17:33:46 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 19:29:02 +00:00
2015-05-08 00:57:22 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2014-05-28 18:15:43 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00