pub struct SimdVariant {
pub vector_node: &'static str,
pub exact: bool,
pub total: bool,
pub lane_independent: bool,
}Expand description
Semantic contract for a scalar node’s explicitly registered SIMD variant.
This metadata is deliberately attached to the scalar node rather than inferred from function names. A promotion pass may use it only after it also validates the scalar/register port shapes and proves that the complete vector cone lowers for the effective host ISA.
Fields§
§vector_node: &'static strDSL name of the register-typed, lane-wise equivalent node.
exact: boolWhether every lane is exactly equivalent to one scalar invocation.
total: boolWhether evaluation is total for every bit pattern admitted by the scalar input types. Tier-1 padded execution requires this flag.
lane_independent: boolWhether one lane can be evaluated without reading or changing another lane. Scalar-flow auto-promotion requires this flag.
Implementations§
Source§impl SimdVariant
impl SimdVariant
Sourcepub const fn exact_total(vector_node: &'static str) -> Self
pub const fn exact_total(vector_node: &'static str) -> Self
Exact, total, element-wise variant used by the first promotion tier.
Sourcepub const fn exact_fallible(vector_node: &'static str) -> Self
pub const fn exact_fallible(vector_node: &'static str) -> Self
Exact element-wise variant which may fault for some lane values.
Such a variant can be used only when the planner proves the admitted value range or implements ordered lane-error attribution.
Trait Implementations§
Source§impl Clone for SimdVariant
impl Clone for SimdVariant
Source§fn clone(&self) -> SimdVariant
fn clone(&self) -> SimdVariant
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SimdVariant
Source§impl Debug for SimdVariant
impl Debug for SimdVariant
impl Eq for SimdVariant
Source§impl Hash for SimdVariant
impl Hash for SimdVariant
Source§impl PartialEq for SimdVariant
impl PartialEq for SimdVariant
impl StructuralPartialEq for SimdVariant
Auto Trait Implementations§
impl Freeze for SimdVariant
impl RefUnwindSafe for SimdVariant
impl Send for SimdVariant
impl Sync for SimdVariant
impl Unpin for SimdVariant
impl UnsafeUnpin for SimdVariant
impl UnwindSafe for SimdVariant
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more