Issue 162451
Summary [InstCombine] Extra uses of truncated value prevent icmp_eq(trunc(x),c) -> icmp_eq(x,c) fold
Labels llvm:instcombine, missed-optimization
Assignees
Reporter RKSimon
    ```ll
define i1 @src(i8 %a0) {
  %tz = tail call range(i8 0, 9) i8 @llvm.cttz.i8(i8 %a0, i1 false)
  %tr = trunc i8 %tz to i4
  %c = icmp eq i4 %tr, 8
  call void @use(i4 %tr)
  ret i1 %c
}
define i1 @tgt(i8 %a0) {
  %tz = tail call range(i8 0, 9) i8 @llvm.cttz.i8(i8 %a0, i1 false)
  %c = icmp eq i8 %a0, 0
 %tr = trunc i8 %tz to i4
  call void @use(i4 %tr)
  ret i1 %c
}
declare void @use(i4)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to