RE: __builtin_addc support??

2021-10-27 Thread sotrdg sotrdg via Gcc
HEY. ZERO COST ABSTRACTIONS lol

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows

From: Segher Boessenkool<mailto:seg...@kernel.crashing.org>
Sent: Wednesday, October 27, 2021 19:17
To: sotrdg sotrdg<mailto:euloa...@live.com>
Cc: gcc@gcc.gnu.org<mailto:gcc@gcc.gnu.org>; 
gcc-requ...@gcc.gnu.org<mailto:gcc-requ...@gcc.gnu.org>; 
gcc-h...@gcc.gnu.org<mailto:gcc-h...@gcc.gnu.org>
Subject: Re: __builtin_addc support??

On Wed, Oct 27, 2021 at 04:12:27PM +, sotrdg sotrdg via Gcc-help wrote:
> 79173 – add-with-carry and subtract-with-borrow support (x86_64 and others) 
> (gnu.org)<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173>
>
> What I find quite interesting is things like this.
>
> Since llvm clang provides __builtin_addc __builtin_subc for all targets. Can 
> we provide something similar? Since currently no solutions we can access 
> carry flag besides x86

Why?  We have __builtin_add_overflow, which is a smaller factor, and
enough to build up any bigger factors with.  You can easily write the
same thing in standard C of course, which often is a better plan.

If you want exact machine insns as output, write those, i.e., write
assembler code, not C.  Builtins are not there to please the "C is a
portable assembler" crowd: they are there to expose functionality you
cannot (conveniently) get using just pure standard C.


Segher



RE: __builtin_addc support??

2021-10-27 Thread sotrdg sotrdg via Gcc
LOL

https://github.com/tearosccebe/fast_io/blob/4ca355fcbf31aa26a0259ad09671eaab899930fc/include/fast_io_core_impl/intrinsics.h#L366

You are wrong dude.
Give me solution for addcarry

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows


From: Segher Boessenkool 
Sent: Wednesday, October 27, 2021 7:16:41 PM
To: sotrdg sotrdg 
Cc: gcc@gcc.gnu.org ; gcc-requ...@gcc.gnu.org 
; gcc-h...@gcc.gnu.org 
Subject: Re: __builtin_addc support??

On Wed, Oct 27, 2021 at 04:12:27PM +, sotrdg sotrdg via Gcc-help wrote:
> 79173 – add-with-carry and subtract-with-borrow support (x86_64 and others) 
> (gnu.org)<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173>
>
> What I find quite interesting is things like this.
>
> Since llvm clang provides __builtin_addc __builtin_subc for all targets. Can 
> we provide something similar? Since currently no solutions we can access 
> carry flag besides x86

Why?  We have __builtin_add_overflow, which is a smaller factor, and
enough to build up any bigger factors with.  You can easily write the
same thing in standard C of course, which often is a better plan.

If you want exact machine insns as output, write those, i.e., write
assembler code, not C.  Builtins are not there to please the "C is a
portable assembler" crowd: they are there to expose functionality you
cannot (conveniently) get using just pure standard C.


Segher


Re: __builtin_addc support??

2021-10-27 Thread Segher Boessenkool
On Wed, Oct 27, 2021 at 04:12:27PM +, sotrdg sotrdg via Gcc-help wrote:
> 79173 – add-with-carry and subtract-with-borrow support (x86_64 and others) 
> (gnu.org)
> 
> What I find quite interesting is things like this.
> 
> Since llvm clang provides __builtin_addc __builtin_subc for all targets. Can 
> we provide something similar? Since currently no solutions we can access 
> carry flag besides x86

Why?  We have __builtin_add_overflow, which is a smaller factor, and
enough to build up any bigger factors with.  You can easily write the
same thing in standard C of course, which often is a better plan.

If you want exact machine insns as output, write those, i.e., write
assembler code, not C.  Builtins are not there to please the "C is a
portable assembler" crowd: they are there to expose functionality you
cannot (conveniently) get using just pure standard C.


Segher


RE: __builtin_addc support??

2021-10-27 Thread sotrdg sotrdg via Gcc
I just want a portable version of __builtin_addcarry and __builtin_subborrow. 
Of course if we have things __builtin_rcl and __builtin_rcr would be even 
better.

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows

From: Paul Koning<mailto:paulkon...@comcast.net>
Sent: Wednesday, October 27, 2021 12:36
To: sotrdg sotrdg<mailto:euloa...@live.com>
Cc: GCC Development<mailto:gcc@gcc.gnu.org>; 
gcc-requ...@gcc.gnu.org<mailto:gcc-requ...@gcc.gnu.org>; 
gcc-h...@gcc.gnu.org<mailto:gcc-h...@gcc.gnu.org>
Subject: Re: __builtin_addc support??



> On Oct 27, 2021, at 12:12 PM, sotrdg sotrdg via Gcc  wrote:
>
> 79173 – add-with-carry and subtract-with-borrow support (x86_64 and others) 
> (gnu.org)<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79173>
>
> What I find quite interesting is things like this.
>
> Since llvm clang provides __builtin_addc __builtin_subc for all targets. Can 
> we provide something similar? Since currently no solutions we can access 
> carry flag besides x86

Certainly some other targets could do this.  The LLVM builtins explicitly 
expose carry, which isn't actually what you want (you'd want the carry flag in 
the condition code to be propagated).  Presumably optimization would eliminate 
those explicit arguments and reduce them to CC references.

paul




Re: __builtin_addc support??

2021-10-27 Thread Paul Koning via Gcc



> On Oct 27, 2021, at 12:12 PM, sotrdg sotrdg via Gcc  wrote:
> 
> 79173 – add-with-carry and subtract-with-borrow support (x86_64 and others) 
> (gnu.org)
> 
> What I find quite interesting is things like this.
> 
> Since llvm clang provides __builtin_addc __builtin_subc for all targets. Can 
> we provide something similar? Since currently no solutions we can access 
> carry flag besides x86

Certainly some other targets could do this.  The LLVM builtins explicitly 
expose carry, which isn't actually what you want (you'd want the carry flag in 
the condition code to be propagated).  Presumably optimization would eliminate 
those explicit arguments and reduce them to CC references.

paul




__builtin_addc support??

2021-10-27 Thread sotrdg sotrdg via Gcc
79173 – add-with-carry and subtract-with-borrow support (x86_64 and others) 
(gnu.org)

What I find quite interesting is things like this.

Since llvm clang provides __builtin_addc __builtin_subc for all targets. Can we 
provide something similar? Since currently no solutions we can access carry 
flag besides x86

Sent from Mail for Windows