aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2023-08-04 13:46:36 +0100
committerTamar Christina <tamar.christina@arm.com>2023-08-04 13:46:36 +0100
commit0e5205912994fbc43719b43282a62bb35957f8a2 (patch)
tree4890be9b537a5b0004eaba2385efb3f6bdbfa626 /gcc/cp
parent1a599caab86464006ea8c9501aff6c6638e891eb (diff)
downloadgcc-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