Benjamin Maxwell
f22a178b13
Reland "[LV] Support conditional scalar assignments of masked operations" ( #180708 )
...
This patch extends the support added in #158088 to loops where the
assignment is non-speculatable (e.g. a conditional load or divide).
For example, the following loop can now be vectorized:
```
int simple_csa_int_load(
int* a, int* b, int default_val, int N, int threshold)
{
int result = default_val;
for (int i = 0; i < N; ++i)
if (a[i] > threshold)
result = b[i];
return result;
}
```
It does this by extending the recurrence matching from only looking for
selects, to include phis where all operands are the header phi, except
for one which can be an arbitrary value outside the recurrence.
---
Reverts llvm/llvm-project#180275 (original PR: #178862 )
Additional type legalization for `ISD::VECTOR_FIND_LAST_ACTIVE` was
added in #180290 , which should resolve the backend crashes on x86.
2026-02-10 09:57:48 +00:00
..
2025-12-19 22:05:27 +00:00
2025-07-31 15:56:31 -04:00
2025-10-16 09:49:38 +01:00
2025-08-26 09:59:06 +01:00
2026-01-02 18:04:13 +00:00
2025-09-30 10:03:55 +00:00
2026-01-23 07:29:56 +00:00
2025-11-05 09:18:02 +00:00
2025-11-17 13:44:25 +00:00
2025-10-01 16:53:59 +00:00
2025-11-26 12:25:55 +00:00
2026-02-03 07:57:15 +00:00
2026-01-06 20:36:26 +00:00
2025-11-05 09:18:02 +00:00
2026-01-19 21:25:54 +00:00
2026-01-07 04:25:38 +00:00
2026-02-03 07:57:15 +00:00
2025-10-20 08:50:09 +00:00
2026-01-06 09:10:59 +01:00
2026-01-07 10:35:08 +00:00
2025-11-26 12:25:55 +00:00
2025-12-15 10:54:06 +00:00
2025-11-26 12:25:55 +00:00
2025-11-20 18:42:12 +00:00
2025-08-26 09:59:06 +01:00
2025-08-26 09:59:06 +01:00
2025-10-21 10:49:27 +01:00
2025-11-17 13:44:25 +00:00
2025-12-19 22:05:27 +00:00
2025-10-20 08:50:09 +00:00
2025-10-23 20:31:31 +08:00
2025-11-26 12:25:55 +00:00
2026-02-03 07:57:15 +00:00
2026-01-07 10:35:08 +00:00
2025-10-23 20:31:31 +08:00
2025-12-19 22:05:27 +00:00
2025-11-20 18:58:25 +00:00
2025-10-19 18:49:05 +00:00
2025-12-19 22:05:27 +00:00
2025-11-05 09:18:02 +00:00
2025-11-17 13:44:25 +00:00
2025-10-01 16:53:59 +00:00
2025-11-26 12:25:55 +00:00
2026-02-03 07:57:15 +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-12-18 14:57:48 +00:00
2025-11-26 12:25:55 +00:00
2025-11-26 12:25:55 +00:00
2026-02-03 07:57:15 +00:00
2025-11-12 17:53:24 +00:00
2025-11-17 13:44:25 +00:00
2025-11-17 13:44:25 +00:00
2025-10-19 18:49:05 +00:00
2025-11-26 12:25:55 +00:00
2025-10-01 16:53:59 +00:00
2025-11-26 12:25:55 +00:00
2025-11-17 13:44:25 +00:00
2025-11-26 11:24:10 +00:00
2025-11-26 12:25:55 +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-11-17 13:44:25 +00:00
2025-07-27 13:53:26 +01:00
2026-02-03 07:57:15 +00:00
2025-11-26 12:25:55 +00:00
2025-09-18 19:25:05 +01:00
2025-09-18 19:25:05 +01:00
2026-02-03 07:57:15 +00:00
2025-11-26 12:25:55 +00:00
2026-02-08 11:55:12 +00:00
2026-02-03 07:57:15 +00:00
2025-10-21 10:49:27 +01:00
2026-02-01 16:27:27 +00:00
2025-11-26 12:25:55 +00:00
2025-11-25 10:26:51 +00:00
2026-02-03 07:57:15 +00:00
2025-12-16 06:30:54 +00:00
2025-10-20 11:09:25 +01:00
2026-02-03 07:57:15 +00:00
2025-10-16 09:49:38 +01:00
2025-11-17 13:44:25 +00:00
2025-10-29 18:25:46 +00:00
2025-11-26 20:03:55 +00:00
2025-12-15 10:54:06 +00:00
2025-10-23 20:31:31 +08:00
2026-02-03 07:57:15 +00:00
2025-11-17 13:44:25 +00:00
2025-10-22 21:27:11 +01:00
2025-11-26 12:25:55 +00:00
2026-01-06 20:36:26 +00:00
2025-12-03 21:13:11 +00:00
2025-10-16 09:49:38 +01:00
2025-11-26 12:25:55 +00:00
2026-01-05 22:33:37 +00:00
2025-08-26 09:59:06 +01:00
2026-02-10 09:57:48 +00:00
2025-10-23 20:31:31 +08:00
2025-08-26 09:59:06 +01:00
2025-11-26 12:25:55 +00:00
2025-10-20 08:50:09 +00:00
2025-10-19 18:49:05 +00:00
2026-01-10 10:34:46 -05:00
2026-01-09 14:28:28 -08:00
2025-11-25 10:26:51 +00:00
2025-11-26 12:25:55 +00:00
2025-10-21 10:49:27 +01:00
2025-10-19 18:49:05 +00:00
2025-11-17 13:44:25 +00:00
2025-11-17 13:44:25 +00:00
2025-11-17 13:44:25 +00:00