[llvm] [AMDGPU] Update isLegalAddressingMode for GFX12 SMEM loads (PR #78728)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 19 07:28:43 PST 2024
https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/78728
None
>From 280e03d292761e72a68b03bff99c890c9135316e Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Tue, 18 Jul 2023 11:33:12 +0100
Subject: [PATCH] [AMDGPU] Update isLegalAddressingMode for GFX12 SMEM loads
---
llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 929b5d004782d38..bdb617e7d3450b8 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -1525,13 +1525,14 @@ bool SITargetLowering::isLegalAddressingMode(const DataLayout &DL,
if (AM.BaseOffs % 4 != 0)
return isLegalMUBUFAddressingMode(AM);
- // There are no SMRD extloads, so if we have to do a small type access we
- // will use a MUBUF load.
- // FIXME?: We also need to do this if unaligned, but we don't know the
- // alignment here.
- // TODO: Update this for GFX12 which does have scalar sub-dword loads.
- if (Ty->isSized() && DL.getTypeStoreSize(Ty) < 4)
- return isLegalGlobalAddressingMode(AM);
+ if (!Subtarget->hasScalarSubwordLoads()) {
+ // There are no SMRD extloads, so if we have to do a small type access we
+ // will use a MUBUF load.
+ // FIXME?: We also need to do this if unaligned, but we don't know the
+ // alignment here.
+ if (Ty->isSized() && DL.getTypeStoreSize(Ty) < 4)
+ return isLegalGlobalAddressingMode(AM);
+ }
if (Subtarget->getGeneration() == AMDGPUSubtarget::SOUTHERN_ISLANDS) {
// SMRD instructions have an 8-bit, dword offset on SI.
More information about the llvm-commits
mailing list