111
|
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. */
|
|
4
|
|
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-*-* x86_64-*-* } && ia32 } } } */
|
|
8
|
|
9
|
|
10 struct reload
|
|
11 {
|
|
12 int first_member;
|
|
13 int out;
|
|
14 int final_member;
|
|
15 };
|
|
16
|
|
17 int n_reloads;
|
|
18 struct reload rld[10];
|
|
19
|
|
20 static int
|
|
21 combine_reloads ()
|
|
22 {
|
|
23 int i;
|
|
24 int output_reload = -1;
|
|
25 int secondary_out = -1;
|
|
26
|
|
27 for (i = 0; i < n_reloads; i++)
|
|
28 if (rld[i].out != 0)
|
|
29 {
|
|
30 if (output_reload >= 0)
|
|
31 return output_reload;
|
|
32 output_reload = i;
|
|
33 }
|
|
34 return output_reload;
|
|
35 }
|
|
36
|
|
37 int
|
|
38 main ()
|
|
39 {
|
|
40 n_reloads = 4;
|
|
41 rld[2].out = 2;
|
|
42 if (combine_reloads () != 2)
|
|
43 abort ();
|
|
44 exit (0);
|
|
45 }
|