comparison gcc/config/i386/athlon.md @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents 77e2b8dfacca
children 84e7813d76e9
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 1 ;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
2 ;; 2007 Free Software Foundation, Inc.
3 ;; 2 ;;
4 ;; This file is part of GCC. 3 ;; This file is part of GCC.
5 ;; 4 ;;
6 ;; GCC is free software; you can redistribute it and/or modify 5 ;; GCC is free software; you can redistribute it and/or modify
7 ;; it under the terms of the GNU General Public License as published by 6 ;; it under the terms of the GNU General Public License as published by
38 37
39 (define_attr "athlon_decode" "direct,vector,double" 38 (define_attr "athlon_decode" "direct,vector,double"
40 (cond [(eq_attr "type" "call,imul,idiv,other,multi,fcmov,fpspc,str,pop,leave") 39 (cond [(eq_attr "type" "call,imul,idiv,other,multi,fcmov,fpspc,str,pop,leave")
41 (const_string "vector") 40 (const_string "vector")
42 (and (eq_attr "type" "push") 41 (and (eq_attr "type" "push")
43 (match_operand 1 "memory_operand" "")) 42 (match_operand 1 "memory_operand"))
44 (const_string "vector") 43 (const_string "vector")
45 (and (eq_attr "type" "fmov") 44 (and (eq_attr "type" "fmov")
46 (and (eq_attr "memory" "load,store") 45 (and (eq_attr "memory" "load,store")
47 (eq_attr "mode" "XF"))) 46 (eq_attr "mode" "XF")))
48 (const_string "vector")] 47 (const_string "vector")]
150 (define_reservation "athlon-fvector" "(athlon-fadd + athlon-fmul + athlon-fstore)") 149 (define_reservation "athlon-fvector" "(athlon-fadd + athlon-fmul + athlon-fstore)")
151 150
152 151
153 ;; Jump instructions are executed in the branch unit completely transparent to us 152 ;; Jump instructions are executed in the branch unit completely transparent to us
154 (define_insn_reservation "athlon_branch" 0 153 (define_insn_reservation "athlon_branch" 0
155 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 154 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
156 (eq_attr "type" "ibr")) 155 (eq_attr "type" "ibr"))
157 "athlon-direct,athlon-ieu") 156 "athlon-direct,athlon-ieu")
158 (define_insn_reservation "athlon_call" 0 157 (define_insn_reservation "athlon_call" 0
159 (and (eq_attr "cpu" "athlon,k8,generic64") 158 (and (eq_attr "cpu" "athlon,k8,generic")
160 (eq_attr "type" "call,callv")) 159 (eq_attr "type" "call,callv"))
161 "athlon-vector,athlon-ieu") 160 "athlon-vector,athlon-ieu")
162 (define_insn_reservation "athlon_call_amdfam10" 0 161 (define_insn_reservation "athlon_call_amdfam10" 0
163 (and (eq_attr "cpu" "amdfam10") 162 (and (eq_attr "cpu" "amdfam10")
164 (eq_attr "type" "call,callv")) 163 (eq_attr "type" "call,callv"))
165 "athlon-double,athlon-ieu") 164 "athlon-double,athlon-ieu")
166 165
167 ;; Latency of push operation is 3 cycles, but ESP value is available 166 ;; Latency of push operation is 3 cycles, but ESP value is available
168 ;; earlier 167 ;; earlier
169 (define_insn_reservation "athlon_push" 2 168 (define_insn_reservation "athlon_push" 2
170 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 169 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
171 (eq_attr "type" "push")) 170 (eq_attr "type" "push"))
172 "athlon-direct,athlon-agu,athlon-store") 171 "athlon-direct,athlon-agu,athlon-store")
173 (define_insn_reservation "athlon_pop" 4 172 (define_insn_reservation "athlon_pop" 4
174 (and (eq_attr "cpu" "athlon,k8,generic64") 173 (and (eq_attr "cpu" "athlon,k8,generic")
175 (eq_attr "type" "pop")) 174 (eq_attr "type" "pop"))
176 "athlon-vector,athlon-load,athlon-ieu") 175 "athlon-vector,athlon-load,athlon-ieu")
177 (define_insn_reservation "athlon_pop_k8" 3 176 (define_insn_reservation "athlon_pop_k8" 3
178 (and (eq_attr "cpu" "k8,generic64") 177 (and (eq_attr "cpu" "k8,generic")
179 (eq_attr "type" "pop")) 178 (eq_attr "type" "pop"))
180 "athlon-double,(athlon-ieu+athlon-load)") 179 "athlon-double,(athlon-ieu+athlon-load)")
181 (define_insn_reservation "athlon_pop_amdfam10" 3 180 (define_insn_reservation "athlon_pop_amdfam10" 3
182 (and (eq_attr "cpu" "amdfam10") 181 (and (eq_attr "cpu" "amdfam10")
183 (eq_attr "type" "pop")) 182 (eq_attr "type" "pop"))
185 (define_insn_reservation "athlon_leave" 3 184 (define_insn_reservation "athlon_leave" 3
186 (and (eq_attr "cpu" "athlon") 185 (and (eq_attr "cpu" "athlon")
187 (eq_attr "type" "leave")) 186 (eq_attr "type" "leave"))
188 "athlon-vector,(athlon-ieu+athlon-load)") 187 "athlon-vector,(athlon-ieu+athlon-load)")
189 (define_insn_reservation "athlon_leave_k8" 3 188 (define_insn_reservation "athlon_leave_k8" 3
190 (and (eq_attr "cpu" "k8,generic64,amdfam10") 189 (and (eq_attr "cpu" "k8,generic,amdfam10")
191 (eq_attr "type" "leave")) 190 (eq_attr "type" "leave"))
192 "athlon-double,(athlon-ieu+athlon-load)") 191 "athlon-double,(athlon-ieu+athlon-load)")
193 192
194 ;; Lea executes in AGU unit with 2 cycles latency. 193 ;; Lea executes in AGU unit with 2 cycles latency.
195 (define_insn_reservation "athlon_lea" 2 194 (define_insn_reservation "athlon_lea" 2
196 (and (eq_attr "cpu" "athlon,k8,generic64") 195 (and (eq_attr "cpu" "athlon,k8,generic")
197 (eq_attr "type" "lea")) 196 (eq_attr "type" "lea"))
198 "athlon-direct,athlon-agu,nothing") 197 "athlon-direct,athlon-agu,nothing")
199 ;; Lea executes in AGU unit with 1 cycle latency on AMDFAM10 198 ;; Lea executes in AGU unit with 1 cycle latency on AMDFAM10
200 (define_insn_reservation "athlon_lea_amdfam10" 1 199 (define_insn_reservation "athlon_lea_amdfam10" 1
201 (and (eq_attr "cpu" "amdfam10") 200 (and (eq_attr "cpu" "amdfam10")
208 (and (eq_attr "type" "imul") 207 (and (eq_attr "type" "imul")
209 (eq_attr "memory" "none,unknown"))) 208 (eq_attr "memory" "none,unknown")))
210 "athlon-vector,athlon-ieu0,athlon-mult,nothing,nothing,athlon-ieu0") 209 "athlon-vector,athlon-ieu0,athlon-mult,nothing,nothing,athlon-ieu0")
211 ;; ??? Widening multiply is vector or double. 210 ;; ??? Widening multiply is vector or double.
212 (define_insn_reservation "athlon_imul_k8_DI" 4 211 (define_insn_reservation "athlon_imul_k8_DI" 4
213 (and (eq_attr "cpu" "k8,generic64,amdfam10") 212 (and (eq_attr "cpu" "k8,generic,amdfam10")
214 (and (eq_attr "type" "imul") 213 (and (eq_attr "type" "imul")
215 (and (eq_attr "mode" "DI") 214 (and (eq_attr "mode" "DI")
216 (eq_attr "memory" "none,unknown")))) 215 (eq_attr "memory" "none,unknown"))))
217 "athlon-direct0,athlon-ieu0,athlon-mult,nothing,athlon-ieu0") 216 "athlon-direct0,athlon-ieu0,athlon-mult,nothing,athlon-ieu0")
218 (define_insn_reservation "athlon_imul_k8" 3 217 (define_insn_reservation "athlon_imul_k8" 3
219 (and (eq_attr "cpu" "k8,generic64,amdfam10") 218 (and (eq_attr "cpu" "k8,generic,amdfam10")
220 (and (eq_attr "type" "imul") 219 (and (eq_attr "type" "imul")
221 (eq_attr "memory" "none,unknown"))) 220 (eq_attr "memory" "none,unknown")))
222 "athlon-direct0,athlon-ieu0,athlon-mult,athlon-ieu0") 221 "athlon-direct0,athlon-ieu0,athlon-mult,athlon-ieu0")
223 (define_insn_reservation "athlon_imul_amdfam10_HI" 4 222 (define_insn_reservation "athlon_imul_amdfam10_HI" 4
224 (and (eq_attr "cpu" "amdfam10") 223 (and (eq_attr "cpu" "amdfam10")
230 (and (eq_attr "cpu" "athlon") 229 (and (eq_attr "cpu" "athlon")
231 (and (eq_attr "type" "imul") 230 (and (eq_attr "type" "imul")
232 (eq_attr "memory" "load,both"))) 231 (eq_attr "memory" "load,both")))
233 "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,nothing,athlon-ieu") 232 "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,nothing,athlon-ieu")
234 (define_insn_reservation "athlon_imul_mem_k8_DI" 7 233 (define_insn_reservation "athlon_imul_mem_k8_DI" 7
235 (and (eq_attr "cpu" "k8,generic64,amdfam10") 234 (and (eq_attr "cpu" "k8,generic,amdfam10")
236 (and (eq_attr "type" "imul") 235 (and (eq_attr "type" "imul")
237 (and (eq_attr "mode" "DI") 236 (and (eq_attr "mode" "DI")
238 (eq_attr "memory" "load,both")))) 237 (eq_attr "memory" "load,both"))))
239 "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,athlon-ieu") 238 "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,athlon-ieu")
240 (define_insn_reservation "athlon_imul_mem_k8" 6 239 (define_insn_reservation "athlon_imul_mem_k8" 6
241 (and (eq_attr "cpu" "k8,generic64,amdfam10") 240 (and (eq_attr "cpu" "k8,generic,amdfam10")
242 (and (eq_attr "type" "imul") 241 (and (eq_attr "type" "imul")
243 (eq_attr "memory" "load,both"))) 242 (eq_attr "memory" "load,both")))
244 "athlon-vector,athlon-load,athlon-ieu,athlon-mult,athlon-ieu") 243 "athlon-vector,athlon-load,athlon-ieu,athlon-mult,athlon-ieu")
245 244
246 ;; Idiv cannot execute in parallel with other instructions. Dealing with it 245 ;; Idiv cannot execute in parallel with other instructions. Dealing with it
250 ;; ??? Experiments show that the idiv can overlap with roughly 6 cycles 249 ;; ??? Experiments show that the idiv can overlap with roughly 6 cycles
251 ;; of the other code 250 ;; of the other code
252 ;; Using the same heuristics for amdfam10 as K8 with idiv 251 ;; Using the same heuristics for amdfam10 as K8 with idiv
253 252
254 (define_insn_reservation "athlon_idiv" 6 253 (define_insn_reservation "athlon_idiv" 6
255 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 254 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
256 (and (eq_attr "type" "idiv") 255 (and (eq_attr "type" "idiv")
257 (eq_attr "memory" "none,unknown"))) 256 (eq_attr "memory" "none,unknown")))
258 "athlon-vector,(athlon-ieu0*6+(athlon-fpsched,athlon-fvector))") 257 "athlon-vector,(athlon-ieu0*6+(athlon-fpsched,athlon-fvector))")
259 (define_insn_reservation "athlon_idiv_mem" 9 258 (define_insn_reservation "athlon_idiv_mem" 9
260 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 259 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
261 (and (eq_attr "type" "idiv") 260 (and (eq_attr "type" "idiv")
262 (eq_attr "memory" "load,both"))) 261 (eq_attr "memory" "load,both")))
263 "athlon-vector,((athlon-load,athlon-ieu0*6)+(athlon-fpsched,athlon-fvector))") 262 "athlon-vector,((athlon-load,athlon-ieu0*6)+(athlon-fpsched,athlon-fvector))")
264 ;; The parallelism of string instructions is not documented. Model it same way 263 ;; The parallelism of string instructions is not documented. Model it same way
265 ;; as idiv to create smaller automata. This probably does not matter much. 264 ;; as idiv to create smaller automata. This probably does not matter much.
266 ;; Using the same heuristics for amdfam10 as K8 with idiv 265 ;; Using the same heuristics for amdfam10 as K8 with idiv
267 (define_insn_reservation "athlon_str" 6 266 (define_insn_reservation "athlon_str" 6
268 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 267 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
269 (and (eq_attr "type" "str") 268 (and (eq_attr "type" "str")
270 (eq_attr "memory" "load,both,store"))) 269 (eq_attr "memory" "load,both,store")))
271 "athlon-vector,athlon-load,athlon-ieu0*6") 270 "athlon-vector,athlon-load,athlon-ieu0*6")
272 271
273 (define_insn_reservation "athlon_idirect" 1 272 (define_insn_reservation "athlon_idirect" 1
274 (and (eq_attr "cpu" "athlon,k8,generic64") 273 (and (eq_attr "cpu" "athlon,k8,generic")
275 (and (eq_attr "athlon_decode" "direct") 274 (and (eq_attr "athlon_decode" "direct")
276 (and (eq_attr "unit" "integer,unknown") 275 (and (eq_attr "unit" "integer,unknown")
277 (eq_attr "memory" "none,unknown")))) 276 (eq_attr "memory" "none,unknown"))))
278 "athlon-direct,athlon-ieu") 277 "athlon-direct,athlon-ieu")
279 (define_insn_reservation "athlon_idirect_amdfam10" 1 278 (define_insn_reservation "athlon_idirect_amdfam10" 1
281 (and (eq_attr "amdfam10_decode" "direct") 280 (and (eq_attr "amdfam10_decode" "direct")
282 (and (eq_attr "unit" "integer,unknown") 281 (and (eq_attr "unit" "integer,unknown")
283 (eq_attr "memory" "none,unknown")))) 282 (eq_attr "memory" "none,unknown"))))
284 "athlon-direct,athlon-ieu") 283 "athlon-direct,athlon-ieu")
285 (define_insn_reservation "athlon_ivector" 2 284 (define_insn_reservation "athlon_ivector" 2
286 (and (eq_attr "cpu" "athlon,k8,generic64") 285 (and (eq_attr "cpu" "athlon,k8,generic")
287 (and (eq_attr "athlon_decode" "vector") 286 (and (eq_attr "athlon_decode" "vector")
288 (and (eq_attr "unit" "integer,unknown") 287 (and (eq_attr "unit" "integer,unknown")
289 (eq_attr "memory" "none,unknown")))) 288 (eq_attr "memory" "none,unknown"))))
290 "athlon-vector,athlon-ieu,athlon-ieu") 289 "athlon-vector,athlon-ieu,athlon-ieu")
291 (define_insn_reservation "athlon_ivector_amdfam10" 2 290 (define_insn_reservation "athlon_ivector_amdfam10" 2
294 (and (eq_attr "unit" "integer,unknown") 293 (and (eq_attr "unit" "integer,unknown")
295 (eq_attr "memory" "none,unknown")))) 294 (eq_attr "memory" "none,unknown"))))
296 "athlon-vector,athlon-ieu,athlon-ieu") 295 "athlon-vector,athlon-ieu,athlon-ieu")
297 296
298 (define_insn_reservation "athlon_idirect_loadmov" 3 297 (define_insn_reservation "athlon_idirect_loadmov" 3
299 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 298 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
300 (and (eq_attr "type" "imov") 299 (and (eq_attr "type" "imov")
301 (eq_attr "memory" "load"))) 300 (eq_attr "memory" "load")))
302 "athlon-direct,athlon-load") 301 "athlon-direct,athlon-load")
303 302
304 (define_insn_reservation "athlon_idirect_load" 4 303 (define_insn_reservation "athlon_idirect_load" 4
305 (and (eq_attr "cpu" "athlon,k8,generic64") 304 (and (eq_attr "cpu" "athlon,k8,generic")
306 (and (eq_attr "athlon_decode" "direct") 305 (and (eq_attr "athlon_decode" "direct")
307 (and (eq_attr "unit" "integer,unknown") 306 (and (eq_attr "unit" "integer,unknown")
308 (eq_attr "memory" "load")))) 307 (eq_attr "memory" "load"))))
309 "athlon-direct,athlon-load,athlon-ieu") 308 "athlon-direct,athlon-load,athlon-ieu")
310 (define_insn_reservation "athlon_idirect_load_amdfam10" 4 309 (define_insn_reservation "athlon_idirect_load_amdfam10" 4
312 (and (eq_attr "amdfam10_decode" "direct") 311 (and (eq_attr "amdfam10_decode" "direct")
313 (and (eq_attr "unit" "integer,unknown") 312 (and (eq_attr "unit" "integer,unknown")
314 (eq_attr "memory" "load")))) 313 (eq_attr "memory" "load"))))
315 "athlon-direct,athlon-load,athlon-ieu") 314 "athlon-direct,athlon-load,athlon-ieu")
316 (define_insn_reservation "athlon_ivector_load" 6 315 (define_insn_reservation "athlon_ivector_load" 6
317 (and (eq_attr "cpu" "athlon,k8,generic64") 316 (and (eq_attr "cpu" "athlon,k8,generic")
318 (and (eq_attr "athlon_decode" "vector") 317 (and (eq_attr "athlon_decode" "vector")
319 (and (eq_attr "unit" "integer,unknown") 318 (and (eq_attr "unit" "integer,unknown")
320 (eq_attr "memory" "load")))) 319 (eq_attr "memory" "load"))))
321 "athlon-vector,athlon-load,athlon-ieu,athlon-ieu") 320 "athlon-vector,athlon-load,athlon-ieu,athlon-ieu")
322 (define_insn_reservation "athlon_ivector_load_amdfam10" 6 321 (define_insn_reservation "athlon_ivector_load_amdfam10" 6
325 (and (eq_attr "unit" "integer,unknown") 324 (and (eq_attr "unit" "integer,unknown")
326 (eq_attr "memory" "load")))) 325 (eq_attr "memory" "load"))))
327 "athlon-vector,athlon-load,athlon-ieu,athlon-ieu") 326 "athlon-vector,athlon-load,athlon-ieu,athlon-ieu")
328 327
329 (define_insn_reservation "athlon_idirect_movstore" 1 328 (define_insn_reservation "athlon_idirect_movstore" 1
330 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 329 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
331 (and (eq_attr "type" "imov") 330 (and (eq_attr "type" "imov")
332 (eq_attr "memory" "store"))) 331 (eq_attr "memory" "store")))
333 "athlon-direct,athlon-agu,athlon-store") 332 "athlon-direct,athlon-agu,athlon-store")
334 333
335 (define_insn_reservation "athlon_idirect_both" 4 334 (define_insn_reservation "athlon_idirect_both" 4
336 (and (eq_attr "cpu" "athlon,k8,generic64") 335 (and (eq_attr "cpu" "athlon,k8,generic")
337 (and (eq_attr "athlon_decode" "direct") 336 (and (eq_attr "athlon_decode" "direct")
338 (and (eq_attr "unit" "integer,unknown") 337 (and (eq_attr "unit" "integer,unknown")
339 (eq_attr "memory" "both")))) 338 (eq_attr "memory" "both"))))
340 "athlon-direct,athlon-load, 339 "athlon-direct,athlon-load,
341 athlon-ieu,athlon-store, 340 athlon-ieu,athlon-store,
348 "athlon-direct,athlon-load, 347 "athlon-direct,athlon-load,
349 athlon-ieu,athlon-store, 348 athlon-ieu,athlon-store,
350 athlon-store") 349 athlon-store")
351 350
352 (define_insn_reservation "athlon_ivector_both" 6 351 (define_insn_reservation "athlon_ivector_both" 6
353 (and (eq_attr "cpu" "athlon,k8,generic64") 352 (and (eq_attr "cpu" "athlon,k8,generic")
354 (and (eq_attr "athlon_decode" "vector") 353 (and (eq_attr "athlon_decode" "vector")
355 (and (eq_attr "unit" "integer,unknown") 354 (and (eq_attr "unit" "integer,unknown")
356 (eq_attr "memory" "both")))) 355 (eq_attr "memory" "both"))))
357 "athlon-vector,athlon-load, 356 "athlon-vector,athlon-load,
358 athlon-ieu, 357 athlon-ieu,
367 athlon-ieu, 366 athlon-ieu,
368 athlon-ieu, 367 athlon-ieu,
369 athlon-store") 368 athlon-store")
370 369
371 (define_insn_reservation "athlon_idirect_store" 1 370 (define_insn_reservation "athlon_idirect_store" 1
372 (and (eq_attr "cpu" "athlon,k8,generic64") 371 (and (eq_attr "cpu" "athlon,k8,generic")
373 (and (eq_attr "athlon_decode" "direct") 372 (and (eq_attr "athlon_decode" "direct")
374 (and (eq_attr "unit" "integer,unknown") 373 (and (eq_attr "unit" "integer,unknown")
375 (eq_attr "memory" "store")))) 374 (eq_attr "memory" "store"))))
376 "athlon-direct,(athlon-ieu+athlon-agu), 375 "athlon-direct,(athlon-ieu+athlon-agu),
377 athlon-store") 376 athlon-store")
382 (eq_attr "memory" "store")))) 381 (eq_attr "memory" "store"))))
383 "athlon-direct,(athlon-ieu+athlon-agu), 382 "athlon-direct,(athlon-ieu+athlon-agu),
384 athlon-store") 383 athlon-store")
385 384
386 (define_insn_reservation "athlon_ivector_store" 2 385 (define_insn_reservation "athlon_ivector_store" 2
387 (and (eq_attr "cpu" "athlon,k8,generic64") 386 (and (eq_attr "cpu" "athlon,k8,generic")
388 (and (eq_attr "athlon_decode" "vector") 387 (and (eq_attr "athlon_decode" "vector")
389 (and (eq_attr "unit" "integer,unknown") 388 (and (eq_attr "unit" "integer,unknown")
390 (eq_attr "memory" "store")))) 389 (eq_attr "memory" "store"))))
391 "athlon-vector,(athlon-ieu+athlon-agu),athlon-ieu, 390 "athlon-vector,(athlon-ieu+athlon-agu),athlon-ieu,
392 athlon-store") 391 athlon-store")
404 (and (eq_attr "type" "fmov") 403 (and (eq_attr "type" "fmov")
405 (and (eq_attr "memory" "load") 404 (and (eq_attr "memory" "load")
406 (eq_attr "mode" "XF")))) 405 (eq_attr "mode" "XF"))))
407 "athlon-vector,athlon-fpload2,athlon-fvector*9") 406 "athlon-vector,athlon-fpload2,athlon-fvector*9")
408 (define_insn_reservation "athlon_fldxf_k8" 13 407 (define_insn_reservation "athlon_fldxf_k8" 13
409 (and (eq_attr "cpu" "k8,generic64,amdfam10") 408 (and (eq_attr "cpu" "k8,generic,amdfam10")
410 (and (eq_attr "type" "fmov") 409 (and (eq_attr "type" "fmov")
411 (and (eq_attr "memory" "load") 410 (and (eq_attr "memory" "load")
412 (eq_attr "mode" "XF")))) 411 (eq_attr "mode" "XF"))))
413 "athlon-vector,athlon-fpload2k8,athlon-fvector*9") 412 "athlon-vector,athlon-fpload2k8,athlon-fvector*9")
414 ;; Assume superforwarding to take place so effective latency of fany op is 0. 413 ;; Assume superforwarding to take place so effective latency of fany op is 0.
416 (and (eq_attr "cpu" "athlon") 415 (and (eq_attr "cpu" "athlon")
417 (and (eq_attr "type" "fmov") 416 (and (eq_attr "type" "fmov")
418 (eq_attr "memory" "load"))) 417 (eq_attr "memory" "load")))
419 "athlon-direct,athlon-fpload,athlon-fany") 418 "athlon-direct,athlon-fpload,athlon-fany")
420 (define_insn_reservation "athlon_fld_k8" 2 419 (define_insn_reservation "athlon_fld_k8" 2
421 (and (eq_attr "cpu" "k8,generic64,amdfam10") 420 (and (eq_attr "cpu" "k8,generic,amdfam10")
422 (and (eq_attr "type" "fmov") 421 (and (eq_attr "type" "fmov")
423 (eq_attr "memory" "load"))) 422 (eq_attr "memory" "load")))
424 "athlon-direct,athlon-fploadk8,athlon-fstore") 423 "athlon-direct,athlon-fploadk8,athlon-fstore")
425 424
426 (define_insn_reservation "athlon_fstxf" 10 425 (define_insn_reservation "athlon_fstxf" 10
428 (and (eq_attr "type" "fmov") 427 (and (eq_attr "type" "fmov")
429 (and (eq_attr "memory" "store,both") 428 (and (eq_attr "memory" "store,both")
430 (eq_attr "mode" "XF")))) 429 (eq_attr "mode" "XF"))))
431 "athlon-vector,(athlon-fpsched+athlon-agu),(athlon-store2+(athlon-fvector*7))") 430 "athlon-vector,(athlon-fpsched+athlon-agu),(athlon-store2+(athlon-fvector*7))")
432 (define_insn_reservation "athlon_fstxf_k8" 8 431 (define_insn_reservation "athlon_fstxf_k8" 8
433 (and (eq_attr "cpu" "k8,generic64,amdfam10") 432 (and (eq_attr "cpu" "k8,generic,amdfam10")
434 (and (eq_attr "type" "fmov") 433 (and (eq_attr "type" "fmov")
435 (and (eq_attr "memory" "store,both") 434 (and (eq_attr "memory" "store,both")
436 (eq_attr "mode" "XF")))) 435 (eq_attr "mode" "XF"))))
437 "athlon-vector,(athlon-fpsched+athlon-agu),(athlon-store2+(athlon-fvector*6))") 436 "athlon-vector,(athlon-fpsched+athlon-agu),(athlon-store2+(athlon-fvector*6))")
438 (define_insn_reservation "athlon_fst" 4 437 (define_insn_reservation "athlon_fst" 4
439 (and (eq_attr "cpu" "athlon") 438 (and (eq_attr "cpu" "athlon")
440 (and (eq_attr "type" "fmov") 439 (and (eq_attr "type" "fmov")
441 (eq_attr "memory" "store,both"))) 440 (eq_attr "memory" "store,both")))
442 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") 441 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)")
443 (define_insn_reservation "athlon_fst_k8" 2 442 (define_insn_reservation "athlon_fst_k8" 2
444 (and (eq_attr "cpu" "k8,generic64,amdfam10") 443 (and (eq_attr "cpu" "k8,generic,amdfam10")
445 (and (eq_attr "type" "fmov") 444 (and (eq_attr "type" "fmov")
446 (eq_attr "memory" "store,both"))) 445 (eq_attr "memory" "store,both")))
447 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") 446 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)")
448 (define_insn_reservation "athlon_fist" 4 447 (define_insn_reservation "athlon_fist" 4
449 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 448 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
450 (eq_attr "type" "fistp,fisttp")) 449 (eq_attr "type" "fistp,fisttp"))
451 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") 450 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)")
452 (define_insn_reservation "athlon_fmov" 2 451 (define_insn_reservation "athlon_fmov" 2
453 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 452 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
454 (eq_attr "type" "fmov")) 453 (eq_attr "type" "fmov"))
455 "athlon-direct,athlon-fpsched,athlon-faddmul") 454 "athlon-direct,athlon-fpsched,athlon-faddmul")
456 (define_insn_reservation "athlon_fadd_load" 4 455 (define_insn_reservation "athlon_fadd_load" 4
457 (and (eq_attr "cpu" "athlon") 456 (and (eq_attr "cpu" "athlon")
458 (and (eq_attr "type" "fop") 457 (and (eq_attr "type" "fop")
459 (eq_attr "memory" "load"))) 458 (eq_attr "memory" "load")))
460 "athlon-direct,athlon-fpload,athlon-fadd") 459 "athlon-direct,athlon-fpload,athlon-fadd")
461 (define_insn_reservation "athlon_fadd_load_k8" 6 460 (define_insn_reservation "athlon_fadd_load_k8" 6
462 (and (eq_attr "cpu" "k8,generic64,amdfam10") 461 (and (eq_attr "cpu" "k8,generic,amdfam10")
463 (and (eq_attr "type" "fop") 462 (and (eq_attr "type" "fop")
464 (eq_attr "memory" "load"))) 463 (eq_attr "memory" "load")))
465 "athlon-direct,athlon-fploadk8,athlon-fadd") 464 "athlon-direct,athlon-fploadk8,athlon-fadd")
466 (define_insn_reservation "athlon_fadd" 4 465 (define_insn_reservation "athlon_fadd" 4
467 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 466 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
468 (eq_attr "type" "fop")) 467 (eq_attr "type" "fop"))
469 "athlon-direct,athlon-fpsched,athlon-fadd") 468 "athlon-direct,athlon-fpsched,athlon-fadd")
470 (define_insn_reservation "athlon_fmul_load" 4 469 (define_insn_reservation "athlon_fmul_load" 4
471 (and (eq_attr "cpu" "athlon") 470 (and (eq_attr "cpu" "athlon")
472 (and (eq_attr "type" "fmul") 471 (and (eq_attr "type" "fmul")
473 (eq_attr "memory" "load"))) 472 (eq_attr "memory" "load")))
474 "athlon-direct,athlon-fpload,athlon-fmul") 473 "athlon-direct,athlon-fpload,athlon-fmul")
475 (define_insn_reservation "athlon_fmul_load_k8" 6 474 (define_insn_reservation "athlon_fmul_load_k8" 6
476 (and (eq_attr "cpu" "k8,generic64,amdfam10") 475 (and (eq_attr "cpu" "k8,generic,amdfam10")
477 (and (eq_attr "type" "fmul") 476 (and (eq_attr "type" "fmul")
478 (eq_attr "memory" "load"))) 477 (eq_attr "memory" "load")))
479 "athlon-direct,athlon-fploadk8,athlon-fmul") 478 "athlon-direct,athlon-fploadk8,athlon-fmul")
480 (define_insn_reservation "athlon_fmul" 4 479 (define_insn_reservation "athlon_fmul" 4
481 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 480 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
482 (eq_attr "type" "fmul")) 481 (eq_attr "type" "fmul"))
483 "athlon-direct,athlon-fpsched,athlon-fmul") 482 "athlon-direct,athlon-fpsched,athlon-fmul")
484 (define_insn_reservation "athlon_fsgn" 2 483 (define_insn_reservation "athlon_fsgn" 2
485 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 484 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
486 (eq_attr "type" "fsgn")) 485 (eq_attr "type" "fsgn"))
487 "athlon-direct,athlon-fpsched,athlon-fmul") 486 "athlon-direct,athlon-fpsched,athlon-fmul")
488 (define_insn_reservation "athlon_fdiv_load" 24 487 (define_insn_reservation "athlon_fdiv_load" 24
489 (and (eq_attr "cpu" "athlon") 488 (and (eq_attr "cpu" "athlon")
490 (and (eq_attr "type" "fdiv") 489 (and (eq_attr "type" "fdiv")
491 (eq_attr "memory" "load"))) 490 (eq_attr "memory" "load")))
492 "athlon-direct,athlon-fpload,athlon-fmul") 491 "athlon-direct,athlon-fpload,athlon-fmul")
493 (define_insn_reservation "athlon_fdiv_load_k8" 13 492 (define_insn_reservation "athlon_fdiv_load_k8" 13
494 (and (eq_attr "cpu" "k8,generic64,amdfam10") 493 (and (eq_attr "cpu" "k8,generic,amdfam10")
495 (and (eq_attr "type" "fdiv") 494 (and (eq_attr "type" "fdiv")
496 (eq_attr "memory" "load"))) 495 (eq_attr "memory" "load")))
497 "athlon-direct,athlon-fploadk8,athlon-fmul") 496 "athlon-direct,athlon-fploadk8,athlon-fmul")
498 (define_insn_reservation "athlon_fdiv" 24 497 (define_insn_reservation "athlon_fdiv" 24
499 (and (eq_attr "cpu" "athlon") 498 (and (eq_attr "cpu" "athlon")
500 (eq_attr "type" "fdiv")) 499 (eq_attr "type" "fdiv"))
501 "athlon-direct,athlon-fpsched,athlon-fmul") 500 "athlon-direct,athlon-fpsched,athlon-fmul")
502 (define_insn_reservation "athlon_fdiv_k8" 11 501 (define_insn_reservation "athlon_fdiv_k8" 11
503 (and (eq_attr "cpu" "k8,generic64,amdfam10") 502 (and (eq_attr "cpu" "k8,generic,amdfam10")
504 (eq_attr "type" "fdiv")) 503 (eq_attr "type" "fdiv"))
505 "athlon-direct,athlon-fpsched,athlon-fmul") 504 "athlon-direct,athlon-fpsched,athlon-fmul")
506 (define_insn_reservation "athlon_fpspc_load" 103 505 (define_insn_reservation "athlon_fpspc_load" 103
507 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 506 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
508 (and (eq_attr "type" "fpspc") 507 (and (eq_attr "type" "fpspc")
509 (eq_attr "memory" "load"))) 508 (eq_attr "memory" "load")))
510 "athlon-vector,athlon-fpload,athlon-fvector") 509 "athlon-vector,athlon-fpload,athlon-fvector")
511 (define_insn_reservation "athlon_fpspc" 100 510 (define_insn_reservation "athlon_fpspc" 100
512 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 511 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
513 (eq_attr "type" "fpspc")) 512 (eq_attr "type" "fpspc"))
514 "athlon-vector,athlon-fpsched,athlon-fvector") 513 "athlon-vector,athlon-fpsched,athlon-fvector")
515 (define_insn_reservation "athlon_fcmov_load" 7 514 (define_insn_reservation "athlon_fcmov_load" 7
516 (and (eq_attr "cpu" "athlon") 515 (and (eq_attr "cpu" "athlon")
517 (and (eq_attr "type" "fcmov") 516 (and (eq_attr "type" "fcmov")
520 (define_insn_reservation "athlon_fcmov" 7 519 (define_insn_reservation "athlon_fcmov" 7
521 (and (eq_attr "cpu" "athlon") 520 (and (eq_attr "cpu" "athlon")
522 (eq_attr "type" "fcmov")) 521 (eq_attr "type" "fcmov"))
523 "athlon-vector,athlon-fpsched,athlon-fvector") 522 "athlon-vector,athlon-fpsched,athlon-fvector")
524 (define_insn_reservation "athlon_fcmov_load_k8" 17 523 (define_insn_reservation "athlon_fcmov_load_k8" 17
525 (and (eq_attr "cpu" "k8,generic64,amdfam10") 524 (and (eq_attr "cpu" "k8,generic,amdfam10")
526 (and (eq_attr "type" "fcmov") 525 (and (eq_attr "type" "fcmov")
527 (eq_attr "memory" "load"))) 526 (eq_attr "memory" "load")))
528 "athlon-vector,athlon-fploadk8,athlon-fvector") 527 "athlon-vector,athlon-fploadk8,athlon-fvector")
529 (define_insn_reservation "athlon_fcmov_k8" 15 528 (define_insn_reservation "athlon_fcmov_k8" 15
530 (and (eq_attr "cpu" "k8,generic64,amdfam10") 529 (and (eq_attr "cpu" "k8,generic,amdfam10")
531 (eq_attr "type" "fcmov")) 530 (eq_attr "type" "fcmov"))
532 "athlon-vector,athlon-fpsched,athlon-fvector") 531 "athlon-vector,athlon-fpsched,athlon-fvector")
533 ;; fcomi is vector decoded by uses only one pipe. 532 ;; fcomi is vector decoded by uses only one pipe.
534 (define_insn_reservation "athlon_fcomi_load" 3 533 (define_insn_reservation "athlon_fcomi_load" 3
535 (and (eq_attr "cpu" "athlon") 534 (and (eq_attr "cpu" "athlon")
536 (and (eq_attr "type" "fcmp") 535 (and (eq_attr "type" "fcmp")
537 (and (eq_attr "athlon_decode" "vector") 536 (and (eq_attr "athlon_decode" "vector")
538 (eq_attr "memory" "load")))) 537 (eq_attr "memory" "load"))))
539 "athlon-vector,athlon-fpload,athlon-fadd") 538 "athlon-vector,athlon-fpload,athlon-fadd")
540 (define_insn_reservation "athlon_fcomi_load_k8" 5 539 (define_insn_reservation "athlon_fcomi_load_k8" 5
541 (and (eq_attr "cpu" "k8,generic64,amdfam10") 540 (and (eq_attr "cpu" "k8,generic,amdfam10")
542 (and (eq_attr "type" "fcmp") 541 (and (eq_attr "type" "fcmp")
543 (and (eq_attr "athlon_decode" "vector") 542 (and (eq_attr "athlon_decode" "vector")
544 (eq_attr "memory" "load")))) 543 (eq_attr "memory" "load"))))
545 "athlon-vector,athlon-fploadk8,athlon-fadd") 544 "athlon-vector,athlon-fploadk8,athlon-fadd")
546 (define_insn_reservation "athlon_fcomi" 3 545 (define_insn_reservation "athlon_fcomi" 3
547 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 546 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
548 (and (eq_attr "athlon_decode" "vector") 547 (and (eq_attr "athlon_decode" "vector")
549 (eq_attr "type" "fcmp"))) 548 (eq_attr "type" "fcmp")))
550 "athlon-vector,athlon-fpsched,athlon-fadd") 549 "athlon-vector,athlon-fpsched,athlon-fadd")
551 (define_insn_reservation "athlon_fcom_load" 2 550 (define_insn_reservation "athlon_fcom_load" 2
552 (and (eq_attr "cpu" "athlon") 551 (and (eq_attr "cpu" "athlon")
553 (and (eq_attr "type" "fcmp") 552 (and (eq_attr "type" "fcmp")
554 (eq_attr "memory" "load"))) 553 (eq_attr "memory" "load")))
555 "athlon-direct,athlon-fpload,athlon-fadd") 554 "athlon-direct,athlon-fpload,athlon-fadd")
556 (define_insn_reservation "athlon_fcom_load_k8" 4 555 (define_insn_reservation "athlon_fcom_load_k8" 4
557 (and (eq_attr "cpu" "k8,generic64,amdfam10") 556 (and (eq_attr "cpu" "k8,generic,amdfam10")
558 (and (eq_attr "type" "fcmp") 557 (and (eq_attr "type" "fcmp")
559 (eq_attr "memory" "load"))) 558 (eq_attr "memory" "load")))
560 "athlon-direct,athlon-fploadk8,athlon-fadd") 559 "athlon-direct,athlon-fploadk8,athlon-fadd")
561 (define_insn_reservation "athlon_fcom" 2 560 (define_insn_reservation "athlon_fcom" 2
562 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 561 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
563 (eq_attr "type" "fcmp")) 562 (eq_attr "type" "fcmp"))
564 "athlon-direct,athlon-fpsched,athlon-fadd") 563 "athlon-direct,athlon-fpsched,athlon-fadd")
565 ;; Never seen by the scheduler because we still don't do post reg-stack 564 ;; Never seen by the scheduler because we still don't do post reg-stack
566 ;; scheduling. 565 ;; scheduling.
567 ;(define_insn_reservation "athlon_fxch" 2 566 ;(define_insn_reservation "athlon_fxch" 2
568 ; (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 567 ; (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
569 ; (eq_attr "type" "fxch")) 568 ; (eq_attr "type" "fxch"))
570 ; "athlon-direct,athlon-fpsched,athlon-fany") 569 ; "athlon-direct,athlon-fpsched,athlon-fany")
571 570
572 ;; Athlon handle MMX operations in the FPU unit with shorter latencies 571 ;; Athlon handle MMX operations in the FPU unit with shorter latencies
573 572
574 (define_insn_reservation "athlon_movlpd_load" 0 573 (define_insn_reservation "athlon_movlpd_load" 0
575 (and (eq_attr "cpu" "athlon") 574 (and (eq_attr "cpu" "athlon")
576 (and (eq_attr "type" "ssemov") 575 (and (eq_attr "type" "ssemov")
577 (match_operand:DF 1 "memory_operand" ""))) 576 (match_operand:DF 1 "memory_operand")))
578 "athlon-direct,athlon-fpload,athlon-fany") 577 "athlon-direct,athlon-fpload,athlon-fany")
579 (define_insn_reservation "athlon_movlpd_load_k8" 2 578 (define_insn_reservation "athlon_movlpd_load_k8" 2
580 (and (eq_attr "cpu" "k8") 579 (and (eq_attr "cpu" "k8")
581 (and (eq_attr "type" "ssemov") 580 (and (eq_attr "type" "ssemov")
582 (match_operand:DF 1 "memory_operand" ""))) 581 (match_operand:DF 1 "memory_operand")))
583 "athlon-direct,athlon-fploadk8,athlon-fstore") 582 "athlon-direct,athlon-fploadk8,athlon-fstore")
584 (define_insn_reservation "athlon_movsd_load_generic64" 2 583 (define_insn_reservation "athlon_movsd_load_generic" 2
585 (and (eq_attr "cpu" "generic64") 584 (and (eq_attr "cpu" "generic")
586 (and (eq_attr "type" "ssemov") 585 (and (eq_attr "type" "ssemov")
587 (match_operand:DF 1 "memory_operand" ""))) 586 (match_operand:DF 1 "memory_operand")))
588 "athlon-double,athlon-fploadk8,(athlon-fstore+athlon-fmul)") 587 "athlon-double,athlon-fploadk8,(athlon-fstore+athlon-fmul)")
589 (define_insn_reservation "athlon_movaps_load_k8" 2 588 (define_insn_reservation "athlon_movaps_load_k8" 2
590 (and (eq_attr "cpu" "k8,generic64") 589 (and (eq_attr "cpu" "k8,generic")
591 (and (eq_attr "type" "ssemov") 590 (and (eq_attr "type" "ssemov")
592 (and (eq_attr "mode" "V4SF,V2DF,TI") 591 (and (eq_attr "mode" "V4SF,V2DF,TI")
593 (eq_attr "memory" "load")))) 592 (eq_attr "memory" "load"))))
594 "athlon-double,athlon-fpload2k8,athlon-fstore,athlon-fstore") 593 "athlon-double,athlon-fpload2k8,athlon-fstore,athlon-fstore")
595 (define_insn_reservation "athlon_movaps_load" 0 594 (define_insn_reservation "athlon_movaps_load" 0
603 (and (eq_attr "type" "ssemov") 602 (and (eq_attr "type" "ssemov")
604 (and (eq_attr "mode" "SF,DI") 603 (and (eq_attr "mode" "SF,DI")
605 (eq_attr "memory" "load")))) 604 (eq_attr "memory" "load"))))
606 "athlon-vector,athlon-fpload,(athlon-fany*2)") 605 "athlon-vector,athlon-fpload,(athlon-fany*2)")
607 (define_insn_reservation "athlon_movss_load_k8" 1 606 (define_insn_reservation "athlon_movss_load_k8" 1
608 (and (eq_attr "cpu" "k8,generic64") 607 (and (eq_attr "cpu" "k8,generic")
609 (and (eq_attr "type" "ssemov") 608 (and (eq_attr "type" "ssemov")
610 (and (eq_attr "mode" "SF,DI") 609 (and (eq_attr "mode" "SF,DI")
611 (eq_attr "memory" "load")))) 610 (eq_attr "memory" "load"))))
612 "athlon-double,athlon-fploadk8,(athlon-fstore+athlon-fany)") 611 "athlon-double,athlon-fploadk8,(athlon-fstore+athlon-fany)")
613 (define_insn_reservation "athlon_mmxsseld" 0 612 (define_insn_reservation "athlon_mmxsseld" 0
614 (and (eq_attr "cpu" "athlon") 613 (and (eq_attr "cpu" "athlon")
615 (and (eq_attr "type" "mmxmov,ssemov") 614 (and (eq_attr "type" "mmxmov,ssemov")
616 (eq_attr "memory" "load"))) 615 (eq_attr "memory" "load")))
617 "athlon-direct,athlon-fpload,athlon-fany") 616 "athlon-direct,athlon-fpload,athlon-fany")
618 (define_insn_reservation "athlon_mmxsseld_k8" 2 617 (define_insn_reservation "athlon_mmxsseld_k8" 2
619 (and (eq_attr "cpu" "k8,generic64") 618 (and (eq_attr "cpu" "k8,generic")
620 (and (eq_attr "type" "mmxmov,ssemov") 619 (and (eq_attr "type" "mmxmov,ssemov")
621 (eq_attr "memory" "load"))) 620 (eq_attr "memory" "load")))
622 "athlon-direct,athlon-fploadk8,athlon-fstore") 621 "athlon-direct,athlon-fploadk8,athlon-fstore")
623 ;; On AMDFAM10 all double, single and integer packed and scalar SSEx data 622 ;; On AMDFAM10 all double, single and integer packed and scalar SSEx data
624 ;; loads generated are direct path, latency of 2 and do not use any FP 623 ;; loads generated are direct path, latency of 2 and do not use any FP
636 (and (eq_attr "cpu" "amdfam10") 635 (and (eq_attr "cpu" "amdfam10")
637 (and (eq_attr "type" "mmxmov") 636 (and (eq_attr "type" "mmxmov")
638 (eq_attr "memory" "load"))) 637 (eq_attr "memory" "load")))
639 "athlon-direct,athlon-fploadk8, athlon-fany") 638 "athlon-direct,athlon-fploadk8, athlon-fany")
640 (define_insn_reservation "athlon_mmxssest" 3 639 (define_insn_reservation "athlon_mmxssest" 3
641 (and (eq_attr "cpu" "k8,generic64") 640 (and (eq_attr "cpu" "k8,generic")
642 (and (eq_attr "type" "mmxmov,ssemov") 641 (and (eq_attr "type" "mmxmov,ssemov")
643 (and (eq_attr "mode" "V4SF,V2DF,TI") 642 (and (eq_attr "mode" "V4SF,V2DF,TI")
644 (eq_attr "memory" "store,both")))) 643 (eq_attr "memory" "store,both"))))
645 "athlon-vector,(athlon-fpsched+athlon-agu),((athlon-fstore+athlon-store2)*2)") 644 "athlon-vector,(athlon-fpsched+athlon-agu),((athlon-fstore+athlon-store2)*2)")
646 (define_insn_reservation "athlon_mmxssest_k8" 3 645 (define_insn_reservation "athlon_mmxssest_k8" 3
647 (and (eq_attr "cpu" "k8,generic64") 646 (and (eq_attr "cpu" "k8,generic")
648 (and (eq_attr "type" "mmxmov,ssemov") 647 (and (eq_attr "type" "mmxmov,ssemov")
649 (and (eq_attr "mode" "V4SF,V2DF,TI") 648 (and (eq_attr "mode" "V4SF,V2DF,TI")
650 (eq_attr "memory" "store,both")))) 649 (eq_attr "memory" "store,both"))))
651 "athlon-double,(athlon-fpsched+athlon-agu),((athlon-fstore+athlon-store2)*2)") 650 "athlon-double,(athlon-fpsched+athlon-agu),((athlon-fstore+athlon-store2)*2)")
652 (define_insn_reservation "athlon_mmxssest_short" 2 651 (define_insn_reservation "athlon_mmxssest_short" 2
653 (and (eq_attr "cpu" "athlon,k8,generic64") 652 (and (eq_attr "cpu" "athlon,k8,generic")
654 (and (eq_attr "type" "mmxmov,ssemov") 653 (and (eq_attr "type" "mmxmov,ssemov")
655 (eq_attr "memory" "store,both"))) 654 (eq_attr "memory" "store,both")))
656 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") 655 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)")
657 ;; On AMDFAM10 all double, single and integer packed SSEx data stores 656 ;; On AMDFAM10 all double, single and integer packed SSEx data stores
658 ;; generated are all double path, latency of 2 and use the FSTORE FP 657 ;; generated are all double path, latency of 2 and use the FSTORE FP
672 (and (eq_attr "cpu" "amdfam10") 671 (and (eq_attr "cpu" "amdfam10")
673 (and (eq_attr "type" "mmxmov,ssemov") 672 (and (eq_attr "type" "mmxmov,ssemov")
674 (eq_attr "memory" "store,both"))) 673 (eq_attr "memory" "store,both")))
675 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") 674 "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)")
676 (define_insn_reservation "athlon_movaps_k8" 2 675 (define_insn_reservation "athlon_movaps_k8" 2
677 (and (eq_attr "cpu" "k8,generic64") 676 (and (eq_attr "cpu" "k8,generic")
678 (and (eq_attr "type" "ssemov") 677 (and (eq_attr "type" "ssemov")
679 (eq_attr "mode" "V4SF,V2DF,TI"))) 678 (eq_attr "mode" "V4SF,V2DF,TI")))
680 "athlon-double,athlon-fpsched,((athlon-faddmul+athlon-faddmul) | (athlon-faddmul, athlon-faddmul))") 679 "athlon-double,athlon-fpsched,((athlon-faddmul+athlon-faddmul) | (athlon-faddmul, athlon-faddmul))")
681 (define_insn_reservation "athlon_movaps" 2 680 (define_insn_reservation "athlon_movaps" 2
682 (and (eq_attr "cpu" "athlon") 681 (and (eq_attr "cpu" "athlon")
683 (and (eq_attr "type" "ssemov") 682 (and (eq_attr "type" "ssemov")
684 (eq_attr "mode" "V4SF,V2DF,TI"))) 683 (eq_attr "mode" "V4SF,V2DF,TI")))
685 "athlon-vector,athlon-fpsched,(athlon-faddmul+athlon-faddmul)") 684 "athlon-vector,athlon-fpsched,(athlon-faddmul+athlon-faddmul)")
686 (define_insn_reservation "athlon_mmxssemov" 2 685 (define_insn_reservation "athlon_mmxssemov" 2
687 (and (eq_attr "cpu" "athlon,k8,generic64") 686 (and (eq_attr "cpu" "athlon,k8,generic")
688 (eq_attr "type" "mmxmov,ssemov")) 687 (eq_attr "type" "mmxmov,ssemov"))
689 "athlon-direct,athlon-fpsched,athlon-faddmul") 688 "athlon-direct,athlon-fpsched,athlon-faddmul")
690 (define_insn_reservation "athlon_mmxmul_load" 4 689 (define_insn_reservation "athlon_mmxmul_load" 4
691 (and (eq_attr "cpu" "athlon,k8,generic64") 690 (and (eq_attr "cpu" "athlon,k8,generic")
692 (and (eq_attr "type" "mmxmul") 691 (and (eq_attr "type" "mmxmul")
693 (eq_attr "memory" "load"))) 692 (eq_attr "memory" "load")))
694 "athlon-direct,athlon-fpload,athlon-fmul") 693 "athlon-direct,athlon-fpload,athlon-fmul")
695 (define_insn_reservation "athlon_mmxmul" 3 694 (define_insn_reservation "athlon_mmxmul" 3
696 (and (eq_attr "cpu" "athlon,k8,generic64") 695 (and (eq_attr "cpu" "athlon,k8,generic")
697 (eq_attr "type" "mmxmul")) 696 (eq_attr "type" "mmxmul"))
698 "athlon-direct,athlon-fpsched,athlon-fmul") 697 "athlon-direct,athlon-fpsched,athlon-fmul")
699 (define_insn_reservation "athlon_mmx_load" 3 698 (define_insn_reservation "athlon_mmx_load" 3
700 (and (eq_attr "cpu" "athlon,k8,generic64") 699 (and (eq_attr "cpu" "athlon,k8,generic")
701 (and (eq_attr "unit" "mmx") 700 (and (eq_attr "unit" "mmx")
702 (eq_attr "memory" "load"))) 701 (eq_attr "memory" "load")))
703 "athlon-direct,athlon-fpload,athlon-faddmul") 702 "athlon-direct,athlon-fpload,athlon-faddmul")
704 (define_insn_reservation "athlon_mmx" 2 703 (define_insn_reservation "athlon_mmx" 2
705 (and (eq_attr "cpu" "athlon,k8,generic64") 704 (and (eq_attr "cpu" "athlon,k8,generic")
706 (eq_attr "unit" "mmx")) 705 (eq_attr "unit" "mmx"))
707 "athlon-direct,athlon-fpsched,athlon-faddmul") 706 "athlon-direct,athlon-fpsched,athlon-faddmul")
708 ;; SSE operations are handled by the i387 unit as well. The latency 707 ;; SSE operations are handled by the i387 unit as well. The latency
709 ;; is same as for i387 operations for scalar operations 708 ;; is same as for i387 operations for scalar operations
710 709
711 (define_insn_reservation "athlon_sselog_load" 3 710 (define_insn_reservation "athlon_sselog_load" 3
712 (and (eq_attr "cpu" "athlon") 711 (and (eq_attr "cpu" "athlon")
713 (and (eq_attr "type" "sselog,sselog1") 712 (and (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1")
714 (eq_attr "memory" "load"))) 713 (eq_attr "memory" "load")))
715 "athlon-vector,athlon-fpload2,(athlon-fmul*2)") 714 "athlon-vector,athlon-fpload2,(athlon-fmul*2)")
716 (define_insn_reservation "athlon_sselog_load_k8" 5 715 (define_insn_reservation "athlon_sselog_load_k8" 5
717 (and (eq_attr "cpu" "k8,generic64") 716 (and (eq_attr "cpu" "k8,generic")
718 (and (eq_attr "type" "sselog,sselog1") 717 (and (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1")
719 (eq_attr "memory" "load"))) 718 (eq_attr "memory" "load")))
720 "athlon-double,athlon-fpload2k8,(athlon-fmul*2)") 719 "athlon-double,athlon-fpload2k8,(athlon-fmul*2)")
721 (define_insn_reservation "athlon_sselog_load_amdfam10" 4 720 (define_insn_reservation "athlon_sselog_load_amdfam10" 4
722 (and (eq_attr "cpu" "amdfam10") 721 (and (eq_attr "cpu" "amdfam10")
723 (and (eq_attr "type" "sselog,sselog1") 722 (and (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1")
724 (eq_attr "memory" "load"))) 723 (eq_attr "memory" "load")))
725 "athlon-direct,athlon-fploadk8,(athlon-fadd|athlon-fmul)") 724 "athlon-direct,athlon-fploadk8,(athlon-fadd|athlon-fmul)")
726 (define_insn_reservation "athlon_sselog" 3 725 (define_insn_reservation "athlon_sselog" 3
727 (and (eq_attr "cpu" "athlon") 726 (and (eq_attr "cpu" "athlon")
728 (eq_attr "type" "sselog,sselog1")) 727 (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1"))
729 "athlon-vector,athlon-fpsched,athlon-fmul*2") 728 "athlon-vector,athlon-fpsched,athlon-fmul*2")
730 (define_insn_reservation "athlon_sselog_k8" 3 729 (define_insn_reservation "athlon_sselog_k8" 3
731 (and (eq_attr "cpu" "k8,generic64") 730 (and (eq_attr "cpu" "k8,generic")
732 (eq_attr "type" "sselog,sselog1")) 731 (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1"))
733 "athlon-double,athlon-fpsched,athlon-fmul") 732 "athlon-double,athlon-fpsched,athlon-fmul")
734 (define_insn_reservation "athlon_sselog_amdfam10" 2 733 (define_insn_reservation "athlon_sselog_amdfam10" 2
735 (and (eq_attr "cpu" "amdfam10") 734 (and (eq_attr "cpu" "amdfam10")
736 (eq_attr "type" "sselog,sselog1")) 735 (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1"))
737 "athlon-direct,athlon-fpsched,(athlon-fadd|athlon-fmul)") 736 "athlon-direct,athlon-fpsched,(athlon-fadd|athlon-fmul)")
738 737
739 ;; ??? pcmp executes in addmul, probably not worthwhile to bother about that. 738 ;; ??? pcmp executes in addmul, probably not worthwhile to bother about that.
740 (define_insn_reservation "athlon_ssecmp_load" 2 739 (define_insn_reservation "athlon_ssecmp_load" 2
741 (and (eq_attr "cpu" "athlon") 740 (and (eq_attr "cpu" "athlon")
742 (and (eq_attr "type" "ssecmp") 741 (and (eq_attr "type" "ssecmp")
743 (and (eq_attr "mode" "SF,DF,DI") 742 (and (eq_attr "mode" "SF,DF,DI")
744 (eq_attr "memory" "load")))) 743 (eq_attr "memory" "load"))))
745 "athlon-direct,athlon-fpload,athlon-fadd") 744 "athlon-direct,athlon-fpload,athlon-fadd")
746 (define_insn_reservation "athlon_ssecmp_load_k8" 4 745 (define_insn_reservation "athlon_ssecmp_load_k8" 4
747 (and (eq_attr "cpu" "k8,generic64,amdfam10") 746 (and (eq_attr "cpu" "k8,generic,amdfam10")
748 (and (eq_attr "type" "ssecmp") 747 (and (eq_attr "type" "ssecmp")
749 (and (eq_attr "mode" "SF,DF,DI,TI") 748 (and (eq_attr "mode" "SF,DF,DI,TI")
750 (eq_attr "memory" "load")))) 749 (eq_attr "memory" "load"))))
751 "athlon-direct,athlon-fploadk8,athlon-fadd") 750 "athlon-direct,athlon-fploadk8,athlon-fadd")
752 (define_insn_reservation "athlon_ssecmp" 2 751 (define_insn_reservation "athlon_ssecmp" 2
753 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 752 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
754 (and (eq_attr "type" "ssecmp") 753 (and (eq_attr "type" "ssecmp")
755 (eq_attr "mode" "SF,DF,DI,TI"))) 754 (eq_attr "mode" "SF,DF,DI,TI")))
756 "athlon-direct,athlon-fpsched,athlon-fadd") 755 "athlon-direct,athlon-fpsched,athlon-fadd")
757 (define_insn_reservation "athlon_ssecmpvector_load" 3 756 (define_insn_reservation "athlon_ssecmpvector_load" 3
758 (and (eq_attr "cpu" "athlon") 757 (and (eq_attr "cpu" "athlon")
759 (and (eq_attr "type" "ssecmp") 758 (and (eq_attr "type" "ssecmp")
760 (eq_attr "memory" "load"))) 759 (eq_attr "memory" "load")))
761 "athlon-vector,athlon-fpload2,(athlon-fadd*2)") 760 "athlon-vector,athlon-fpload2,(athlon-fadd*2)")
762 (define_insn_reservation "athlon_ssecmpvector_load_k8" 5 761 (define_insn_reservation "athlon_ssecmpvector_load_k8" 5
763 (and (eq_attr "cpu" "k8,generic64") 762 (and (eq_attr "cpu" "k8,generic")
764 (and (eq_attr "type" "ssecmp") 763 (and (eq_attr "type" "ssecmp")
765 (eq_attr "memory" "load"))) 764 (eq_attr "memory" "load")))
766 "athlon-double,athlon-fpload2k8,(athlon-fadd*2)") 765 "athlon-double,athlon-fpload2k8,(athlon-fadd*2)")
767 (define_insn_reservation "athlon_ssecmpvector_load_amdfam10" 4 766 (define_insn_reservation "athlon_ssecmpvector_load_amdfam10" 4
768 (and (eq_attr "cpu" "amdfam10") 767 (and (eq_attr "cpu" "amdfam10")
772 (define_insn_reservation "athlon_ssecmpvector" 3 771 (define_insn_reservation "athlon_ssecmpvector" 3
773 (and (eq_attr "cpu" "athlon") 772 (and (eq_attr "cpu" "athlon")
774 (eq_attr "type" "ssecmp")) 773 (eq_attr "type" "ssecmp"))
775 "athlon-vector,athlon-fpsched,(athlon-fadd*2)") 774 "athlon-vector,athlon-fpsched,(athlon-fadd*2)")
776 (define_insn_reservation "athlon_ssecmpvector_k8" 3 775 (define_insn_reservation "athlon_ssecmpvector_k8" 3
777 (and (eq_attr "cpu" "k8,generic64") 776 (and (eq_attr "cpu" "k8,generic")
778 (eq_attr "type" "ssecmp")) 777 (eq_attr "type" "ssecmp"))
779 "athlon-double,athlon-fpsched,(athlon-fadd*2)") 778 "athlon-double,athlon-fpsched,(athlon-fadd*2)")
780 (define_insn_reservation "athlon_ssecmpvector_amdfam10" 2 779 (define_insn_reservation "athlon_ssecmpvector_amdfam10" 2
781 (and (eq_attr "cpu" "amdfam10") 780 (and (eq_attr "cpu" "amdfam10")
782 (eq_attr "type" "ssecmp")) 781 (eq_attr "type" "ssecmp"))
785 (and (eq_attr "cpu" "athlon") 784 (and (eq_attr "cpu" "athlon")
786 (and (eq_attr "type" "ssecomi") 785 (and (eq_attr "type" "ssecomi")
787 (eq_attr "memory" "load"))) 786 (eq_attr "memory" "load")))
788 "athlon-vector,athlon-fpload,athlon-fadd") 787 "athlon-vector,athlon-fpload,athlon-fadd")
789 (define_insn_reservation "athlon_ssecomi_load_k8" 6 788 (define_insn_reservation "athlon_ssecomi_load_k8" 6
790 (and (eq_attr "cpu" "k8,generic64") 789 (and (eq_attr "cpu" "k8,generic")
791 (and (eq_attr "type" "ssecomi") 790 (and (eq_attr "type" "ssecomi")
792 (eq_attr "memory" "load"))) 791 (eq_attr "memory" "load")))
793 "athlon-vector,athlon-fploadk8,athlon-fadd") 792 "athlon-vector,athlon-fploadk8,athlon-fadd")
794 (define_insn_reservation "athlon_ssecomi_load_amdfam10" 5 793 (define_insn_reservation "athlon_ssecomi_load_amdfam10" 5
795 (and (eq_attr "cpu" "amdfam10") 794 (and (eq_attr "cpu" "amdfam10")
796 (and (eq_attr "type" "ssecomi") 795 (and (eq_attr "type" "ssecomi")
797 (eq_attr "memory" "load"))) 796 (eq_attr "memory" "load")))
798 "athlon-direct,athlon-fploadk8,athlon-fadd") 797 "athlon-direct,athlon-fploadk8,athlon-fadd")
799 (define_insn_reservation "athlon_ssecomi" 4 798 (define_insn_reservation "athlon_ssecomi" 4
800 (and (eq_attr "cpu" "athlon,k8,generic64") 799 (and (eq_attr "cpu" "athlon,k8,generic")
801 (eq_attr "type" "ssecmp")) 800 (eq_attr "type" "ssecomi"))
802 "athlon-vector,athlon-fpsched,athlon-fadd") 801 "athlon-vector,athlon-fpsched,athlon-fadd")
803 (define_insn_reservation "athlon_ssecomi_amdfam10" 3 802 (define_insn_reservation "athlon_ssecomi_amdfam10" 3
804 (and (eq_attr "cpu" "amdfam10") 803 (and (eq_attr "cpu" "amdfam10")
805 ;; It seems athlon_ssecomi has a bug in the attr_type, fixed for amdfam10 804 ;; It seems athlon_ssecomi has a bug in the attr_type, fixed for amdfam10
806 (eq_attr "type" "ssecomi")) 805 (eq_attr "type" "ssecomi"))
807 "athlon-direct,athlon-fpsched,athlon-fadd") 806 "athlon-direct,athlon-fpsched,athlon-fadd")
808 (define_insn_reservation "athlon_sseadd_load" 4 807 (define_insn_reservation "athlon_sseadd_load" 4
809 (and (eq_attr "cpu" "athlon") 808 (and (eq_attr "cpu" "athlon")
810 (and (eq_attr "type" "sseadd") 809 (and (eq_attr "type" "sseadd,sseadd1")
811 (and (eq_attr "mode" "SF,DF,DI") 810 (and (eq_attr "mode" "SF,DF,DI")
812 (eq_attr "memory" "load")))) 811 (eq_attr "memory" "load"))))
813 "athlon-direct,athlon-fpload,athlon-fadd") 812 "athlon-direct,athlon-fpload,athlon-fadd")
814 (define_insn_reservation "athlon_sseadd_load_k8" 6 813 (define_insn_reservation "athlon_sseadd_load_k8" 6
815 (and (eq_attr "cpu" "k8,generic64,amdfam10") 814 (and (eq_attr "cpu" "k8,generic,amdfam10")
816 (and (eq_attr "type" "sseadd") 815 (and (eq_attr "type" "sseadd,sseadd1")
817 (and (eq_attr "mode" "SF,DF,DI") 816 (and (eq_attr "mode" "SF,DF,DI")
818 (eq_attr "memory" "load")))) 817 (eq_attr "memory" "load"))))
819 "athlon-direct,athlon-fploadk8,athlon-fadd") 818 "athlon-direct,athlon-fploadk8,athlon-fadd")
820 (define_insn_reservation "athlon_sseadd" 4 819 (define_insn_reservation "athlon_sseadd" 4
821 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 820 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
822 (and (eq_attr "type" "sseadd") 821 (and (eq_attr "type" "sseadd,sseadd1")
823 (eq_attr "mode" "SF,DF,DI"))) 822 (eq_attr "mode" "SF,DF,DI")))
824 "athlon-direct,athlon-fpsched,athlon-fadd") 823 "athlon-direct,athlon-fpsched,athlon-fadd")
825 (define_insn_reservation "athlon_sseaddvector_load" 5 824 (define_insn_reservation "athlon_sseaddvector_load" 5
826 (and (eq_attr "cpu" "athlon") 825 (and (eq_attr "cpu" "athlon")
827 (and (eq_attr "type" "sseadd") 826 (and (eq_attr "type" "sseadd,sseadd1")
828 (eq_attr "memory" "load"))) 827 (eq_attr "memory" "load")))
829 "athlon-vector,athlon-fpload2,(athlon-fadd*2)") 828 "athlon-vector,athlon-fpload2,(athlon-fadd*2)")
830 (define_insn_reservation "athlon_sseaddvector_load_k8" 7 829 (define_insn_reservation "athlon_sseaddvector_load_k8" 7
831 (and (eq_attr "cpu" "k8,generic64") 830 (and (eq_attr "cpu" "k8,generic")
832 (and (eq_attr "type" "sseadd") 831 (and (eq_attr "type" "sseadd,sseadd1")
833 (eq_attr "memory" "load"))) 832 (eq_attr "memory" "load")))
834 "athlon-double,athlon-fpload2k8,(athlon-fadd*2)") 833 "athlon-double,athlon-fpload2k8,(athlon-fadd*2)")
835 (define_insn_reservation "athlon_sseaddvector_load_amdfam10" 6 834 (define_insn_reservation "athlon_sseaddvector_load_amdfam10" 6
836 (and (eq_attr "cpu" "amdfam10") 835 (and (eq_attr "cpu" "amdfam10")
837 (and (eq_attr "type" "sseadd") 836 (and (eq_attr "type" "sseadd,sseadd1")
838 (eq_attr "memory" "load"))) 837 (eq_attr "memory" "load")))
839 "athlon-direct,athlon-fploadk8,athlon-fadd") 838 "athlon-direct,athlon-fploadk8,athlon-fadd")
840 (define_insn_reservation "athlon_sseaddvector" 5 839 (define_insn_reservation "athlon_sseaddvector" 5
841 (and (eq_attr "cpu" "athlon") 840 (and (eq_attr "cpu" "athlon")
842 (eq_attr "type" "sseadd")) 841 (eq_attr "type" "sseadd,sseadd1"))
843 "athlon-vector,athlon-fpsched,(athlon-fadd*2)") 842 "athlon-vector,athlon-fpsched,(athlon-fadd*2)")
844 (define_insn_reservation "athlon_sseaddvector_k8" 5 843 (define_insn_reservation "athlon_sseaddvector_k8" 5
845 (and (eq_attr "cpu" "k8,generic64") 844 (and (eq_attr "cpu" "k8,generic")
846 (eq_attr "type" "sseadd")) 845 (eq_attr "type" "sseadd,sseadd1"))
847 "athlon-double,athlon-fpsched,(athlon-fadd*2)") 846 "athlon-double,athlon-fpsched,(athlon-fadd*2)")
848 (define_insn_reservation "athlon_sseaddvector_amdfam10" 4 847 (define_insn_reservation "athlon_sseaddvector_amdfam10" 4
849 (and (eq_attr "cpu" "amdfam10") 848 (and (eq_attr "cpu" "amdfam10")
850 (eq_attr "type" "sseadd")) 849 (eq_attr "type" "sseadd,sseadd1"))
851 "athlon-direct,athlon-fpsched,athlon-fadd") 850 "athlon-direct,athlon-fpsched,athlon-fadd")
852 851
853 ;; Conversions behaves very irregularly and the scheduling is critical here. 852 ;; Conversions behaves very irregularly and the scheduling is critical here.
854 ;; Take each instruction separately. Assume that the mode is always set to the 853 ;; Take each instruction separately. Assume that the mode is always set to the
855 ;; destination one and athlon_decode is set to the K8 versions. 854 ;; destination one and athlon_decode is set to the K8 versions.
856 855
857 ;; cvtss2sd 856 ;; cvtss2sd
858 (define_insn_reservation "athlon_ssecvt_cvtss2sd_load_k8" 4 857 (define_insn_reservation "athlon_ssecvt_cvtss2sd_load_k8" 4
859 (and (eq_attr "cpu" "k8,athlon,generic64") 858 (and (eq_attr "cpu" "k8,athlon,generic")
860 (and (eq_attr "type" "ssecvt") 859 (and (eq_attr "type" "ssecvt")
861 (and (eq_attr "athlon_decode" "direct") 860 (and (eq_attr "athlon_decode" "direct")
862 (and (eq_attr "mode" "DF") 861 (and (eq_attr "mode" "DF")
863 (eq_attr "memory" "load"))))) 862 (eq_attr "memory" "load")))))
864 "athlon-direct,athlon-fploadk8,athlon-fstore") 863 "athlon-direct,athlon-fploadk8,athlon-fstore")
868 (and (eq_attr "amdfam10_decode" "double") 867 (and (eq_attr "amdfam10_decode" "double")
869 (and (eq_attr "mode" "DF") 868 (and (eq_attr "mode" "DF")
870 (eq_attr "memory" "load"))))) 869 (eq_attr "memory" "load")))))
871 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") 870 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)")
872 (define_insn_reservation "athlon_ssecvt_cvtss2sd" 2 871 (define_insn_reservation "athlon_ssecvt_cvtss2sd" 2
873 (and (eq_attr "cpu" "athlon,k8,generic64") 872 (and (eq_attr "cpu" "athlon,k8,generic")
874 (and (eq_attr "type" "ssecvt") 873 (and (eq_attr "type" "ssecvt")
875 (and (eq_attr "athlon_decode" "direct") 874 (and (eq_attr "athlon_decode" "direct")
876 (eq_attr "mode" "DF")))) 875 (eq_attr "mode" "DF"))))
877 "athlon-direct,athlon-fpsched,athlon-fstore") 876 "athlon-direct,athlon-fpsched,athlon-fstore")
878 (define_insn_reservation "athlon_ssecvt_cvtss2sd_amdfam10" 7 877 (define_insn_reservation "athlon_ssecvt_cvtss2sd_amdfam10" 7
881 (and (eq_attr "amdfam10_decode" "vector") 880 (and (eq_attr "amdfam10_decode" "vector")
882 (eq_attr "mode" "DF")))) 881 (eq_attr "mode" "DF"))))
883 "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)") 882 "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)")
884 ;; cvtps2pd. Model same way the other double decoded FP conversions. 883 ;; cvtps2pd. Model same way the other double decoded FP conversions.
885 (define_insn_reservation "athlon_ssecvt_cvtps2pd_load_k8" 5 884 (define_insn_reservation "athlon_ssecvt_cvtps2pd_load_k8" 5
886 (and (eq_attr "cpu" "k8,athlon,generic64") 885 (and (eq_attr "cpu" "k8,athlon,generic")
887 (and (eq_attr "type" "ssecvt") 886 (and (eq_attr "type" "ssecvt")
888 (and (eq_attr "athlon_decode" "double") 887 (and (eq_attr "athlon_decode" "double")
889 (and (eq_attr "mode" "V2DF,V4SF,TI") 888 (and (eq_attr "mode" "V2DF,V4SF,TI")
890 (eq_attr "memory" "load"))))) 889 (eq_attr "memory" "load")))))
891 "athlon-double,athlon-fpload2k8,(athlon-fstore*2)") 890 "athlon-double,athlon-fpload2k8,(athlon-fstore*2)")
895 (and (eq_attr "amdfam10_decode" "direct") 894 (and (eq_attr "amdfam10_decode" "direct")
896 (and (eq_attr "mode" "V2DF,V4SF,TI") 895 (and (eq_attr "mode" "V2DF,V4SF,TI")
897 (eq_attr "memory" "load"))))) 896 (eq_attr "memory" "load")))))
898 "athlon-direct,athlon-fploadk8,athlon-fstore") 897 "athlon-direct,athlon-fploadk8,athlon-fstore")
899 (define_insn_reservation "athlon_ssecvt_cvtps2pd_k8" 3 898 (define_insn_reservation "athlon_ssecvt_cvtps2pd_k8" 3
900 (and (eq_attr "cpu" "k8,athlon,generic64") 899 (and (eq_attr "cpu" "k8,athlon,generic")
901 (and (eq_attr "type" "ssecvt") 900 (and (eq_attr "type" "ssecvt")
902 (and (eq_attr "athlon_decode" "double") 901 (and (eq_attr "athlon_decode" "double")
903 (eq_attr "mode" "V2DF,V4SF,TI")))) 902 (eq_attr "mode" "V2DF,V4SF,TI"))))
904 "athlon-double,athlon-fpsched,athlon-fstore,athlon-fstore") 903 "athlon-double,athlon-fpsched,athlon-fstore,athlon-fstore")
905 (define_insn_reservation "athlon_ssecvt_cvtps2pd_amdfam10" 2 904 (define_insn_reservation "athlon_ssecvt_cvtps2pd_amdfam10" 2
931 (and (eq_attr "athlon_decode" "double") 930 (and (eq_attr "athlon_decode" "double")
932 (and (eq_attr "mode" "SF,DF") 931 (and (eq_attr "mode" "SF,DF")
933 (eq_attr "memory" "load"))))) 932 (eq_attr "memory" "load")))))
934 "athlon-vector,athlon-fpload,(athlon-fstore*2)") 933 "athlon-vector,athlon-fpload,(athlon-fstore*2)")
935 (define_insn_reservation "athlon_sseicvt_cvtsi2ss_load_k8" 9 934 (define_insn_reservation "athlon_sseicvt_cvtsi2ss_load_k8" 9
936 (and (eq_attr "cpu" "k8,generic64") 935 (and (eq_attr "cpu" "k8,generic")
937 (and (eq_attr "type" "sseicvt") 936 (and (eq_attr "type" "sseicvt")
938 (and (eq_attr "athlon_decode" "double") 937 (and (eq_attr "athlon_decode" "double")
939 (and (eq_attr "mode" "SF,DF") 938 (and (eq_attr "mode" "SF,DF")
940 (eq_attr "memory" "load"))))) 939 (eq_attr "memory" "load")))))
941 "athlon-double,athlon-fploadk8,(athlon-fstore*2)") 940 "athlon-double,athlon-fploadk8,(athlon-fstore*2)")
946 (and (eq_attr "mode" "SF,DF") 945 (and (eq_attr "mode" "SF,DF")
947 (eq_attr "memory" "load"))))) 946 (eq_attr "memory" "load")))))
948 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") 947 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)")
949 ;; cvtsi2sd reg,reg is double decoded (vector on Athlon) 948 ;; cvtsi2sd reg,reg is double decoded (vector on Athlon)
950 (define_insn_reservation "athlon_sseicvt_cvtsi2sd_k8" 11 949 (define_insn_reservation "athlon_sseicvt_cvtsi2sd_k8" 11
951 (and (eq_attr "cpu" "k8,athlon,generic64") 950 (and (eq_attr "cpu" "k8,athlon,generic")
952 (and (eq_attr "type" "sseicvt") 951 (and (eq_attr "type" "sseicvt")
953 (and (eq_attr "athlon_decode" "double") 952 (and (eq_attr "athlon_decode" "double")
954 (and (eq_attr "mode" "SF,DF") 953 (and (eq_attr "mode" "SF,DF")
955 (eq_attr "memory" "none"))))) 954 (eq_attr "memory" "none")))))
956 "athlon-double,athlon-fploadk8,athlon-fstore") 955 "athlon-double,athlon-fploadk8,athlon-fstore")
961 (and (eq_attr "mode" "SF,DF") 960 (and (eq_attr "mode" "SF,DF")
962 (eq_attr "memory" "none"))))) 961 (eq_attr "memory" "none")))))
963 "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") 962 "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)")
964 ;; cvtsi2ss reg, reg is doublepath 963 ;; cvtsi2ss reg, reg is doublepath
965 (define_insn_reservation "athlon_sseicvt_cvtsi2ss" 14 964 (define_insn_reservation "athlon_sseicvt_cvtsi2ss" 14
966 (and (eq_attr "cpu" "athlon,k8,generic64") 965 (and (eq_attr "cpu" "athlon,k8,generic")
967 (and (eq_attr "type" "sseicvt") 966 (and (eq_attr "type" "sseicvt")
968 (and (eq_attr "athlon_decode" "vector") 967 (and (eq_attr "athlon_decode" "vector")
969 (and (eq_attr "mode" "SF,DF") 968 (and (eq_attr "mode" "SF,DF")
970 (eq_attr "memory" "none"))))) 969 (eq_attr "memory" "none")))))
971 "athlon-vector,athlon-fploadk8,(athlon-fvector*2)") 970 "athlon-vector,athlon-fploadk8,(athlon-fvector*2)")
976 (and (eq_attr "mode" "SF,DF") 975 (and (eq_attr "mode" "SF,DF")
977 (eq_attr "memory" "none"))))) 976 (eq_attr "memory" "none")))))
978 "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") 977 "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)")
979 ;; cvtsd2ss mem,reg is doublepath, troughput unknown, latency 9 978 ;; cvtsd2ss mem,reg is doublepath, troughput unknown, latency 9
980 (define_insn_reservation "athlon_ssecvt_cvtsd2ss_load_k8" 9 979 (define_insn_reservation "athlon_ssecvt_cvtsd2ss_load_k8" 9
981 (and (eq_attr "cpu" "k8,athlon,generic64") 980 (and (eq_attr "cpu" "k8,athlon,generic")
982 (and (eq_attr "type" "ssecvt") 981 (and (eq_attr "type" "ssecvt")
983 (and (eq_attr "athlon_decode" "double") 982 (and (eq_attr "athlon_decode" "double")
984 (and (eq_attr "mode" "SF") 983 (and (eq_attr "mode" "SF")
985 (eq_attr "memory" "load"))))) 984 (eq_attr "memory" "load")))))
986 "athlon-double,athlon-fploadk8,(athlon-fstore*3)") 985 "athlon-double,athlon-fploadk8,(athlon-fstore*3)")
991 (and (eq_attr "mode" "SF") 990 (and (eq_attr "mode" "SF")
992 (eq_attr "memory" "load"))))) 991 (eq_attr "memory" "load")))))
993 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") 992 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)")
994 ;; cvtsd2ss reg,reg is vectorpath, troughput unknown, latency 12 993 ;; cvtsd2ss reg,reg is vectorpath, troughput unknown, latency 12
995 (define_insn_reservation "athlon_ssecvt_cvtsd2ss" 12 994 (define_insn_reservation "athlon_ssecvt_cvtsd2ss" 12
996 (and (eq_attr "cpu" "athlon,k8,generic64") 995 (and (eq_attr "cpu" "athlon,k8,generic")
997 (and (eq_attr "type" "ssecvt") 996 (and (eq_attr "type" "ssecvt")
998 (and (eq_attr "athlon_decode" "vector") 997 (and (eq_attr "athlon_decode" "vector")
999 (and (eq_attr "mode" "SF") 998 (and (eq_attr "mode" "SF")
1000 (eq_attr "memory" "none"))))) 999 (eq_attr "memory" "none")))))
1001 "athlon-vector,athlon-fpsched,(athlon-fvector*3)") 1000 "athlon-vector,athlon-fpsched,(athlon-fvector*3)")
1005 (and (eq_attr "amdfam10_decode" "vector") 1004 (and (eq_attr "amdfam10_decode" "vector")
1006 (and (eq_attr "mode" "SF") 1005 (and (eq_attr "mode" "SF")
1007 (eq_attr "memory" "none"))))) 1006 (eq_attr "memory" "none")))))
1008 "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)") 1007 "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)")
1009 (define_insn_reservation "athlon_ssecvt_cvtpd2ps_load_k8" 8 1008 (define_insn_reservation "athlon_ssecvt_cvtpd2ps_load_k8" 8
1010 (and (eq_attr "cpu" "athlon,k8,generic64") 1009 (and (eq_attr "cpu" "athlon,k8,generic")
1011 (and (eq_attr "type" "ssecvt") 1010 (and (eq_attr "type" "ssecvt")
1012 (and (eq_attr "athlon_decode" "vector") 1011 (and (eq_attr "athlon_decode" "vector")
1013 (and (eq_attr "mode" "V4SF,V2DF,TI") 1012 (and (eq_attr "mode" "V4SF,V2DF,TI")
1014 (eq_attr "memory" "load"))))) 1013 (eq_attr "memory" "load")))))
1015 "athlon-double,athlon-fpload2k8,(athlon-fstore*3)") 1014 "athlon-double,athlon-fpload2k8,(athlon-fstore*3)")
1021 (eq_attr "memory" "load"))))) 1020 (eq_attr "memory" "load")))))
1022 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") 1021 "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)")
1023 ;; cvtpd2ps mem,reg is vectorpath, troughput unknown, latency 10 1022 ;; cvtpd2ps mem,reg is vectorpath, troughput unknown, latency 10
1024 ;; ??? Why it is fater than cvtsd2ss? 1023 ;; ??? Why it is fater than cvtsd2ss?
1025 (define_insn_reservation "athlon_ssecvt_cvtpd2ps" 8 1024 (define_insn_reservation "athlon_ssecvt_cvtpd2ps" 8
1026 (and (eq_attr "cpu" "athlon,k8,generic64") 1025 (and (eq_attr "cpu" "athlon,k8,generic")
1027 (and (eq_attr "type" "ssecvt") 1026 (and (eq_attr "type" "ssecvt")
1028 (and (eq_attr "athlon_decode" "vector") 1027 (and (eq_attr "athlon_decode" "vector")
1029 (and (eq_attr "mode" "V4SF,V2DF,TI") 1028 (and (eq_attr "mode" "V4SF,V2DF,TI")
1030 (eq_attr "memory" "none"))))) 1029 (eq_attr "memory" "none")))))
1031 "athlon-vector,athlon-fpsched,athlon-fvector*2") 1030 "athlon-vector,athlon-fpsched,athlon-fvector*2")
1036 (and (eq_attr "mode" "V4SF,V2DF,TI") 1035 (and (eq_attr "mode" "V4SF,V2DF,TI")
1037 (eq_attr "memory" "none"))))) 1036 (eq_attr "memory" "none")))))
1038 "athlon-double,athlon-fpsched,(athlon-faddmul+athlon-fstore)") 1037 "athlon-double,athlon-fpsched,(athlon-faddmul+athlon-fstore)")
1039 ;; cvtsd2si mem,reg is doublepath, troughput 1, latency 9 1038 ;; cvtsd2si mem,reg is doublepath, troughput 1, latency 9
1040 (define_insn_reservation "athlon_secvt_cvtsX2si_load" 9 1039 (define_insn_reservation "athlon_secvt_cvtsX2si_load" 9
1041 (and (eq_attr "cpu" "athlon,k8,generic64") 1040 (and (eq_attr "cpu" "athlon,k8,generic")
1042 (and (eq_attr "type" "sseicvt") 1041 (and (eq_attr "type" "sseicvt")
1043 (and (eq_attr "athlon_decode" "vector") 1042 (and (eq_attr "athlon_decode" "vector")
1044 (and (eq_attr "mode" "SI,DI") 1043 (and (eq_attr "mode" "SI,DI")
1045 (eq_attr "memory" "load"))))) 1044 (eq_attr "memory" "load")))))
1046 "athlon-vector,athlon-fploadk8,athlon-fvector") 1045 "athlon-vector,athlon-fploadk8,athlon-fvector")
1058 (and (eq_attr "athlon_decode" "double") 1057 (and (eq_attr "athlon_decode" "double")
1059 (and (eq_attr "mode" "SI,DI") 1058 (and (eq_attr "mode" "SI,DI")
1060 (eq_attr "memory" "none"))))) 1059 (eq_attr "memory" "none")))))
1061 "athlon-vector,athlon-fpsched,athlon-fvector") 1060 "athlon-vector,athlon-fpsched,athlon-fvector")
1062 (define_insn_reservation "athlon_ssecvt_cvtsX2si_k8" 9 1061 (define_insn_reservation "athlon_ssecvt_cvtsX2si_k8" 9
1063 (and (eq_attr "cpu" "k8,generic64") 1062 (and (eq_attr "cpu" "k8,generic")
1064 (and (eq_attr "type" "sseicvt") 1063 (and (eq_attr "type" "sseicvt")
1065 (and (eq_attr "athlon_decode" "double") 1064 (and (eq_attr "athlon_decode" "double")
1066 (and (eq_attr "mode" "SI,DI") 1065 (and (eq_attr "mode" "SI,DI")
1067 (eq_attr "memory" "none"))))) 1066 (eq_attr "memory" "none")))))
1068 "athlon-double,athlon-fpsched,athlon-fstore") 1067 "athlon-double,athlon-fpsched,athlon-fstore")
1096 (and (eq_attr "type" "ssemul") 1095 (and (eq_attr "type" "ssemul")
1097 (and (eq_attr "mode" "SF,DF") 1096 (and (eq_attr "mode" "SF,DF")
1098 (eq_attr "memory" "load")))) 1097 (eq_attr "memory" "load"))))
1099 "athlon-direct,athlon-fpload,athlon-fmul") 1098 "athlon-direct,athlon-fpload,athlon-fmul")
1100 (define_insn_reservation "athlon_ssemul_load_k8" 6 1099 (define_insn_reservation "athlon_ssemul_load_k8" 6
1101 (and (eq_attr "cpu" "k8,generic64,amdfam10") 1100 (and (eq_attr "cpu" "k8,generic,amdfam10")
1102 (and (eq_attr "type" "ssemul") 1101 (and (eq_attr "type" "ssemul")
1103 (and (eq_attr "mode" "SF,DF") 1102 (and (eq_attr "mode" "SF,DF")
1104 (eq_attr "memory" "load")))) 1103 (eq_attr "memory" "load"))))
1105 "athlon-direct,athlon-fploadk8,athlon-fmul") 1104 "athlon-direct,athlon-fploadk8,athlon-fmul")
1106 (define_insn_reservation "athlon_ssemul" 4 1105 (define_insn_reservation "athlon_ssemul" 4
1107 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 1106 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
1108 (and (eq_attr "type" "ssemul") 1107 (and (eq_attr "type" "ssemul")
1109 (eq_attr "mode" "SF,DF"))) 1108 (eq_attr "mode" "SF,DF")))
1110 "athlon-direct,athlon-fpsched,athlon-fmul") 1109 "athlon-direct,athlon-fpsched,athlon-fmul")
1111 (define_insn_reservation "athlon_ssemulvector_load" 5 1110 (define_insn_reservation "athlon_ssemulvector_load" 5
1112 (and (eq_attr "cpu" "athlon") 1111 (and (eq_attr "cpu" "athlon")
1113 (and (eq_attr "type" "ssemul") 1112 (and (eq_attr "type" "ssemul")
1114 (eq_attr "memory" "load"))) 1113 (eq_attr "memory" "load")))
1115 "athlon-vector,athlon-fpload2,(athlon-fmul*2)") 1114 "athlon-vector,athlon-fpload2,(athlon-fmul*2)")
1116 (define_insn_reservation "athlon_ssemulvector_load_k8" 7 1115 (define_insn_reservation "athlon_ssemulvector_load_k8" 7
1117 (and (eq_attr "cpu" "k8,generic64") 1116 (and (eq_attr "cpu" "k8,generic")
1118 (and (eq_attr "type" "ssemul") 1117 (and (eq_attr "type" "ssemul")
1119 (eq_attr "memory" "load"))) 1118 (eq_attr "memory" "load")))
1120 "athlon-double,athlon-fpload2k8,(athlon-fmul*2)") 1119 "athlon-double,athlon-fpload2k8,(athlon-fmul*2)")
1121 (define_insn_reservation "athlon_ssemulvector_load_amdfam10" 6 1120 (define_insn_reservation "athlon_ssemulvector_load_amdfam10" 6
1122 (and (eq_attr "cpu" "amdfam10") 1121 (and (eq_attr "cpu" "amdfam10")
1126 (define_insn_reservation "athlon_ssemulvector" 5 1125 (define_insn_reservation "athlon_ssemulvector" 5
1127 (and (eq_attr "cpu" "athlon") 1126 (and (eq_attr "cpu" "athlon")
1128 (eq_attr "type" "ssemul")) 1127 (eq_attr "type" "ssemul"))
1129 "athlon-vector,athlon-fpsched,(athlon-fmul*2)") 1128 "athlon-vector,athlon-fpsched,(athlon-fmul*2)")
1130 (define_insn_reservation "athlon_ssemulvector_k8" 5 1129 (define_insn_reservation "athlon_ssemulvector_k8" 5
1131 (and (eq_attr "cpu" "k8,generic64") 1130 (and (eq_attr "cpu" "k8,generic")
1132 (eq_attr "type" "ssemul")) 1131 (eq_attr "type" "ssemul"))
1133 "athlon-double,athlon-fpsched,(athlon-fmul*2)") 1132 "athlon-double,athlon-fpsched,(athlon-fmul*2)")
1134 (define_insn_reservation "athlon_ssemulvector_amdfam10" 4 1133 (define_insn_reservation "athlon_ssemulvector_amdfam10" 4
1135 (and (eq_attr "cpu" "amdfam10") 1134 (and (eq_attr "cpu" "amdfam10")
1136 (eq_attr "type" "ssemul")) 1135 (eq_attr "type" "ssemul"))
1141 (and (eq_attr "type" "ssediv") 1140 (and (eq_attr "type" "ssediv")
1142 (and (eq_attr "mode" "SF,DF") 1141 (and (eq_attr "mode" "SF,DF")
1143 (eq_attr "memory" "load")))) 1142 (eq_attr "memory" "load"))))
1144 "athlon-direct,athlon-fpload,athlon-fmul*17") 1143 "athlon-direct,athlon-fpload,athlon-fmul*17")
1145 (define_insn_reservation "athlon_ssediv_load_k8" 22 1144 (define_insn_reservation "athlon_ssediv_load_k8" 22
1146 (and (eq_attr "cpu" "k8,generic64,amdfam10") 1145 (and (eq_attr "cpu" "k8,generic,amdfam10")
1147 (and (eq_attr "type" "ssediv") 1146 (and (eq_attr "type" "ssediv")
1148 (and (eq_attr "mode" "SF,DF") 1147 (and (eq_attr "mode" "SF,DF")
1149 (eq_attr "memory" "load")))) 1148 (eq_attr "memory" "load"))))
1150 "athlon-direct,athlon-fploadk8,athlon-fmul*17") 1149 "athlon-direct,athlon-fploadk8,athlon-fmul*17")
1151 (define_insn_reservation "athlon_ssediv" 20 1150 (define_insn_reservation "athlon_ssediv" 20
1152 (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") 1151 (and (eq_attr "cpu" "athlon,k8,generic,amdfam10")
1153 (and (eq_attr "type" "ssediv") 1152 (and (eq_attr "type" "ssediv")
1154 (eq_attr "mode" "SF,DF"))) 1153 (eq_attr "mode" "SF,DF")))
1155 "athlon-direct,athlon-fpsched,athlon-fmul*17") 1154 "athlon-direct,athlon-fpsched,athlon-fmul*17")
1156 (define_insn_reservation "athlon_ssedivvector_load" 39 1155 (define_insn_reservation "athlon_ssedivvector_load" 39
1157 (and (eq_attr "cpu" "athlon") 1156 (and (eq_attr "cpu" "athlon")
1158 (and (eq_attr "type" "ssediv") 1157 (and (eq_attr "type" "ssediv")
1159 (eq_attr "memory" "load"))) 1158 (eq_attr "memory" "load")))
1160 "athlon-vector,athlon-fpload2,athlon-fmul*34") 1159 "athlon-vector,athlon-fpload2,athlon-fmul*34")
1161 (define_insn_reservation "athlon_ssedivvector_load_k8" 35 1160 (define_insn_reservation "athlon_ssedivvector_load_k8" 35
1162 (and (eq_attr "cpu" "k8,generic64") 1161 (and (eq_attr "cpu" "k8,generic")
1163 (and (eq_attr "type" "ssediv") 1162 (and (eq_attr "type" "ssediv")
1164 (eq_attr "memory" "load"))) 1163 (eq_attr "memory" "load")))
1165 "athlon-double,athlon-fpload2k8,athlon-fmul*34") 1164 "athlon-double,athlon-fpload2k8,athlon-fmul*34")
1166 (define_insn_reservation "athlon_ssedivvector_load_amdfam10" 22 1165 (define_insn_reservation "athlon_ssedivvector_load_amdfam10" 22
1167 (and (eq_attr "cpu" "amdfam10") 1166 (and (eq_attr "cpu" "amdfam10")
1171 (define_insn_reservation "athlon_ssedivvector" 39 1170 (define_insn_reservation "athlon_ssedivvector" 39
1172 (and (eq_attr "cpu" "athlon") 1171 (and (eq_attr "cpu" "athlon")
1173 (eq_attr "type" "ssediv")) 1172 (eq_attr "type" "ssediv"))
1174 "athlon-vector,athlon-fmul*34") 1173 "athlon-vector,athlon-fmul*34")
1175 (define_insn_reservation "athlon_ssedivvector_k8" 39 1174 (define_insn_reservation "athlon_ssedivvector_k8" 39
1176 (and (eq_attr "cpu" "k8,generic64") 1175 (and (eq_attr "cpu" "k8,generic")
1177 (eq_attr "type" "ssediv")) 1176 (eq_attr "type" "ssediv"))
1178 "athlon-double,athlon-fmul*34") 1177 "athlon-double,athlon-fmul*34")
1179 (define_insn_reservation "athlon_ssedivvector_amdfam10" 20 1178 (define_insn_reservation "athlon_ssedivvector_amdfam10" 20
1180 (and (eq_attr "cpu" "amdfam10") 1179 (and (eq_attr "cpu" "amdfam10")
1181 (eq_attr "type" "ssediv")) 1180 (eq_attr "type" "ssediv"))