LLVM 20.0.0git
|
#include "llvm/IR/MatrixBuilder.h"
Public Member Functions | |
MatrixBuilder (IRBuilderBase &Builder) | |
CallInst * | CreateColumnMajorLoad (Type *EltTy, Value *DataPtr, Align Alignment, Value *Stride, bool IsVolatile, unsigned Rows, unsigned Columns, const Twine &Name="") |
Create a column major, strided matrix load. | |
CallInst * | CreateColumnMajorStore (Value *Matrix, Value *Ptr, Align Alignment, Value *Stride, bool IsVolatile, unsigned Rows, unsigned Columns, const Twine &Name="") |
Create a column major, strided matrix store. | |
CallInst * | CreateMatrixTranspose (Value *Matrix, unsigned Rows, unsigned Columns, const Twine &Name="") |
Create a llvm.matrix.transpose call, transposing Matrix with Rows rows and Columns columns. | |
CallInst * | CreateMatrixMultiply (Value *LHS, Value *RHS, unsigned LHSRows, unsigned LHSColumns, unsigned RHSColumns, const Twine &Name="") |
Create a llvm.matrix.multiply call, multiplying matrixes LHS and RHS . | |
Value * | CreateMatrixInsert (Value *Matrix, Value *NewVal, Value *RowIdx, Value *ColumnIdx, unsigned NumRows) |
Insert a single element NewVal into Matrix at indices (RowIdx , ColumnIdx ). | |
Value * | CreateAdd (Value *LHS, Value *RHS) |
Add matrixes LHS and RHS . | |
Value * | CreateSub (Value *LHS, Value *RHS) |
Subtract matrixes LHS and RHS . | |
Value * | CreateScalarMultiply (Value *LHS, Value *RHS) |
Multiply matrix LHS with scalar RHS or scalar LHS with matrix RHS . | |
Value * | CreateScalarDiv (Value *LHS, Value *RHS, bool IsUnsigned) |
Divide matrix LHS by scalar RHS . | |
void | CreateIndexAssumption (Value *Idx, unsigned NumElements, Twine const &Name="") |
Create an assumption that Idx is less than NumElements . | |
Value * | CreateIndex (Value *RowIdx, Value *ColumnIdx, unsigned NumRows, Twine const &Name="") |
Compute the index to access the element at (RowIdx , ColumnIdx ) from a matrix with NumRows embedded in a vector. | |
Definition at line 33 of file MatrixBuilder.h.
|
inline |
Definition at line 58 of file MatrixBuilder.h.
Add matrixes LHS
and RHS
.
Support both integer and floating point matrixes.
Definition at line 157 of file MatrixBuilder.h.
|
inline |
Create a column major, strided matrix load.
EltTy
- Matrix element type DataPtr
- Start address of the matrix read Rows
- Number of rows in matrix (must be a constant) Columns
- Number of columns in matrix (must be a constant) Stride
- Space between columns
Definition at line 66 of file MatrixBuilder.h.
References llvm::FixedVectorType::get(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), llvm::Value::getType(), llvm::Attribute::getWithAlignment(), and Name.
|
inline |
Create a column major, strided matrix store.
Matrix
- Matrix to store Ptr
- Pointer to write back to Stride
- Space between columns
Definition at line 89 of file MatrixBuilder.h.
References llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), llvm::Value::getType(), llvm::Attribute::getWithAlignment(), Matrix, Name, and Ptr.
|
inline |
Compute the index to access the element at (RowIdx
, ColumnIdx
) from a matrix with NumRows
embedded in a vector.
Definition at line 244 of file MatrixBuilder.h.
References llvm::IntegerType::get(), llvm::Type::getContext(), llvm::Type::getScalarSizeInBits(), and llvm::Value::getType().
|
inline |
Create an assumption that Idx
is less than NumElements
.
Definition at line 231 of file MatrixBuilder.h.
|
inline |
Insert a single element NewVal
into Matrix
at indices (RowIdx
, ColumnIdx
).
Definition at line 146 of file MatrixBuilder.h.
References llvm::Value::getType(), and Matrix.
|
inline |
Create a llvm.matrix.multiply call, multiplying matrixes LHS
and RHS
.
Definition at line 126 of file MatrixBuilder.h.
References llvm::FixedVectorType::get(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), LHS, Name, and RHS.
|
inline |
Create a llvm.matrix.transpose call, transposing Matrix
with Rows
rows and Columns
columns.
Definition at line 110 of file MatrixBuilder.h.
References llvm::FixedVectorType::get(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), Matrix, and Name.
Divide matrix LHS
by scalar RHS
.
If the operands are integers, IsUnsigned
indicates whether UDiv or SDiv should be used.
Definition at line 216 of file MatrixBuilder.h.
Multiply matrix LHS
with scalar RHS
or scalar LHS
with matrix RHS
.
Definition at line 207 of file MatrixBuilder.h.
Subtract matrixes LHS
and RHS
.
Support both integer and floating point matrixes.
Definition at line 182 of file MatrixBuilder.h.