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

--- Comment #14 from cqwrteur <unlvsur at live dot com> ---
https://godbolt.org/z/4ej4dnr4b

I find a bug here:

    f0 = __builtin_subcl(f0,v,0,&carry);
    f1 = __builtin_subcl(f1,zero,carry,&carry);

The compiler generates:

  setb %cl//redundant
  movzbl %cl, %ecx//redundant
  subq %rcx, %rdx//redundant


They should be just one instruction which is sbbq $0, %rcx


I minus a constant, why would it give me so many redundant instructions??

Reply via email to