[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