[llvm] [AMDGPU] Propagate AA info in vector load/store splitting. (PR #168871)
Leon Clark via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 20 05:40:07 PST 2025
https://github.com/PeddleSpam updated https://github.com/llvm/llvm-project/pull/168871
>From 0ba764985d74ed02e1c0eda6d7436d50ab3a01c3 Mon Sep 17 00:00:00 2001
From: Leon Clark <leoclark at amd.com>
Date: Thu, 20 Nov 2025 12:35:56 +0000
Subject: [PATCH 1/2] Propagate AA info in vector load/store splitting.
---
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 19b3ae5e695c7..5b24166b1a8be 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -1890,12 +1890,14 @@ SDValue AMDGPUTargetLowering::SplitVectorLoad(const SDValue Op,
SDValue LoLoad = DAG.getExtLoad(Load->getExtensionType(), SL, LoVT,
Load->getChain(), BasePtr, SrcValue, LoMemVT,
- BaseAlign, Load->getMemOperand()->getFlags());
+ BaseAlign, Load->getMemOperand()->getFlags(),
+ Load->getAAInfo());
SDValue HiPtr = DAG.getObjectPtrOffset(SL, BasePtr, TypeSize::getFixed(Size));
SDValue HiLoad =
DAG.getExtLoad(Load->getExtensionType(), SL, HiVT, Load->getChain(),
HiPtr, SrcValue.getWithOffset(LoMemVT.getStoreSize()),
- HiMemVT, HiAlign, Load->getMemOperand()->getFlags());
+ HiMemVT, HiAlign, Load->getMemOperand()->getFlags(),
+ Load->getAAInfo());
SDValue Join;
if (LoVT == HiVT) {
@@ -1983,10 +1985,11 @@ SDValue AMDGPUTargetLowering::SplitVectorStore(SDValue Op,
SDValue LoStore =
DAG.getTruncStore(Chain, SL, Lo, BasePtr, SrcValue, LoMemVT, BaseAlign,
- Store->getMemOperand()->getFlags());
+ Store->getMemOperand()->getFlags(), Store->getAAInfo());
SDValue HiStore =
DAG.getTruncStore(Chain, SL, Hi, HiPtr, SrcValue.getWithOffset(Size),
- HiMemVT, HiAlign, Store->getMemOperand()->getFlags());
+ HiMemVT, HiAlign, Store->getMemOperand()->getFlags(),
+ Store->getAAInfo());
return DAG.getNode(ISD::TokenFactor, SL, MVT::Other, LoStore, HiStore);
}
>From adc94c3b01abd2c9fefebb77c7e0b507bd8c4a5b Mon Sep 17 00:00:00 2001
From: Leon Clark <leoclark at amd.com>
Date: Thu, 20 Nov 2025 13:04:12 +0000
Subject: [PATCH 2/2] Formatting.
---
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 23 ++++++++-----------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 5b24166b1a8be..971dfdbe3e70a 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -1888,16 +1888,14 @@ SDValue AMDGPUTargetLowering::SplitVectorLoad(const SDValue Op,
Align BaseAlign = Load->getAlign();
Align HiAlign = commonAlignment(BaseAlign, Size);
- SDValue LoLoad = DAG.getExtLoad(Load->getExtensionType(), SL, LoVT,
- Load->getChain(), BasePtr, SrcValue, LoMemVT,
- BaseAlign, Load->getMemOperand()->getFlags(),
- Load->getAAInfo());
+ SDValue LoLoad = DAG.getExtLoad(
+ Load->getExtensionType(), SL, LoVT, Load->getChain(), BasePtr, SrcValue,
+ LoMemVT, BaseAlign, Load->getMemOperand()->getFlags(), Load->getAAInfo());
SDValue HiPtr = DAG.getObjectPtrOffset(SL, BasePtr, TypeSize::getFixed(Size));
- SDValue HiLoad =
- DAG.getExtLoad(Load->getExtensionType(), SL, HiVT, Load->getChain(),
- HiPtr, SrcValue.getWithOffset(LoMemVT.getStoreSize()),
- HiMemVT, HiAlign, Load->getMemOperand()->getFlags(),
- Load->getAAInfo());
+ SDValue HiLoad = DAG.getExtLoad(
+ Load->getExtensionType(), SL, HiVT, Load->getChain(), HiPtr,
+ SrcValue.getWithOffset(LoMemVT.getStoreSize()), HiMemVT, HiAlign,
+ Load->getMemOperand()->getFlags(), Load->getAAInfo());
SDValue Join;
if (LoVT == HiVT) {
@@ -1986,10 +1984,9 @@ SDValue AMDGPUTargetLowering::SplitVectorStore(SDValue Op,
SDValue LoStore =
DAG.getTruncStore(Chain, SL, Lo, BasePtr, SrcValue, LoMemVT, BaseAlign,
Store->getMemOperand()->getFlags(), Store->getAAInfo());
- SDValue HiStore =
- DAG.getTruncStore(Chain, SL, Hi, HiPtr, SrcValue.getWithOffset(Size),
- HiMemVT, HiAlign, Store->getMemOperand()->getFlags(),
- Store->getAAInfo());
+ SDValue HiStore = DAG.getTruncStore(
+ Chain, SL, Hi, HiPtr, SrcValue.getWithOffset(Size), HiMemVT, HiAlign,
+ Store->getMemOperand()->getFlags(), Store->getAAInfo());
return DAG.getNode(ISD::TokenFactor, SL, MVT::Other, LoStore, HiStore);
}
More information about the llvm-commits
mailing list