Fix PR88784, middle end is missing some optimizations about unsigned
authorLi Jia He <helijia@linux.ibm.com>
Mon, 16 Sep 2019 14:22:16 +0000 (14:22 +0000)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 16 Sep 2019 14:22:16 +0000 (14:22 +0000)
commitc16504f6eabad7e173e4fbcfacf52820fffcb9ec
tree4239b17f23fa988f4b8813323346e97f44b8feca
parent5f487a349de62613d7fa429bcbfbeeafbfc94f3a
Fix PR88784, middle end is missing some optimizations about unsigned

2019-09-16  Li Jia He  <helijia@linux.ibm.com>
    Qi Feng  <ffengqi@linux.ibm.com>

PR middle-end/88784
* match.pd (x >  y  &&  x != XXX_MIN): Optimize into 'x > y'.
(x >  y  &&  x == XXX_MIN): Optimize into 'false'.
(x <= y  &&  x == XXX_MIN): Optimize into 'x == XXX_MIN'.
(x <  y  &&  x != XXX_MAX): Optimize into 'x < y'.
(x <  y  &&  x == XXX_MAX): Optimize into 'false'.
(x >= y  &&  x == XXX_MAX): Optimize into 'x == XXX_MAX'.
(x >  y  ||  x != XXX_MIN): Optimize into 'x != XXX_MIN'.
(x <= y  ||  x != XXX_MIN): Optimize into 'true'.
(x <= y  ||  x == XXX_MIN): Optimize into 'x <= y'.
(x <  y  ||  x != XXX_MAX): Optimize into 'x != XXX_MAX'.
(x >= y  ||  x != XXX_MAX): Optimize into 'true'.
(x >= y  ||  x == XXX_MAX): Optimize into 'x >= y'.
2019-09-16  Li Jia He  <helijia@linux.ibm.com>
    Qi Feng  <ffengqi@linux.ibm.com>

PR middle-end/88784
* gcc.dg/pr88784-1.c: New testcase.
* gcc.dg/pr88784-2.c: New testcase.
* gcc.dg/pr88784-3.c: New testcase.
* gcc.dg/pr88784-4.c: New testcase.
* gcc.dg/pr88784-5.c: New testcase.
* gcc.dg/pr88784-6.c: New testcase.
* gcc.dg/pr88784-7.c: New testcase.
* gcc.dg/pr88784-8.c: New testcase.
* gcc.dg/pr88784-9.c: New testcase.
* gcc.dg/pr88784-10.c: New testcase.
* gcc.dg/pr88784-11.c: New testcase.
* gcc.dg/pr88784-12.c: New testcase.

Co-Authored-By: Qi Feng <ffengqi@linux.ibm.com>
From-SVN: r275749
15 files changed:
gcc/ChangeLog
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr88784-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-10.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-11.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-12.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-6.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-7.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-8.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr88784-9.c [new file with mode: 0644]