@@ -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)
0 commit comments