================ @@ -444,17 +444,40 @@ def ROCDL_ds_read_tr6_b96 : ROCDL_LDS_Read_Tr_IntrOp<"ds.read.tr6.b96">; def ROCDL_ds_read_tr16_b64 : ROCDL_LDS_Read_Tr_IntrOp<"ds.read.tr16.b64">; //===---------------------------------------------------------------------===// -// Global load to LDS intrinsic (available in GFX950) +// Load to LDS intrinsic (available in GFX9 and GFX10) +//===---------------------------------------------------------------------===// + +def ROCDL_LoadToLDSOp : + ROCDL_IntrOp<"load.to.lds", [], [0], [], 0, 0, 1, [2, 3, 4], ["size", "offset", "aux"]> { + dag args = (ins Arg<LLVM_AnyPointer, "", [MemRead]>:$globalPtr, + Arg<ROCDLBufferLDS, "", [MemWrite]>:$ldsPtr, + I32Attr:$size, + I32Attr:$offset, + I32Attr:$aux); + let arguments = !con(args, aliasAttrs); + let assemblyFormat = [{ + $globalPtr `,` $ldsPtr `,` $size `,` $offset `,` $aux + attr-dict `:` type($globalPtr) + }]; + let extraClassDefinition = [{ + ::llvm::SmallVector<::mlir::Value> $cppClass::getAccessedOperands() { + return {getGlobalPtr(), getLdsPtr()}; + } + }]; +} def ROCDL_GlobalLoadLDSOp : - ROCDL_IntrOp<"global.load.lds", [], [], [], 0, 0, 1> { + ROCDL_IntrOp<"global.load.lds", [], [], [], 0, 0, 1, [2, 3, 4], ["size", "offset", "aux"]> { ---------------- lialan wrote:
@krzysz00 should we simply remove this op? https://github.com/llvm/llvm-project/pull/137425 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits