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

Exported Modules

module  native.arm.features
module  native.simd

Functions

template<isa< arm > Arch>
requires (Arch.has(arm_feature::sm4))
constexpr simd< std::uint32_t, 4, Arch > native::sm4e (simd< std::uint32_t, 4, Arch > a, simd< std::uint32_t, 4, Arch > b) noexcept
 Perform four SM4 data rounds with state words and successive round keys in ascending lanes.
template<isa< arm > Arch>
requires (!Arch.has(arm_feature::sm4) && requires { sizeof(simd<std::uint32_t, 4, Arch>); })
consteval simd< std::uint32_t, 4, Arch > native::sm4e (simd< std::uint32_t, 4, Arch > a, simd< std::uint32_t, 4, Arch > b) noexcept
 Evaluate constant operands without the SM4 instruction feature.
template<isa< arm > Arch>
requires (Arch.has(arm_feature::sm4))
constexpr simd< std::uint32_t, 4, Arch > native::sm4ekey (simd< std::uint32_t, 4, Arch > a, simd< std::uint32_t, 4, Arch > b) noexcept
template<isa< arm > Arch>
requires (!Arch.has(arm_feature::sm4) && requires { sizeof(simd<std::uint32_t, 4, Arch>); })
consteval simd< std::uint32_t, 4, Arch > native::sm4ekey (simd< std::uint32_t, 4, Arch > a, simd< std::uint32_t, 4, Arch > b) noexcept
 Evaluate constant operands without the SM4 instruction feature.

Files

file  src/native.arm.sm4.ccm