[llvm] [PeepholeOptimizer] Add REG_SEQUENCE subregister use folding (PR #205795)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 29 04:48:29 PDT 2026


================
@@ -1739,6 +1764,119 @@ bool PeepholeOptimizerLegacy::runOnMachineFunction(MachineFunction &MF) {
   return Impl.run(MF);
 }
 
+/// Check if a REG_SEQUENCE subregister use can be safely rewritten to use
+/// the source register directly.
+bool PeepholeOptimizer::canRewriteRegSequenceSubRegUse(MachineOperand &UseMO,
+                                                       RegSubRegPair Src) {
+  if (!Src.Reg.isValid() || !Src.Reg.isVirtual())
+    return false;
+
+  MachineInstr *UseMI = UseMO.getParent();
+  Register DstReg = UseMO.getReg();
+
+  // Instructions, e.g. AMDGPU S_MOVRELS_B32, may require specific
+  // subregister relationships with implicit operands. Replacing the
----------------
arsenm wrote:

This sounds more like a bug than a rule that needs to be followed 

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


More information about the llvm-commits mailing list