summaryrefslogtreecommitdiff
path: root/0324-bugfix-fix-vector-costs-for-hip09.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-02-28 10:03:49 +0000
committerCoprDistGit <infra@openeuler.org>2025-02-28 10:03:49 +0000
commit73127104a245052cd5cf29cdaaca3e5c32c70348 (patch)
tree8e28b63e478c43c252f18b49836dff7313affe54 /0324-bugfix-fix-vector-costs-for-hip09.patch
parent49d3feaf4665cdb07576fc1a2382a4d82a612d35 (diff)
automatic import of gccopeneuler24.03_LTS_SP1
Diffstat (limited to '0324-bugfix-fix-vector-costs-for-hip09.patch')
-rw-r--r--0324-bugfix-fix-vector-costs-for-hip09.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/0324-bugfix-fix-vector-costs-for-hip09.patch b/0324-bugfix-fix-vector-costs-for-hip09.patch
new file mode 100644
index 0000000..9483a58
--- /dev/null
+++ b/0324-bugfix-fix-vector-costs-for-hip09.patch
@@ -0,0 +1,52 @@
+From 8f5c12954adb237685c837cb37c98b7594e9fa61 Mon Sep 17 00:00:00 2001
+From: Mingchuan Wu <wumingchuan1992@foxmail.com>
+Date: Tue, 10 Dec 2024 15:50:16 +0800
+Subject: [PATCH] [bugfix] fix vector costs for hip09.
+
+---
+ gcc/config/aarch64/aarch64-cost-tables.h | 6 +++++-
+ gcc/config/aarch64/aarch64.cc | 4 +++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64-cost-tables.h b/gcc/config/aarch64/aarch64-cost-tables.h
+index dc51d9c2c..06da1b271 100644
+--- a/gcc/config/aarch64/aarch64-cost-tables.h
++++ b/gcc/config/aarch64/aarch64-cost-tables.h
+@@ -872,7 +872,11 @@ const struct cpu_cost_table hip09_extra_costs =
+ },
+ /* Vector */
+ {
+- COSTS_N_INSNS (1) /* alu. */
++ COSTS_N_INSNS (1), /* alu. */
++ COSTS_N_INSNS (4), /* mult. */
++ COSTS_N_INSNS (1), /* movi. */
++ COSTS_N_INSNS (2), /* dup. */
++ COSTS_N_INSNS (2) /* extract. */
+ }
+ };
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 829e0da8f..f2444a039 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -499,6 +499,8 @@ static const struct cpu_addrcost_table hip09_addrcost_table =
+ },
+ 0, /* pre_modify */
+ 0, /* post_modify */
++ 0, /* post_modify_ld3_st3 */
++ 0, /* post_modify_ld4_st4 */
+ 0, /* register_offset */
+ 1, /* register_sextend */
+ 1, /* register_zextend */
+@@ -1910,7 +1912,7 @@ static const struct tune_params hip09_tunings =
+ &hip09_extra_costs,
+ &hip09_addrcost_table,
+ &hip09_regmove_cost,
+- &hip09_vector_cost,
++ &generic_vector_cost,
+ &generic_branch_cost,
+ &generic_approx_modes,
+ SVE_256, /* sve_width */
+--
+2.33.0
+