[PATCH] D67990: [aarch64] fix generation of fp16 fmls

Sebastian Pop via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 7 11:24:45 PDT 2019


sebpop marked an inline comment as done.
sebpop added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/fp16-fmla.ll:163
+; CHECK: fneg    {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
+; CHECK: fmla    {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
 entry:
----------------
SjoerdMeijer wrote:
> Why are we not generating a fmls?
> 
> And a nit, but perhaps actually just using registers v0, v1, and v2 here makes things clearer?
That is part of the problem that Tim pointed out: when the multiply is the first operand of `fsub`, i.e.,
```
%sub = fsub fast <8 x half> %mul, %a
```
that should not generate a fused multiply sub.
With this patch, for `b * c - a` we negate the value of a and generate a fused multiply add `-a + b * c`.




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

https://reviews.llvm.org/D67990





More information about the llvm-commits mailing list