Re: Use-case for _addcarryx_u64() wrapper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/06/2023 00:53, Gabriel Ravier wrote:

> On 2/06/2023 14:59, Jakub Jelinek wrote:
> 
>> Sure, some builtins are officially supported.
>> Those are meant to be used directly by users.
>>
>> Then there are many builtins which are implementation detail for some
>> other API that users should use instead.
>> That includes e.g. builtins used under the hood for <*intrin.h>
>> implementation - users should use the intrinsics from those headers,
>> that is documented interface which is supported by multiple compilers,
>> or builtins used under the hood inside of libstdc++ headers (again,
>> users should use standard C++ APIs which are supported by multiple
>> compilers instead of the builtins directly) etc.
>> E.g. between GCC 3.4 and current trunk 62 __builtin_ia32_* builtins
>> which were implementation details of the x86 intrinsic headers
>> have been removed as the intrinsics got implemented some other way
>> (e.g. using generic vectors etc.).
>
> Does it matter whether or not those builtins are documented ? It seems 
> like most of the __builtin_ia32_ builtins are explicitly documented in 
> the manual, despite the fact that these seem like those you're referring 
> to as being potentially removable at will whenever - and I see no 
> indication in the documentation that they are implementation details/may 
> be removed at any time for any reason.

Hello Gabriel,

As far as I understand, Jakub is merely saying:
If a builtin is NOT documented, then it is NOT part of the API.

https://gcc.gnu.org/onlinedocs/gcc.pdf
*builtin_ia32_addcarry* appears nowhere in the manual,
thus it is NOT documented, thus it is NOT part of the API.

Regards




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux