From 4dd3be8165d785478763d3e5409df874d2ac5da0 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 27 May 2014 15:00:29 +0000 Subject: [PATCH] vrp92.c: New testcase. 2014-05-27 Richard Biener * gcc.dg/tree-ssa/vrp92.c: New testcase. From-SVN: r210974 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/tree-ssa/vrp92.c | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp92.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ccc321f971a7..3a185ca136a3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-05-27 Richard Biener + + * gcc.dg/tree-ssa/vrp92.c: New testcase. + 2014-05-27 Marek Polacek PR testsuite/61319 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp92.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp92.c new file mode 100644 index 000000000000..a84ba8e2903c --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp92.c @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-vrp1-details" } */ + +void bar (void); +int foo (int i, int j) +{ + int res = 1; + if (i < j) + { + /* We should be able to simplify the following conditional + during propagation. */ + if (i > j) + res = 0; + } + /* And compute res as having a value-range of [1,1]. */ + if (res) + return i; + return j; +} + +/* { dg-final { scan-tree-dump "res_.: \\\[1, 1\\\]" "vrp1" } } */ +/* { dg-final { scan-tree-dump-not "Threaded" "vrp1" } } */ +/* { dg-final { cleanup-tree-dump "vrp1" } } */ -- 2.47.3