Nikita Popov
77eb056830
[InstCombine] Simplify select using KnownBits of condition ( #95923 )
...
Simplify the arms of a select based on the KnownBits implied by its condition.
For now this only handles the case where the select arm folds to a constant,
but this can be generalized to handle other patterns by using
SimplifyDemandedBits instead (in that case we would also have to limit to
non-undef conditions).
This is implemented by adding a new member to SimplifyQuery that can be used
to inject an additional condition. The affected values are pre-computed and
we don't call computeKnownBits() if the select arms don't contain affected
values. This reduces the cost in some pathological cases.
2024-07-01 09:26:01 +02:00
..
2024-06-25 12:36:40 -07:00
2024-06-28 08:36:49 +02:00
2024-03-31 22:47:55 -07:00
2024-04-09 20:12:26 +02:00
2024-06-28 08:36:49 +02:00
2024-05-07 10:20:10 -07:00
2024-06-27 16:38:15 +02:00
2024-06-25 06:57:30 -07:00
2024-06-21 23:50:53 +03:30
2024-06-28 14:30:47 +02:00
2024-06-27 16:38:15 +02:00
2024-05-21 09:48:03 -07:00
2024-06-24 09:03:56 -07:00
2024-05-29 06:13:02 +01:00
2024-04-18 15:44:12 +09:00
2024-06-06 13:13:46 +05:30
2024-06-28 08:36:49 +02:00
2024-06-25 06:57:30 -07:00
2024-06-21 23:50:53 +03:30
2024-06-14 22:49:36 -07:00
2024-06-27 16:38:15 +02:00
2024-06-28 08:36:49 +02:00
2024-06-28 08:08:19 -07:00
2024-06-28 19:57:53 +08:00
2024-06-21 23:50:53 +03:30
2024-04-19 10:01:42 -07:00
2024-06-21 23:50:53 +03:30
2024-06-29 23:21:33 -07:00
2024-06-28 14:30:47 +02:00
2024-06-28 08:36:49 +02:00
2024-03-26 15:59:31 -07:00
2024-06-28 08:36:49 +02:00
2024-06-27 16:38:15 +02:00
2024-06-27 16:38:15 +02:00
2024-06-11 09:50:13 -07:00
2024-06-28 14:30:47 +02:00
2024-06-28 08:36:49 +02:00
2024-06-28 12:48:36 -07:00
2024-06-04 10:00:26 +02:00
2024-06-27 16:38:15 +02:00
2024-06-21 23:50:53 +03:30
2024-05-27 09:54:39 -04:00
2024-06-28 14:30:47 +02:00
2024-06-28 14:30:47 +02:00
2024-06-27 16:38:15 +02:00
2024-06-28 08:36:49 +02:00
2024-06-27 16:38:15 +02:00
2024-06-27 16:38:15 +02:00
2024-06-27 16:38:15 +02:00
2024-05-07 10:20:10 -07:00
2024-05-02 11:01:24 +01:00
2024-06-28 14:30:47 +02:00
2024-06-22 00:40:36 -07:00
2024-06-27 16:38:15 +02:00
2024-06-28 08:36:49 +02:00
2024-06-25 06:57:30 -07:00
2024-03-31 19:45:12 -07:00
2024-06-28 12:19:27 +02:00
2024-05-30 10:50:32 +08:00
2024-06-21 23:50:53 +03:30
2024-06-28 08:36:49 +02:00
2024-06-28 08:36:49 +02:00
2024-06-28 14:30:47 +02:00
2024-06-28 14:30:47 +02:00
2024-06-28 08:36:49 +02:00
2024-06-28 14:30:47 +02:00
2024-04-15 11:40:23 -07:00
2024-07-01 09:26:01 +02:00
2024-06-27 16:38:15 +02:00