Luke Lau
fe4f6c1a58
[RISCV] Cost bf16/f16 vector non-unit memory accesses as legal without zvfhmin/zvfbfmin ( #150882 )
...
When vectorizing with predication some loops that were previously
vectorized without zvfhmin/zvfbfmin will no longer be vectorized because
the masked load/store or gather/scatter cost returns illegal.
This is due to a discrepancy where for these costs we check
isLegalElementTypeForRVV but for regular memory accesses we don't.
But for bf16 and f16 vectors we don't actually need the extension
support for loads and stores, so this adds a new function which takes
this into account.
For regular memory accesses we should probably also e.g. return an
invalid cost for i64 elements on zve32x, but it doesn't look like we
have tests for this yet.
We also should probably not be vectorizing these bf16/f16 loops to begin
with if we don't have zvfhmin/zvfbfmin and zfhmin/zfbfmin. I think this
is due to the scalar costs being too cheap. I've added tests for this in
a100f6367205c6a909d68027af6a8675a8091bd9 to fix in another patch.
2025-07-28 22:59:49 +08:00
..
2025-07-28 12:12:27 +01:00
2025-07-26 17:16:36 +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-07-27 13:53:26 +01:00
2025-07-28 22:59:49 +08:00
2025-07-27 13:53:26 +01:00
2023-05-17 17:03:15 +02:00
2025-03-25 12:57:24 +00:00
2025-07-27 13:53:26 +01:00
2023-05-17 17:03:15 +02:00
2022-12-14 15:16:59 +01:00
2024-11-21 08:06:56 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-04-04 15:44:26 +01:00
2024-11-06 11:53:33 +00:00
2025-07-26 17:16:36 +01:00
2025-06-19 10:49:40 +01:00
2025-07-26 17:16:36 +01:00
2022-12-27 23:01:41 +00:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01:00
2023-06-12 13:10:22 +02:00
2025-04-14 17:11:13 +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
2022-12-14 15:16:59 +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-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2023-10-28 17:47:46 +08:00
2023-10-24 20:27:39 -07:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-04-04 15:34:45 +02: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-07-14 08:17:33 +01:00
2023-01-04 17:25:42 +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-01-14 22:07:38 +00:00
2022-12-14 15:16:59 +01: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-07-27 13:53:26 +01:00
2024-07-05 10:08:42 +01:00
2023-04-17 13:08:15 +01:00
2022-12-14 15:16:59 +01:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01:00
2023-01-06 10:56:17 +00:00
2025-07-26 17:16:36 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-07-14 21:21:22 +01:00
2022-12-14 15:16:59 +01:00
2024-12-05 14:36:40 +01:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01:00
2025-05-14 14:56:35 +01:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01: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
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +01:00
2022-12-14 15:16:59 +01:00
2025-01-29 16:56:47 +01:00
2025-02-09 11:20:20 +00:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2023-12-05 14:09:36 +01:00
2023-08-08 18:10:23 -04:00
2024-07-01 09:26:01 +02:00
2022-12-14 15:16:59 +01:00
2025-07-26 17:16:36 +01:00
2022-12-14 15:16:59 +01:00
2024-06-14 17:18:20 -04: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
2022-12-14 15:16:59 +01: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-07-26 17:16:36 +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
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +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-07-27 13:53:26 +01:00
2023-01-06 12:14:45 +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-04-04 15:44:26 +01:00
2022-12-14 15:16:59 +01:00
2023-10-28 17:47:46 +08:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2025-07-18 21:58:19 +01:00
2022-12-14 15:16:59 +01:00
2025-06-27 10:39:33 +01:00
2025-06-27 10:39:33 +01:00
2022-12-14 15:16:59 +01:00
2025-07-26 17:16:36 +01:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2024-08-11 20:38:36 +02:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2024-12-18 19:06:34 +01:00
2022-12-14 15:16:59 +01:00
2025-01-29 08:09:50 +00:00
2024-07-05 21:41:31 +01:00
2024-11-21 08:06:56 +00:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +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-07-27 13:53:26 +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
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2025-04-28 20:01:37 +01:00
2024-11-06 11:53:33 +00:00
2025-02-17 16:40:37 +01:00
2022-12-14 15:16:59 +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-03-26 21:03:50 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2023-01-06 12:14:45 +01:00
2022-12-14 15:16:59 +01:00
2024-11-07 14:09:45 +01:00
2024-07-07 20:08:01 +01:00
2025-01-29 16:56:47 +01:00
2022-12-14 15:16:59 +01:00
2022-12-08 02:38:47 +03:00
2025-07-27 13:53:26 +01:00
2024-11-21 08:06:56 +00:00
2024-09-14 21:21:55 +01:00
2025-03-25 12:57:24 +00:00
2024-07-01 09:52:56 -07:00
2023-01-06 12:14:45 +01:00
2023-12-05 14:09: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
2024-11-06 11:53:33 +00:00
2025-07-26 17:16:36 +01:00
2025-04-04 15:44:26 +01:00
2025-07-26 17:16:36 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2025-04-04 15:44:26 +01:00
2023-03-07 17:10:34 +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-07-27 13:43:43 +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
2023-02-15 14:07:51 -08:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-02-09 11:20:20 +00:00
2025-04-14 17:11:13 +02:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +01:00
2025-07-26 17:16:36 +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
2022-12-14 15:16:59 +01: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-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2025-07-26 17:16:36 +01:00
2022-12-14 15:16:59 +01:00
2024-01-16 21:54:58 -08:00
2025-07-26 15:39:21 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2024-01-16 21:54:58 -08:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2025-01-12 20:10:28 +00: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
2022-12-14 15:16:59 +01:00
2025-06-20 11:37:27 -07: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
2022-12-14 15:16:59 +01:00
2024-11-06 11:53:33 +00:00
2025-01-29 08:09:50 +00:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2023-01-04 17:25:42 +01:00
2023-10-17 03:49:39 +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-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-04-04 15:44:26 +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
2022-12-14 15:16:59 +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-07-14 08:17:33 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-06-12 21:06:58 +08:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-08-03 00:37:19 -07:00
2022-12-14 15:16:59 +01:00
2025-04-04 15:44:26 +01:00
2022-12-14 15:16:59 +01:00
2025-04-04 15:44:26 +01:00
2025-07-26 17:16:36 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2025-06-22 13:48:25 +01:00
2025-04-04 15:44:26 +01:00
2025-05-14 14:56:35 +01:00
2025-07-26 17:16:36 +01:00
2025-04-04 15:44:26 +01:00
2025-04-24 08:37:49 +01:00
2022-12-14 15:16:59 +01:00
2025-07-27 13:53:26 +01:00
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +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-27 13:53:26 +01:00
2024-08-21 12:02:54 +02:00
2025-07-27 13:53:26 +01:00
2025-03-26 21:03:50 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-10-28 17:47:46 +08: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
2022-12-14 15:16:59 +01:00
2025-03-25 12:57:24 +00:00
2025-07-11 09:10:26 -04: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-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2025-07-27 13:53:26 +01:00
2023-04-25 21:47:14 +01:00
2024-09-06 11:20:14 +02:00
2025-07-27 13:53:26 +01:00
2023-01-06 10:56:17 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +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
2024-04-04 18:30:17 -04:00
2024-07-07 20:08:01 +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-05-08 20:56:48 +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
2022-12-14 15:16:59 +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
2022-12-14 15:16:59 +01:00