commit: 98a192aae9698ea3961ab037cd44029c76cf3db4 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Jan 14 15:06:27 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Jan 14 15:06:37 2025 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=98a192aa
15.0.0: drop patch merged upstream 3f4aa6c706b52c74e689588667597255dd1007e0 was purely to backport it to the last snapshot. Signed-off-by: Sam James <sam <AT> gentoo.org> ...-Fix-build-for-STORE_FLAG_VALUE-0-targets.patch | 87 ---------------------- 15.0.0/gentoo/README.history | 4 + 2 files changed, 4 insertions(+), 87 deletions(-) diff --git a/15.0.0/gentoo/86_all_PR118418-Fix-build-for-STORE_FLAG_VALUE-0-targets.patch b/15.0.0/gentoo/86_all_PR118418-Fix-build-for-STORE_FLAG_VALUE-0-targets.patch deleted file mode 100644 index ce0b338..0000000 --- a/15.0.0/gentoo/86_all_PR118418-Fix-build-for-STORE_FLAG_VALUE-0-targets.patch +++ /dev/null @@ -1,87 +0,0 @@ -From a1a14ce3c39c25fecf052ffde063fc0ecfc2ffa3 Mon Sep 17 00:00:00 2001 -Message-ID: <a1a14ce3c39c25fecf052ffde063fc0ecfc2ffa3.1736867096.git....@gentoo.org> -From: Richard Sandiford <richard.sandif...@arm.com> -Date: Mon, 13 Jan 2025 19:37:12 +0000 -Subject: [PATCH] Fix build for STORE_FLAG_VALUE<0 targets [PR118418] - -In g:06c4cf398947b53b4bfc65752f9f879bb2d07924 I mishandled signed -comparisons of comparison results on STORE_FLAG_VALUE < 0 targets -(despite specifically referencing STORE_FLAG_VALUE in the commit -message). There, (lt TRUE FALSE) is true, although (ltu FALSE TRUE) -still holds. - -Things get messy with vector modes, and since those weren't the focus -of the original commit, it seemed better to punt on them for now. -However, punting means that this optimisation no longer feels like -a natural tail-call operation. The patch therefore converts -"return simplify..." to the usual call-and-conditional-return pattern. - -gcc/ - PR target/118418 - * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): - Take STORE_FLAG_VALUE into account when handling signed comparisons - of comparison results. ---- - gcc/simplify-rtx.cc | 39 ++++++++++++++++++++++++--------------- - 1 file changed, 24 insertions(+), 15 deletions(-) - -diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc -index 71c5d3c1b1b8..dda8fc689e79 100644 ---- a/gcc/simplify-rtx.cc -+++ b/gcc/simplify-rtx.cc -@@ -6434,7 +6434,7 @@ simplify_context::simplify_relational_operation_1 (rtx_code code, - return simplify_gen_binary (AND, mode, XEXP (tmp, 0), const1_rtx); - } - -- /* For two booleans A and B: -+ /* For two unsigned booleans A and B: - - A > B == ~B & A - A >= B == ~B | A -@@ -6443,20 +6443,29 @@ simplify_context::simplify_relational_operation_1 (rtx_code code, - A == B == ~A ^ B (== ~B ^ A) - A != B == A ^ B - -- simplify_logical_relational_operation checks whether A and B -- are booleans. */ -- if (code == GTU || code == GT) -- return simplify_logical_relational_operation (AND, mode, op1, op0, true); -- if (code == GEU || code == GE) -- return simplify_logical_relational_operation (IOR, mode, op1, op0, true); -- if (code == LTU || code == LT) -- return simplify_logical_relational_operation (AND, mode, op0, op1, true); -- if (code == LEU || code == LE) -- return simplify_logical_relational_operation (IOR, mode, op0, op1, true); -- if (code == EQ) -- return simplify_logical_relational_operation (XOR, mode, op0, op1, true); -- if (code == NE) -- return simplify_logical_relational_operation (XOR, mode, op0, op1); -+ For signed comparisons, we have to take STORE_FLAG_VALUE into account, -+ with the rules above applying for positive STORE_FLAG_VALUE and with -+ the relations reversed for negative STORE_FLAG_VALUE. */ -+ if (is_a<scalar_int_mode> (cmp_mode) -+ && COMPARISON_P (op0) -+ && COMPARISON_P (op1)) -+ { -+ rtx t = NULL_RTX; -+ if (code == GTU || code == (STORE_FLAG_VALUE > 0 ? GT : LT)) -+ t = simplify_logical_relational_operation (AND, mode, op1, op0, true); -+ else if (code == GEU || code == (STORE_FLAG_VALUE > 0 ? GE : LE)) -+ t = simplify_logical_relational_operation (IOR, mode, op1, op0, true); -+ else if (code == LTU || code == (STORE_FLAG_VALUE > 0 ? LT : GT)) -+ t = simplify_logical_relational_operation (AND, mode, op0, op1, true); -+ else if (code == LEU || code == (STORE_FLAG_VALUE > 0 ? LE : GE)) -+ t = simplify_logical_relational_operation (IOR, mode, op0, op1, true); -+ else if (code == EQ) -+ t = simplify_logical_relational_operation (XOR, mode, op0, op1, true); -+ else if (code == NE) -+ t = simplify_logical_relational_operation (XOR, mode, op0, op1); -+ if (t) -+ return t; -+ } - - return NULL_RTX; - } --- -2.48.0 - diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history index 1d5c985..0607277 100644 --- a/15.0.0/gentoo/README.history +++ b/15.0.0/gentoo/README.history @@ -1,3 +1,7 @@ +41 ???? + + - 86_all_PR118418-Fix-build-for-STORE_FLAG_VALUE-0-targets.patch + 40 14 January 2025 + 86_all_PR118418-Fix-build-for-STORE_FLAG_VALUE-0-targets.patch