[llvm] 85dada8 - [AMDGPU][CodeGen] Support raw format TFE buffer loads other than byte, short and d16 ones.
Ivan Kosarev via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 19 03:39:16 PST 2022
Author: Ivan Kosarev
Date: 2022-12-19T11:39:08Z
New Revision: 85dada81e318a52c38156baecc4eff3d21b41c76
URL: https://github.com/llvm/llvm-project/commit/85dada81e318a52c38156baecc4eff3d21b41c76
DIFF: https://github.com/llvm/llvm-project/commit/85dada81e318a52c38156baecc4eff3d21b41c76.diff
LOG: [AMDGPU][CodeGen] Support raw format TFE buffer loads other than byte, short and d16 ones.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D138215
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index a43be056ea377..f6be81b4d7a72 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -4548,19 +4548,22 @@ bool AMDGPULegalizerInfo::legalizeBufferLoad(MachineInstr &MI,
// TODO: Support TFE for typed and narrow loads.
if (IsTyped) {
- assert(!IsTFE);
+ if (IsTFE)
+ return false;
Opc = IsD16 ? AMDGPU::G_AMDGPU_TBUFFER_LOAD_FORMAT_D16 :
AMDGPU::G_AMDGPU_TBUFFER_LOAD_FORMAT;
} else if (IsFormat) {
if (IsD16) {
- assert(!IsTFE);
+ if (IsTFE)
+ return false;
Opc = AMDGPU::G_AMDGPU_BUFFER_LOAD_FORMAT_D16;
} else {
Opc = IsTFE ? AMDGPU::G_AMDGPU_BUFFER_LOAD_FORMAT_TFE
: AMDGPU::G_AMDGPU_BUFFER_LOAD_FORMAT;
}
} else {
- assert(!IsTFE);
+ if (IsTFE)
+ return false;
switch (MemTy.getSizeInBits()) {
case 8:
Opc = AMDGPU::G_AMDGPU_BUFFER_LOAD_UBYTE;
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 2025bc84da09d..6fc66187a1c6e 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -4894,7 +4894,8 @@ SDValue SITargetLowering::lowerIntrinsicLoad(MemSDNode *M, bool IsFormat,
: AMDGPUISD::BUFFER_LOAD_FORMAT;
} else {
// TODO: Support non-format TFE loads.
- assert(!IsTFE);
+ if (IsTFE)
+ return SDValue();
Opc = AMDGPUISD::BUFFER_LOAD;
}
More information about the llvm-commits
mailing list