https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94913

--- Comment #1 from Gabriel Ravier <gabravier at gmail dot com> ---
The same thing happens for this code :

bool f(unsigned x, unsigned y)
{
    return (x - y - 1) >= x;
}

LLVM outputs this :

f(unsigned int, unsigned int):
  cmp esi, edi
  setae al
  ret

GCC outputs this :

f(unsigned int, unsigned int):
  mov eax, edi
  sub eax, esi
  sub eax, 1
  cmp eax, edi
  setnb al
  ret

Reply via email to