Struct Alternate

Source
pub struct Alternate {
    pub feature: Feature,
    pub name: String,
}
Expand description

An alternate version of an instruction.

Some AVX-specific context: some instructions have the same semantics in their SSE and AVX encodings. In these cases, we use this structure to record the name of the upgraded version of the instruction, allowing us to replace the SSE instruction with its AVX version during lowering. For AVX, using the VEX-encoded instruction is typically better than its legacy SSE version:

  • VEX can encode three operands
  • VEX allows unaligned memory access (avoids additional MOVUPS)
  • VEX can compact byte-long prefixes into the VEX prefix
  • VEX instructions zero the upper bits of XMM registers by default

Fields§

§feature: Feature

Indicate the feature check to use to trigger the replacement.

§name: String

The full name (see Inst::name) of the instruction used for replacement.

Trait Implementations§

Source§

impl Display for Alternate

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.