LLVM
15.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. More... | |
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. More... | |
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. More... | |
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 . More... | |
Value * | CreateMatrixInsert (Value *Matrix, Value *NewVal, Value *RowIdx, Value *ColumnIdx, unsigned NumRows) |
Insert a single element NewVal into Matrix at indices (RowIdx , ColumnIdx ). More... | |
Value * | CreateAdd (Value *LHS, Value *RHS) |
Add matrixes LHS and RHS . More... | |
Value * | CreateSub (Value *LHS, Value *RHS) |
Subtract matrixes LHS and RHS . More... | |
Value * | CreateScalarMultiply (Value *LHS, Value *RHS) |
Multiply matrix LHS with scalar RHS or scalar LHS with matrix RHS . More... | |
Value * | CreateScalarDiv (Value *LHS, Value *RHS, bool IsUnsigned) |
Divide matrix LHS by scalar RHS . More... | |
void | CreateIndexAssumption (Value *Idx, unsigned NumElements, Twine const &Name="") |
Create an assumption that Idx is less than NumElements . More... | |
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. More... | |
Definition at line 33 of file MatrixBuilder.h.
|
inline |
Definition at line 58 of file MatrixBuilder.h.
References B.
|
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 B, llvm::FixedVectorType::get(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), llvm::Value::getType(), llvm::Attribute::getWithAlignment(), and llvm::AMDGPU::HSAMD::Kernel::Arg::Key::IsVolatile.
|
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 B, llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), llvm::Value::getType(), llvm::Attribute::getWithAlignment(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::IsVolatile, and Matrix.
|
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 B, llvm::IntegerType::get(), llvm::Type::getContext(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), and llvm::max().
|
inline |
Create an assumption that Idx
is less than NumElements
.
Definition at line 231 of file MatrixBuilder.h.
References assert(), B, llvm::Type::getScalarSizeInBits(), and llvm::Value::getType().
|
inline |
Insert a single element NewVal
into Matrix
at indices (RowIdx
, ColumnIdx
).
Definition at line 146 of file MatrixBuilder.h.
References B, llvm::ConstantInt::get(), 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 B, llvm::FixedVectorType::get(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), LHS, 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 B, llvm::FixedVectorType::get(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), and Matrix.
Multiply matrix LHS
with scalar RHS
or scalar LHS
with matrix RHS
.
Definition at line 207 of file MatrixBuilder.h.