| Issue |
83127
|
| Summary |
[InstCombine] InstCombine gets stuck when simplifying selects
|
| Labels |
llvm:instcombine,
llvm:hang
|
| Assignees |
dtcxzyw
|
| Reporter |
dtcxzyw
|
Reduced test case: https://godbolt.org/z/ds9eq96db
```
define i16 @func(i16 noundef %p_12) {
entry:
%cmp1 = icmp ult i16 %p_12, 2
%and1 = and i16 %p_12, 1
%and2 = select i1 %cmp1, i16 %and1, i16 0
%cmp2 = icmp eq i16 %and2, %p_12
%and3 = select i1 %cmp2, i16 %and1, i16 0
ret i16 %and3
}
```
```
ADD: %and3 = select i1 %cmp2, i16 %and2, i16 0
ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0
ADD: %and1 = and i16 %p_12, 1
IC: Visiting: %and1 = and i16 %p_12, 1
IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Visiting: %and3 = select i1 %cmp2, i16 %and2, i16 0
ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0
ADD DEFERRED: %cmp2 = icmp eq i16 %and2, %p_12
IC: Mod = %and3 = select i1 %cmp2, i16 %and2, i16 0
New = %and3 = select i1 %cmp2, i16 %and1, i16 0
ADD: %and3 = select i1 %cmp2, i16 %and1, i16 0
ADD: %cmp2 = icmp eq i16 %and2, %p_12
ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Visiting: %cmp2 = icmp eq i16 %and2, %p_12
IC: Visiting: %and3 = select i1 %cmp2, i16 %and1, i16 0
ADD DEFERRED: %and1 = and i16 %p_12, 1
ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Mod = %and3 = select i1 %cmp2, i16 %and1, i16 0
New = %and3 = select i1 %cmp2, i16 %and2, i16 0
ADD: %and3 = select i1 %cmp2, i16 %and2, i16 0
ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0
ADD: %and1 = and i16 %p_12, 1
IC: Visiting: %and1 = and i16 %p_12, 1
IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Visiting: %and3 = select i1 %cmp2, i16 %and2, i16 0
ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0
ADD DEFERRED: %cmp2 = icmp eq i16 %and2, %p_12
IC: Mod = %and3 = select i1 %cmp2, i16 %and2, i16 0
New = %and3 = select i1 %cmp2, i16 %and1, i16 0
ADD: %and3 = select i1 %cmp2, i16 %and1, i16 0
ADD: %cmp2 = icmp eq i16 %and2, %p_12
ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Visiting: %cmp2 = icmp eq i16 %and2, %p_12
IC: Visiting: %and3 = select i1 %cmp2, i16 %and1, i16 0
ADD DEFERRED: %and1 = and i16 %p_12, 1
ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0
IC: Mod = %and3 = select i1 %cmp2, i16 %and1, i16 0
New = %and3 = select i1 %cmp2, i16 %and2, i16 0
...
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs