[PATCH] D70673: [AArch64] Fix over-eager fusing of integer NEON MUL/ADD

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 25 10:07:11 PST 2019


dmgreen added reviewers: SjoerdMeijer, fhahn, Gerolf.
dmgreen added a comment.

This is because a mul is usually more expensive than a mla? Seems sensible to me.

I don't know this code very well though.



================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.td:3796
 defm FSUB     : SIMDThreeSameVectorFP<0,1,0b010,"fsub", fsub>;
-defm MLA      : SIMDThreeSameVectorBHSTied<0, 0b10010, "mla",
-                      TriOpFrag<(add node:$LHS, (mul node:$MHS, node:$RHS))> >;
-defm MLS      : SIMDThreeSameVectorBHSTied<1, 0b10010, "mls",
-                      TriOpFrag<(sub node:$LHS, (mul node:$MHS, node:$RHS))> >;
+defm MLA      : SIMDThreeSameVectorBHSTied<0, 0b10010, "mla", null_frag>; // Generated in MachineCombine
+defm MLS      : SIMDThreeSameVectorBHSTied<1, 0b10010, "mls", null_frag>; // Generated in MachineCombine
----------------
You might want to keep these on separate lines, with the comment making them quite long.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70673





More information about the llvm-commits mailing list