[Bug target/110625] [AArch64] Vect: SLP fails to vectorize a loop as the reduction_latency calculated by new costs is too large

rsandifo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jul 19 08:55:51 GMT 2023


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110625

--- Comment #7 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
The current issue rate framework was originally written for Neoverse V1 and
Neoverse V2.  For those cores, it wasn't necessary to make a distinction
between scalar integer operations and scalar FP operations: the integer
throughput and FP throughput were close enough for the difference not to
matter.

I think the problem is that the difference between integer throughput and FP
throughput does matter for Neoverse N2.  E.g. integer additions have a
throughput of 4 a cycle whereas FP additions have a throughput of 2 a cycle.

Currently the Neoverse N2 model uses a throughput of 4 “general ops” for scalar
code.  However, when the loop consists entirely of loads, stores and FP
operations, the limit should instead be 2.


More information about the Gcc-bugs mailing list