[PATCH] D97938: [AMDGPU][GlobalISel] Transform (fadd (fma x, y, (fmul u, v)), z) -> (fma x, y, (fma u, v, z))

Mirko Brkusanin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 30 07:47:52 PDT 2021


mbrkusanin added inline comments.


================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:4464
+  if (FMA) {
+    MachineInstr *FMA2 = MRI.getVRegDef(FMA->getOperand(3).getReg());
+    Register X = FMA->getOperand(1).getReg();
----------------
This matches to fmul in pattern in comment above. Better to rename to FMul.


================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:4472-4475
+      Register TmpReg = MRI.createGenericVirtualRegister(DstTy);
+      Builder.buildInstr(PreferredFusedOpcode, {TmpReg}, {U, V, Z});
+      Builder.buildInstr(PreferredFusedOpcode, {MI.getOperand(0).getReg()},
+                         {X, Y, TmpReg});
----------------
Use B not Builder.

You can just pass DstTy for dst instead of making TmpReg and get it below with .getReg(0). Or at lease rename it to FMA or InnerFMA.



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

https://reviews.llvm.org/D97938



More information about the llvm-commits mailing list