https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111910
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Also this: ``` int f(int a, int b) { if (a < b) return a - b; else return b - a; } int fa(int a, int b) { return (a < b) ? (a - b) : (b - a); } int f1(int a, int b) { int t = a - b; if (a < b) return t; else return -t; } int f2(int a, int b) { int t = a - b; if (t < 0) return t; else return -t; } int f3a(int a, int b) { return ((a - b) < 0) ? (a - b) : ( b - a); } int f3(int a, int b) { int t = a - b; return t < 0 ? t : -t; } ``` (note clang misses on the above for f and fa [f1 on x86_64]).