[llvm] [AMDGPU] Support lowering of cluster related instrinsics (PR #157978)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 11 08:51:15 PDT 2025
================
@@ -9674,14 +9802,81 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
return lowerImplicitZextParam(DAG, Op, MVT::i16,
SI::KernelInputOffsets::LOCAL_SIZE_Z);
case Intrinsic::amdgcn_workgroup_id_x:
- return getPreloadedValue(DAG, *MFI, VT,
- AMDGPUFunctionArgInfo::WORKGROUP_ID_X);
+ return lowerWorkGroupId(DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::WORKGROUP_ID_X,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_MAX_ID_X,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_ID_X);
case Intrinsic::amdgcn_workgroup_id_y:
- return getPreloadedValue(DAG, *MFI, VT,
- AMDGPUFunctionArgInfo::WORKGROUP_ID_Y);
+ return lowerWorkGroupId(DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::WORKGROUP_ID_Y,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_MAX_ID_Y,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_ID_Y);
case Intrinsic::amdgcn_workgroup_id_z:
- return getPreloadedValue(DAG, *MFI, VT,
- AMDGPUFunctionArgInfo::WORKGROUP_ID_Z);
+ return lowerWorkGroupId(DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::WORKGROUP_ID_Z,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_MAX_ID_Z,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_ID_Z);
+ case Intrinsic::amdgcn_cluster_id_x:
+ return Subtarget->hasGFX1250Insts()
+ ? getPreloadedValue(DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::WORKGROUP_ID_X)
+ : DAG.getUNDEF(VT);
+ case Intrinsic::amdgcn_cluster_id_y:
+ return Subtarget->hasGFX1250Insts()
+ ? getPreloadedValue(DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::WORKGROUP_ID_Y)
+ : DAG.getUNDEF(VT);
+ case Intrinsic::amdgcn_cluster_id_z:
+ return Subtarget->hasGFX1250Insts()
+ ? getPreloadedValue(DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::WORKGROUP_ID_Z)
+ : DAG.getUNDEF(VT);
+ case Intrinsic::amdgcn_cluster_workgroup_id_x:
+ return Subtarget->hasGFX1250Insts()
+ ? getPreloadedValue(
+ DAG, *MFI, VT,
+ AMDGPUFunctionArgInfo::CLUSTER_WORKGROUP_ID_X)
+ : DAG.getUNDEF(VT);
----------------
arsenm wrote:
getPOISON
https://github.com/llvm/llvm-project/pull/157978
More information about the llvm-commits
mailing list