Luke Lau
ece66dbc60
[SelectionDAG] Add computeKnownBits support for ISD::STEP_VECTOR ( #80452 )
...
This handles two cases where we can work out some known-zero bits for
ISD::STEP_VECTOR.
The first case handles when we know the low bits are zero because the
step
amount is a power of two. This is taken from
https://reviews.llvm.org/D128159 ,
and even though the original patch didn't end up landing this case due
to it
not having any test difference, I've included it here for completeness's
sake.
The second case handles the case when we have an upper bound on
vscale_range.
We can use this to work out the upper bound on the number of elements,
and thus
what the maximum step will be. From the maximum step we then know which
hi bits
are zero.
On its own, computing the known hi bits results in some small
improvements for
RVV with -mrvv-vector-bits=zvl across the llvm-test-suite. However I'm
hoping
to be able to use this later to reduce the LMUL in index calculations
for
vrgather/indexed accesses.
---------
Co-authored-by: Philip Reames <preames@rivosinc.com >
2024-02-08 10:04:55 +08:00
..
2024-02-01 15:06:43 -05:00
2024-02-05 14:07:09 +01:00
2024-02-08 10:04:55 +08:00
2023-10-09 12:31:32 +01:00
2023-10-06 10:28:01 -07:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-18 15:01:17 +08:00
2023-09-26 12:26:35 +08:00
2023-09-26 12:26:35 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:30:10 -08:00
2023-10-06 10:28:01 -07:00
2024-01-10 12:00:40 -08:00
2024-01-10 12:41:11 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-31 15:37:41 -08:00
2024-01-31 15:37:41 -08:00
2024-01-07 12:09:44 -08:00
2024-02-06 10:06:01 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-09 12:31:32 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-11 13:20:02 -08:00
2023-11-03 09:03:52 -07:00
2023-10-24 20:27:39 -07:00
2023-09-20 01:02:19 +08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-16 20:44:30 +08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-02-01 20:50:20 +08:00
2024-01-07 12:09:44 -08:00
2024-01-29 15:58:54 +00:00
2023-09-26 09:06:49 +08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2024-01-02 13:13:04 +08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2024-01-29 15:58:54 +00:00
2024-01-29 15:58:54 +00:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:07:09 +01:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-12 17:25:19 +09:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-11-13 07:38:14 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-26 23:54:46 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-26 23:54:46 -07:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2023-10-31 17:52:50 -07:00
2023-09-11 15:11:01 -07:00
2023-10-09 12:31:32 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-02-01 22:10:52 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-23 09:57:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-11-17 16:30:09 +00:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-09 12:31:32 +01:00
2024-01-02 13:13:04 +08:00
2023-10-31 17:52:50 -07:00
2023-10-03 18:16:13 +01:00
2024-01-07 12:09:44 -08:00
2023-11-13 22:45:33 +08:00
2023-11-29 21:53:32 -08:00
2024-01-02 13:13:04 +08:00
2023-12-27 21:36:03 -08:00
2024-01-22 17:36:32 +08:00
2024-02-01 10:18:42 -08:00
2024-02-01 10:18:42 -08:00
2023-08-21 18:59:52 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2023-10-31 10:48:08 +00:00
2023-11-23 14:05:23 +08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-09-20 01:02:19 +08:00
2023-11-27 19:39:40 +01:00
2024-01-07 12:09:44 -08:00
2023-09-29 10:43:23 -07:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-09-29 10:43:23 -07:00
2023-09-29 10:43:23 -07:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2023-12-22 14:49:59 +08:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-01 11:00:59 -08:00
2024-01-07 12:09:44 -08:00
2023-12-01 11:00:59 -08:00
2023-10-09 12:31:32 +01:00
2024-01-07 12:43:39 -08:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-08-10 17:04:49 +08:00
2023-08-10 17:04:49 +08:00
2023-11-30 21:12:46 -06:00
2023-11-30 21:12:46 -06:00
2024-02-03 23:40:09 -08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2024-01-09 11:24:21 -08:00
2023-12-14 22:42:11 -08:00
2024-01-30 22:12:28 -08:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-09 10:42:34 -08:00
2023-11-17 16:18:44 +01:00
2024-01-07 12:09:44 -08:00
2023-12-01 11:00:59 -08:00
2024-01-07 12:09:44 -08:00
2023-09-13 12:33:39 +01:00
2023-08-15 12:11:08 +08:00
2023-08-17 15:13:36 -07:00
2023-08-24 04:18:17 +08:00
2023-08-28 10:11:12 -07:00
2023-10-19 13:28:53 +01:00
2023-10-14 06:38:17 +08:00
2024-01-24 11:30:12 +08:00
2024-02-01 13:25:15 -08:00
2024-02-05 14:07:09 +01:00
2023-08-14 16:06:09 -07:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-02-05 14:07:09 +01:00
2023-12-14 21:08:01 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-11 13:20:02 -08:00
2024-01-19 14:44:47 -08:00
2023-12-01 11:00:59 -08:00
2023-10-14 12:18:43 +08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2023-09-19 11:18:12 +01:00
2024-01-07 12:09:44 -08:00
2023-11-11 19:31:23 -08:00
2023-11-16 11:14:53 -08:00
2024-01-29 15:24:00 -08:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2023-10-11 09:18:55 +05:30
2024-02-05 14:07:09 +01:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-30 22:12:28 -08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-11-11 19:31:23 -08:00
2024-01-07 12:09:44 -08:00
2024-01-29 15:24:00 -08:00
2024-02-04 23:15:58 -08:00
2024-02-04 23:15:58 -08:00
2024-01-02 13:13:04 +08:00
2023-11-10 21:38:47 +08:00
2024-01-07 12:09:44 -08:00
2024-01-29 15:58:54 +00:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2024-01-29 15:58:54 +00:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-10-30 15:29:57 -07:00
2023-12-03 21:27:50 -08:00
2024-01-16 13:36:24 +07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2023-10-06 10:28:01 -07:00
2024-01-29 15:58:54 +00:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-20 09:42:14 +01:00
2023-10-06 10:28:01 -07:00
2024-01-17 08:11:06 +00:00
2023-08-16 07:35:00 -07:00
2023-10-19 11:00:39 +08:00
2023-10-07 10:38:35 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-16 13:36:24 +07:00
2024-01-07 12:09:44 -08:00
2024-02-04 23:15:58 -08:00
2024-02-04 23:15:58 -08:00
2023-12-27 21:36:03 -08:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-02-05 14:07:09 +01:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-02-01 20:50:20 +08:00
2024-01-16 20:44:30 +08:00
2024-01-23 16:16:07 -08:00
2023-10-09 12:31:32 +01:00
2023-12-01 11:00:59 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-02-05 14:07:09 +01:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:43:39 -08:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2024-01-29 15:58:54 +00:00
2023-12-17 19:29:40 +08:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-01-07 12:09:44 -08:00
2024-01-23 09:33:06 -08:00
2024-02-07 14:30:45 -08:00
2024-02-07 14:30:45 -08:00
2023-08-29 22:06:30 -07:00
2024-01-07 12:09:44 -08:00
2023-11-17 16:17:48 +01:00
2023-08-10 10:48:43 +08:00
2023-12-13 09:37:25 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00