[PATCH] D128836: [AMDGPU][GlobalISel] Support register offsets for SMRDs.

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 29 10:04:42 PDT 2022


arsenm added a comment.

Should add some MIR select tests



================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:3833
   // SGPR offset is unsigned.
-  if (!GEPInfo.Imm || GEPInfo.Imm < 0 || !isUInt<32>(GEPInfo.Imm))
-    return None;
+  if (AddrInfo[0].SgprParts.size() == 1 && GEPInfo.Imm > 0 &&
+      isUInt<32>(GEPInfo.Imm)) {
----------------
Isn't GEPInfo.Imm > 0 redundant with isUInt<32>?


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:3848
+    Register OffsetReg = GEPInfo.SgprParts[1];
+    mi_match(OffsetReg, *MRI, m_GZExt(m_Reg(OffsetReg)));
+    if (MRI->getType(OffsetReg) == LLT::scalar(32)) {
----------------
Should use matchZeroExtendFromS32 to handle all the extended cases. Also this isn't checking the match return


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128836/new/

https://reviews.llvm.org/D128836



More information about the llvm-commits mailing list