David Green
6cc3d80a84
[ARM] Match dual lane vmovs from insert_vector_elt
...
MVE has a dual lane vector move instruction, capable of moving two
general purpose registers into lanes of a vector register. They look
like one of:
vmov q0[2], q0[0], r2, r0
vmov q0[3], q0[1], r3, r1
They only accept these lane indices though (and only insert into an
i32), either moving lanes 1 and 3, or 0 and 2.
This patch adds some tablegen patterns for them, selecting from vector
inserts elements. Because the insert_elements are know to be
canonicalized to ascending order there are several patterns that we need
to select. These lane indices are:
3 2 1 0 -> vmovqrr 31; vmovqrr 20
3 2 1 -> vmovqrr 31; vmov 2
3 1 -> vmovqrr 31
2 1 0 -> vmovqrr 20; vmov 1
2 0 -> vmovqrr 20
With the top one being the most common. All other potential patterns of
lane indices will be matched by a combination of these and the
individual vmov pattern already present. This does mean that we are
selecting several machine instructions at once due to the need to
re-arrange the inserts, but in this case there is nothing else that will
attempt to match an insert_vector_elt node.
Differential Revision: https://reviews.llvm.org/D92553
2020-12-15 15:58:52 +00:00
..
2020-12-14 11:17:01 +00:00
2020-11-23 10:09:20 -08:00
2020-11-20 17:58:26 -05:00
2020-12-15 15:58:52 +00:00
2020-10-29 15:17:31 +00:00
2020-11-20 20:08:43 -05:00
2020-07-16 11:10:53 +01:00
2020-11-12 08:37:46 +00:00
2020-11-05 08:26:55 +00:00
2020-11-12 08:37:46 +00:00
2020-07-16 11:10:53 +01:00
2020-05-27 13:09:13 +01:00
2020-09-30 10:35:25 -04:00
2020-10-29 15:17:31 +00:00
2020-11-05 08:26:55 +00:00
2020-07-28 13:31:17 +01:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-14 21:01:00 +03:00
2020-12-14 21:01:00 +03:00
2020-12-11 09:23:57 +00:00
2020-08-12 18:35:01 +01:00
2020-11-12 08:37:46 +00:00
2020-11-10 16:28:57 +00:00
2020-09-23 14:10:33 -07:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-08-28 19:05:29 +01:00
2020-08-28 19:05:29 +01:00
2020-08-28 19:05:29 +01:00
2020-12-15 15:58:52 +00:00
2020-08-28 19:05:29 +01:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-11-10 16:28:57 +00:00
2020-11-10 16:28:57 +00:00
2020-12-11 09:23:57 +00:00
2020-11-10 15:57:58 +00:00
2020-11-12 08:37:46 +00:00
2020-11-12 08:37:46 +00:00
2020-11-12 08:37:46 +00:00
2020-11-12 08:37:46 +00:00
2020-12-15 15:58:52 +00:00
2020-11-12 08:37:46 +00:00
2020-11-12 08:37:46 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-11-12 08:37:46 +00:00
2020-11-10 16:28:57 +00:00
2020-12-15 15:58:52 +00:00
2020-12-11 09:23:57 +00:00
2020-11-10 16:28:57 +00:00
2020-09-17 16:58:35 +01:00
2020-12-14 21:01:00 +03:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-10 09:17:34 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-10-30 15:06:49 +00:00
2020-10-30 15:06:49 +00:00
2020-10-30 15:06:49 +00:00
2020-12-15 15:58:52 +00:00
2020-11-12 08:37:46 +00:00
2020-11-10 16:28:57 +00:00
2020-12-11 09:23:57 +00:00
2020-12-15 15:58:52 +00:00
2020-09-17 16:00:51 +01:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-11-10 15:57:58 +00:00
2020-12-15 15:58:52 +00:00
2020-08-28 19:05:29 +01:00
2020-08-28 19:05:29 +01:00
2020-08-28 19:05:29 +01:00
2020-08-28 19:05:29 +01:00
2020-08-28 19:05:29 +01:00
2020-12-01 15:05:55 +00:00
2020-07-30 10:34:02 +01:00
2020-12-15 15:58:52 +00:00
2020-11-10 16:28:57 +00:00
2020-12-15 15:58:52 +00:00
2020-11-12 08:37:46 +00:00
2020-06-25 20:54:26 +01:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-11-12 08:37:46 +00:00
2020-12-15 15:58:52 +00:00
2020-10-07 10:36:44 -07:00
2020-12-15 15:58:52 +00:00
2020-11-12 08:37:46 +00:00
2020-11-12 08:37:46 +00:00
2020-11-12 08:37:46 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-08-03 22:03:14 +01:00
2020-09-22 10:11:37 -04:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-10-30 15:06:49 +00:00
2020-10-07 10:36:44 -07:00
2020-10-07 10:36:44 -07:00
2020-10-07 10:36:44 -07:00
2020-12-11 09:23:57 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-10-30 15:06:49 +00:00
2020-09-30 10:35:25 -04:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-10 12:14:23 +00:00
2020-11-10 16:28:57 +00:00
2020-08-13 18:01:11 +01:00
2020-10-08 08:05:48 +01:00
2020-10-07 10:36:44 -07:00
2020-06-16 12:27:24 +01:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-08 14:05:07 +00:00
2020-11-09 13:17:53 +00:00
2020-07-22 15:59:49 +02:00
2020-12-09 07:56:44 +00:00
2020-12-15 15:58:52 +00:00
2020-10-30 15:06:49 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-12-15 15:58:52 +00:00
2020-09-01 17:02:07 +01:00
2020-11-14 15:37:53 +00:00
2020-08-01 14:01:18 +01:00
2020-07-27 13:42:13 -07:00
2020-07-27 13:42:13 -07:00
2020-08-17 20:44:33 +02:00
2020-11-12 08:37:46 +00:00
2020-07-20 10:39:04 +01:00
2020-11-03 20:44:40 -05:00
2020-10-03 16:47:50 +01:00