Commit b81aec1b by Hans-Peter Nilsson Committed by Hans-Peter Nilsson

re PR target/30665 (peephole2 misapplied on postinc mem)

	PR target/30665
	* gcc.dg/torture/pr30665-1.c, gcc.dg/torture/pr30665-2.c: New tests.

From-SVN: r121611
parent 9e006df6
2007-02-05 Hans-Peter Nilsson <hp@axis.com>
PR target/30665
* gcc.dg/torture/pr30665-1.c, gcc.dg/torture/pr30665-2.c: New tests.
2007-02-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> 2007-02-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/30611 PR fortran/30611
/* PR target/30665: bug in cris.md peephole2 condition.
Testcase for trunk. */
/* { dg-do run } */
extern void abort (void);
extern void exit (int);
int __attribute__ ((__noinline__)) f (unsigned *p, int *x)
{
int y = *p++ & 0xfff;
*x++ = y;
*x = *p;
return y;
}
int main (void)
{
unsigned u[2] = { 0x3aad, 0x5ad1 };
int x[2] = {17689, 23456};
if (f (u, x) != 0xaad || x[0] != 0xaad || x[1] != 0x5ad1)
abort ();
exit (0);
}
/* PR target/30665: bug in cris.md peephole2 condition.
Original reduced testcase (fails on 3.2.1 derivate, not on trunk). */
/* { dg-do run } */
extern void abort (void);
extern void exit (int);
struct t
{
unsigned int a : 12;
unsigned int b : 12;
unsigned int dummy1 : 8;
};
struct area
{
int xa;
int xb;
};
struct c
{
struct area ii;
};
static struct c c;
void __attribute__ ((__noinline__)) g(int a)
{
if (a != 79)
abort ();
}
void __attribute__ ((__noinline__)) h(struct t tt)
{
if (tt.a != 20 || tt.b != 79)
abort ();
}
void __attribute__ ((__noinline__)) s(void);
int main(int argc, char **argv)
{
c.ii.xa = 20;
c.ii.xb = 79;
s();
exit (0);
}
void __attribute__ ((__noinline__)) s(void)
{
struct t ii_x = { .a = c.ii.xa, .b = c.ii.xb };
g(c.ii.xb);
h(ii_x);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment