#include "mlir/Dialect/Affine/Utils.h"
#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Dialect/Index/IR/IndexOps.h"
#include "mlir/Dialect/Utils/IndexingUtils.h"
#include "mlir/Dialect/XeGPU/IR/XeGPU.h"
#include "mlir/Dialect/XeGPU/IR/XeGPUTargetInfo.h"
#include "mlir/Dialect/XeGPU/uArch/IntelGpuXe2.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/DialectImplementation.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Debug.h"
#include <mlir/Dialect/XeGPU/IR/XeGPUTypes.cpp.inc>
#include <mlir/Dialect/XeGPU/IR/XeGPU.cpp.inc>
#include <mlir/Dialect/XeGPU/IR/XeGPUAttrs.cpp.inc>
#include <mlir/Dialect/XeGPU/IR/XeGPUDialect.cpp.inc>
Go to the source code of this file.
|
#define | GET_TYPEDEF_LIST |
|
#define | GET_OP_LIST |
|
#define | GET_ATTRDEF_LIST |
|
#define | div(a, b) genBinOp<arith::DivSIOp>(a, builder.getIndexAttr(b), loc, builder) |
|
#define | rem(a, b) genBinOp<arith::RemSIOp>(a, builder.getIndexAttr(b), loc, builder) |
|
#define | mul(a, b) genBinOp<arith::MulIOp>(a, builder.getIndexAttr(b), loc, builder) |
|
#define | add(a, b) genBinOp<arith::AddIOp>(a, b, loc, builder) |
|
#define | GET_ATTRDEF_CLASSES |
|
#define | GET_TYPEDEF_CLASSES |
|
|
static SmallVector< SmallVector< Value > > | mlir::xegpu::genOffsetsComputingInsts (OpBuilder &builder, Location loc, SmallVector< Value > sgId, ArrayRef< int64_t > sgLayout, ArrayRef< int64_t > sizePerSg, ArrayRef< int64_t > sizePerWg) |
| Generates instructions to compute offsets for a subgroup identified by its multidimensional indices (sgId), using the specified subgroup layout (sgLayout), subgroup data dimensions (sizePerSg), and the overall data dimensions (sizePerWg). More...
|
|
template<typename ArithOp > |
OpFoldResult | mlir::xegpu::genBinOp (OpFoldResult a, OpFoldResult b, Location loc, OpBuilder &builder) |
|
SmallVector< OpFoldResult > | mlir::xegpu::getBlockedOffsets (OpBuilder &builder, Location loc, ArrayRef< OpFoldResult > offsets, ArrayRef< int64_t > blockShape) |
|
◆ add
#define add |
( |
|
a, |
|
|
|
b |
|
) |
| genBinOp<arith::AddIOp>(a, b, loc, builder) |
◆ div
#define div |
( |
|
a, |
|
|
|
b |
|
) |
| genBinOp<arith::DivSIOp>(a, builder.getIndexAttr(b), loc, builder) |
◆ GET_ATTRDEF_CLASSES
#define GET_ATTRDEF_CLASSES |
◆ GET_ATTRDEF_LIST
◆ GET_OP_LIST
◆ GET_TYPEDEF_CLASSES
#define GET_TYPEDEF_CLASSES |
◆ GET_TYPEDEF_LIST
◆ mul
#define mul |
( |
|
a, |
|
|
|
b |
|
) |
| genBinOp<arith::MulIOp>(a, builder.getIndexAttr(b), loc, builder) |
◆ rem
#define rem |
( |
|
a, |
|
|
|
b |
|
) |
| genBinOp<arith::RemSIOp>(a, builder.getIndexAttr(b), loc, builder) |