Yingwei Zheng
59eae919c9
[ValueTracking] Don't use CondContext in dataflow analysis of phi nodes (#100316)
See the following case:
```
define i16 @pr100298() {
entry:
br label %for.inc
for.inc:
%indvar = phi i32 [ -15, %entry ], [ %mask, %for.inc ]
%add = add nsw i32 %indvar, 9
%mask = and i32 %add, 65535
%cmp1 = icmp ugt i32 %mask, 5
br i1 %cmp1, label %for.inc, label %for.end
for.end:
%conv = trunc i32 %add to i16
%cmp2 = icmp ugt i32 %mask, 3
%shl = shl nuw i16 %conv, 14
%res = select i1 %cmp2, i16 %conv, i16 %shl
ret i16 %res
}
```
When computing knownbits of `%shl` with `%cmp2=false`, we cannot use
this condition in the analysis of `%mask (%for.inc -> %for.inc)`.
Fixes https://github.com/llvm/llvm-project/issues/100298.
2024-07-24 20:06:36 +08:00
..
2024-06-14 15:07:27 +01:00
2024-07-17 00:25:36 +08:00
2024-07-14 09:52:44 +05:30
2024-06-27 21:17:16 +02:00
2024-07-01 17:20:34 -07:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-06-18 17:19:51 -07:00
2024-07-17 15:19:31 +01:00
2024-07-10 21:59:59 +02:00
2024-06-20 19:39:19 +02:00
2024-07-19 11:09:50 +02:00
2024-06-14 15:07:27 +01:00
2024-06-14 15:07:27 +01:00
2024-07-22 09:05:18 +02:00
2024-03-16 11:24:42 -07:00
2024-06-23 17:24:15 +08:00
2024-07-15 14:59:16 +08:00
2024-05-31 12:48:45 -07:00
2024-04-02 16:37:36 +02:00
2024-04-03 08:45:59 +02:00
2024-06-06 10:44:53 +01:00
2024-03-25 09:53:38 -07:00
2024-07-24 20:01:22 +08:00
2024-07-03 13:15:17 -07:00
2024-06-25 12:35:25 +02:00
2024-06-04 08:31:03 +02:00
2024-06-19 10:19:35 -07:00
2024-06-21 09:33:41 +01:00
2024-05-30 08:36:44 +02:00
2024-07-22 16:22:01 +02:00
2024-05-19 14:59:03 +01:00
2024-05-27 20:32:51 +08:00
2024-05-02 10:14:40 -04:00
2024-07-20 11:53:11 -07:00
2024-07-10 13:02:58 +01:00
2024-07-15 11:51:44 +04:00
2024-05-30 08:36:44 +02:00
2024-07-19 16:35:59 +08:00
2024-07-10 11:32:41 +02:00
2024-07-24 20:06:36 +08:00
2024-07-16 11:40:04 +02:00
2024-05-22 07:58:54 +01:00
2024-05-16 09:18:37 -07:00
2024-04-26 16:25:33 +08:00
2024-06-14 15:07:27 +01:00
2024-07-01 14:06:04 +08:00
2024-06-14 15:07:27 +01:00
2024-07-23 12:01:22 +02:00
2024-05-14 20:23:04 +08:00
2024-06-30 12:16:31 +01:00
2024-07-05 16:44:31 +01:00
2024-07-04 21:06:44 +08:00
2024-07-16 13:58:07 +01:00
2024-05-27 09:54:39 -04:00
2024-06-04 22:23:30 +01:00
2024-05-03 14:13:59 -04:00
2024-07-16 16:09:57 +02:00
2024-07-24 10:06:34 +01:00
2024-07-09 09:14:33 +02:00
2024-06-25 12:09:58 +02:00
2024-07-24 09:31:32 +01:00
2024-06-28 10:04:23 +01:00
2024-07-04 21:06:25 +08:00
2024-06-12 12:52:28 -07:00
2024-06-26 14:25:54 +01:00
2024-05-27 10:58:22 -07:00
2024-07-10 11:32:41 +02:00
2024-07-04 14:41:12 +02:00
2024-07-15 09:41:11 +02:00
2024-07-11 16:10:30 -07:00
2024-06-14 15:07:27 +01:00
2024-07-09 16:14:16 +02:00
2024-07-12 11:17:45 +01:00
2024-06-14 15:07:27 +01:00
2024-07-05 10:39:15 +05:30
2024-07-22 09:19:17 -07:00
2024-07-16 19:06:32 +08:00
2024-05-16 17:54:26 +02:00
2024-07-16 14:48:59 +01:00
2024-07-01 22:22:36 +08:00
2024-05-16 20:13:39 +08:00
2024-05-29 13:27:44 -07:00
2024-06-14 15:07:27 +01:00
2024-07-17 10:33:00 -07:00
2024-05-22 07:58:54 +01:00
2024-06-14 15:07:27 +01:00
2024-07-18 16:48:21 +02:00
2024-07-20 08:54:57 -07:00
2024-07-19 13:17:21 +08:00
2024-07-23 09:50:04 +08:00
2024-07-22 13:05:12 -07:00
2024-07-08 11:05:00 +08:00
2024-07-02 11:59:39 +05:30
2024-06-04 08:31:03 +02:00
2024-06-20 22:03:56 +08:00
2024-05-03 10:09:52 -07:00
2024-07-23 09:28:37 -07:00
2024-06-14 15:07:27 +01:00
2024-07-22 13:56:10 +08:00
2024-04-15 11:40:23 -07:00
2024-04-10 16:30:42 -07:00
2024-04-08 17:23:47 -07:00