diff options
author | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | 2017-07-20 03:57:48 +0000 |
---|---|---|
committer | Naveen H.S <naveenh@gcc.gnu.org> | 2017-07-20 03:57:48 +0000 |
commit | 2071f8f980cc0de02af3d7d7de201f4f189058ff (patch) | |
tree | 6f2da486f3a9a37ededa4f3e319aef56e15e2f7b /gcc | |
parent | b882559a118e6c6b44206a24d2651c2a93ffc86c (diff) | |
download | gcc-2071f8f980cc0de02af3d7d7de201f4f189058ff.zip gcc-2071f8f980cc0de02af3d7d7de201f4f189058ff.tar.gz gcc-2071f8f980cc0de02af3d7d7de201f4f189058ff.tar.bz2 |
match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): New pattern.
gcc
* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
New pattern.
gcc/testsuite
* gcc.dg/tree-ssa/vrp116.c: New Test.
From-SVN: r250377
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/match.pd | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp116.c | 12 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 141eb6a..499249b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com> + + * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): + New pattern. + 2017-07-19 Jan Hubicka <hubicka@ucw.cz> PR middle-end/81331 diff --git a/gcc/match.pd b/gcc/match.pd index 56d13b3..7f5807c 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1089,6 +1089,12 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) && tree_nop_conversion_p (type, TREE_TYPE (@1))) (convert (bit_and (bit_not @1) @0)))) +/* (m1 CMP m2) * d -> (m1 CMP m2) ? d : 0 */ +(for cmp (gt lt ge le) +(simplify + (mult (convert (cmp @0 @1)) @2) + (cond (cmp @0 @1) @2 { build_zero_cst (type); }))) + /* For integral types with undefined overflow and C != 0 fold x * C EQ/NE y * C into x EQ/NE y. */ (for cmp (eq ne) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ce75e23..0a67773 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com> + + * gcc.dg/tree-ssa/vrp116.c: New Test. + 2017-07-19 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/cpu-builtin-1.c: Change test to use #ifdef diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp116.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp116.c new file mode 100644 index 0000000..d9d7b23 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp116.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-vrp1" } */ + +int +f (int m1, int m2, int c) +{ + int d = m1 > m2; + int e = d * c; + return e ? m1 : m2; +} + +/* { dg-final { scan-tree-dump-times "\\? c_\[0-9\]\\(D\\) : 0" 1 "vrp1" } } */ |