Skip to content

Commit 8b429fc

Browse files
committed
[AMDGPU] Update SITargetLowering::getAddrModeArguments (#78740)
Handle every intrinsic for which getTgtMemIntrinsic returns with Info.ptrVal set to one of the intrinsic's operands. A bunch of these cases were missing.
1 parent c9a6e99 commit 8b429fc

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,32 +1414,42 @@ bool SITargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info,
14141414
bool SITargetLowering::getAddrModeArguments(IntrinsicInst *II,
14151415
SmallVectorImpl<Value*> &Ops,
14161416
Type *&AccessTy) const {
1417+
Value *Ptr = nullptr;
14171418
switch (II->getIntrinsicID()) {
1418-
case Intrinsic::amdgcn_global_load_tr:
1419-
case Intrinsic::amdgcn_ds_ordered_add:
1420-
case Intrinsic::amdgcn_ds_ordered_swap:
1419+
case Intrinsic::amdgcn_atomic_cond_sub_u32:
14211420
case Intrinsic::amdgcn_ds_append:
14221421
case Intrinsic::amdgcn_ds_consume:
14231422
case Intrinsic::amdgcn_ds_fadd:
1424-
case Intrinsic::amdgcn_ds_fmin:
14251423
case Intrinsic::amdgcn_ds_fmax:
1426-
case Intrinsic::amdgcn_global_atomic_fadd:
1424+
case Intrinsic::amdgcn_ds_fmin:
1425+
case Intrinsic::amdgcn_ds_ordered_add:
1426+
case Intrinsic::amdgcn_ds_ordered_swap:
14271427
case Intrinsic::amdgcn_flat_atomic_fadd:
1428-
case Intrinsic::amdgcn_flat_atomic_fmin:
1428+
case Intrinsic::amdgcn_flat_atomic_fadd_v2bf16:
14291429
case Intrinsic::amdgcn_flat_atomic_fmax:
1430-
case Intrinsic::amdgcn_flat_atomic_fmin_num:
14311430
case Intrinsic::amdgcn_flat_atomic_fmax_num:
1431+
case Intrinsic::amdgcn_flat_atomic_fmin:
1432+
case Intrinsic::amdgcn_flat_atomic_fmin_num:
1433+
case Intrinsic::amdgcn_global_atomic_csub:
1434+
case Intrinsic::amdgcn_global_atomic_fadd:
14321435
case Intrinsic::amdgcn_global_atomic_fadd_v2bf16:
1433-
case Intrinsic::amdgcn_flat_atomic_fadd_v2bf16:
1434-
case Intrinsic::amdgcn_global_atomic_csub: {
1435-
Value *Ptr = II->getArgOperand(0);
1436-
AccessTy = II->getType();
1437-
Ops.push_back(Ptr);
1438-
return true;
1439-
}
1436+
case Intrinsic::amdgcn_global_atomic_fmax:
1437+
case Intrinsic::amdgcn_global_atomic_fmax_num:
1438+
case Intrinsic::amdgcn_global_atomic_fmin:
1439+
case Intrinsic::amdgcn_global_atomic_fmin_num:
1440+
case Intrinsic::amdgcn_global_atomic_ordered_add_b64:
1441+
case Intrinsic::amdgcn_global_load_tr:
1442+
Ptr = II->getArgOperand(0);
1443+
break;
1444+
case Intrinsic::amdgcn_global_load_lds:
1445+
Ptr = II->getArgOperand(1);
1446+
break;
14401447
default:
14411448
return false;
14421449
}
1450+
AccessTy = II->getType();
1451+
Ops.push_back(Ptr);
1452+
return true;
14431453
}
14441454

14451455
bool SITargetLowering::isLegalFlatAddressingMode(const AddrMode &AM,

0 commit comments

Comments
 (0)