Florian Hahn
99addbf73d
[LV] Vectorize selecting last IV of min/max element. ( #141431 )
...
Add support for vectorizing loops that select the index of the minimum
or maximum element. The patch implements vectorizing those patterns by
combining Min/Max and FindFirstIV reductions.
It extends matching Min/Max reductions to allow in-loop users that are
FindLastIV reductions. It records a flag indicating that the Min/Max
reduction is used by another reduction. The extra user is then check as
part of the new `handleMultiUseReductions` VPlan transformation.
It processes any reduction that has other reduction users. The reduction
using the min/max reduction currently must be a FindLastIV reduction,
which needs adjusting to compute the correct result:
1. We need to find the last IV for which the condition based on the
min/max reduction is true,
2. Compare the partial min/max reduction result to its final value and,
3. Select the lanes of the partial FindLastIV reductions which
correspond to the lanes matching the min/max reduction result.
Depends on https://github.com/llvm/llvm-project/pull/140451
PR: https://github.com/llvm/llvm-project/pull/141431
2025-11-28 22:26:19 +00:00
..
2025-09-18 19:25:05 +01:00
2025-01-06 10:26:51 +00:00
2025-09-18 19:25:05 +01:00
2025-11-13 06:12:40 -10:00
2025-11-26 12:25:55 +00:00
2025-09-11 15:55:18 -04:00
2025-11-17 13:44:25 +00:00
2025-11-28 10:26:27 +00:00
2025-11-26 12:25:55 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-08-25 21:45:21 +01:00
2025-09-18 19:25:05 +01:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-10 17:03:14 +00:00
2025-11-26 12:25:55 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-20 18:42:12 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 16:36:54 +00:00
2025-10-20 08:50:09 +00:00
2025-06-02 17:40:50 +01:00
2025-11-10 12:10:40 +00:00
2025-11-26 12:25:55 +00:00
2025-03-26 21:03:50 +00:00
2025-03-04 08:43:08 +00:00
2025-09-18 19:25:05 +01:00
2025-09-18 19:25:05 +01:00
2025-11-26 16:36:54 +00:00
2025-08-21 21:40:47 +01:00
2025-01-02 14:31:36 +00:00
2025-03-25 12:57:24 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-10-20 08:50:09 +00:00
2025-11-05 22:11:29 +00:00
2025-11-26 12:25:55 +00:00
2025-09-25 07:13:38 +00:00
2025-01-14 22:07:38 +00:00
2025-10-20 08:50:09 +00:00
2025-03-05 18:19:39 +00:00
2025-11-06 07:15:27 +00:00
2025-11-05 22:11:29 +00:00
2025-10-20 08:50:09 +00:00
2025-04-28 20:01:37 +01:00
2025-10-23 11:18:55 +00:00
2024-11-19 08:55:39 +00:00
2025-11-25 05:58:41 +00:00
2025-11-13 19:11:32 +00:00
2025-10-06 22:24:02 +01:00
2024-11-20 09:33:39 +00:00
2025-01-29 08:09:50 +00:00
2025-05-22 07:59:57 +03:00
2025-11-26 12:25:55 +00:00
2025-11-17 13:44:25 +00:00
2025-11-17 13:44:25 +00:00
2025-11-26 16:36:54 +00:00
2025-11-20 10:22:11 +00:00
2025-11-26 16:36:54 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 16:36:54 +00:00
2025-11-20 15:54:57 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 16:36:54 +00:00
2025-11-26 16:36:54 +00:00
2025-10-23 20:31:31 +08:00
2025-10-21 10:49:27 +01:00
2025-11-27 12:18:02 +00:00
2025-10-01 16:53:59 +00:00
2025-11-26 12:25:55 +00:00
2025-10-06 15:32:13 +01:00
2025-11-17 13:44:25 +00:00
2025-08-05 09:42:55 +01:00
2025-01-20 15:05:15 +00:00
2025-11-28 10:26:27 +00:00
2025-11-08 21:59:38 +00:00
2025-11-26 12:25:55 +00:00
2025-11-17 13:44:25 +00:00
2024-11-21 11:21:12 +00:00
2025-07-27 13:53:26 +01:00
2025-10-20 08:50:09 +00:00
2025-10-22 15:21:27 +01:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-09-09 10:46:12 +01:00
2025-11-26 16:36:54 +00:00
2024-11-29 17:41:05 +00:00
2024-11-28 15:07:36 +08:00
2025-11-28 22:26:19 +00:00
2025-11-24 14:39:26 +00:00
2025-11-24 14:39:26 +00:00
2025-04-17 13:26:15 +01:00
2025-11-26 16:36:54 +00:00
2025-11-21 08:14:46 +00:00
2025-01-29 08:09:50 +00:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-09-25 07:13:38 +00:00
2024-12-05 14:36:40 +01:00
2025-01-29 08:09:50 +00:00
2025-11-21 08:14:46 +00:00
2025-11-25 10:26:51 +00:00
2025-11-26 16:36:54 +00:00
2024-11-21 11:21:12 +00:00
2025-10-20 08:50:09 +00:00
2025-09-25 07:13:38 +00:00
2025-09-25 07:13:38 +00:00
2025-09-25 07:13:38 +00:00
2025-09-04 19:31:30 +01:00
2025-10-26 14:45:44 +00:00
2025-09-25 07:13:38 +00:00
2025-06-19 13:24:39 +01:00
2025-11-26 12:25:55 +00:00
2025-08-26 15:52:31 +01:00
2025-10-20 08:50:09 +00:00
2025-11-25 05:58:41 +00:00
2025-11-17 13:44:25 +00:00
2025-01-21 21:37:51 +00:00
2025-11-21 08:14:46 +00:00
2025-11-17 13:44:25 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-08-14 19:27:51 +01:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-08-14 19:27:51 +01:00
2025-08-26 15:52:31 +01:00
2025-10-20 08:50:09 +00:00
2025-05-29 11:15:16 +08:00
2025-03-21 09:24:56 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-11-17 13:44:25 +00:00
2025-10-20 08:50:09 +00:00
2025-08-08 11:44:32 +01:00
2025-10-20 08:50:09 +00:00
2025-09-19 12:57:13 +01:00
2025-11-11 11:46:59 +00:00
2025-11-10 17:03:14 +00:00
2025-11-20 18:58:25 +00:00
2025-10-20 08:50:09 +00:00
2025-11-25 10:26:51 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2025-10-22 21:27:11 +01:00
2025-11-26 12:25:55 +00:00
2025-11-25 05:58:41 +00:00
2025-09-18 19:25:05 +01:00
2025-11-26 12:25:55 +00:00
2025-10-22 21:27:11 +01:00
2025-11-26 16:36:54 +00:00
2025-11-26 12:25:55 +00:00
2025-11-05 20:57:52 +00:00
2025-11-05 23:11:41 +00:00
2025-10-19 18:49:05 +00:00
2025-10-22 21:27:11 +01:00
2025-10-19 18:49:05 +00:00
2025-11-26 16:36:54 +00:00
2025-10-20 08:50:09 +00:00
2025-06-17 11:07:43 +01:00
2025-08-14 21:53:45 +01:00
2025-11-26 12:25:55 +00:00
2025-10-20 08:50:09 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 16:18:22 +00:00
2025-11-25 10:26:51 +00:00
2025-11-28 10:26:27 +00:00
2025-11-26 16:36:54 +00:00