https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111910
Bug ID: 111910 Summary: `a - b < 0` is not transformed into `a < b` for signed types Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: FIXME, missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization Assignee: pinskia at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- >From match.pd: /* Transform comparisons of the form X - Y CMP 0 to X CMP Y. ??? The transformation is valid for the other operators if overflow is undefined for the type, but performing it here badly interacts with the transformation in fold_cond_expr_with_comparison which attempts to synthetize ABS_EXPR. */ I am looking into that fix that for either GCC 14 or 15.