https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94174
Richard Henderson <rth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|__builtin_add_overflow vs |Missed ccmp optimizations |ccmp | Target| |aarch64-* --- Comment #1 from Richard Henderson <rth at gcc dot gnu.org> --- Case 2: void test2(unsigned long a, unsigned long l) { if (l + 1 == 0 || a <= l + 1) doit(); } currently generates as cmn x1, #1 beq .L13 add x1, x1, 1 cmp x1, x0 bcc .L12 but could be adds x2, x1, #1 ccmp x0, x2, #0, ne b.hi .L12