Issue 54735
Summary [optimization] gcc generate better code than clang base on value range propagation
Labels new issue
Assignees
Reporter vfdff
    after fix the case https://github.com/llvm/llvm-project/issues/54132, the clang still need be improved for some more complex case (see detail on https://godbolt.org/z/jM84xdzGP), such as:

```
int my_abs (int x, int y) {
  return x>y ? abs (x-y+1): 0;
}
```
* clang's code:
```
my_abs: // @my_abs
  subs w8, w0, w1
  b.le .LBB0_2
  mvn w9, w8
  cmn w8, #1
  csinc w0, w9, w8, lt
  ret
.LBB0_2:
  mov w0, wzr
  ret
```
* gcc's code:
```
my_abs:
  subs w0, w0, w1
  csinc w0, wzr, w0, le
  ret
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to