Merge from mainline (gomp-merge-2005-02-26).
[official-gcc.git] / gcc / testsuite / gcc.dg / 20020206-1.c
blob1bdb25de166b02e9b0298be6da35b41f3546d4c5
1 /* This code is from the beginning of combine_reloads in reload.c in
2 GCC 3.1-20020117, with simplifications. It compiled incorrectly
3 for -O2 -fprefetch-loop-arrays for ix86 targets. */
5 /* { dg-do run } */
6 /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
7 /* { dg-options "-O2 -fprefetch-loop-arrays -mtune=pentium3 -w" { target i?86-*-* } } */
8 /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
10 struct reload
12 int first_member;
13 int out;
14 int final_member;
17 int n_reloads;
18 struct reload rld[10];
20 static int
21 combine_reloads ()
23 int i;
24 int output_reload = -1;
25 int secondary_out = -1;
27 for (i = 0; i < n_reloads; i++)
28 if (rld[i].out != 0)
30 if (output_reload >= 0)
31 return output_reload;
32 output_reload = i;
34 return output_reload;
37 int
38 main ()
40 n_reloads = 4;
41 rld[2].out = 2;
42 if (combine_reloads () != 2)
43 abort ();
44 exit (0);