Skip to content

Commit 4a11e80

Browse files
committed
Address ravil comments, note that I changed the foreach slightly
1 parent fe4f87b commit 4a11e80

File tree

2 files changed

+27
-39
lines changed

2 files changed

+27
-39
lines changed

mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -696,34 +696,33 @@ def ROCDL_GlobalLoadLDSOp :
696696
// Async load to LDS intrinsic (available in GFX1250)
697697
//===---------------------------------------------------------------------===//
698698

699-
class ROCDL_GlobalLoadAsyncToLDSOp<string mnemonic> :
700-
ROCDL_IntrOp<mnemonic, [], [], [], 0, 0, 1, 0, [2, 3], ["offset", "aux"]> {
701-
dag args = (ins Arg<ROCDLGlobalBuffer, "", [MemRead]>:$globalPtr,
702-
Arg<ROCDLBufferLDS, "", [MemWrite]>:$ldsPtr,
703-
I32Attr:$offset,
704-
I32Attr:$aux);
705-
let arguments = !con(args, baseArgs);
706-
let assemblyFormat = [{
707-
$globalPtr `,` $ldsPtr `,` $offset `,` $aux
708-
attr-dict `:` type($globalPtr)
709-
}];
710-
let description = [{
711-
Loads data asynchronously from a global memory pointer to a local data
712-
store (LDS) pointer.
699+
foreach bitsVal = [8, 32, 64, 128] in {
700+
defvar bitsStr = "b" # !cast<string>(bitsVal);
701+
def ROCDL_GlobalLoadAsyncToLDS # !toupper(bitsStr) # Op :
702+
ROCDL_IntrOp<"global.load.async.to.lds." # bitsStr, [], [], [], 0, 0, 1, 0, [2, 3], ["offset", "aux"]> {
703+
dag args = (ins Arg<ROCDLGlobalBuffer, "", [MemRead]>:$globalPtr,
704+
Arg<ROCDLBufferLDS, "", [MemWrite]>:$ldsPtr,
705+
I32Attr:$offset,
706+
I32Attr:$aux);
707+
let arguments = !con(args, baseArgs);
708+
let assemblyFormat = [{
709+
$globalPtr `,` $ldsPtr `,` $offset `,` $aux
710+
attr-dict `:` type($globalPtr)
711+
}];
712+
let description = [{
713+
Asynchronously loads }] # !cast<string>(bitsVal) # [{ bits of data from a global memory pointer
714+
to a Local Data Share (LDS) pointer.
713715

714-
Available on gfx1250+.
715-
}];
716-
let extraClassDefinition = [{
717-
::llvm::SmallVector<::mlir::Value> $cppClass::getAccessedOperands() {
718-
return {getGlobalPtr(), getLdsPtr()};
719-
}
720-
}];
721-
}
716+
Available on gfx1250+.
717+
}];
722718

723-
def ROCDL_GlobalLoadAsyncToLDSB8Op : ROCDL_GlobalLoadAsyncToLDSOp<"global.load.async.to.lds.b8">;
724-
def ROCDL_GlobalLoadAsyncToLDSB32Op : ROCDL_GlobalLoadAsyncToLDSOp<"global.load.async.to.lds.b32">;
725-
def ROCDL_GlobalLoadAsyncToLDSB64Op : ROCDL_GlobalLoadAsyncToLDSOp<"global.load.async.to.lds.b64">;
726-
def ROCDL_GlobalLoadAsyncToLDSB128Op : ROCDL_GlobalLoadAsyncToLDSOp<"global.load.async.to.lds.b128">;
719+
let extraClassDefinition = [{
720+
::llvm::SmallVector<::mlir::Value> $cppClass::getAccessedOperands() {
721+
return {getGlobalPtr(), getLdsPtr()};
722+
}
723+
}];
724+
}
725+
}
727726

728727
//===---------------------------------------------------------------------===//
729728
// Tensor load/store intrinsics (available in GFX1250)

mlir/test/Target/LLVMIR/rocdl.mlir

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,25 +1040,14 @@ llvm.func @rocdl.global.load.lds(%src : !llvm.ptr<1>, %dst: !llvm.ptr<3>) {
10401040
llvm.return
10411041
}
10421042

1043-
llvm.func @rocdl.global.load.async.lds.b8(%src : !llvm.ptr<1>, %dst: !llvm.ptr<3>) {
1043+
// CHECK-LABEL: rocdl.global.load.async.to.lds
1044+
llvm.func @rocdl.global.load.async.to.lds(%src : !llvm.ptr<1>, %dst: !llvm.ptr<3>) {
10441045
// CHECK: call void @llvm.amdgcn.global.load.async.to.lds.b8
10451046
rocdl.global.load.async.to.lds.b8 %src, %dst, 0, 0 : !llvm.ptr<1>
1046-
llvm.return
1047-
}
1048-
1049-
llvm.func @rocdl.global.load.async.lds.b32(%src : !llvm.ptr<1>, %dst: !llvm.ptr<3>) {
10501047
// CHECK: call void @llvm.amdgcn.global.load.async.to.lds.b32
10511048
rocdl.global.load.async.to.lds.b32 %src, %dst, 0, 0 : !llvm.ptr<1>
1052-
llvm.return
1053-
}
1054-
1055-
llvm.func @rocdl.global.load.async.lds.b64(%src : !llvm.ptr<1>, %dst: !llvm.ptr<3>) {
10561049
// CHECK: call void @llvm.amdgcn.global.load.async.to.lds.b64
10571050
rocdl.global.load.async.to.lds.b64 %src, %dst, 0, 0 : !llvm.ptr<1>
1058-
llvm.return
1059-
}
1060-
1061-
llvm.func @rocdl.global.load.async.lds.b128(%src : !llvm.ptr<1>, %dst: !llvm.ptr<3>) {
10621051
// CHECK: call void @llvm.amdgcn.global.load.async.to.lds.b128
10631052
rocdl.global.load.async.to.lds.b128 %src, %dst, 0, 0 : !llvm.ptr<1>
10641053
llvm.return

0 commit comments

Comments
 (0)