Luke Lau
df8da2ff83
[VPlan] Support VPWidenPointerInductionRecipes with EVL tail folding ( #152110 )
...
Now that VPWidenPointerInductionRecipes are modelled in VPlan in
#148274 , we can support them in EVL tail folding.
We need to replace their VFxUF operand with EVL as the increment is not
guaranteed to always be VF on the penultimate iteration, and UF is
always 1 with EVL tail folding.
We also need to move the creation of the backedge value to the latch so
that EVL dominates it.
With this we will no longer fail to convert a VPlan to EVL tail folding,
so adjust tryAddExplicitVectorLength to account for this. This brings us
to 99.4% of all vector loops vectorized on SPEC CPU 2017 with tail
folding vs no tail folding.
The test in only-compute-cost-for-vplan-vfs.ll previously relied on
widened pointer inductions with EVL tail folding to end up in a scenario
with no vector VPlans, so this also replaces it with an unvectorizable
fixed-order recurrence test from
first-order-recurrence-multiply-recurrences.ll that also gets discarded.
2025-08-07 10:54:24 +08:00
..
2025-08-07 10:54:24 +08:00
2025-07-26 17:16:36 +01:00
2025-08-06 20:03:31 +01:00
2025-01-14 22:07:38 +00:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-07 10:54:24 +08:00
2025-08-06 20:03:31 +01:00
2025-03-25 12:57:24 +00:00
2025-08-06 20:03:31 +01:00
2024-11-21 08:06:56 +00:00
2025-04-04 15:44:26 +01:00
2025-08-05 18:48:10 +01:00
2025-07-26 17:16:36 +01:00
2025-07-31 15:56:31 -04:00
2025-07-26 17:16:36 +01:00
2025-03-26 21:03:50 +00:00
2024-09-04 16:28:39 +05:30
2025-07-26 17:16:36 +01:00
2025-07-30 17:55:00 +02:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +01:00
2024-09-19 09:41:25 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 21:45:25 +01:00
2025-01-23 22:29:30 +00:00
2025-08-06 20:03:31 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 15:43:51 -04:00
2025-04-04 15:34:45 +02:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2025-06-27 10:39:33 +01:00
2025-07-14 08:17:33 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-05 21:06:41 +01:00
2025-07-27 13:53:26 +01:00
2025-01-14 22:07:38 +00:00
2025-07-27 13:53:26 +01:00
2025-01-29 08:09:50 +00:00
2025-01-29 08:09:50 +00:00
2025-01-29 08:09:50 +00:00
2025-07-27 13:53:26 +01:00
2024-12-05 14:36:40 +01:00
2025-06-07 21:49:54 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-06-24 21:48:58 +01:00
2025-08-06 20:03:31 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-14 21:21:22 +01:00
2024-12-05 14:36:40 +01:00
2025-03-14 15:50:49 +00:00
2025-05-27 16:07:56 +01:00
2024-11-21 08:06:56 +00:00
2025-05-14 14:56:35 +01:00
2025-02-27 17:43:24 +00:00
2025-07-27 13:53:26 +01:00
2024-11-06 11:53:33 +00:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2024-11-21 08:06:56 +00:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-03-26 21:03:50 +00:00
2025-07-27 13:53:26 +01:00
2025-04-02 17:23:00 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +01:00
2025-01-29 16:56:47 +01:00
2025-02-09 11:20:20 +00:00
2025-07-27 13:53:26 +01:00
2025-07-30 17:55:00 +02:00
2025-07-30 17:55:00 +02:00
2025-08-01 01:24:52 +05:00
2025-07-27 13:53:26 +01:00
2025-06-26 11:19:09 +01:00
2025-02-26 13:57:51 +00:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2024-12-12 16:48:31 +08:00
2025-08-06 20:03:31 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2024-12-10 20:09:18 +08:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2024-12-05 14:36:40 +01:00
2025-01-29 08:09:50 +00:00
2025-02-20 17:01:49 +01:00
2025-07-26 17:16:36 +01:00
2025-08-06 20:03:31 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-18 21:58:19 +01:00
2025-06-27 10:39:33 +01:00
2025-06-27 10:39:33 +01:00
2025-07-26 17:16:36 +01:00
2025-02-28 12:56:12 +00:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2024-08-11 20:38:36 +02:00
2025-07-27 13:53:26 +01:00
2024-12-18 19:06:34 +01:00
2025-01-29 08:09:50 +00:00
2024-11-21 08:06:56 +00:00
2025-07-27 13:53:26 +01:00
2025-01-29 08:09:50 +00:00
2025-07-27 13:53:26 +01:00
2025-01-29 08:09:50 +00:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2024-10-02 10:28:54 +01:00
2025-03-09 15:05:35 +00:00
2025-06-19 13:24:39 +01:00
2025-08-05 18:01:02 +01:00
2024-11-06 11:53:33 +00:00
2025-04-28 20:01:37 +01:00
2025-08-06 14:43:03 +01:00
2025-02-17 16:40:37 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-08-07 10:54:24 +08:00
2025-03-26 21:03:50 +00:00
2025-07-27 13:53:26 +01:00
2024-11-07 14:09:45 +01:00
2025-01-29 16:56:47 +01:00
2025-07-27 13:53:26 +01:00
2024-11-21 08:06:56 +00:00
2025-08-04 18:41:47 +01:00
2025-03-25 12:57:24 +00:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2024-11-06 11:53:33 +00:00
2025-08-06 20:03:31 +01:00
2025-08-06 20:03:31 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +01:00
2025-02-15 21:54:16 +01:00
2025-07-26 17:16:36 +01:00
2025-04-29 09:47:38 +01:00
2025-05-08 11:49:54 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2025-03-15 21:32:48 +00:00
2024-12-27 10:37:21 +08:00
2025-07-27 13:53:26 +01:00
2025-02-09 11:20:20 +00:00
2025-07-31 14:35:10 +01:00
2025-07-26 17:16:36 +01:00
2025-07-31 14:35:10 +01:00
2025-07-31 14:35:10 +01:00
2025-07-31 14:35:10 +01:00
2025-07-27 13:53:26 +01:00
2024-11-21 08:06:56 +00:00
2025-04-14 17:11:13 +02:00
2025-06-30 22:39:17 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2024-09-19 09:41:25 +01:00
2025-07-31 14:35:10 +01:00
2025-07-31 16:33:25 +01:00
2025-07-26 17:16:36 +01:00
2025-07-26 15:39:21 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-04-02 17:22:40 +01:00
2025-07-27 13:53:26 +01:00
2025-08-05 18:01:02 +01:00
2025-07-27 13:53:26 +01:00
2025-06-19 13:24:39 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-06-19 13:24:39 +01:00
2025-08-06 20:03:31 +01:00
2025-07-27 13:53:26 +01:00
2025-06-19 13:24:39 +01:00
2025-01-29 08:09:50 +00:00
2025-07-27 13:53:26 +01:00
2024-11-06 11:53:33 +00:00
2025-01-29 08:09:50 +00:00
2025-07-27 13:53:26 +01:00
2025-08-07 10:54:24 +08:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-06-08 22:34:07 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2025-06-08 22:34:07 +01:00
2025-06-08 22:34:07 +01:00
2025-06-08 22:34:07 +01:00
2025-06-08 22:34:07 +01:00
2025-06-08 22:34:07 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2024-10-17 16:50:59 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-08-01 14:18:07 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-02 19:49:59 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2025-08-06 20:03:31 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-06-22 13:48:25 +01:00
2025-08-06 20:03:31 +01:00
2025-05-14 14:56:35 +01:00
2025-08-06 20:03:31 +01:00
2025-08-06 20:03:31 +01:00
2025-08-06 20:03:31 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-06-27 10:39:33 +01:00
2025-01-29 08:09:50 +00:00
2025-07-31 14:03:08 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2024-08-21 12:02:54 +02:00
2025-08-06 20:03:31 +01:00
2025-03-26 21:03:50 +00:00
2024-08-19 12:40:20 +01:00
2025-06-27 10:39:33 +01:00
2025-07-27 13:53:26 +01:00
2024-10-16 06:10:19 +01:00
2025-07-27 13:53:26 +01:00
2025-03-25 12:57:24 +00:00
2025-07-31 15:56:31 -04:00
2025-08-04 11:31:00 +01:00
2024-09-19 18:50:10 +01:00
2024-12-05 14:36:40 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-02 16:31:31 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 20:03:31 +01:00
2024-09-06 11:20:14 +02:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-04-18 21:52:05 +01:00
2025-06-07 21:49:54 +01:00
2025-07-27 13:53:26 +01:00
2025-03-10 20:28:56 +00:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-08-06 14:43:03 +01:00
2025-07-01 20:44:50 +01:00
2025-07-16 08:14:12 +01:00
2025-06-07 21:49:54 +01:00
2025-06-07 21:49:54 +01:00
2025-05-27 16:07:56 +01:00
2024-11-06 11:53:33 +00:00
2025-03-19 21:35:15 +00:00
2025-02-26 13:57:51 +00:00
2025-05-27 16:07:56 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00