Issue 120089
Summary [ConstraintElim] `icmp spred x, y` implies `icmp samesign upred x, y`
Labels missed-optimization, llvm:transforms
Assignees dtcxzyw
Reporter dtcxzyw
    Alive2: https://alive2.llvm.org/ce/z/ZNNbj_
```
define i1 @src(i32 %x, i32 %y) {
entry:
  %cond = icmp sgt i32 %x, %y
  br i1 %cond, label %if.then, label %if.else
if.then:
  %cmp = icmp samesign ugt i32 %x, %y
  ret i1 %cmp

if.else:
  ret i1 false
}

define i1 @tgt(i32 %x, i32 %y) {
entry:
  %cond = icmp sgt i32 %x, %y
  br i1 %cond, label %if.then, label %if.else

if.then:
  ret i1 true

if.else:
  ret i1 false
}
```
We already perform similar optimizations in https://github.com/llvm/llvm-project/pull/115893.

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to