[llvm] unpack packed instructions overlapped by MFMAs post-RA scheduling (PR #157968)

Jan Patrick Lehr via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 11 07:14:32 PDT 2025


================
@@ -417,6 +455,233 @@ bool SIPreEmitPeephole::removeExeczBranch(MachineInstr &MI,
   return true;
 }
 
+bool SIPreEmitPeephole::isUnpackingSupportedInstr(MachineInstr &MI) const {
+  unsigned Opcode = MI.getOpcode();
+  switch (Opcode) {
+  case AMDGPU::V_PK_ADD_F32:
+  case AMDGPU::V_PK_MUL_F32:
+  case AMDGPU::V_PK_FMA_F32:
+    return true;
+  default:
+    return false;
+  }
+  llvm_unreachable("Fully covered switch");
+}
+
+bool SIPreEmitPeephole::hasReadWriteDependencies(const MachineInstr &PredMI,
+                                                 const MachineInstr &SuccMI) {
+  for (const MachineOperand &Pred_Ops : PredMI.operands()) {
----------------
jplehr wrote:

I think the vars in here should be `PredOps` and similar according to style guide

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


More information about the llvm-commits mailing list