tvm
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
ir.h File Reference
#include <tvm/ffi/container/tuple.h>
#include <tvm/ffi/container/variant.h>
#include <tvm/runtime/tensor.h>
#include <tvm/script/ir_builder/base.h>
#include <tvm/tirx/exec_scope.h>
#include <tvm/tirx/layout.h>
#include <tvm/tirx/op.h>
#include <tvm/tirx/script/builder/frame.h>
#include <tvm/tirx/tile_primitive.h>
Include dependency graph for ir.h:

Go to the source code of this file.

Namespaces

namespace  tvm
 An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
 
namespace  tvm::script
 
namespace  tvm::script::ir_builder
 
namespace  tvm::script::ir_builder::tirx
 
namespace  tvm::script::ir_builder::tirx::axis
 

Macros

#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName, DType)
 
#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_SIZES(DType, Code)
 
#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES(FuncName, Code, Size)
 
#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_SIZES_LANES(DType, Code)
 
#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES_FIXED_SIZE(DType, Code, Bits)
 

Functions

BufferVar tvm::script::ir_builder::tirx::BufferDecl (ffi::Array< PrimExpr > shape, PrimType dtype, ffi::String buffer_name, ffi::Optional< Expr > data, ffi::Optional< ffi::Array< PrimExpr > > strides, ffi::Optional< PrimExpr > elem_offset, ffi::String storage_scope, int align, int offset_factor, ffi::Optional< Layout > layout=std::nullopt, ffi::Array< PrimExpr > allocated_addr={})
 The buffer declaration function.
 
PrimFuncFrame tvm::script::ir_builder::tirx::PrimFunc (bool is_private, bool s_tir=false, bool persistent=false)
 The primitive function statement.
 
Var tvm::script::ir_builder::tirx::Arg (ffi::String name, Var var)
 The PrimFunc variable arguments adding function.
 
BufferVar tvm::script::ir_builder::tirx::Arg (ffi::String name, BufferVar buffer)
 The PrimFunc buffer arguments adding function.
 
void tvm::script::ir_builder::tirx::FuncName (ffi::String name)
 The PrimFunc naming statement.
 
void tvm::script::ir_builder::tirx::FuncAttrs (ffi::Map< ffi::String, ffi::Any > attrs)
 The PrimFunc annotation statement.
 
Type tvm::script::ir_builder::tirx::FuncRet (Type ret_type)
 The PrimFunc return type statement.
 
BufferVar tvm::script::ir_builder::tirx::MatchBuffer (ffi::ObjectRef param, ffi::Array< PrimExpr > shape, PrimType dtype=PrimType::Float(32), ffi::Optional< Expr > data=std::nullopt, ffi::Array< PrimExpr > strides={}, PrimExpr elem_offset=PrimExpr(), ffi::String storage_scope="global", int align=-1, int offset_factor=0, ffi::Optional< Layout > layout=std::nullopt)
 The buffer match statement.
 
SBlockFrame tvm::script::ir_builder::tirx::Block (ffi::String name, bool no_realize=false, ffi::String exec_scope="")
 The block declaration statement.
 
void tvm::script::ir_builder::tirx::TilePrimitiveCall (tvm::tirx::TilePrimitiveCall op_call)
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::ScopeId (ffi::Optional< ffi::Array< PrimExpr > > extents, ffi::String parent, ffi::String name, ffi::String cur, PrimType dtype=PrimType::Int(32))
 Define a scope id. Pass extents=std::nullopt to defer the extent; it is inferred at LowerTIRx from the sibling ScopeIdDef closure.
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::ClusterId (ffi::Optional< ffi::Array< PrimExpr > > extents, ffi::String parent, PrimType dtype=PrimType::Int(32))
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::CtaId (ffi::Optional< ffi::Array< PrimExpr > > extents, ffi::String parent, ffi::Optional< ffi::Array< PrimExpr > > preferred=std::nullopt, PrimType dtype=PrimType::Int(32))
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::CtaIdInPair (PrimType dtype=PrimType::Int(32))
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::WarpgroupId (ffi::Optional< ffi::Array< PrimExpr > > extents, ffi::String parent, PrimType dtype=PrimType::Int(32))
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::WarpId (ffi::Optional< ffi::Array< PrimExpr > > extents, ffi::String parent, PrimType dtype=PrimType::Int(32))
 
ffi::Array< tvm::tirx::Vartvm::script::ir_builder::tirx::ThreadId (ffi::Optional< ffi::Array< PrimExpr > > extents, ffi::String parent, PrimType dtype=PrimType::Int(32))
 
BlockInitFrame tvm::script::ir_builder::tirx::Init ()
 The block initialization statement.
 
void tvm::script::ir_builder::tirx::Where (PrimExpr predicate)
 The block predicate statement.
 
void tvm::script::ir_builder::tirx::Reads (ffi::Array< ffi::ObjectRef > buffer_slices)
 The block buffer region reading statement.
 
void tvm::script::ir_builder::tirx::Writes (ffi::Array< ffi::ObjectRef > buffer_slices)
 The block buffer region writing statement.
 
void tvm::script::ir_builder::tirx::BlockAttrs (ffi::Map< ffi::String, ffi::Any > attrs)
 The block annotation statement.
 
ffi::Variant< BufferVar, AllocBufferFrametvm::script::ir_builder::tirx::SBlockAllocBuffer (ffi::Array< PrimExpr > shape, PrimType dtype=PrimType::Float(32), ffi::Optional< Expr > data=std::nullopt, ffi::Array< PrimExpr > strides={}, PrimExpr elem_offset=PrimExpr(), ffi::String storage_scope="", int align=-1, int offset_factor=0, ffi::Optional< Layout > layout=std::nullopt, ffi::Array< PrimExpr > allocated_addr={})
 The buffer allocation function.
 
Var tvm::script::ir_builder::tirx::axis::Spatial (Range dom, PrimExpr binding, PrimType dtype=PrimType::Int(32))
 The spatial block axis defining function.
 
Var tvm::script::ir_builder::tirx::axis::Reduce (Range dom, PrimExpr binding, PrimType dtype=PrimType::Int(32))
 The reduced block axis defining function.
 
Var tvm::script::ir_builder::tirx::axis::Scan (Range dom, PrimExpr binding, PrimType dtype=PrimType::Int(32))
 The scanning block axis defining function.
 
Var tvm::script::ir_builder::tirx::axis::Opaque (Range dom, PrimExpr binding, PrimType dtype=PrimType::Int(32))
 The opaque block axis defining function.
 
ffi::Array< Vartvm::script::ir_builder::tirx::axis::Remap (ffi::String kinds, ffi::Array< PrimExpr > bindings, PrimType dtype=PrimType::Int(32))
 The block axis remapping function.
 
ForFrame tvm::script::ir_builder::tirx::Serial (PrimExpr start, PrimExpr stop, ffi::Optional< ffi::Map< ffi::String, Any > > annotations=std::nullopt, ffi::Optional< PrimExpr > step=std::nullopt, ffi::Optional< PrimType > dtype=std::nullopt)
 The serial For statement.
 
ForFrame tvm::script::ir_builder::tirx::Parallel (PrimExpr start, PrimExpr stop, ffi::Optional< ffi::Map< ffi::String, Any > > annotations=std::nullopt, ffi::Optional< PrimExpr > step=std::nullopt, ffi::Optional< PrimType > dtype=std::nullopt)
 The parallel For statement.
 
ForFrame tvm::script::ir_builder::tirx::Vectorized (PrimExpr start, PrimExpr stop, ffi::Optional< ffi::Map< ffi::String, Any > > annotations=std::nullopt, ffi::Optional< PrimExpr > step=std::nullopt, ffi::Optional< PrimType > dtype=std::nullopt)
 The vectorized For statement.
 
ForFrame tvm::script::ir_builder::tirx::Unroll (PrimExpr start, PrimExpr stop, ffi::Optional< ffi::Map< ffi::String, Any > > annotations=std::nullopt, ffi::Optional< PrimExpr > step=std::nullopt, ffi::Optional< PrimType > dtype=std::nullopt)
 The unrolled For statement.
 
ForFrame tvm::script::ir_builder::tirx::ThreadBinding (PrimExpr start, PrimExpr stop, ffi::String thread, ffi::Optional< ffi::Map< ffi::String, Any > > annotations=std::nullopt)
 The thread-binding For statement.
 
ForFrame tvm::script::ir_builder::tirx::Grid (ffi::Array< Variant< PrimExpr, ffi::Tuple< PrimExpr, PrimExpr > > > extents, ffi::Optional< PrimType > dtype=std::nullopt)
 The grid For statement.
 
AssertFrame tvm::script::ir_builder::tirx::Assert (PrimExpr condition, ffi::String error_kind, ffi::Array< ffi::String > message_parts)
 The assertion statement.
 
Var tvm::script::ir_builder::tirx::Bind (Expr value, ffi::Optional< Type > type_annotation=std::nullopt, ffi::Optional< Var > var=std::nullopt)
 Create a Bind (variable binding).
 
AttrFrame tvm::script::ir_builder::tirx::Attr (ffi::Any node, ffi::String attr_key, PrimExpr value)
 Create an attribute.
 
AttrFrame tvm::script::ir_builder::tirx::DeviceEntry ()
 Mark the device-region entry within the enclosing PrimFunc body. Returns an AttrFrame keyed tirx.device_entry (value Bool(true)). Subsequent stmts accumulate into the frame's body; the frame is closed by PrimFuncFrameNode::ExitWithScope which drains leftover frames.
 
WhileFrame tvm::script::ir_builder::tirx::While (PrimExpr condition)
 Create a while loop.
 
void tvm::script::ir_builder::tirx::Return (Expr value)
 Create a return statement.
 
void tvm::script::ir_builder::tirx::Break ()
 Create a break statement.
 
void tvm::script::ir_builder::tirx::Continue ()
 Create a continue statement.
 
IfFrame tvm::script::ir_builder::tirx::If (PrimExpr condition)
 Create an if statement.
 
ThenFrame tvm::script::ir_builder::tirx::Then ()
 Create a then.
 
ElseFrame tvm::script::ir_builder::tirx::Else ()
 Create an else.
 
DeclBufferFrame tvm::script::ir_builder::tirx::DeclBuffer (ffi::Array< PrimExpr > shape, PrimType dtype, ffi::String buffer_name, ffi::Optional< Expr > data, ffi::Optional< ffi::Array< PrimExpr > > strides, ffi::Optional< PrimExpr > elem_offset, ffi::String storage_scope, int align, int offset_factor, ffi::Optional< Layout > layout=std::nullopt, ffi::Optional< PrimExpr > allocated_addr=std::nullopt)
 The buffer declaration frame.
 
BufferVar tvm::script::ir_builder::tirx::AllocBuffer (ffi::Array< PrimExpr > shape, PrimType dtype=PrimType::Float(32), ffi::String storage_scope="global", ffi::Optional< ffi::Map< ffi::String, ffi::Any > > annotations=std::nullopt)
 Statement-level buffer allocation (creates an AllocBuffer IR node).
 
LaunchThreadFrame tvm::script::ir_builder::tirx::LaunchThread (Var var, PrimExpr extent)
 Launch a thread.
 
LaunchThreadFrame tvm::script::ir_builder::tirx::LaunchThread (ffi::String thread_tag, PrimExpr extent)
 Launch a new thread.
 
ComposeOpFrame tvm::script::ir_builder::tirx::ComposeOp (ffi::Map< ffi::String, BufferVar > workspace, ffi::Map< ffi::String, ffi::Any > config, ffi::Optional< ffi::String > dispatch=std::nullopt)
 Compose TIRx op.
 
Var tvm::script::ir_builder::tirx::EnvThread (ffi::String thread_tag, PrimType dtype=PrimType::Int(32))
 Bind a var to thread env.
 
void tvm::script::ir_builder::tirx::BufferStore (BufferVar buffer, PrimExpr value, ffi::Array< PrimExpr > indices)
 Store data in a buffer.
 
void tvm::script::ir_builder::tirx::Evaluate (Expr value)
 Evaluate the input expression.
 
Var tvm::script::ir_builder::tirx::Handle (ffi::Optional< PrimType > dtype=std::nullopt, ffi::String storage_scope="global")
 Create a TIR var that represents a pointer.
 
Var tvm::script::ir_builder::tirx::TensorMap ()
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat8x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat16x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat32x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::BFloat64x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float16x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float32x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float64x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt8x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt16x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt32x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::UInt64x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int8x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int16x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int32x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Int64x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E3M4x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZ (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3B11FNUZx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FN (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZ (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E4M3FNUZx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2x2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2x4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2x8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2x16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2x32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2x64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZ (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E5M2FNUZx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNU (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNUx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNUx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNUx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNUx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNUx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float8E8M0FNUx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FN (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FNx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FNx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FNx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FNx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FNx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E2M3FNx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FN (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FNx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FNx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FNx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FNx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FNx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float6E3M2FNx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FN (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FNx2 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FNx4 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FNx8 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FNx16 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FNx32 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Float4E2M1FNx64 (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Boolean (ffi::Optional< PrimExpr > expr=std::nullopt)
 
PrimExpr tvm::script::ir_builder::tirx::Void (ffi::Optional< PrimExpr > expr=std::nullopt)
 

Macro Definition Documentation

◆ TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST

#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST (   FuncName,
  DType 
)
Value:
inline PrimExpr FuncName(ffi::Optional<PrimExpr> expr = std::nullopt) { \
PrimType dtype = DType; \
return expr.has_value() ? tvm::cast(dtype, expr.value()) \
: tvm::tirx::Var("", dtype).as_or_throw<PrimExpr>(); \
}
tvm::Var Var
Definition var.h:38
PrimExpr cast(PrimType t, PrimExpr value, Span span=Span())
cast value to type.

◆ TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES

#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES (   FuncName,
  Code,
  Size 
)
Value:
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName##x2, (PrimType(DLDataType{Code, Size, 2}))) \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName##x4, (PrimType(DLDataType{Code, Size, 4}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName##x8, (PrimType(DLDataType{Code, Size, 8}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName##x16, (PrimType(DLDataType{Code, Size, 16}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName##x32, (PrimType(DLDataType{Code, Size, 32}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName##x64, (PrimType(DLDataType{Code, Size, 64})));
#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(FuncName, DType)
Definition ir.h:529

◆ TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES_FIXED_SIZE

#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES_FIXED_SIZE (   DType,
  Code,
  Bits 
)
Value:
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType, (PrimType(DLDataType{Code, Bits, 1}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##x2, (PrimType(DLDataType{Code, Bits, 2}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##x4, (PrimType(DLDataType{Code, Bits, 4}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##x8, (PrimType(DLDataType{Code, Bits, 8}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##x16, (PrimType(DLDataType{Code, Bits, 16}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##x32, (PrimType(DLDataType{Code, Bits, 32}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##x64, (PrimType(DLDataType{Code, Bits, 64})));

◆ TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_SIZES

#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_SIZES (   DType,
  Code 
)
Value:
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##8, (PrimType(DLDataType{Code, 8, 1}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##16, (PrimType(DLDataType{Code, 16, 1}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##32, (PrimType(DLDataType{Code, 32, 1}))); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST(DType##64, (PrimType(DLDataType{Code, 64, 1})));

◆ TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_SIZES_LANES

#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_SIZES_LANES (   DType,
  Code 
)
Value:
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES(DType##16, Code, 16); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES(DType##32, Code, 32); \
TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES(DType##64, Code, 64);
#define TVM_TIRX_IR_BUILDER_DEF_DTYPE_CAST_LANES(FuncName, Code, Size)
Definition ir.h:547