diff options
author | Sam James <sam@gentoo.org> | 2024-08-01 15:39:41 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-08-01 15:39:41 +0100 |
commit | 26118e917fcb919778bc5634c6cd8072ff23c4f6 (patch) | |
tree | 8a107472373e2f13361a557388b272cd0a8ff9c0 | |
parent | 15.0.0: add 79_all_PR116120-revert-match-pattern.patch (diff) | |
download | gcc-patches-26118e917fcb919778bc5634c6cd8072ff23c4f6.tar.gz gcc-patches-26118e917fcb919778bc5634c6cd8072ff23c4f6.tar.bz2 gcc-patches-26118e917fcb919778bc5634c6cd8072ff23c4f6.zip |
15.0.0: drop 79_all_PR116120-revert-match-pattern.patch
Part of it is fixed and the other part should be committed soon.
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | 15.0.0/gentoo/79_all_PR116120-revert-match-pattern.patch | 199 | ||||
-rw-r--r-- | 15.0.0/gentoo/README.history | 4 |
2 files changed, 4 insertions, 199 deletions
diff --git a/15.0.0/gentoo/79_all_PR116120-revert-match-pattern.patch b/15.0.0/gentoo/79_all_PR116120-revert-match-pattern.patch deleted file mode 100644 index 6d5b542..0000000 --- a/15.0.0/gentoo/79_all_PR116120-revert-match-pattern.patch +++ /dev/null @@ -1,199 +0,0 @@ -From fd07aecb306c682e1d7255fc01c6c02f3ca4f6f8 Mon Sep 17 00:00:00 2001 -Message-ID: <fd07aecb306c682e1d7255fc01c6c02f3ca4f6f8.1722209590.git.sam@gentoo.org> -From: Sam James <sam@gentoo.org> -Date: Mon, 29 Jul 2024 00:32:52 +0100 -Subject: [PATCH] Revert "MATCH: Simplify (a ? x : y) eq/ne (b ? x : y) - [PR111150]" - -This reverts commit 44fcc1ca11e7ea35dc9fb25a5317346bc1eaf7b2. - -Avoid a reported & debugged miscompilation until it gets fixed. - -Bug: https://gcc.gnu.org/PR116120 ---- - gcc/match.pd | 15 ----- - gcc/testsuite/g++.dg/tree-ssa/pr111150.C | 34 ---------- - gcc/testsuite/gcc.dg/tree-ssa/pr111150-1.c | 72 ---------------------- - gcc/testsuite/gcc.dg/tree-ssa/pr111150.c | 22 ------- - 4 files changed, 143 deletions(-) - delete mode 100644 gcc/testsuite/g++.dg/tree-ssa/pr111150.C - delete mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr111150-1.c - delete mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr111150.c - -diff --git a/gcc/match.pd b/gcc/match.pd -index 1c8601229e3d..b8d0ebee08db 100644 ---- a/gcc/match.pd -+++ b/gcc/match.pd -@@ -5632,21 +5632,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) - (vec_cond (bit_and (bit_not @0) @1) @2 @3))) - #endif - --/* (a ? x : y) != (b ? x : y) --> (a^b) ? TRUE : FALSE */ --/* (a ? x : y) == (b ? x : y) --> (a^b) ? FALSE : TRUE */ --/* (a ? x : y) != (b ? y : x) --> (a^b) ? FALSE : TRUE */ --/* (a ? x : y) == (b ? y : x) --> (a^b) ? TRUE : FALSE */ --(for cnd (cond vec_cond) -- (for eqne (eq ne) -- (simplify -- (eqne:c (cnd @0 @1 @2) (cnd @3 @1 @2)) -- (cnd (bit_xor @0 @3) { constant_boolean_node (eqne == NE_EXPR, type); } -- { constant_boolean_node (eqne != NE_EXPR, type); })) -- (simplify -- (eqne:c (cnd @0 @1 @2) (cnd @3 @2 @1)) -- (cnd (bit_xor @0 @3) { constant_boolean_node (eqne != NE_EXPR, type); } -- { constant_boolean_node (eqne == NE_EXPR, type); })))) -- - /* Canonicalize mask ? { 0, ... } : { -1, ...} to ~mask if the mask - types are compatible. */ - (simplify -diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr111150.C b/gcc/testsuite/g++.dg/tree-ssa/pr111150.C -deleted file mode 100644 -index ac5d3ef15d83..000000000000 ---- a/gcc/testsuite/g++.dg/tree-ssa/pr111150.C -+++ /dev/null -@@ -1,34 +0,0 @@ --/* PR tree-optimization/111150 */ --/* { dg-do compile } */ --/* { dg-options "-O1 -fdump-tree-forwprop1 -Wno-psabi" } */ -- --typedef int v4si __attribute((__vector_size__(4 * sizeof(int)))); -- --/* Before the patch, VEC_COND_EXPR was generated for each statement in the -- function. This resulted in 3 VEC_COND_EXPR. */ --v4si f1_(v4si a, v4si b, v4si c, v4si d, v4si e, v4si f) { -- v4si X = a == b ? e : f; -- v4si Y = c == d ? e : f; -- return (X != Y); --} -- --v4si f2_(v4si a, v4si b, v4si c, v4si d, v4si e, v4si f) { -- v4si X = a == b ? e : f; -- v4si Y = c == d ? e : f; -- return (X == Y); --} -- --v4si f3_(v4si a, v4si b, v4si c, v4si d, v4si e, v4si f) { -- v4si X = a == b ? e : f; -- v4si Y = c == d ? f : e; -- return (X != Y); --} -- --v4si f4_(v4si a, v4si b, v4si c, v4si d, v4si e, v4si f) { -- v4si X = a == b ? e : f; -- v4si Y = c == d ? f : e; -- return (X == Y); --} -- --/* For each testcase, should produce only one VEC_COND_EXPR for X^Y. */ --/* { dg-final { scan-tree-dump-times " VEC_COND_EXPR " 4 "forwprop1" } } */ -diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr111150-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr111150-1.c -deleted file mode 100644 -index 6f4b21ac6bcb..000000000000 ---- a/gcc/testsuite/gcc.dg/tree-ssa/pr111150-1.c -+++ /dev/null -@@ -1,72 +0,0 @@ --/* PR tree-optimization/111150 */ --/* { dg-do compile } */ --/* { dg-options "-O1 -fgimple -fdump-tree-forwprop1-raw" } */ -- --/* Checks if pattern (X ? e : f) == (Y ? e : f) gets optimized. */ --__GIMPLE() --_Bool f1_(int a, int b, int c, int d, int e, int f) { -- _Bool X; -- _Bool Y; -- _Bool t; -- int t1; -- int t2; -- X = a == b; -- Y = c == d; -- /* Before the patch cond_expr was generated for these 2 statements. */ -- t1 = X ? e : f; -- t2 = Y ? e : f; -- t = t1 == t2; -- return t; --} -- --/* Checks if pattern (X ? e : f) != (Y ? e : f) gets optimized. */ --__GIMPLE() --_Bool f2_(int a, int b, int c, int d, int e, int f) { -- _Bool X; -- _Bool Y; -- _Bool t; -- int t1; -- int t2; -- X = a == b; -- Y = c == d; -- t1 = X ? e : f; -- t2 = Y ? e : f; -- t = t1 != t2; -- return t; --} -- --/* Checks if pattern (X ? e : f) == (Y ? f : e) gets optimized. */ --__GIMPLE() --_Bool f3_(int a, int b, int c, int d, int e, int f) { -- _Bool X; -- _Bool Y; -- _Bool t; -- int t1; -- int t2; -- X = a == b; -- Y = c == d; -- t1 = X ? e : f; -- t2 = Y ? f : e; -- t = t1 == t2; -- return t; --} -- --/* Checks if pattern (X ? e : f) != (Y ? f : e) gets optimized. */ --__GIMPLE() --_Bool f4_(int a, int b, int c, int d, int e, int f) { -- _Bool X; -- _Bool Y; -- _Bool t; -- int t1; -- int t2; -- X = a == b; -- Y = c == d; -- t1 = X ? e : f; -- t2 = Y ? f : e; -- t = t1 != t2; -- return t; --} -- --/* Should generate one bit_xor_expr for each testcase. */ --/* { dg-final { scan-tree-dump-not "cond_expr, " "forwprop1" } } */ --/* { dg-final { scan-tree-dump-times "bit_xor_expr, " 4 "forwprop1" } } */ -diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr111150.c b/gcc/testsuite/gcc.dg/tree-ssa/pr111150.c -deleted file mode 100644 -index 568ae9e44b3d..000000000000 ---- a/gcc/testsuite/gcc.dg/tree-ssa/pr111150.c -+++ /dev/null -@@ -1,22 +0,0 @@ --/* PR tree-optimization/111150 */ --/* { dg-do compile } */ --/* { dg-options "-O1 -fdump-tree-forwprop1 -Wno-psabi" } */ -- --typedef int v4si __attribute((__vector_size__(4 * sizeof(int)))); -- --/* Before the patch, VEC_COND_EXPR was generated for each statement in the -- function. This resulted in 3 VEC_COND_EXPR. */ --v4si f1_(v4si a, v4si b, v4si c, v4si d) { -- v4si X = a == b; -- v4si Y = c == d; -- return (X != Y); --} -- --v4si f2_(v4si a, v4si b, v4si c, v4si d) { -- v4si X = a == b; -- v4si Y = c == d; -- return (X == Y); --} -- --/* For each testcase, should produce only one VEC_COND_EXPR for X^Y. */ --/* { dg-final { scan-tree-dump-times " VEC_COND_EXPR " 2 "forwprop1" } } */ - -base-commit: d5f1948640815a554d106542c2e91e4e117aa3bc --- -2.45.2 - diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history index 93de595..793fd45 100644 --- a/15.0.0/gentoo/README.history +++ b/15.0.0/gentoo/README.history @@ -1,3 +1,7 @@ +8 ???? + + - 79_all_PR116120-revert-match-pattern.patch + 7 29 July 2024 + 79_all_PR116120-revert-match-pattern.patch |