[llvm-branch-commits] [llvm] AMDGPU: Extract lambda used in foldImmediate into a helper function (PR #127484)

Shilei Tian via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Feb 17 08:52:06 PST 2025


================
@@ -3437,6 +3437,30 @@ void SIInstrInfo::removeModOperands(MachineInstr &MI) const {
   }
 }
 
+std::optional<int64_t> SIInstrInfo::extractSubregFromImm(int64_t Imm,
+                                                         unsigned SubRegIndex) {
+  switch (SubRegIndex) {
+  case AMDGPU::NoSubRegister:
+    return Imm;
+  case AMDGPU::sub0:
+    return Lo_32(Imm);
+  case AMDGPU::sub1:
+    return Hi_32(Imm);
+  case AMDGPU::lo16:
+    return SignExtend64<16>(Imm);
+  case AMDGPU::hi16:
+    return SignExtend64<16>(Imm >> 16);
+  case AMDGPU::sub1_lo16:
+    return SignExtend64<16>(Imm >> 32);
+  case AMDGPU::sub1_hi16:
+    return SignExtend64<16>(Imm >> 48);
+  default:
+    return std::nullopt;
+  }
+
+  llvm_unreachable("covered subregister switch");
----------------
shiltian wrote:

do we really need this to avoid compiler warning?

https://github.com/llvm/llvm-project/pull/127484


More information about the llvm-branch-commits mailing list