native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
native::isa< arm > Struct Reference

Exact ARM feature requirements; construction does not add prerequisites. More...

#include <isa.h>

Public Types

using feature_type = typename detail::feature_traits<arm>::type
 Feature enum accepted by this ISA family.

Public Member Functions

constexpr isa () noexcept=default
 Construct the empty requirement set.
constexpr isa (feature_type f) noexcept
 Require exactly one feature of this family, without prerequisite closure.
constexpr bool get (feature_type f) const noexcept
 Read one feature; out-of-range values are absent.
constexpr void set (feature_type f, bool value) noexcept
constexpr bool has (feature_type f) const noexcept
 True when the feature is present.
constexpr bool has (isa other) const noexcept
 True when every bit in a same-family requirement is present.
constexpr bool valid () const noexcept
 True when no invalid marker or unregistered padding bit is set.
constexpr bool operator== (isa const &) const =default
 Compare every stored bit, including invalid requirements.

Public Attributes

std::array< std::uint64_t,(feature_count+1+63)/64 > flags {}
 Public structural bits; invalid enum values and padding fail validation.
bool neon
 Read or update the neon feature bit through flags.
bool neon_fp16
 Read or update the neon_fp16 feature bit through flags.
bool neon_bf16
 Read or update the neon_bf16 feature bit through flags.
bool pmull
 Read or update the pmull feature bit through flags.
bool sha1
 Read or update the sha1 feature bit through flags.
bool sha512
 Read or update the sha512 feature bit through flags.
bool ebf16
bool sm3
bool sm4
 Read or update the sm4 feature bit through flags.
bool aes
 Read or update the aes feature bit through flags.
bool sha2
 Read or update the sha2 feature bit through flags.
bool sha3
 Read or update the sha3 feature bit through flags.
bool crc
 Read or update the crc feature bit through flags.
bool lse
 Read or update the lse feature bit through flags.
bool rdm
 Read or update the rdm feature bit through flags.
bool fp16fml
 Read or update the fp16fml feature bit through flags.
bool dotprod
 Read or update the dotprod feature bit through flags.
bool complxnum
 Read or update the complxnum feature bit through flags.
bool jsconv
 Read or update the jsconv feature bit through flags.
bool rcpc
 Read or update the rcpc feature bit through flags.
bool pauth
 Read or update the pauth feature bit through flags.
bool i8mm
 Read or update the i8mm feature bit through flags.

Static Public Attributes

static constexpr architecture family =arm
 Architecture family, independent of the compiler target.
static constexpr auto feature_count =detail::feature_traits<arm>::count
 Number of registered features in this family.

Detailed Description

Exact ARM feature requirements; construction does not add prerequisites.

Definition at line 205 of file isa.h.

Member Function Documentation

◆ set()

void native::isa< arm >::set ( feature_type f,
bool value )
inlineconstexprnoexcept

Set or clear one feature. Requiring an invalid enum records an invalid set. Clearing an invalid enum does nothing; neither case indexes outside storage.

Definition at line 225 of file isa.h.

Here is the caller graph for this function:

Member Data Documentation

◆ ebf16

bool native::isa< arm >::ebf16

Read or update the ebf16 feature bit through flags.

Definition at line 257 of file isa.h.

◆ sm3

bool native::isa< arm >::sm3

True when the SM3 instruction feature is present. Set or clear the independent SM3 requirement. Read or update the sm3 feature bit through flags.

Definition at line 260 of file isa.h.

◆ sm4

bool native::isa< arm >::sm4

Read or update the sm4 feature bit through flags.

True when the SM4 instruction feature is present. Set or clear the independent SM4 requirement.

Definition at line 263 of file isa.h.


The documentation for this struct was generated from the following file: