[llvm] [NFC][AMDGPU] Separate VOPD candidate selection (PR #223518)

Shilei Tian via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 16 16:54:02 PDT 2026


================
@@ -148,16 +136,22 @@ class GCNCreateVOPD {
           continue;
         auto *SecondMI = &*MII;
 
-        if (auto Match = tryMatchVOPDPair(*SII, *FirstMI, *SecondMI)) {
-          ReplaceCandidates.push_back(
-              VOPDCombineInfo(Match->MIX, Match->MIY, Match->IsVOPD3));
-          ++MII;
-        }
+        if (std::optional<VOPDMatchInfo> Match =
+                tryMatchVOPDPair(*SII, *FirstMI, *SecondMI))
+          ReplaceCandidates.push_back(std::move(*Match));
       }
     }
-    for (auto &CI : ReplaceCandidates) {
-      Changed |= doReplace(SII, CI);
+
+    SmallVector<VOPDMatchInfo *> Selected;
+    MachineInstr *LastSelectedSecond = nullptr;
+    for (VOPDMatchInfo &Match : ReplaceCandidates) {
+      if (Match.InOrder[0] == LastSelectedSecond)
----------------
shiltian wrote:

Done.

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


More information about the llvm-commits mailing list