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

--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to cqwrteur from comment #11)
> Actually mine 
> 
> template<::std::unsigned_integral T>
> inline constexpr T add_carry(T a,T b,T carryin,T& carryout) noexcept
> {
>     [[assume(carryin==0||carryin==1)]];
>     a+=b;
>     carryout=a<b;
>     a+=carryin;
>     carryout+=a<carryin;
>     return a;
> }
> 
> can be pattern-matching without builtins. This might be more universal and
> be optimized very early on.

And you are trying to say what with this?
This is pattern matched by the r14-1837 change, and covered in the
gcc.target/i386/pr79173-5.c testcase.

Reply via email to