Skip to content

Commit dea8225

Browse files
committed
AMDGPU: Implement tensor load and store instructions for gfx1250
A few update based on review comments: 1. fix clang format 2. use ClangBuiltin in intrinsic defs to avoid the boilerplate in TargetBuiltins/AMDGPU.cpp 3. Fold to return of bool expression
1 parent b6aa918 commit dea8225

File tree

3 files changed

+6
-34
lines changed

3 files changed

+6
-34
lines changed

clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -621,32 +621,6 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
621621
llvm::Function *F = CGM.getIntrinsic(IID, {LoadTy});
622622
return Builder.CreateCall(F, {Addr});
623623
}
624-
case AMDGPU::BI__builtin_amdgcn_tensor_load_to_lds:
625-
case AMDGPU::BI__builtin_amdgcn_tensor_load_to_lds_d2:
626-
case AMDGPU::BI__builtin_amdgcn_tensor_store_from_lds:
627-
case AMDGPU::BI__builtin_amdgcn_tensor_store_from_lds_d2: {
628-
Intrinsic::ID IID;
629-
switch (BuiltinID) {
630-
case AMDGPU::BI__builtin_amdgcn_tensor_load_to_lds:
631-
IID = Intrinsic::amdgcn_tensor_load_to_lds;
632-
break;
633-
case AMDGPU::BI__builtin_amdgcn_tensor_load_to_lds_d2:
634-
IID = Intrinsic::amdgcn_tensor_load_to_lds_d2;
635-
break;
636-
case AMDGPU::BI__builtin_amdgcn_tensor_store_from_lds:
637-
IID = Intrinsic::amdgcn_tensor_store_from_lds;
638-
break;
639-
case AMDGPU::BI__builtin_amdgcn_tensor_store_from_lds_d2:
640-
IID = Intrinsic::amdgcn_tensor_store_from_lds_d2;
641-
break;
642-
}
643-
644-
SmallVector<Value *, 5> Args;
645-
for (int i = 0, e = E->getNumArgs(); i != e; ++i)
646-
Args.push_back(EmitScalarExpr(E->getArg(i)));
647-
llvm::Function *F = CGM.getIntrinsic(IID, {});
648-
return Builder.CreateCall(F, {Args});
649-
}
650624
case AMDGPU::BI__builtin_amdgcn_load_to_lds: {
651625
// Should this have asan instrumentation?
652626
return emitBuiltinWithOneOverloadedType<5>(*this, E,

llvm/include/llvm/IR/IntrinsicsAMDGPU.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3606,10 +3606,10 @@ class AMDGPUTensorLoadStoreD2:
36063606
"", [SDNPMemOperand]
36073607
>;
36083608

3609-
def int_amdgcn_tensor_load_to_lds : AMDGPUTensorLoadStore;
3610-
def int_amdgcn_tensor_store_from_lds : AMDGPUTensorLoadStore;
3611-
def int_amdgcn_tensor_load_to_lds_d2 : AMDGPUTensorLoadStoreD2;
3612-
def int_amdgcn_tensor_store_from_lds_d2 : AMDGPUTensorLoadStoreD2;
3609+
def int_amdgcn_tensor_load_to_lds : ClangBuiltin<"__builtin_amdgcn_tensor_load_to_lds">, AMDGPUTensorLoadStore;
3610+
def int_amdgcn_tensor_store_from_lds : ClangBuiltin<"__builtin_amdgcn_tensor_store_from_lds">, AMDGPUTensorLoadStore;
3611+
def int_amdgcn_tensor_load_to_lds_d2 : ClangBuiltin<"__builtin_amdgcn_tensor_load_to_lds_d2">, AMDGPUTensorLoadStoreD2;
3612+
def int_amdgcn_tensor_store_from_lds_d2 : ClangBuiltin<"__builtin_amdgcn_tensor_store_from_lds_d2">, AMDGPUTensorLoadStoreD2;
36133613

36143614
/// Emit an addrspacecast without null pointer checking.
36153615
/// Should only be inserted by a pass based on analysis of an addrspacecast's src.

llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4289,10 +4289,8 @@ bool AMDGPUAsmParser::validateTensorR128(const MCInst &Inst) {
42894289
return true;
42904290

42914291
int R128Idx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::r128);
4292-
if (R128Idx >= 0 && Inst.getOperand(R128Idx).getImm())
4293-
return false;
42944292

4295-
return true;
4293+
return R128Idx < 0 || !Inst.getOperand(R128Idx).getImm();
42964294
}
42974295

42984296
static bool IsRevOpcode(const unsigned Opcode)
@@ -5219,7 +5217,7 @@ bool AMDGPUAsmParser::validateInstruction(const MCInst &Inst,
52195217
}
52205218
if (!validateTensorR128(Inst)) {
52215219
Error(getImmLoc(AMDGPUOperand::ImmTyD16, Operands),
5222-
"instruction must set modifier r128=0");
5220+
"instruction must set modifier r128=0");
52235221
return false;
52245222
}
52255223
if (!validateMIMGMSAA(Inst)) {

0 commit comments

Comments
 (0)