[PATCH] D151341: AMDGPU: Special case uniformity info for singlethreaded workitem IDs
Yashwant Singh via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 24 11:33:45 PDT 2023
yassingh added inline comments.
================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:903-911
if (const IntrinsicInst *Intrinsic = dyn_cast<IntrinsicInst>(V)) {
- if (Intrinsic->getIntrinsicID() == Intrinsic::read_register)
+ switch (Intrinsic->getIntrinsicID()) {
+ case Intrinsic::amdgcn_workitem_id_x:
+ case Intrinsic::amdgcn_workitem_id_y:
+ case Intrinsic::amdgcn_workitem_id_z:
+ return !ST->isSingleLaneExecution(*Intrinsic->getFunction());
+ case Intrinsic::read_register:
----------------
Will this also work for GMIR?
eg "//%4:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.workitem.id.x)//"
================
Comment at: llvm/test/Analysis/UniformityAnalysis/AMDGPU/workitem-intrinsics.ll:44-50
+; CHECK-LABEL: UniformityInfo for function 'workitem_id_x_singlethreaded':
+; CHECK-NOT: DIVERGENT
+define amdgpu_kernel void @workitem_id_x_singlethreaded() #2 {
+ %id.x = call i32 @llvm.amdgcn.workitem.id.x()
+ store volatile i32 %id.x, ptr addrspace(1) undef
+ ret void
+}
----------------
Same as above, equivalent GMIR test?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151341/new/
https://reviews.llvm.org/D151341
More information about the llvm-commits
mailing list