[PATCH] D109953: [X86] Combine the FADD(A, FMA(B, C, 0)) to FMA(B, C, A)

LiuChen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 17 01:54:33 PDT 2021


LiuChen3 added inline comments.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:47481
 
 //  Try to combine the following nodes
 //  t21: v16f32 = X86ISD::VFMULC/VFCMULC t7, t8
----------------
xbolva00 wrote:
> Do we really need this output here? Simplify it a bit? Something like you wrote "Combine the FADD(A, FMA(B, C, 0)) to FMA(B, C, A)"?
Good idea.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:47522
   SDValue RHS = N->getOperand(1);
   SDValue CFmul, FAddOp1;
+  auto GetCFmulFrom = [&CFmul, &AllowContract, &DAG](SDValue N) -> bool {
----------------
pengfei wrote:
> I think we can use `bool IsConj`, `SDValue MulOp0, MulOp0` instead of `CFmul`. Then you don't need to create a temp mul node.
It seems we create more temp node. Is it better?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109953



More information about the llvm-commits mailing list