Bill Schmidt
68a4b41648
[PPC64LE] More vector swap optimization TLC
...
This makes one substantive change and a few stylistic changes to the
VSX swap optimization pass.
The substantive change is to permit LXSDX and LXSSPX instructions to
participate in swap optimization computations. The previous change to
insert a swap following a SUBREG_TO_REG widening operation makes this
almost trivial.
I experimented with also permitting STXSDX and STXSSPX instructions.
This can be done using similar techniques: we could insert a swap
prior to a narrowing COPY operation, and then permit these stores to
participate. I prototyped this, but discovered that the pattern of a
narrowing COPY followed by an STXSDX does not occur in any of our
test-suite code. So instead, I added commentary indicating that this
could be done.
Other TLC:
- I changed SH_COPYSCALAR to SH_COPYWIDEN to more clearly indicate
the direction of the copy.
- I factored the insertion of swap instructions into a separate
function.
Finally, I added a new test case to check that the scalar-to-vector
loads are working properly with swap optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242838 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-21 21:40:17 +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-04-16 23:24:18 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 19:29:02 +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-03-13 18:20:45 +00:00
2015-02-27 19:29:02 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 19:29:02 +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-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-06-17 20:52:32 +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-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-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-03-13 18:20:45 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-04-23 18:30:38 +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-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-03-17 14:50:32 +00:00
2014-10-19 21:29:21 +00:00
2015-02-27 19:29:02 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2014-12-15 19:07:53 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-17 14:50:32 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 18:30:38 +00:00
2015-01-06 16:46:37 +00:00
2015-04-23 18:30:38 +00:00
2014-12-15 19:07:53 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 23:05:08 +00:00
2015-04-23 23:05:08 +00:00
2015-04-23 23:05:08 +00:00
2015-02-27 21:17:42 +00:00
2014-10-31 10:33:14 +00:00
2015-04-23 18:30:38 +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-07-14 17:25:20 +00:00
2015-06-11 06:21:25 +00:00
2015-02-27 21:17:42 +00:00
2014-12-04 00:46:20 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-01-05 03:41:38 +00:00
2014-10-17 01:41:22 +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-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-03-04 20:44:33 +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-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-23 18:30:38 +00:00
2015-04-29 16:38:44 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-09 23:54:37 +00:00
2015-04-09 23:54:37 +00:00
2015-02-27 21:17:42 +00:00
2014-12-15 19:07:53 +00:00
2015-04-23 16:45:24 +00:00
2015-04-20 00:01:30 +00:00
2015-03-05 18:55:50 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2015-04-10 03:39:00 +00:00
2014-10-19 21:29:21 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 18:32:11 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 18:32:11 +00:00
2015-04-04 02:26:47 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 18:32:11 +00:00
2015-02-27 21:17:42 +00:00
2014-10-17 01:41:22 +00:00
2014-11-24 23:45:21 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-20 20:29:40 +00:00
2015-04-20 20:29:40 +00:00
2014-10-21 13:02:37 +00:00
2015-05-29 17:13:25 +00:00
2014-10-21 23:01:01 +00:00
2014-10-21 23:01:01 +00:00
2014-10-19 21:29:21 +00:00
2014-10-19 21:29:21 +00:00
2014-10-19 21:29:21 +00:00
2015-04-11 10:40:42 +00:00
2015-02-27 21:17:42 +00:00
2015-01-06 06:01:57 +00:00
2014-12-26 16:42:47 +00:00
2015-02-27 21:17:42 +00:00
2014-10-17 01:41:22 +00:00
2014-10-17 01:41:22 +00:00
2015-06-17 20:52:32 +00:00
2015-06-18 22:38:20 +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-25 19:36:23 +00:00
2015-01-05 21:10:24 +00:00
2015-04-23 18:30:38 +00:00
2014-10-19 21:29:21 +00:00
2015-02-27 21:17:42 +00:00
2015-01-13 19:43:45 +00:00
2015-01-13 19:43: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-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-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-04-23 18:30:38 +00:00
2015-04-10 15:05:02 +00:00
2015-02-27 21:17:42 +00:00
2015-04-12 17:18:56 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-06-30 19:45:45 +00:00
2015-07-15 08:23:05 +00:00
2015-02-27 21:17:42 +00:00
2015-03-19 02:40:56 +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-10-17 01:41:22 +00:00
2015-04-23 16:45:24 +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-10-17 01:41:22 +00:00
2015-02-27 21:17:42 +00:00
2015-04-15 15:59:37 +00:00
2015-04-23 16:45:24 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:58:28 +00:00
2015-03-31 20:35:26 +00:00
2015-03-31 20:56:09 +00:00
2015-05-08 14:04:54 +00:00
2015-06-16 16:01:15 +00:00
2015-02-27 21:17:42 +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
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2015-02-01 15:03:28 +00:00
2015-02-01 15:03:28 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2015-02-27 21:17:42 +00:00
2015-02-12 01:02:52 +00:00
2015-02-27 21:17:42 +00:00
2015-04-01 00:40:48 +00:00
2015-02-27 21:17:42 +00:00
2015-02-01 17:52:16 +00:00
2015-04-11 00:33:08 +00:00
2015-02-27 21:17:42 +00:00
2015-04-23 18:30:38 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-07-12 00:37:44 +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-04-16 23:24:18 +00:00
2015-07-14 22:26:06 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-17 06:45:15 +00:00
2015-07-14 20:02:02 +00:00
2015-07-14 20:02:02 +00:00
2015-01-19 07:20:27 +00:00
2015-02-27 21:17:42 +00:00
2015-05-25 15:49:26 +00:00
2015-01-14 20:17:10 +00:00
2015-01-14 20:17:10 +00:00
2015-03-05 19:47:50 +00:00
2015-07-12 00:37:44 +00:00
2015-01-15 21:17:34 +00:00
2015-07-14 22:53:11 +00:00
2015-02-01 15:03:28 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-07-14 22:26:06 +00:00
2015-03-05 19:47:50 +00:00
2014-12-11 22:51:06 +00:00
2015-04-23 18:30:38 +00:00
2015-03-13 18:20:45 +00:00
2015-01-25 18:05:42 +00:00
2015-03-05 18:55:50 +00:00
2015-05-07 18:24:05 +00:00
2015-02-27 21:17:42 +00:00
2014-10-02 22:34:22 +00:00
2015-07-14 20:02:02 +00:00
2015-03-26 00:57:33 +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-03-13 18:20:45 +00:00
2015-04-29 16:38:44 +00:00
2015-03-13 18:20:45 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 23:29:57 +00:00
2015-04-22 11:32:25 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-25 01:06:45 +00:00
2015-02-25 01:06:45 +00:00
2015-02-25 01:26:59 +00:00
2015-02-27 21:17:42 +00:00
2015-02-25 01:06:45 +00:00
2015-02-25 01:06:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-25 01:26:59 +00:00
2015-02-27 21:17:42 +00:00
2015-03-23 08:22:43 +00:00
2015-02-25 01:26:59 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-07-12 02:33:57 +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-03-13 18:20:45 +00:00
2015-02-10 19:09:05 +00:00
2015-02-27 21:17:42 +00:00
2014-12-16 05:51:41 +00:00
2015-04-23 18:30:38 +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-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2014-10-17 01:41:22 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-23 18:30:38 +00:00
2014-12-23 08:38:50 +00:00
2014-11-12 15:16:30 +00:00
2015-04-23 18:30:38 +00:00
2015-07-14 20:02:02 +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-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +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 19:29:02 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 19:29:02 +00:00
2015-04-23 18:30:38 +00:00
2015-04-23 18:30:38 +00:00
2015-02-27 21:17:42 +00:00
2015-04-27 19:57:34 +00:00
2015-05-06 15:40:46 +00:00
2015-07-13 22:58:19 +00:00
2015-07-02 19:01:22 +00:00
2015-07-13 22:58:19 +00:00
2015-07-21 21:40:17 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-07-14 20:02:02 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-04-16 23:24:18 +00:00
2014-10-17 15:13:38 +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-10-19 21:29:21 +00:00
2015-04-29 16:38:44 +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-03-14 01:43:57 +00:00
2015-05-25 15:49:26 +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-05 15:24:47 +00:00
2015-03-03 19:55:45 +00:00
2015-04-03 13:48:24 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-06-25 15:17:40 +00:00
2015-03-03 19:55:45 +00:00
2015-02-27 21:17:42 +00:00
2015-03-10 19:49:38 +00:00
2015-03-10 19:49:38 +00:00
2015-02-27 21:17:42 +00:00
2015-02-04 20:00:04 +00:00
2015-03-05 16:24:38 +00:00
2015-07-20 15:43:21 +00:00
2015-05-16 01:02:12 +00:00
2015-05-21 20:48:49 +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-20 15:54:58 +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-03 10:02:21 +00:00
2014-10-19 21:29:21 +00:00
2015-02-12 22:43:52 +00:00
2015-07-16 21:14:07 +00:00
2015-05-07 18:24:05 +00:00
2015-04-23 18:30:38 +00:00
2014-12-05 20:32:05 +00:00
2015-02-27 21:17:42 +00:00
2015-07-05 06:03:51 +00:00
2015-07-14 20:02:02 +00:00
2015-07-14 20:02:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-27 19:57:34 +00:00
2015-04-27 19:57:34 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-05-21 19:32:49 +00:00
2014-12-05 20:32:05 +00:00
2015-04-16 23:24:18 +00:00
2014-12-05 20:32:05 +00:00
2015-07-16 21:14:07 +00:00
2015-02-27 21:17:42 +00:00
2015-02-18 16:21:46 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00