https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37537
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Happens also on aarch64: f: cmp w0, 0 ble .L2 cmp w1, w2 cset w7, lt cmp w7, 0 csel w0, w0, w1, ne ret .p2align 3 .L2: cmp w1, w2 cset w7, gt cmp w7, 0 csel w0, w0, w1, ne ret cset followed by cmp against it and zero.