RFR: 8308340: C2: Idealize Fma nodes [v4]
Richard Reingruber
rrich at openjdk.org
Wed Jul 19 10:33:46 UTC 2023
On Wed, 19 Jul 2023 02:22:14 GMT, Fei Gao <fgao at openjdk.org> wrote:
>> Thanks for the explanation. I think I understood it to some degree.
>> What happens with the subgraphs that are not canonicalized? They will have extra vector operations, right?
>
> Yes. For `av.neg().lanewise(VectorOperators.FMA, bv, cv, mask)`, the subgraph is like:
> `match (Set dst (FmaV (Binary (NegV src1) src2) (Binary src3 pg)));`, almost no platform supports fusing it directly, so it should be split into two vector operations: `NegV` + `FmaV`. I suppose the `NegV` is what you called as "the extra vector operation", right?
Yes that's what I meant. Thanks. Now on PPC, my understanding would be that with the symmetrical match-rules (removed with this pr) the `NegV` wouldn't be generated. Is my understanding correct?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14576#discussion_r1267885380
More information about the hotspot-compiler-dev
mailing list