pub enum Op {
Show 15 variants
Load(MemRef),
Binary(BinOp, Value, Value),
Unary(UnOp, Value),
Cmp(CmpOp, Value, Value),
Select(Value, Value, Value),
Cast(Value, LoopType),
Broadcast(Value, u8),
Extract(Value, u8),
Insert(Value, Value, u8),
Shuffle(Value, Value, Vec<i32>),
VecReduce(ReduceOp, Value),
Fma(Value, Value, Value),
PtrAdd(Value, Value),
GetPtr(BufferId, Value),
Phi(Vec<(BlockId, Value)>),
}Expand description
Operations in Loop IR.
Variants§
Load(MemRef)
Load from memory.
Binary(BinOp, Value, Value)
Binary arithmetic operation.
Unary(UnOp, Value)
Unary operation.
Cmp(CmpOp, Value, Value)
Comparison.
Select(Value, Value, Value)
Select (conditional).
Cast(Value, LoopType)
Cast between types.
Broadcast(Value, u8)
Vector broadcast (scalar to vector).
Extract(Value, u8)
Vector extract (vector to scalar).
Insert(Value, Value, u8)
Vector insert.
Shuffle(Value, Value, Vec<i32>)
Vector shuffle.
VecReduce(ReduceOp, Value)
Reduction within a vector.
Fma(Value, Value, Value)
Fused multiply-add: a * b + c.
PtrAdd(Value, Value)
Pointer arithmetic.
GetPtr(BufferId, Value)
Get pointer to buffer element.
Phi(Vec<(BlockId, Value)>)
Phi node (for SSA).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Op
impl<'de> Deserialize<'de> for Op
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Op
impl RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl UnsafeUnpin for Op
impl UnwindSafe for Op
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
Mutably borrows from an owned value. Read more