These patterns are not needed any more. There were already
2 patterns which did `(ne bool_var 0)` into `bool_var` and
`(eq bool_var 1)` into `bool_var`. Just they were after the
pattern that did `(cmp (cond @0 @1 @2) @3)` simplification but
that pattern is now after the ones.
Also these patterns will cause in some cases a new statement to
be created for the comparison. In the case of floating point comparison
wiht non-call exceptions (and trapping math), can cause a new statement
every time fold_stmt is called.

gcc.dg/tree-ssa/vrp24.c needed to be adjusted to before r13-322-g7f04b0d786e13f.
gcc.dg/analyzer/null-deref-pr102671-2.c needs an increased 
analyzer-max-svalue-depth
not to get an extra warning.

gcc/ChangeLog:

        * match.pd (`(ne (cmp) 0)`, `(eq (cmp) 1)`): Remove.

gcc/testsuite/ChangeLog:

        * gcc.dg/tree-ssa/vrp24.c: Adjust.
        * gcc.dg/analyzer/null-deref-pr102671-2.c: Increase 
analyzer-max-svalue-depth.

Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>
---
 gcc/match.pd                                          | 8 --------
 gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c | 2 +-
 gcc/testsuite/gcc.dg/tree-ssa/vrp24.c                 | 2 +-
 3 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/gcc/match.pd b/gcc/match.pd
index ab496d923cc..418efc4230a 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -6898,14 +6898,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
     (if (ic == ncmp)
      (ncmp @0 @1)))))
  /* The following bits are handled by fold_binary_op_with_conditional_arg.  */
- (simplify
-  (ne (cmp@2 @0 @1) integer_zerop)
-  (if (types_match (type, TREE_TYPE (@2)))
-   (cmp @0 @1)))
- (simplify
-  (eq (cmp@2 @0 @1) integer_truep)
-  (if (types_match (type, TREE_TYPE (@2)))
-   (cmp @0 @1)))
  (simplify
   (ne (cmp@2 @0 @1) integer_truep)
   (if (types_match (type, TREE_TYPE (@2)))
diff --git a/gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c 
b/gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
index 298e4839b98..bc141d5c028 100644
--- a/gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
+++ b/gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
@@ -1,5 +1,5 @@
 /* { dg-require-effective-target ptr_eq_long } */
-/* { dg-additional-options "-O2 -Wno-shift-count-overflow" } */
+/* { dg-additional-options "-O2 -Wno-shift-count-overflow 
--param=analyzer-max-svalue-depth=19" } */
 
 struct lisp;
 union vectorlike_header { long size; };
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c 
b/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c
index c28ca473fc6..f237b7741ec 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c
@@ -89,5 +89,5 @@ L7:
    boolean operation.  */
 
 /* { dg-final { scan-tree-dump-times "Simplified relational" 2 "evrp" } } */
-/* { dg-final { scan-tree-dump-times "if " 3 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "if " 4 "optimized" } } */
 
-- 
2.43.0

Reply via email to