https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88428
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Severity|normal |enhancement Last reconfirmed| |2021-12-27 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed, we get now: xorl %eax, %eax cmpl %esi, %edi setl %al negq %rax movq %rax, mask(%rip) cmpl %esi, %edi jl .L5 Because we produce similar to the following C testcase: long mask; void bar (); void f (int a, int b) { long _3; _3 = a < b; _3 = -_3; mask = _3; if (a < b) bar (); return; }