From 6c2a0b63c6508a4a8eeeb36984615bd6019d7d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=99=A8=E5=8D=89?= Date: Sat, 14 Sep 2024 09:25:40 +0800 Subject: [PATCH] [BUGFIX] Fix for IALR8B and IAQFM3. --- ...rouped_load-merge-in-slp-transpose-v.patch | 30 +++++++++++++++++++ ...n-slp-transpose-vectorize-for-IAQFM3.patch | 28 +++++++++++++++++ gcc.spec | 8 ++++- 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 0265-Fix-error-with-grouped_load-merge-in-slp-transpose-v.patch create mode 100644 0266-Fix-error-in-slp-transpose-vectorize-for-IAQFM3.patch diff --git a/0265-Fix-error-with-grouped_load-merge-in-slp-transpose-v.patch b/0265-Fix-error-with-grouped_load-merge-in-slp-transpose-v.patch new file mode 100644 index 0000000..8540cd4 --- /dev/null +++ b/0265-Fix-error-with-grouped_load-merge-in-slp-transpose-v.patch @@ -0,0 +1,30 @@ +From 7b4cce4896cefefedba9545a9633585e086b7621 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E9=83=91=E6=99=A8=E5=8D=89?= +Date: Wed, 11 Sep 2024 18:26:22 +0800 +Subject: [PATCH 1/2] Fix error with grouped_load merge in + slp-transpose-vectorize (for IALR8B) + +--- + gcc/tree-vect-slp.cc | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc +index e3e246977..d4870de43 100644 +--- a/gcc/tree-vect-slp.cc ++++ b/gcc/tree-vect-slp.cc +@@ -3807,7 +3807,11 @@ vect_slp_grouped_load_find (bb_vec_info bb_vinfo, vec &visited, + these two grouped loads need to be merged. */ + tree opb = get_op_base_address (first_element); + unsigned int grp_size_b = DR_GROUP_SIZE (first_element); +- if (opa == opb && grp_size_a == grp_size_b) ++ /* Ensure that the elements merge to load group meet the alignment condition (dr_misalignment) */ ++ HOST_WIDE_INT diff = 0; ++ diff = (TREE_INT_CST_LOW (DR_INIT (first_element->dr_aux.dr)) ++ - TREE_INT_CST_LOW (DR_INIT (merge_first_element->dr_aux.dr))); ++ if (opa == opb && grp_size_a == grp_size_b && diff >= 0) + { + res.safe_push (first_element); + visited[i] = true; +-- +2.33.0 + diff --git a/0266-Fix-error-in-slp-transpose-vectorize-for-IAQFM3.patch b/0266-Fix-error-in-slp-transpose-vectorize-for-IAQFM3.patch new file mode 100644 index 0000000..34862f2 --- /dev/null +++ b/0266-Fix-error-in-slp-transpose-vectorize-for-IAQFM3.patch @@ -0,0 +1,28 @@ +From b3a6a170bf1dc0e460e98a7fd02c92e6b036784a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E9=83=91=E6=99=A8=E5=8D=89?= +Date: Fri, 13 Sep 2024 14:13:07 +0800 +Subject: [PATCH 2/2] Fix error in slp-transpose-vectorize (for IAQFM3) + +--- + gcc/tree-vect-slp.cc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc +index d4870de43..d7e198dff 100644 +--- a/gcc/tree-vect-slp.cc ++++ b/gcc/tree-vect-slp.cc +@@ -3811,7 +3811,10 @@ vect_slp_grouped_load_find (bb_vec_info bb_vinfo, vec &visited, + HOST_WIDE_INT diff = 0; + diff = (TREE_INT_CST_LOW (DR_INIT (first_element->dr_aux.dr)) + - TREE_INT_CST_LOW (DR_INIT (merge_first_element->dr_aux.dr))); +- if (opa == opb && grp_size_a == grp_size_b && diff >= 0) ++ if (opa == opb ++ && grp_size_a == grp_size_b ++ && diff >= 0 ++ && check_same_bb (first_element, merge_first_element)) + { + res.safe_push (first_element); + visited[i] = true; +-- +2.33.0 + diff --git a/gcc.spec b/gcc.spec index 230efaa..d2b7af4 100644 --- a/gcc.spec +++ b/gcc.spec @@ -2,7 +2,7 @@ %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 35 +%global gcc_release 36 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 @@ -402,6 +402,8 @@ Patch261: 0261-Fix-settings-for-wide-operations-tests.patch Patch262: 0262-Fix-errors-in-ipa-prefetch-IAORPF-and-IAOSJ0.patch Patch263: 0263-Fix-error-with-stmts-insertion-in-ipa-prefetch-for-I.patch Patch264: 0264-Fix-errors-in-ipa-prefetch-IAO50J-and-IAO5H7.patch +Patch265: 0265-Fix-error-with-grouped_load-merge-in-slp-transpose-v.patch +Patch266: 0266-Fix-error-in-slp-transpose-vectorize-for-IAQFM3.patch # Part 3000 ~ 4999 %ifarch loongarch64 @@ -3289,6 +3291,10 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Sat Sep 14 2024 Zheng Chenhui - 12.3.1-36 +- Type: BUGFIX +- DESC: Fix for IALR8B and IAQFM3. + * Wed Sep 11 2024 Mingchuan Wu - 12.3.1-35 - Type: BUGFIX - DESC: Fix for IAO6R3, IAORPF, IAOSJ0, IAO50J and IAO5H7. -- Gitee