diff options
author | Tamar Christina <tamar.christina@arm.com> | 2023-08-04 13:46:36 +0100 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2023-08-04 13:46:36 +0100 |
commit | 0e5205912994fbc43719b43282a62bb35957f8a2 (patch) | |
tree | 4890be9b537a5b0004eaba2385efb3f6bdbfa626 /gcc/cp | |
parent | 1a599caab86464006ea8c9501aff6c6638e891eb (diff) | |
download | gcc-0e5205912994fbc43719b43282a62bb35957f8a2.zip gcc-0e5205912994fbc43719b43282a62bb35957f8a2.tar.gz gcc-0e5205912994fbc43719b43282a62bb35957f8a2.tar.bz2 |
AArch64: update costing for MLA by invariant
When determining issue rates we currently discount non-constant MLA accumulators
for Advanced SIMD but don't do it for the latency.
This means the costs for Advanced SIMD with a constant accumulator are wrong and
results in us costing SVE and Advanced SIMD the same. This can cauze us to
vectorize with Advanced SIMD instead of SVE in some cases.
This patch adds the same discount for SVE and Scalar as we do for issue rate.
This gives a 5% improvement in fotonik3d_r in SPECCPU 2017 on large
Neoverse cores.
gcc/ChangeLog:
* config/aarch64/aarch64.cc (aarch64_multiply_add_p): Update handling
of constants.
(aarch64_adjust_stmt_cost): Use it.
(aarch64_vector_costs::count_ops): Likewise.
(aarch64_vector_costs::add_stmt_cost): Pass vinfo to
aarch64_adjust_stmt_cost.
Diffstat (limited to 'gcc/cp')
0 files changed, 0 insertions, 0 deletions