2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
[official-gcc.git] / gcc / config / arm / cortex-a9-neon.md
blob2e8ec9b14c79fb06d0b62a35d3e24460640be9c5
1 ;; ARM Cortex-A9 pipeline description
2 ;; Copyright (C) 2010 Free Software Foundation, Inc.
3 ;;
4 ;; Neon pipeline description contributed by ARM Ltd.
5 ;;
6 ;; This file is part of GCC.
7 ;;
8 ;; GCC is free software; you can redistribute it and/or modify it
9 ;; under the terms of the GNU General Public License as published by
10 ;; the Free Software Foundation; either version 3, or (at your option)
11 ;; any later version.
13 ;; GCC is distributed in the hope that it will be useful, but
14 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 ;; General Public License for more details.
18 ;; You should have received a copy of the GNU General Public License
19 ;; along with GCC; see the file COPYING3.  If not see
20 ;; <http://www.gnu.org/licenses/>.
23 (define_automaton "cortex_a9_neon")
25 ;; Only one instruction can be issued per cycle.
26 (define_cpu_unit "cortex_a9_neon_issue_perm" "cortex_a9_neon")
28 ;; Only one data-processing instruction can be issued per cycle.
29 (define_cpu_unit "cortex_a9_neon_issue_dp" "cortex_a9_neon")
31 ;; We need a special mutual exclusion (to be used in addition to
32 ;; cortex_a9_neon_issue_dp) for the case when an instruction such as
33 ;; vmla.f is forwarded from E5 of the floating-point multiply pipeline to
34 ;; E2 of the floating-point add pipeline.  On the cycle previous to that
35 ;; forward we must prevent issue of any instruction to the floating-point
36 ;; add pipeline, but still allow issue of a data-processing instruction
37 ;; to any of the other pipelines.
38 (define_cpu_unit "cortex_a9_neon_issue_fadd" "cortex_a9_neon")
39 (define_cpu_unit "cortex_a9_neon_mcr" "cortex_a9_neon")
42 ;; Patterns of reservation.
43 ;; We model the NEON issue units as running in parallel with the core ones.
44 ;; We assume that multi-cycle NEON instructions get decomposed into
45 ;; micro-ops as they are issued into the NEON pipeline.
47 (define_reservation "cortex_a9_neon_dp"
48                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp")
49 (define_reservation "cortex_a9_neon_dp_2"
50                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp,\
51                      cortex_a9_neon_issue_dp")
52 (define_reservation "cortex_a9_neon_dp_4"
53                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp,\
54                      cortex_a9_neon_issue_dp + cortex_a9_neon_issue_perm,\
55                      cortex_a9_neon_issue_dp + cortex_a9_neon_issue_perm,\
56                      cortex_a9_neon_issue_dp")
58 (define_reservation "cortex_a9_neon_fadd"
59                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp +  \
60                      cortex_a9_neon_issue_fadd")
61 (define_reservation "cortex_a9_neon_fadd_2"
62                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp,\
63                      cortex_a9_neon_issue_fadd,\
64                      cortex_a9_neon_issue_dp")
66 (define_reservation "cortex_a9_neon_perm"
67                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm")
68 (define_reservation "cortex_a9_neon_perm_2"
69                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm,  \
70                      cortex_a9_neon_issue_perm")
71 (define_reservation "cortex_a9_neon_perm_3"
72                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm,\
73                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
74                      cortex_a9_neon_issue_perm")
76 (define_reservation "cortex_a9_neon_ls"
77                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm+cortex_a9_ls")
78 (define_reservation "cortex_a9_neon_ls_2"
79                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm,\
80                      cortex_a9_neon_issue_perm")
81 (define_reservation "cortex_a9_neon_ls_3"
82                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm,\
83                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
84                      cortex_a9_neon_issue_perm")
85 (define_reservation "cortex_a9_neon_ls_4"
86                     "ca9_issue_vfp_neon+cortex_a9_neon_issue_perm,\
87                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
88                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
89                      cortex_a9_neon_issue_perm")
90 (define_reservation "cortex_a9_neon_ls_5"
91                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_perm,\
92                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
93                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
94                      cortex_a9_neon_issue_dp+cortex_a9_neon_issue_perm,\
95                      cortex_a9_neon_issue_perm")
97 (define_reservation "cortex_a9_neon_fmul_then_fadd"
98                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp,\
99                      nothing*3,\
100                      cortex_a9_neon_issue_fadd")
101 (define_reservation "cortex_a9_neon_fmul_then_fadd_2"
102                     "ca9_issue_vfp_neon + cortex_a9_neon_issue_dp,\
103                      cortex_a9_neon_issue_dp,\
104                      nothing*2,\
105                      cortex_a9_neon_issue_fadd,\
106                      cortex_a9_neon_issue_fadd")
109 ;; NEON -> core transfers.
110 (define_insn_reservation "ca9_neon_mrc" 1
111   (and (eq_attr "tune" "cortexa9")
112        (eq_attr "neon_type" "neon_mrc"))
113   "ca9_issue_vfp_neon + cortex_a9_neon_mcr")
115 (define_insn_reservation "ca9_neon_mrrc" 1
116   (and (eq_attr "tune" "cortexa9")
117        (eq_attr "neon_type" "neon_mrrc"))
118   "ca9_issue_vfp_neon + cortex_a9_neon_mcr")
120 ;; The remainder of this file is auto-generated by neon-schedgen.
122 ;; Instructions using this reservation read their source operands at N2, and
123 ;; produce a result at N3.
124 (define_insn_reservation "cortex_a9_neon_int_1" 3
125   (and (eq_attr "tune" "cortexa9")
126        (eq_attr "neon_type" "neon_int_1"))
127   "cortex_a9_neon_dp")
129 ;; Instructions using this reservation read their (D|Q)m operands at N1,
130 ;; their (D|Q)n operands at N2, and produce a result at N3.
131 (define_insn_reservation "cortex_a9_neon_int_2" 3
132   (and (eq_attr "tune" "cortexa9")
133        (eq_attr "neon_type" "neon_int_2"))
134   "cortex_a9_neon_dp")
136 ;; Instructions using this reservation read their source operands at N1, and
137 ;; produce a result at N3.
138 (define_insn_reservation "cortex_a9_neon_int_3" 3
139   (and (eq_attr "tune" "cortexa9")
140        (eq_attr "neon_type" "neon_int_3"))
141   "cortex_a9_neon_dp")
143 ;; Instructions using this reservation read their source operands at N2, and
144 ;; produce a result at N4.
145 (define_insn_reservation "cortex_a9_neon_int_4" 4
146   (and (eq_attr "tune" "cortexa9")
147        (eq_attr "neon_type" "neon_int_4"))
148   "cortex_a9_neon_dp")
150 ;; Instructions using this reservation read their (D|Q)m operands at N1,
151 ;; their (D|Q)n operands at N2, and produce a result at N4.
152 (define_insn_reservation "cortex_a9_neon_int_5" 4
153   (and (eq_attr "tune" "cortexa9")
154        (eq_attr "neon_type" "neon_int_5"))
155   "cortex_a9_neon_dp")
157 ;; Instructions using this reservation read their source operands at N1, and
158 ;; produce a result at N4.
159 (define_insn_reservation "cortex_a9_neon_vqneg_vqabs" 4
160   (and (eq_attr "tune" "cortexa9")
161        (eq_attr "neon_type" "neon_vqneg_vqabs"))
162   "cortex_a9_neon_dp")
164 ;; Instructions using this reservation produce a result at N3.
165 (define_insn_reservation "cortex_a9_neon_vmov" 3
166   (and (eq_attr "tune" "cortexa9")
167        (eq_attr "neon_type" "neon_vmov"))
168   "cortex_a9_neon_dp")
170 ;; Instructions using this reservation read their (D|Q)n operands at N2,
171 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
172 ;; produce a result at N6.
173 (define_insn_reservation "cortex_a9_neon_vaba" 6
174   (and (eq_attr "tune" "cortexa9")
175        (eq_attr "neon_type" "neon_vaba"))
176   "cortex_a9_neon_dp")
178 ;; Instructions using this reservation read their (D|Q)n operands at N2,
179 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
180 ;; produce a result at N6 on cycle 2.
181 (define_insn_reservation "cortex_a9_neon_vaba_qqq" 7
182   (and (eq_attr "tune" "cortexa9")
183        (eq_attr "neon_type" "neon_vaba_qqq"))
184   "cortex_a9_neon_dp_2")
186 ;; Instructions using this reservation read their (D|Q)m operands at N1,
187 ;; their (D|Q)d operands at N3, and produce a result at N6.
188 (define_insn_reservation "cortex_a9_neon_vsma" 6
189   (and (eq_attr "tune" "cortexa9")
190        (eq_attr "neon_type" "neon_vsma"))
191   "cortex_a9_neon_dp")
193 ;; Instructions using this reservation read their source operands at N2, and
194 ;; produce a result at N6.
195 (define_insn_reservation "cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long" 6
196   (and (eq_attr "tune" "cortexa9")
197        (eq_attr "neon_type" "neon_mul_ddd_8_16_qdd_16_8_long_32_16_long"))
198   "cortex_a9_neon_dp")
200 ;; Instructions using this reservation read their source operands at N2, and
201 ;; produce a result at N6 on cycle 2.
202 (define_insn_reservation "cortex_a9_neon_mul_qqq_8_16_32_ddd_32" 7
203   (and (eq_attr "tune" "cortexa9")
204        (eq_attr "neon_type" "neon_mul_qqq_8_16_32_ddd_32"))
205   "cortex_a9_neon_dp_2")
207 ;; Instructions using this reservation read their (D|Q)n operands at N2,
208 ;; their (D|Q)m operands at N1, and produce a result at N6 on cycle 2.
209 (define_insn_reservation "cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar" 7
210   (and (eq_attr "tune" "cortexa9")
211        (eq_attr "neon_type" "neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar"))
212   "cortex_a9_neon_dp_2")
214 ;; Instructions using this reservation read their (D|Q)n operands at N2,
215 ;; their (D|Q)m operands at N2, their (D|Q)d operands at N3, and
216 ;; produce a result at N6.
217 (define_insn_reservation "cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long" 6
218   (and (eq_attr "tune" "cortexa9")
219        (eq_attr "neon_type" "neon_mla_ddd_8_16_qdd_16_8_long_32_16_long"))
220   "cortex_a9_neon_dp")
222 ;; Instructions using this reservation read their (D|Q)n operands at N2,
223 ;; their (D|Q)m operands at N2, their (D|Q)d operands at N3, and
224 ;; produce a result at N6 on cycle 2.
225 (define_insn_reservation "cortex_a9_neon_mla_qqq_8_16" 7
226   (and (eq_attr "tune" "cortexa9")
227        (eq_attr "neon_type" "neon_mla_qqq_8_16"))
228   "cortex_a9_neon_dp_2")
230 ;; Instructions using this reservation read their (D|Q)n operands at N2,
231 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
232 ;; produce a result at N6 on cycle 2.
233 (define_insn_reservation "cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long" 7
234   (and (eq_attr "tune" "cortexa9")
235        (eq_attr "neon_type" "neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long"))
236   "cortex_a9_neon_dp_2")
238 ;; Instructions using this reservation read their (D|Q)n operands at N2,
239 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
240 ;; produce a result at N6 on cycle 4.
241 (define_insn_reservation "cortex_a9_neon_mla_qqq_32_qqd_32_scalar" 9
242   (and (eq_attr "tune" "cortexa9")
243        (eq_attr "neon_type" "neon_mla_qqq_32_qqd_32_scalar"))
244   "cortex_a9_neon_dp_4")
246 ;; Instructions using this reservation read their (D|Q)n operands at N2,
247 ;; their (D|Q)m operands at N1, and produce a result at N6.
248 (define_insn_reservation "cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar" 6
249   (and (eq_attr "tune" "cortexa9")
250        (eq_attr "neon_type" "neon_mul_ddd_16_scalar_32_16_long_scalar"))
251   "cortex_a9_neon_dp")
253 ;; Instructions using this reservation read their (D|Q)n operands at N2,
254 ;; their (D|Q)m operands at N1, and produce a result at N6 on cycle 4.
255 (define_insn_reservation "cortex_a9_neon_mul_qqd_32_scalar" 9
256   (and (eq_attr "tune" "cortexa9")
257        (eq_attr "neon_type" "neon_mul_qqd_32_scalar"))
258   "cortex_a9_neon_dp_4")
260 ;; Instructions using this reservation read their (D|Q)n operands at N2,
261 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
262 ;; produce a result at N6.
263 (define_insn_reservation "cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar" 6
264   (and (eq_attr "tune" "cortexa9")
265        (eq_attr "neon_type" "neon_mla_ddd_16_scalar_qdd_32_16_long_scalar"))
266   "cortex_a9_neon_dp")
268 ;; Instructions using this reservation read their source operands at N1, and
269 ;; produce a result at N3.
270 (define_insn_reservation "cortex_a9_neon_shift_1" 3
271   (and (eq_attr "tune" "cortexa9")
272        (eq_attr "neon_type" "neon_shift_1"))
273   "cortex_a9_neon_dp")
275 ;; Instructions using this reservation read their source operands at N1, and
276 ;; produce a result at N4.
277 (define_insn_reservation "cortex_a9_neon_shift_2" 4
278   (and (eq_attr "tune" "cortexa9")
279        (eq_attr "neon_type" "neon_shift_2"))
280   "cortex_a9_neon_dp")
282 ;; Instructions using this reservation read their source operands at N1, and
283 ;; produce a result at N3 on cycle 2.
284 (define_insn_reservation "cortex_a9_neon_shift_3" 4
285   (and (eq_attr "tune" "cortexa9")
286        (eq_attr "neon_type" "neon_shift_3"))
287   "cortex_a9_neon_dp_2")
289 ;; Instructions using this reservation read their source operands at N1, and
290 ;; produce a result at N1.
291 (define_insn_reservation "cortex_a9_neon_vshl_ddd" 1
292   (and (eq_attr "tune" "cortexa9")
293        (eq_attr "neon_type" "neon_vshl_ddd"))
294   "cortex_a9_neon_dp")
296 ;; Instructions using this reservation read their source operands at N1, and
297 ;; produce a result at N4 on cycle 2.
298 (define_insn_reservation "cortex_a9_neon_vqshl_vrshl_vqrshl_qqq" 5
299   (and (eq_attr "tune" "cortexa9")
300        (eq_attr "neon_type" "neon_vqshl_vrshl_vqrshl_qqq"))
301   "cortex_a9_neon_dp_2")
303 ;; Instructions using this reservation read their (D|Q)m operands at N1,
304 ;; their (D|Q)d operands at N3, and produce a result at N6.
305 (define_insn_reservation "cortex_a9_neon_vsra_vrsra" 6
306   (and (eq_attr "tune" "cortexa9")
307        (eq_attr "neon_type" "neon_vsra_vrsra"))
308   "cortex_a9_neon_dp")
310 ;; Instructions using this reservation read their source operands at N2, and
311 ;; produce a result at N5.
312 (define_insn_reservation "cortex_a9_neon_fp_vadd_ddd_vabs_dd" 5
313   (and (eq_attr "tune" "cortexa9")
314        (eq_attr "neon_type" "neon_fp_vadd_ddd_vabs_dd"))
315   "cortex_a9_neon_fadd")
317 ;; Instructions using this reservation read their source operands at N2, and
318 ;; produce a result at N5 on cycle 2.
319 (define_insn_reservation "cortex_a9_neon_fp_vadd_qqq_vabs_qq" 6
320   (and (eq_attr "tune" "cortexa9")
321        (eq_attr "neon_type" "neon_fp_vadd_qqq_vabs_qq"))
322   "cortex_a9_neon_fadd_2")
324 ;; Instructions using this reservation read their source operands at N1, and
325 ;; produce a result at N5.
326 (define_insn_reservation "cortex_a9_neon_fp_vsum" 5
327   (and (eq_attr "tune" "cortexa9")
328        (eq_attr "neon_type" "neon_fp_vsum"))
329   "cortex_a9_neon_fadd")
331 ;; Instructions using this reservation read their (D|Q)n operands at N2,
332 ;; their (D|Q)m operands at N1, and produce a result at N5.
333 (define_insn_reservation "cortex_a9_neon_fp_vmul_ddd" 5
334   (and (eq_attr "tune" "cortexa9")
335        (eq_attr "neon_type" "neon_fp_vmul_ddd"))
336   "cortex_a9_neon_dp")
338 ;; Instructions using this reservation read their (D|Q)n operands at N2,
339 ;; their (D|Q)m operands at N1, and produce a result at N5 on cycle 2.
340 (define_insn_reservation "cortex_a9_neon_fp_vmul_qqd" 6
341   (and (eq_attr "tune" "cortexa9")
342        (eq_attr "neon_type" "neon_fp_vmul_qqd"))
343   "cortex_a9_neon_dp_2")
345 ;; Instructions using this reservation read their (D|Q)n operands at N2,
346 ;; their (D|Q)m operands at N2, their (D|Q)d operands at N3, and
347 ;; produce a result at N9.
348 (define_insn_reservation "cortex_a9_neon_fp_vmla_ddd" 9
349   (and (eq_attr "tune" "cortexa9")
350        (eq_attr "neon_type" "neon_fp_vmla_ddd"))
351   "cortex_a9_neon_fmul_then_fadd")
353 ;; Instructions using this reservation read their (D|Q)n operands at N2,
354 ;; their (D|Q)m operands at N2, their (D|Q)d operands at N3, and
355 ;; produce a result at N9 on cycle 2.
356 (define_insn_reservation "cortex_a9_neon_fp_vmla_qqq" 10
357   (and (eq_attr "tune" "cortexa9")
358        (eq_attr "neon_type" "neon_fp_vmla_qqq"))
359   "cortex_a9_neon_fmul_then_fadd_2")
361 ;; Instructions using this reservation read their (D|Q)n operands at N2,
362 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
363 ;; produce a result at N9.
364 (define_insn_reservation "cortex_a9_neon_fp_vmla_ddd_scalar" 9
365   (and (eq_attr "tune" "cortexa9")
366        (eq_attr "neon_type" "neon_fp_vmla_ddd_scalar"))
367   "cortex_a9_neon_fmul_then_fadd")
369 ;; Instructions using this reservation read their (D|Q)n operands at N2,
370 ;; their (D|Q)m operands at N1, their (D|Q)d operands at N3, and
371 ;; produce a result at N9 on cycle 2.
372 (define_insn_reservation "cortex_a9_neon_fp_vmla_qqq_scalar" 10
373   (and (eq_attr "tune" "cortexa9")
374        (eq_attr "neon_type" "neon_fp_vmla_qqq_scalar"))
375   "cortex_a9_neon_fmul_then_fadd_2")
377 ;; Instructions using this reservation read their source operands at N2, and
378 ;; produce a result at N9.
379 (define_insn_reservation "cortex_a9_neon_fp_vrecps_vrsqrts_ddd" 9
380   (and (eq_attr "tune" "cortexa9")
381        (eq_attr "neon_type" "neon_fp_vrecps_vrsqrts_ddd"))
382   "cortex_a9_neon_fmul_then_fadd")
384 ;; Instructions using this reservation read their source operands at N2, and
385 ;; produce a result at N9 on cycle 2.
386 (define_insn_reservation "cortex_a9_neon_fp_vrecps_vrsqrts_qqq" 10
387   (and (eq_attr "tune" "cortexa9")
388        (eq_attr "neon_type" "neon_fp_vrecps_vrsqrts_qqq"))
389   "cortex_a9_neon_fmul_then_fadd_2")
391 ;; Instructions using this reservation read their source operands at N1, and
392 ;; produce a result at N2.
393 (define_insn_reservation "cortex_a9_neon_bp_simple" 2
394   (and (eq_attr "tune" "cortexa9")
395        (eq_attr "neon_type" "neon_bp_simple"))
396   "cortex_a9_neon_perm")
398 ;; Instructions using this reservation read their source operands at N1, and
399 ;; produce a result at N2 on cycle 2.
400 (define_insn_reservation "cortex_a9_neon_bp_2cycle" 3
401   (and (eq_attr "tune" "cortexa9")
402        (eq_attr "neon_type" "neon_bp_2cycle"))
403   "cortex_a9_neon_perm_2")
405 ;; Instructions using this reservation read their source operands at N1, and
406 ;; produce a result at N2 on cycle 3.
407 (define_insn_reservation "cortex_a9_neon_bp_3cycle" 4
408   (and (eq_attr "tune" "cortexa9")
409        (eq_attr "neon_type" "neon_bp_3cycle"))
410   "cortex_a9_neon_perm_3")
412 ;; Instructions using this reservation produce a result at N1.
413 (define_insn_reservation "cortex_a9_neon_ldr" 1
414   (and (eq_attr "tune" "cortexa9")
415        (eq_attr "neon_type" "neon_ldr"))
416   "cortex_a9_neon_ls")
418 ;; Instructions using this reservation read their source operands at N1.
419 (define_insn_reservation "cortex_a9_neon_str" 0
420   (and (eq_attr "tune" "cortexa9")
421        (eq_attr "neon_type" "neon_str"))
422   "cortex_a9_neon_ls")
424 ;; Instructions using this reservation produce a result at N1 on cycle 2.
425 (define_insn_reservation "cortex_a9_neon_vld1_1_2_regs" 2
426   (and (eq_attr "tune" "cortexa9")
427        (eq_attr "neon_type" "neon_vld1_1_2_regs"))
428   "cortex_a9_neon_ls_2")
430 ;; Instructions using this reservation produce a result at N1 on cycle 3.
431 (define_insn_reservation "cortex_a9_neon_vld1_3_4_regs" 3
432   (and (eq_attr "tune" "cortexa9")
433        (eq_attr "neon_type" "neon_vld1_3_4_regs"))
434   "cortex_a9_neon_ls_3")
436 ;; Instructions using this reservation produce a result at N2 on cycle 2.
437 (define_insn_reservation "cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes" 3
438   (and (eq_attr "tune" "cortexa9")
439        (eq_attr "neon_type" "neon_vld2_2_regs_vld1_vld2_all_lanes"))
440   "cortex_a9_neon_ls_2")
442 ;; Instructions using this reservation produce a result at N2 on cycle 3.
443 (define_insn_reservation "cortex_a9_neon_vld2_4_regs" 4
444   (and (eq_attr "tune" "cortexa9")
445        (eq_attr "neon_type" "neon_vld2_4_regs"))
446   "cortex_a9_neon_ls_3")
448 ;; Instructions using this reservation produce a result at N2 on cycle 4.
449 (define_insn_reservation "cortex_a9_neon_vld3_vld4" 5
450   (and (eq_attr "tune" "cortexa9")
451        (eq_attr "neon_type" "neon_vld3_vld4"))
452   "cortex_a9_neon_ls_4")
454 ;; Instructions using this reservation read their source operands at N1.
455 (define_insn_reservation "cortex_a9_neon_vst1_1_2_regs_vst2_2_regs" 0
456   (and (eq_attr "tune" "cortexa9")
457        (eq_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs"))
458   "cortex_a9_neon_ls_2")
460 ;; Instructions using this reservation read their source operands at N1.
461 (define_insn_reservation "cortex_a9_neon_vst1_3_4_regs" 0
462   (and (eq_attr "tune" "cortexa9")
463        (eq_attr "neon_type" "neon_vst1_3_4_regs"))
464   "cortex_a9_neon_ls_3")
466 ;; Instructions using this reservation read their source operands at N1.
467 (define_insn_reservation "cortex_a9_neon_vst2_4_regs_vst3_vst4" 0
468   (and (eq_attr "tune" "cortexa9")
469        (eq_attr "neon_type" "neon_vst2_4_regs_vst3_vst4"))
470   "cortex_a9_neon_ls_4")
472 ;; Instructions using this reservation read their source operands at N1.
473 (define_insn_reservation "cortex_a9_neon_vst3_vst4" 0
474   (and (eq_attr "tune" "cortexa9")
475        (eq_attr "neon_type" "neon_vst3_vst4"))
476   "cortex_a9_neon_ls_4")
478 ;; Instructions using this reservation read their source operands at N1, and
479 ;; produce a result at N2 on cycle 3.
480 (define_insn_reservation "cortex_a9_neon_vld1_vld2_lane" 4
481   (and (eq_attr "tune" "cortexa9")
482        (eq_attr "neon_type" "neon_vld1_vld2_lane"))
483   "cortex_a9_neon_ls_3")
485 ;; Instructions using this reservation read their source operands at N1, and
486 ;; produce a result at N2 on cycle 5.
487 (define_insn_reservation "cortex_a9_neon_vld3_vld4_lane" 6
488   (and (eq_attr "tune" "cortexa9")
489        (eq_attr "neon_type" "neon_vld3_vld4_lane"))
490   "cortex_a9_neon_ls_5")
492 ;; Instructions using this reservation read their source operands at N1.
493 (define_insn_reservation "cortex_a9_neon_vst1_vst2_lane" 0
494   (and (eq_attr "tune" "cortexa9")
495        (eq_attr "neon_type" "neon_vst1_vst2_lane"))
496   "cortex_a9_neon_ls_2")
498 ;; Instructions using this reservation read their source operands at N1.
499 (define_insn_reservation "cortex_a9_neon_vst3_vst4_lane" 0
500   (and (eq_attr "tune" "cortexa9")
501        (eq_attr "neon_type" "neon_vst3_vst4_lane"))
502   "cortex_a9_neon_ls_3")
504 ;; Instructions using this reservation produce a result at N2 on cycle 2.
505 (define_insn_reservation "cortex_a9_neon_vld3_vld4_all_lanes" 3
506   (and (eq_attr "tune" "cortexa9")
507        (eq_attr "neon_type" "neon_vld3_vld4_all_lanes"))
508   "cortex_a9_neon_ls_3")
510 ;; Instructions using this reservation produce a result at N2.
511 (define_insn_reservation "cortex_a9_neon_mcr" 2
512   (and (eq_attr "tune" "cortexa9")
513        (eq_attr "neon_type" "neon_mcr"))
514   "cortex_a9_neon_perm")
516 ;; Instructions using this reservation produce a result at N2.
517 (define_insn_reservation "cortex_a9_neon_mcr_2_mcrr" 2
518   (and (eq_attr "tune" "cortexa9")
519        (eq_attr "neon_type" "neon_mcr_2_mcrr"))
520   "cortex_a9_neon_perm_2")
522 ;; Exceptions to the default latencies.
524 (define_bypass 1 "cortex_a9_neon_mcr_2_mcrr"
525                "cortex_a9_neon_int_1,\
526                cortex_a9_neon_int_4,\
527                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
528                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
529                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
530                cortex_a9_neon_mla_qqq_8_16,\
531                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
532                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
533                cortex_a9_neon_fp_vmla_ddd,\
534                cortex_a9_neon_fp_vmla_qqq,\
535                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
536                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
538 (define_bypass 1 "cortex_a9_neon_mcr"
539                "cortex_a9_neon_int_1,\
540                cortex_a9_neon_int_4,\
541                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
542                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
543                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
544                cortex_a9_neon_mla_qqq_8_16,\
545                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
546                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
547                cortex_a9_neon_fp_vmla_ddd,\
548                cortex_a9_neon_fp_vmla_qqq,\
549                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
550                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
552 (define_bypass 2 "cortex_a9_neon_vld3_vld4_all_lanes"
553                "cortex_a9_neon_int_1,\
554                cortex_a9_neon_int_4,\
555                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
556                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
557                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
558                cortex_a9_neon_mla_qqq_8_16,\
559                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
560                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
561                cortex_a9_neon_fp_vmla_ddd,\
562                cortex_a9_neon_fp_vmla_qqq,\
563                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
564                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
566 (define_bypass 5 "cortex_a9_neon_vld3_vld4_lane"
567                "cortex_a9_neon_int_1,\
568                cortex_a9_neon_int_4,\
569                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
570                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
571                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
572                cortex_a9_neon_mla_qqq_8_16,\
573                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
574                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
575                cortex_a9_neon_fp_vmla_ddd,\
576                cortex_a9_neon_fp_vmla_qqq,\
577                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
578                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
580 (define_bypass 3 "cortex_a9_neon_vld1_vld2_lane"
581                "cortex_a9_neon_int_1,\
582                cortex_a9_neon_int_4,\
583                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
584                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
585                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
586                cortex_a9_neon_mla_qqq_8_16,\
587                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
588                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
589                cortex_a9_neon_fp_vmla_ddd,\
590                cortex_a9_neon_fp_vmla_qqq,\
591                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
592                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
594 (define_bypass 4 "cortex_a9_neon_vld3_vld4"
595                "cortex_a9_neon_int_1,\
596                cortex_a9_neon_int_4,\
597                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
598                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
599                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
600                cortex_a9_neon_mla_qqq_8_16,\
601                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
602                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
603                cortex_a9_neon_fp_vmla_ddd,\
604                cortex_a9_neon_fp_vmla_qqq,\
605                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
606                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
608 (define_bypass 3 "cortex_a9_neon_vld2_4_regs"
609                "cortex_a9_neon_int_1,\
610                cortex_a9_neon_int_4,\
611                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
612                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
613                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
614                cortex_a9_neon_mla_qqq_8_16,\
615                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
616                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
617                cortex_a9_neon_fp_vmla_ddd,\
618                cortex_a9_neon_fp_vmla_qqq,\
619                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
620                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
622 (define_bypass 2 "cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes"
623                "cortex_a9_neon_int_1,\
624                cortex_a9_neon_int_4,\
625                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
626                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
627                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
628                cortex_a9_neon_mla_qqq_8_16,\
629                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
630                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
631                cortex_a9_neon_fp_vmla_ddd,\
632                cortex_a9_neon_fp_vmla_qqq,\
633                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
634                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
636 (define_bypass 2 "cortex_a9_neon_vld1_3_4_regs"
637                "cortex_a9_neon_int_1,\
638                cortex_a9_neon_int_4,\
639                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
640                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
641                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
642                cortex_a9_neon_mla_qqq_8_16,\
643                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
644                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
645                cortex_a9_neon_fp_vmla_ddd,\
646                cortex_a9_neon_fp_vmla_qqq,\
647                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
648                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
650 (define_bypass 1 "cortex_a9_neon_vld1_1_2_regs"
651                "cortex_a9_neon_int_1,\
652                cortex_a9_neon_int_4,\
653                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
654                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
655                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
656                cortex_a9_neon_mla_qqq_8_16,\
657                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
658                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
659                cortex_a9_neon_fp_vmla_ddd,\
660                cortex_a9_neon_fp_vmla_qqq,\
661                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
662                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
664 (define_bypass 0 "cortex_a9_neon_ldr"
665                "cortex_a9_neon_int_1,\
666                cortex_a9_neon_int_4,\
667                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
668                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
669                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
670                cortex_a9_neon_mla_qqq_8_16,\
671                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
672                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
673                cortex_a9_neon_fp_vmla_ddd,\
674                cortex_a9_neon_fp_vmla_qqq,\
675                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
676                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
678 (define_bypass 3 "cortex_a9_neon_bp_3cycle"
679                "cortex_a9_neon_int_1,\
680                cortex_a9_neon_int_4,\
681                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
682                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
683                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
684                cortex_a9_neon_mla_qqq_8_16,\
685                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
686                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
687                cortex_a9_neon_fp_vmla_ddd,\
688                cortex_a9_neon_fp_vmla_qqq,\
689                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
690                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
692 (define_bypass 2 "cortex_a9_neon_bp_2cycle"
693                "cortex_a9_neon_int_1,\
694                cortex_a9_neon_int_4,\
695                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
696                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
697                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
698                cortex_a9_neon_mla_qqq_8_16,\
699                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
700                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
701                cortex_a9_neon_fp_vmla_ddd,\
702                cortex_a9_neon_fp_vmla_qqq,\
703                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
704                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
706 (define_bypass 1 "cortex_a9_neon_bp_simple"
707                "cortex_a9_neon_int_1,\
708                cortex_a9_neon_int_4,\
709                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
710                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
711                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
712                cortex_a9_neon_mla_qqq_8_16,\
713                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
714                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
715                cortex_a9_neon_fp_vmla_ddd,\
716                cortex_a9_neon_fp_vmla_qqq,\
717                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
718                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
720 (define_bypass 9 "cortex_a9_neon_fp_vrecps_vrsqrts_qqq"
721                "cortex_a9_neon_int_1,\
722                cortex_a9_neon_int_4,\
723                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
724                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
725                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
726                cortex_a9_neon_mla_qqq_8_16,\
727                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
728                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
729                cortex_a9_neon_fp_vmla_ddd,\
730                cortex_a9_neon_fp_vmla_qqq,\
731                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
732                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
734 (define_bypass 8 "cortex_a9_neon_fp_vrecps_vrsqrts_ddd"
735                "cortex_a9_neon_int_1,\
736                cortex_a9_neon_int_4,\
737                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
738                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
739                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
740                cortex_a9_neon_mla_qqq_8_16,\
741                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
742                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
743                cortex_a9_neon_fp_vmla_ddd,\
744                cortex_a9_neon_fp_vmla_qqq,\
745                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
746                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
748 (define_bypass 9 "cortex_a9_neon_fp_vmla_qqq_scalar"
749                "cortex_a9_neon_int_1,\
750                cortex_a9_neon_int_4,\
751                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
752                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
753                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
754                cortex_a9_neon_mla_qqq_8_16,\
755                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
756                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
757                cortex_a9_neon_fp_vmla_ddd,\
758                cortex_a9_neon_fp_vmla_qqq,\
759                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
760                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
762 (define_bypass 8 "cortex_a9_neon_fp_vmla_ddd_scalar"
763                "cortex_a9_neon_int_1,\
764                cortex_a9_neon_int_4,\
765                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
766                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
767                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
768                cortex_a9_neon_mla_qqq_8_16,\
769                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
770                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
771                cortex_a9_neon_fp_vmla_ddd,\
772                cortex_a9_neon_fp_vmla_qqq,\
773                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
774                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
776 (define_bypass 9 "cortex_a9_neon_fp_vmla_qqq"
777                "cortex_a9_neon_int_1,\
778                cortex_a9_neon_int_4,\
779                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
780                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
781                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
782                cortex_a9_neon_mla_qqq_8_16,\
783                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
784                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
785                cortex_a9_neon_fp_vmla_ddd,\
786                cortex_a9_neon_fp_vmla_qqq,\
787                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
788                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
790 (define_bypass 8 "cortex_a9_neon_fp_vmla_ddd"
791                "cortex_a9_neon_int_1,\
792                cortex_a9_neon_int_4,\
793                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
794                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
795                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
796                cortex_a9_neon_mla_qqq_8_16,\
797                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
798                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
799                cortex_a9_neon_fp_vmla_ddd,\
800                cortex_a9_neon_fp_vmla_qqq,\
801                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
802                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
804 (define_bypass 5 "cortex_a9_neon_fp_vmul_qqd"
805                "cortex_a9_neon_int_1,\
806                cortex_a9_neon_int_4,\
807                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
808                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
809                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
810                cortex_a9_neon_mla_qqq_8_16,\
811                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
812                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
813                cortex_a9_neon_fp_vmla_ddd,\
814                cortex_a9_neon_fp_vmla_qqq,\
815                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
816                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
818 (define_bypass 4 "cortex_a9_neon_fp_vmul_ddd"
819                "cortex_a9_neon_int_1,\
820                cortex_a9_neon_int_4,\
821                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
822                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
823                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
824                cortex_a9_neon_mla_qqq_8_16,\
825                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
826                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
827                cortex_a9_neon_fp_vmla_ddd,\
828                cortex_a9_neon_fp_vmla_qqq,\
829                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
830                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
832 (define_bypass 4 "cortex_a9_neon_fp_vsum"
833                "cortex_a9_neon_int_1,\
834                cortex_a9_neon_int_4,\
835                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
836                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
837                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
838                cortex_a9_neon_mla_qqq_8_16,\
839                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
840                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
841                cortex_a9_neon_fp_vmla_ddd,\
842                cortex_a9_neon_fp_vmla_qqq,\
843                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
844                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
846 (define_bypass 5 "cortex_a9_neon_fp_vadd_qqq_vabs_qq"
847                "cortex_a9_neon_int_1,\
848                cortex_a9_neon_int_4,\
849                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
850                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
851                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
852                cortex_a9_neon_mla_qqq_8_16,\
853                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
854                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
855                cortex_a9_neon_fp_vmla_ddd,\
856                cortex_a9_neon_fp_vmla_qqq,\
857                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
858                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
860 (define_bypass 4 "cortex_a9_neon_fp_vadd_ddd_vabs_dd"
861                "cortex_a9_neon_int_1,\
862                cortex_a9_neon_int_4,\
863                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
864                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
865                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
866                cortex_a9_neon_mla_qqq_8_16,\
867                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
868                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
869                cortex_a9_neon_fp_vmla_ddd,\
870                cortex_a9_neon_fp_vmla_qqq,\
871                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
872                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
874 (define_bypass 5 "cortex_a9_neon_vsra_vrsra"
875                "cortex_a9_neon_int_1,\
876                cortex_a9_neon_int_4,\
877                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
878                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
879                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
880                cortex_a9_neon_mla_qqq_8_16,\
881                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
882                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
883                cortex_a9_neon_fp_vmla_ddd,\
884                cortex_a9_neon_fp_vmla_qqq,\
885                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
886                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
888 (define_bypass 4 "cortex_a9_neon_vqshl_vrshl_vqrshl_qqq"
889                "cortex_a9_neon_int_1,\
890                cortex_a9_neon_int_4,\
891                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
892                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
893                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
894                cortex_a9_neon_mla_qqq_8_16,\
895                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
896                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
897                cortex_a9_neon_fp_vmla_ddd,\
898                cortex_a9_neon_fp_vmla_qqq,\
899                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
900                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
902 (define_bypass 0 "cortex_a9_neon_vshl_ddd"
903                "cortex_a9_neon_int_1,\
904                cortex_a9_neon_int_4,\
905                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
906                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
907                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
908                cortex_a9_neon_mla_qqq_8_16,\
909                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
910                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
911                cortex_a9_neon_fp_vmla_ddd,\
912                cortex_a9_neon_fp_vmla_qqq,\
913                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
914                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
916 (define_bypass 3 "cortex_a9_neon_shift_3"
917                "cortex_a9_neon_int_1,\
918                cortex_a9_neon_int_4,\
919                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
920                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
921                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
922                cortex_a9_neon_mla_qqq_8_16,\
923                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
924                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
925                cortex_a9_neon_fp_vmla_ddd,\
926                cortex_a9_neon_fp_vmla_qqq,\
927                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
928                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
930 (define_bypass 3 "cortex_a9_neon_shift_2"
931                "cortex_a9_neon_int_1,\
932                cortex_a9_neon_int_4,\
933                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
934                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
935                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
936                cortex_a9_neon_mla_qqq_8_16,\
937                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
938                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
939                cortex_a9_neon_fp_vmla_ddd,\
940                cortex_a9_neon_fp_vmla_qqq,\
941                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
942                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
944 (define_bypass 2 "cortex_a9_neon_shift_1"
945                "cortex_a9_neon_int_1,\
946                cortex_a9_neon_int_4,\
947                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
948                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
949                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
950                cortex_a9_neon_mla_qqq_8_16,\
951                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
952                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
953                cortex_a9_neon_fp_vmla_ddd,\
954                cortex_a9_neon_fp_vmla_qqq,\
955                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
956                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
958 (define_bypass 5 "cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar"
959                "cortex_a9_neon_int_1,\
960                cortex_a9_neon_int_4,\
961                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
962                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
963                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
964                cortex_a9_neon_mla_qqq_8_16,\
965                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
966                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
967                cortex_a9_neon_fp_vmla_ddd,\
968                cortex_a9_neon_fp_vmla_qqq,\
969                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
970                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
972 (define_bypass 8 "cortex_a9_neon_mul_qqd_32_scalar"
973                "cortex_a9_neon_int_1,\
974                cortex_a9_neon_int_4,\
975                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
976                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
977                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
978                cortex_a9_neon_mla_qqq_8_16,\
979                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
980                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
981                cortex_a9_neon_fp_vmla_ddd,\
982                cortex_a9_neon_fp_vmla_qqq,\
983                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
984                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
986 (define_bypass 5 "cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar"
987                "cortex_a9_neon_int_1,\
988                cortex_a9_neon_int_4,\
989                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
990                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
991                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
992                cortex_a9_neon_mla_qqq_8_16,\
993                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
994                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
995                cortex_a9_neon_fp_vmla_ddd,\
996                cortex_a9_neon_fp_vmla_qqq,\
997                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
998                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1000 (define_bypass 8 "cortex_a9_neon_mla_qqq_32_qqd_32_scalar"
1001                "cortex_a9_neon_int_1,\
1002                cortex_a9_neon_int_4,\
1003                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1004                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1005                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1006                cortex_a9_neon_mla_qqq_8_16,\
1007                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1008                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1009                cortex_a9_neon_fp_vmla_ddd,\
1010                cortex_a9_neon_fp_vmla_qqq,\
1011                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1012                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1014 (define_bypass 6 "cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long"
1015                "cortex_a9_neon_int_1,\
1016                cortex_a9_neon_int_4,\
1017                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1018                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1019                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1020                cortex_a9_neon_mla_qqq_8_16,\
1021                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1022                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1023                cortex_a9_neon_fp_vmla_ddd,\
1024                cortex_a9_neon_fp_vmla_qqq,\
1025                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1026                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1028 (define_bypass 6 "cortex_a9_neon_mla_qqq_8_16"
1029                "cortex_a9_neon_int_1,\
1030                cortex_a9_neon_int_4,\
1031                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1032                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1033                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1034                cortex_a9_neon_mla_qqq_8_16,\
1035                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1036                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1037                cortex_a9_neon_fp_vmla_ddd,\
1038                cortex_a9_neon_fp_vmla_qqq,\
1039                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1040                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1042 (define_bypass 5 "cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long"
1043                "cortex_a9_neon_int_1,\
1044                cortex_a9_neon_int_4,\
1045                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1046                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1047                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1048                cortex_a9_neon_mla_qqq_8_16,\
1049                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1050                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1051                cortex_a9_neon_fp_vmla_ddd,\
1052                cortex_a9_neon_fp_vmla_qqq,\
1053                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1054                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1056 (define_bypass 6 "cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar"
1057                "cortex_a9_neon_int_1,\
1058                cortex_a9_neon_int_4,\
1059                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1060                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1061                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1062                cortex_a9_neon_mla_qqq_8_16,\
1063                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1064                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1065                cortex_a9_neon_fp_vmla_ddd,\
1066                cortex_a9_neon_fp_vmla_qqq,\
1067                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1068                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1070 (define_bypass 6 "cortex_a9_neon_mul_qqq_8_16_32_ddd_32"
1071                "cortex_a9_neon_int_1,\
1072                cortex_a9_neon_int_4,\
1073                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1074                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1075                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1076                cortex_a9_neon_mla_qqq_8_16,\
1077                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1078                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1079                cortex_a9_neon_fp_vmla_ddd,\
1080                cortex_a9_neon_fp_vmla_qqq,\
1081                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1082                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1084 (define_bypass 5 "cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long"
1085                "cortex_a9_neon_int_1,\
1086                cortex_a9_neon_int_4,\
1087                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1088                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1089                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1090                cortex_a9_neon_mla_qqq_8_16,\
1091                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1092                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1093                cortex_a9_neon_fp_vmla_ddd,\
1094                cortex_a9_neon_fp_vmla_qqq,\
1095                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1096                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1098 (define_bypass 5 "cortex_a9_neon_vsma"
1099                "cortex_a9_neon_int_1,\
1100                cortex_a9_neon_int_4,\
1101                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1102                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1103                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1104                cortex_a9_neon_mla_qqq_8_16,\
1105                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1106                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1107                cortex_a9_neon_fp_vmla_ddd,\
1108                cortex_a9_neon_fp_vmla_qqq,\
1109                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1110                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1112 (define_bypass 6 "cortex_a9_neon_vaba_qqq"
1113                "cortex_a9_neon_int_1,\
1114                cortex_a9_neon_int_4,\
1115                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1116                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1117                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1118                cortex_a9_neon_mla_qqq_8_16,\
1119                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1120                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1121                cortex_a9_neon_fp_vmla_ddd,\
1122                cortex_a9_neon_fp_vmla_qqq,\
1123                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1124                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1126 (define_bypass 5 "cortex_a9_neon_vaba"
1127                "cortex_a9_neon_int_1,\
1128                cortex_a9_neon_int_4,\
1129                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1130                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1131                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1132                cortex_a9_neon_mla_qqq_8_16,\
1133                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1134                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1135                cortex_a9_neon_fp_vmla_ddd,\
1136                cortex_a9_neon_fp_vmla_qqq,\
1137                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1138                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1140 (define_bypass 2 "cortex_a9_neon_vmov"
1141                "cortex_a9_neon_int_1,\
1142                cortex_a9_neon_int_4,\
1143                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1144                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1145                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1146                cortex_a9_neon_mla_qqq_8_16,\
1147                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1148                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1149                cortex_a9_neon_fp_vmla_ddd,\
1150                cortex_a9_neon_fp_vmla_qqq,\
1151                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1152                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1154 (define_bypass 3 "cortex_a9_neon_vqneg_vqabs"
1155                "cortex_a9_neon_int_1,\
1156                cortex_a9_neon_int_4,\
1157                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1158                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1159                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1160                cortex_a9_neon_mla_qqq_8_16,\
1161                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1162                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1163                cortex_a9_neon_fp_vmla_ddd,\
1164                cortex_a9_neon_fp_vmla_qqq,\
1165                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1166                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1168 (define_bypass 3 "cortex_a9_neon_int_5"
1169                "cortex_a9_neon_int_1,\
1170                cortex_a9_neon_int_4,\
1171                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1172                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1173                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1174                cortex_a9_neon_mla_qqq_8_16,\
1175                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1176                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1177                cortex_a9_neon_fp_vmla_ddd,\
1178                cortex_a9_neon_fp_vmla_qqq,\
1179                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1180                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1182 (define_bypass 3 "cortex_a9_neon_int_4"
1183                "cortex_a9_neon_int_1,\
1184                cortex_a9_neon_int_4,\
1185                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1186                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1187                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1188                cortex_a9_neon_mla_qqq_8_16,\
1189                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1190                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1191                cortex_a9_neon_fp_vmla_ddd,\
1192                cortex_a9_neon_fp_vmla_qqq,\
1193                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1194                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1196 (define_bypass 2 "cortex_a9_neon_int_3"
1197                "cortex_a9_neon_int_1,\
1198                cortex_a9_neon_int_4,\
1199                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1200                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1201                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1202                cortex_a9_neon_mla_qqq_8_16,\
1203                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1204                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1205                cortex_a9_neon_fp_vmla_ddd,\
1206                cortex_a9_neon_fp_vmla_qqq,\
1207                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1208                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1210 (define_bypass 2 "cortex_a9_neon_int_2"
1211                "cortex_a9_neon_int_1,\
1212                cortex_a9_neon_int_4,\
1213                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1214                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1215                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1216                cortex_a9_neon_mla_qqq_8_16,\
1217                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1218                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1219                cortex_a9_neon_fp_vmla_ddd,\
1220                cortex_a9_neon_fp_vmla_qqq,\
1221                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1222                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")
1224 (define_bypass 2 "cortex_a9_neon_int_1"
1225                "cortex_a9_neon_int_1,\
1226                cortex_a9_neon_int_4,\
1227                cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long,\
1228                cortex_a9_neon_mul_qqq_8_16_32_ddd_32,\
1229                cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long,\
1230                cortex_a9_neon_mla_qqq_8_16,\
1231                cortex_a9_neon_fp_vadd_ddd_vabs_dd,\
1232                cortex_a9_neon_fp_vadd_qqq_vabs_qq,\
1233                cortex_a9_neon_fp_vmla_ddd,\
1234                cortex_a9_neon_fp_vmla_qqq,\
1235                cortex_a9_neon_fp_vrecps_vrsqrts_ddd,\
1236                cortex_a9_neon_fp_vrecps_vrsqrts_qqq")