Sander de Smalen
cc9c64d525
[AArch64] Refactor and refine cost-model for partial reductions ( #158641 )
...
This cost-model takes into account any type-legalisation that would
happen on vectors such as splitting and promotion. This results in wider
VFs being chosen for loops that can use partial reductions.
The cost-model now also assumes that when SVE is available, the SVE dot
instructions for i16 -> i64 dot products can be used for fixed-length
vectors. In practice this means that loops with non-scalable VFs are
vectorized using partial reductions where they wouldn't before, e.g.
```
int64_t foo2(int8_t *src1, int8_t *src2, int N) {
int64_t sum = 0;
for (int i=0; i<N; ++i)
sum += (int64_t)src1[i] * (int64_t)src2[i];
return sum;
}
```
These changes also fix an issue where previously a partial reduction
would be used for mixed sign/zero-extends (USDOT), even when +i8mm was
not available.
2025-10-03 10:07:07 +01: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-10-01 16:53:59 +00:00
2025-09-11 15:55:18 -04: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
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-08-25 21:45:21 +01:00
2025-09-18 19:25:05 +01: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-25 12:04:26 +00:00
2025-09-18 19:25:05 +01:00
2025-09-25 07:13:38 +00:00
2025-10-01 16:53:59 +00:00
2025-07-27 13:53:26 +01:00
2025-09-18 19:25:05 +01:00
2025-10-02 21:30:54 +01:00
2025-08-25 18:55:23 +01:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-10-03 10:07:07 +01:00
2025-08-14 19:27:51 +01:00
2025-06-02 17:40:50 +01:00
2025-09-25 07:13:38 +00:00
2025-10-01 16:53:59 +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-09-25 07:13:38 +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-09-25 07:13:38 +00:00
2025-09-25 07:13:38 +00:00
2025-09-25 07:13:38 +00:00
2025-10-01 16:53:59 +00:00
2025-09-18 19:25:05 +01:00
2025-09-25 07:13:38 +00:00
2025-01-14 22:07:38 +00:00
2025-10-01 16:53:59 +00:00
2025-03-05 18:19:39 +00:00
2025-09-26 09:38:58 +00:00
2025-09-26 09:38:58 +00:00
2025-04-28 20:01:37 +01:00
2025-07-18 10:21:21 +01:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-01-29 08:09:50 +00:00
2025-05-22 07:59:57 +03:00
2025-10-01 16:53:59 +00:00
2025-08-16 18:54:27 +01:00
2025-09-18 19:25:05 +01:00
2025-10-03 10:07:07 +01:00
2025-10-02 10:53:17 +00:00
2025-10-03 10:07:07 +01:00
2025-10-03 10:07:07 +01:00
2025-10-01 16:53:59 +00:00
2025-10-03 10:07:07 +01:00
2025-09-17 11:44:47 +01:00
2025-09-18 19:25:05 +01:00
2025-10-03 10:07:07 +01:00
2025-10-03 10:07:07 +01:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-09-18 19:25:05 +01:00
2025-09-23 21:54:02 +01:00
2025-08-05 09:42:55 +01:00
2025-01-20 15:05:15 +00:00
2025-10-01 16:53:59 +00:00
2025-10-03 10:07:07 +01:00
2025-10-01 19:15:19 +01:00
2025-08-16 18:54:27 +01:00
2025-07-27 13:53:26 +01:00
2025-08-14 19:27:51 +01:00
2025-10-01 16:53:59 +00:00
2025-09-23 18:51:53 +08:00
2025-09-09 10:46:12 +01:00
2025-01-29 08:09:50 +00:00
2024-11-29 17:41:05 +00:00
2024-11-28 15:07:36 +08:00
2025-06-08 22:34:07 +01:00
2025-10-01 16:53:59 +00:00
2025-08-26 15:52:31 +01:00
2025-04-17 13:26:15 +01:00
2025-10-01 16:53:59 +00:00
2025-07-27 13:53:26 +01: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-08-08 11:44:32 +01:00
2025-06-07 21:49:54 +01:00
2025-10-01 16:53:59 +00:00
2025-08-08 11:44:32 +01: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-01 15:46:12 +01:00
2025-09-25 07:13:38 +00:00
2025-06-19 13:24:39 +01:00
2025-08-07 09:48:09 +01:00
2025-08-26 15:52:31 +01:00
2025-08-08 11:44:32 +01:00
2025-08-14 19:27:51 +01:00
2025-08-08 11:44:32 +01:00
2025-01-21 21:37:51 +00:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-08-26 15:52:31 +01:00
2025-08-14 19:27:51 +01:00
2025-09-18 19:25:05 +01:00
2025-08-14 19:27:51 +01:00
2025-08-26 15:52:31 +01:00
2025-04-28 20:01:37 +01:00
2025-05-29 11:15:16 +08:00
2025-03-21 09:24:56 +00:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-10-01 16:53:59 +00:00
2025-08-08 11:44:32 +01:00
2025-09-24 11:35:15 +01:00
2025-09-19 12:57:13 +01:00
2025-09-18 19:25:05 +01:00
2025-08-14 19:27:51 +01:00
2025-08-16 18:54:27 +01:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-09-18 19:25:05 +01:00
2025-09-25 07:13:38 +00:00
2025-09-18 19:25:05 +01:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-09-26 09:38:58 +00:00
2025-10-01 16:53:59 +00:00
2025-09-18 19:25:05 +01:00
2025-09-18 19:25:05 +01:00
2025-10-01 16:53:59 +00:00
2025-01-29 16:56:47 +01:00
2025-06-19 13:24:39 +01:00
2025-06-17 11:07:43 +01:00
2025-08-14 21:53:45 +01:00
2025-09-25 07:13:38 +00:00
2025-08-16 18:54:27 +01:00
2025-10-01 16:53:59 +00:00
2025-09-18 19:25:05 +01:00