[llvm-dev] AArch64 fmul/fadd fusion

Meador Inge via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 21 05:56:15 PDT 2015


On Sun, Sep 20, 2015 at 9:37 PM, Tim Northover <t.p.northover at gmail.com> wrote:

> (Having just checked lib/CodeGen/SelectionDAG) I believe it's mostly
> covered before target-specific code gets involved, in the generic DAG
> logic at the moment. ISD::FMA nodes should only be formed from paired
> mul/add based on "AllowFPOpFusion" checks (and other similar explicit
> permissions).

Ah, I see it in the DAG combiner now.  Thanks.

> So I think the status quo is that generic code does any permissible
> fusion, and AArch64 code really doesn't have any freedom to fuse more
> operations on top of that.

Yeah.  I originally got thrown off because the integer version is AArch64
specific.  There doesn't seem to be any generic handling for that.

> If you can find a missing-but-allowed case, adding it to the generic
> handling would probably be better than making it AArch64 only.

The cases that I was looking into all seem to be handled.

Thanks!

-- Meador


More information about the llvm-dev mailing list