| Issue |
61538
|
| Summary |
[AArch64] optimization of "(1 + 2 * a * b > 0) ? a : a * b"
|
| Labels |
|
| Assignees |
|
| Reporter |
k-arrows
|
Test code:
```c
int foo(int a, int b)
{
return (1 + 2 * a * b > 0) ? a : a * b ;
}
```
clang
```asm
foo(int, int): // @foo(int, int)
mul w8, w0, w1
mov w9, #1 // =0x1
orr w8, w9, w8, lsl #1
cmp w8, #1
csinc w8, w1, wzr, lt
mul w0, w8, w0
ret
```
gcc
```asm
foo(int, int):
mul w1, w0, w1
cmp w1, 0
csel w0, w1, w0, lt
ret
```
https://godbolt.org/z/b79ehqG77
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs