1/* { dg-do run } */ 2/* { dg-require-effective-target ia32 } */ 3/* { dg-options "-march=i386 -O3 -fomit-frame-pointer" } */ 4 5/* For this test case, we used to do an invalid load motion after 6 reload, because we missed autoincrements of the stack pointer. */ 7 8extern void abort (void); 9 10static int j; 11 12static void __attribute__((noinline)) 13f1 (int a, int b, int c, int d, int e) 14{ 15 j = a; 16} 17 18int __attribute__((noinline)) 19f2 (int a, int b, int c, int d, int e) 20{ 21 if ((b & 0x1111) != 1) 22 f1 (a, b, c, d, e); 23 return 0; 24} 25 26int 27main (void) 28{ 29 f2 (123, 0, 0, 0, 0); 30 if (j != 123) 31 abort (); 32 return 0; 33} 34 35