Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,11 @@ def AMDGPU_DPPOp : AMDGPU_Op<"dpp", [SameTypeOperands, AllTypesMatch<["result",
let summary = "AMDGPU DPP operation";
let description = [{
This operation represents DPP functionality in a GPU program.

The behavior should be equivalent to:
v_mov_b32 `result` `old`
v_mov_b32 `result` `src` `kind` `row_mask` `bank_mask` `bound_ctrl`

DPP provides the following operations:
- Full crossbar in a group of four (`quad_perm`)
- Wavefront shift left by one lane (`wave_shl`)
Expand Down
9 changes: 9 additions & 0 deletions mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,15 @@ def ROCDL_DPPUpdateOp : ROCDL_IntrOp<"update.dpp", [], [0],
Arguments<(ins LLVM_Type:$old, LLVM_Type:$src, I32Attr:$dppCtrl, I32Attr:$rowMask,
I32Attr:$bankMask, I1Attr:$boundCtrl)> {
let results = (outs LLVM_Type:$res);
let summary = "Represent the DPP(Data-Parallel Primitives) functionality";
let description = [{
Represent the DPP(Data-Parallel Primitives) functionality,
which supports cross-lane data operations.

The behavior should be equivalent to:
v_mov_b32 `res` `old`
v_mov_b32 `res` `src` `dppCtrl` `rowMask` `bankMask` `boundCtrl`
}];
let assemblyFormat = [{
attr-dict $old `,` $src `with` $dppCtrl `,` $rowMask `,` $bankMask `,` $boundCtrl `:` type($src)
}];
Expand Down
Loading