https://github.com/jayfoad updated https://github.com/llvm/llvm-project/pull/78740
>From c7636536d65a3792223e083dc5bacd0a8e6ff3d7 Mon Sep 17 00:00:00 2001 From: Jay Foad <jay.f...@amd.com> Date: Fri, 19 Jan 2024 16:06:00 +0000 Subject: [PATCH] [AMDGPU] Update SITargetLowering::getAddrModeArguments 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. --- llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 36 +++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index cc0c4d4e36eaa8e..66ae9222fb50c89 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -1406,31 +1406,41 @@ bool SITargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info, bool SITargetLowering::getAddrModeArguments(IntrinsicInst *II, SmallVectorImpl<Value*> &Ops, Type *&AccessTy) const { + Value *Ptr = nullptr; switch (II->getIntrinsicID()) { - case Intrinsic::amdgcn_ds_ordered_add: - case Intrinsic::amdgcn_ds_ordered_swap: + case Intrinsic::amdgcn_atomic_cond_sub_u32: case Intrinsic::amdgcn_ds_append: case Intrinsic::amdgcn_ds_consume: case Intrinsic::amdgcn_ds_fadd: - case Intrinsic::amdgcn_ds_fmin: case Intrinsic::amdgcn_ds_fmax: - case Intrinsic::amdgcn_global_atomic_fadd: + case Intrinsic::amdgcn_ds_fmin: + case Intrinsic::amdgcn_ds_ordered_add: + case Intrinsic::amdgcn_ds_ordered_swap: case Intrinsic::amdgcn_flat_atomic_fadd: - case Intrinsic::amdgcn_flat_atomic_fmin: + case Intrinsic::amdgcn_flat_atomic_fadd_v2bf16: case Intrinsic::amdgcn_flat_atomic_fmax: - case Intrinsic::amdgcn_flat_atomic_fmin_num: case Intrinsic::amdgcn_flat_atomic_fmax_num: + case Intrinsic::amdgcn_flat_atomic_fmin: + case Intrinsic::amdgcn_flat_atomic_fmin_num: + case Intrinsic::amdgcn_global_atomic_csub: + case Intrinsic::amdgcn_global_atomic_fadd: case Intrinsic::amdgcn_global_atomic_fadd_v2bf16: - case Intrinsic::amdgcn_flat_atomic_fadd_v2bf16: - case Intrinsic::amdgcn_global_atomic_csub: { - Value *Ptr = II->getArgOperand(0); - AccessTy = II->getType(); - Ops.push_back(Ptr); - return true; - } + case Intrinsic::amdgcn_global_atomic_fmax: + case Intrinsic::amdgcn_global_atomic_fmax_num: + case Intrinsic::amdgcn_global_atomic_fmin: + case Intrinsic::amdgcn_global_atomic_fmin_num: + case Intrinsic::amdgcn_global_atomic_ordered_add_b64: + Ptr = II->getArgOperand(0); + break; + case Intrinsic::amdgcn_global_load_lds: + Ptr = II->getArgOperand(1); + break; default: return false; } + AccessTy = II->getType(); + Ops.push_back(Ptr); + return true; } bool SITargetLowering::isLegalFlatAddressingMode(const AddrMode &AM, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits