native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
native.x86.vaes Module Reference

Exported Modules

module  native.x86.features
module  native.simd

Functions

template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 16, Arch > native::vaesenc (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 One AES encryption round.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::vaesenc (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 32, Arch > native::vaesenc (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Two independent AES encryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 32, Arch>); })
consteval simd< std::uint8_t, 32, Arch > native::vaesenc (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f))
constexpr simd< std::uint8_t, 64, Arch > native::vaesenc (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Four independent AES encryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f)) && requires { sizeof(simd<std::uint8_t, 64, Arch>); })
consteval simd< std::uint8_t, 64, Arch > native::vaesenc (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch, class... Args>
void native::vaesenc (Args...)=delete
 Reject raw registers, mixed tags and unsupported vector shapes.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 16, Arch > native::vaesenclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 One final AES encryption round.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::vaesenclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 32, Arch > native::vaesenclast (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Two independent final AES encryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 32, Arch>); })
consteval simd< std::uint8_t, 32, Arch > native::vaesenclast (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f))
constexpr simd< std::uint8_t, 64, Arch > native::vaesenclast (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Four independent final AES encryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f)) && requires { sizeof(simd<std::uint8_t, 64, Arch>); })
consteval simd< std::uint8_t, 64, Arch > native::vaesenclast (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch, class... Args>
void native::vaesenclast (Args...)=delete
 Reject raw registers, mixed tags and unsupported vector shapes.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 16, Arch > native::vaesdec (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 One AES decryption round.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::vaesdec (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 32, Arch > native::vaesdec (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Two independent AES decryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 32, Arch>); })
consteval simd< std::uint8_t, 32, Arch > native::vaesdec (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f))
constexpr simd< std::uint8_t, 64, Arch > native::vaesdec (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Four independent AES decryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f)) && requires { sizeof(simd<std::uint8_t, 64, Arch>); })
consteval simd< std::uint8_t, 64, Arch > native::vaesdec (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch, class... Args>
void native::vaesdec (Args...)=delete
 Reject raw registers, mixed tags and unsupported vector shapes.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 16, Arch > native::vaesdeclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 One final AES decryption round.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::aes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::vaesdeclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx))
constexpr simd< std::uint8_t, 32, Arch > native::vaesdeclast (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Two independent final AES decryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx)) && requires { sizeof(simd<std::uint8_t, 32, Arch>); })
consteval simd< std::uint8_t, 32, Arch > native::vaesdeclast (simd< std::uint8_t, 32, Arch > state, simd< std::uint8_t, 32, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f))
constexpr simd< std::uint8_t, 64, Arch > native::vaesdeclast (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Four independent final AES decryption rounds.
template<isa< x86 > Arch>
requires (!(Arch.has(x86_feature::vaes) && Arch.has(x86_feature::avx512f)) && requires { sizeof(simd<std::uint8_t, 64, Arch>); })
consteval simd< std::uint8_t, 64, Arch > native::vaesdeclast (simd< std::uint8_t, 64, Arch > state, simd< std::uint8_t, 64, Arch > key) noexcept
 Evaluate constant operands without the instruction features.
template<isa< x86 > Arch, class... Args>
void native::vaesdeclast (Args...)=delete
 Reject raw registers, mixed tags and unsupported vector shapes.

Files

file  src/native.x86.vaes.ccm