Displaying 4 results from an estimated 4 matches for "_addcarry_u64".
2023 Dec 02
1
Small inconsistencies in configure checks
...es in configure output.
1. xapian-binding:
checking for /usr/bin/rdoc... no
checking for rdoc... /usr/bin/rdoc
Looks curious but no problem since it's found anyway.
2. xapian-core when built with GCC:
checking whether __builtin_add_overflow is declared... yes
...
checking whether _addcarry_u64 is declared... no
There is actually _addcarry_u64 in GCC too, but it's in x86intrin.h
instead of intrin.h. This is no problem either, since it's superimposed
by __builtin_add_overflow anyway.
Thanks,
2023 Dec 02
1
Small inconsistencies in configure checks
...g ./configure RDOC=/path/to/rdoc or similar), but it looks like
the way that's currently being done doesn't actually work. I'll fix
that.
> 2. xapian-core when built with GCC:
>
> checking whether __builtin_add_overflow is declared... yes
> ...
> checking whether _addcarry_u64 is declared... no
>
> There is actually _addcarry_u64 in GCC too, but it's in x86intrin.h
> instead of intrin.h. This is no problem either, since it's superimposed
> by __builtin_add_overflow anyway.
I think __builtin_add_overflow() is going to be as good an option (and
possib...
2018 Dec 29
2
Portable multiplication 64 x 64 -> 128 for int128 reimplementation
Hi,
For some maybe dumb reasons I try to write a portable version of int128.
What is very valuable for this implementation is access to MUL instruction
on x86 which provides full 64 x 64 -> 128 bit multiplication. An equally
useful on ARM would be UMULH instruction.
Well, the way you can access this on clang / GCC is to use __int128 type or
use inline assembly. MSVC provides an intrinsic for
2018 Dec 30
3
[cfe-dev] Portable multiplication 64 x 64 -> 128 for int128 reimplementation
...llvm-dev at lists.llvm.org> wrote:
> Hi Pawel,
>
> There is the _mulx_u64 intrinsic, but it currently requires the hardware
> flag "-mbmi2".
>
> https://github.com/Quuxplusone/WideIntProofOfConcept/blob/master/wider.h#L89-L99
>
> On Clang 3.8.1 and earlier, the _addcarry_u64 and _subborrow_u64
> intrinsics required the hardware flag `-madx`, even though they didn't use
> the hardware ADX/ADOX instructions. Modern GCC and Clang permit the use of
> these intrinsics (to generate ADC) even in the absence of `-madx`.
>
> I think it would be a very good id...