mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-12-28 23:33:43 +00:00
46 lines
870 B
C
46 lines
870 B
C
|
/* This code is from the beginning of combine_reloads in reload.c in
|
||
|
GCC 3.1-20020117, with simplifications. It compiled incorrectly
|
||
|
for -O2 -fprefetch-loop-arrays for ix86 targets. */
|
||
|
|
||
|
/* { dg-do run } */
|
||
|
/* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
|
||
|
/* { dg-options "-O2 -fprefetch-loop-arrays -mtune=pentium3 -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
|
||
|
|
||
|
|
||
|
struct reload
|
||
|
{
|
||
|
int first_member;
|
||
|
int out;
|
||
|
int final_member;
|
||
|
};
|
||
|
|
||
|
int n_reloads;
|
||
|
struct reload rld[10];
|
||
|
|
||
|
static int
|
||
|
combine_reloads ()
|
||
|
{
|
||
|
int i;
|
||
|
int output_reload = -1;
|
||
|
int secondary_out = -1;
|
||
|
|
||
|
for (i = 0; i < n_reloads; i++)
|
||
|
if (rld[i].out != 0)
|
||
|
{
|
||
|
if (output_reload >= 0)
|
||
|
return output_reload;
|
||
|
output_reload = i;
|
||
|
}
|
||
|
return output_reload;
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main ()
|
||
|
{
|
||
|
n_reloads = 4;
|
||
|
rld[2].out = 2;
|
||
|
if (combine_reloads () != 2)
|
||
|
abort ();
|
||
|
exit (0);
|
||
|
}
|