re PR rtl-optimization/83363 (wrong code at -O2 -fno-forward-propagate)
PR rtl-optimization/83363 PR rtl-optimization/83364 * gcc.dg/pr83363.c: New test. * gcc.dg/pr83364.c: New test. From-SVN: r255576
This commit is contained in:
parent
555758de90
commit
6c939c2e9c
@ -1,5 +1,10 @@
|
||||
2017-12-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/83363
|
||||
PR rtl-optimization/83364
|
||||
* gcc.dg/pr83363.c: New test.
|
||||
* gcc.dg/pr83364.c: New test.
|
||||
|
||||
PR tree-optimization/83359
|
||||
* gcc.dg/graphite/pr83359.c: New test.
|
||||
|
||||
|
26
gcc/testsuite/gcc.dg/pr83363.c
Normal file
26
gcc/testsuite/gcc.dg/pr83363.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* PR rtl-optimization/83363 */
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -fno-forward-propagate" } */
|
||||
|
||||
unsigned char a;
|
||||
unsigned int b;
|
||||
|
||||
static unsigned short __attribute__ ((noinline, noclone))
|
||||
foo (unsigned short x)
|
||||
{
|
||||
x -= b;
|
||||
x <<= x == 0;
|
||||
a = ~0;
|
||||
a >>= (unsigned char) x == 0;
|
||||
x *= a -= ~a;
|
||||
return x;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
asm volatile ("" : : : "memory");
|
||||
if (foo (3) != (unsigned short) (3 * (unsigned char) ~0))
|
||||
__builtin_abort ();
|
||||
return 0;
|
||||
}
|
22
gcc/testsuite/gcc.dg/pr83364.c
Normal file
22
gcc/testsuite/gcc.dg/pr83364.c
Normal file
@ -0,0 +1,22 @@
|
||||
/* PR rtl-optimization/83364 */
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O -fno-forward-propagate -fno-tree-coalesce-vars -fno-tree-ter" } */
|
||||
|
||||
int a;
|
||||
|
||||
static int __attribute__ ((noinline, noclone))
|
||||
foo (unsigned char c)
|
||||
{
|
||||
c <<= (long long) c != a;
|
||||
c = c << 7 | c >> 1;
|
||||
return c;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
asm volatile ("" : : : "memory");
|
||||
if (foo (0) != 0)
|
||||
__builtin_abort ();
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user