[llvm] [AMDGPU] Enable unaligned scratch accesses (PR #110219)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 30 05:44:51 PDT 2024
================
@@ -1831,26 +1831,17 @@ bool SITargetLowering::allowsMisalignedMemoryAccessesImpl(
Subtarget->hasUnalignedDSAccessEnabled();
}
- if (AddrSpace == AMDGPUAS::PRIVATE_ADDRESS) {
- bool AlignedBy4 = Alignment >= Align(4);
- if (IsFast)
- *IsFast = AlignedBy4;
-
- return AlignedBy4 ||
- Subtarget->enableFlatScratch() ||
- Subtarget->hasUnalignedScratchAccess();
- }
-
// FIXME: We have to be conservative here and assume that flat operations
// will access scratch. If we had access to the IR function, then we
// could determine if any private memory was used in the function.
- if (AddrSpace == AMDGPUAS::FLAT_ADDRESS &&
- !Subtarget->hasUnalignedScratchAccess()) {
+ if (AddrSpace == AMDGPUAS::PRIVATE_ADDRESS ||
+ AddrSpace == AMDGPUAS::FLAT_ADDRESS) {
bool AlignedBy4 = Alignment >= Align(4);
if (IsFast)
*IsFast = AlignedBy4;
- return AlignedBy4;
+ return AlignedBy4 || Subtarget->enableFlatScratch() ||
----------------
arsenm wrote:
I think this is just a bug. The question of whether we should assume unaligned access is enabled or not is a question of the driver (it really should just always be enabled, but I'm not sure it is). The place to fix that is somewhere else, and not in these low level usage checks
https://github.com/llvm/llvm-project/pull/110219
More information about the llvm-commits
mailing list