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