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

--- Comment #7 from fdlbxtqi <euloanty at live dot com> ---
(In reply to Jakub Jelinek from comment #6)
> Trying 10, 17 -> 18:
>    10: r88:QI=ltu(flags:CCC,0)
>       REG_DEAD flags:CCC
>    17: {flags:CCC=cmp(r88:QI-0x1,r88:QI);clobber scratch;}
>       REG_DEAD r88:QI
>    18:
> {flags:CCC=cmp(zero_extend(ltu(flags:CCC,0)+r106:DI+r107:DI),
> zero_extend(r107:DI)+ltu(flags:CCC,0));r109:DI=ltu(flags:CCC,0)+r106:DI+r107:
> DI
> ;}
>       REG_DEAD r107:DI
>       REG_DEAD r106:DI
> Can't combine i1 into i3


BTW.

clang does not remove the
movl    $0, %esi
before
sbbq    %rsi, %rsi

sbbq itself does not matter what the value itself is.

https://godbolt.org/z/szYb55

I do not know whether GCC would remove this after patch. If you can optimize
this away, I would thank you.

Reply via email to