4#include "native/isa_import.h"
5#include "native/x86/adx.h"
6#include "native/targets.h"
12extern "C++" namespace native {
13 template<isa<x86> Arch = NATIVE_BA
SELINE>
requires(Arch.has(x86_feature::adx))
15 std::uint8_t carry, std::uint32_t a, std::uint32_t b, std::uint32_t * result)
noexcept;
17 template<isa<x86> Arch = NATIVE_BA
SELINE>
requires(!Arch.has(x86_feature::adx))
19 std::uint8_t carry, std::uint32_t a, std::uint32_t b, std::uint32_t * result)
noexcept;
21 template<isa<x86> Arch = NATIVE_BA
SELINE>
requires(Arch.has(x86_feature::adx))
23 std::uint8_t carry, std::uint64_t a, std::uint64_t b, std::uint64_t * result)
noexcept;
25 template<isa<x86> Arch = NATIVE_BA
SELINE>
requires(!Arch.has(x86_feature::adx))
27 std::uint8_t carry, std::uint64_t a, std::uint64_t b, std::uint64_t * result)
noexcept;
constexpr std::uint8_t addcarryx(std::uint8_t carry, std::uint32_t a, std::uint32_t b, std::uint32_t *result) noexcept
Add 32-bit operands with carry, writing the modular result.
Architecture-tagged vectors, register packs and supporting value types. Native arithmetic follows its...