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
;
25 int ix86_preferred_reload_class (rtx
, int);
28 find_reloads (rtx insn
, int replace
, int ind_levels
, int live_known
,
32 int noperands
= replace
;
34 int no_input_reloads
= 0;
35 int n_alternatives
= replace
;
36 char this_alternative_match_win
[30];
37 char this_alternative_win
[30];
38 char this_alternative_earlyclobber
[30];
39 int this_alternative_matches
[30];
40 int goal_alternative
[30];
41 int this_alternative_number
;
43 char goal_alternative_match_win
[30];
44 char goal_alternative_win
[30];
50 for (this_alternative_number
= 0;
51 this_alternative_number
< n_alternatives
;
52 this_alternative_number
++)
58 if (!recog_data
.alternative_enabled_p
[this_alternative_number
])
62 for (i
= 0; i
< recog_data
.n_operands
; i
++)
68 for (i
= 0; i
< noperands
; i
++)
69 if (this_alternative_earlyclobber
[i
]
70 && (this_alternative_win
[i
] || this_alternative_match_win
[i
]))
76 for (j
= 0; j
< noperands
; j
++)
77 if (this_alternative_matches
[j
] == i
78 && this_alternative_match_win
[j
])
80 this_alternative_win
[j
] = 0;
81 this_alternative_match_win
[j
] = 0;
89 for (i
= 0; i
< noperands
; i
++)
91 goal_alternative_win
[i
] = 0;
92 goal_alternative_match_win
[i
] = 0;
98 if (! bad
&& best
> losers
)
100 for (i
= 0; i
< noperands
; i
++)
102 goal_alternative
[i
] = 0;
103 goal_alternative_win
[i
] = 0;
111 for (i
= 0; i
< noperands
; i
++)
112 if (! goal_alternative_win
[i
])
114 rtx op
= recog_data
.operand
[i
];
115 int mode
= operand_mode
[i
];
117 if (((ix86_preferred_reload_class ((op
), (goal_alternative
[i
])) == 2)