1 /* { dg-do compile } */
2 /* { dg-options "-O2 -ftree-loop-distribution" } */
9 typedef struct rtx_def
*rtx
;
12 int alternative_enabled_p
[100];
22 int hard_regs_live_known
;
23 short* static_reload_reg_p
;
27 find_reloads (rtx insn
, int replace
, int ind_levels
, int live_known
,
31 int noperands
= replace
;
33 int no_input_reloads
= 0;
34 int n_alternatives
= replace
;
35 char this_alternative_match_win
[30];
36 char this_alternative_win
[30];
37 char this_alternative_earlyclobber
[30];
38 int this_alternative_matches
[30];
39 int goal_alternative
[30];
40 int this_alternative_number
;
42 char goal_alternative_match_win
[30];
43 char goal_alternative_win
[30];
49 for (this_alternative_number
= 0;
50 this_alternative_number
< n_alternatives
;
51 this_alternative_number
++)
57 if (!recog_data
.alternative_enabled_p
[this_alternative_number
])
61 for (i
= 0; i
< recog_data
.n_operands
; i
++)
67 for (i
= 0; i
< noperands
; i
++)
68 if (this_alternative_earlyclobber
[i
]
69 && (this_alternative_win
[i
] || this_alternative_match_win
[i
]))
75 for (j
= 0; j
< noperands
; j
++)
76 if (this_alternative_matches
[j
] == i
77 && this_alternative_match_win
[j
])
79 this_alternative_win
[j
] = 0;
80 this_alternative_match_win
[j
] = 0;
88 for (i
= 0; i
< noperands
; i
++)
90 goal_alternative_win
[i
] = 0;
91 goal_alternative_match_win
[i
] = 0;
97 if (! bad
&& best
> losers
)
99 for (i
= 0; i
< noperands
; i
++)
101 goal_alternative
[i
] = 0;
102 goal_alternative_win
[i
] = 0;
110 for (i
= 0; i
< noperands
; i
++)
111 if (! goal_alternative_win
[i
])
113 rtx op
= recog_data
.operand
[i
];
114 int mode
= operand_mode
[i
];
116 if (((ix86_preferred_reload_class ((op
), (goal_alternative
[i
])) == 2)