comparison gcc/config/arm/cortex-a9-neon.md @ 68:561a7518be6b

update gcc-4.6
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Sun, 21 Aug 2011 07:07:55 +0900
parents
children 04ced10e8804
comparison
equal deleted inserted replaced
67:f6334be47118 68:561a7518be6b
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.
12 ;;
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.
17 ;;
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/>.
21
22
23 (define_automaton "cortex_a9_neon")
24
25 ;; Only one instruction can be issued per cycle.
26 (define_cpu_unit "cortex_a9_neon_issue_perm" "cortex_a9_neon")
27
28 ;; Only one data-processing instruction can be issued per cycle.
29 (define_cpu_unit "cortex_a9_neon_issue_dp" "cortex_a9_neon")
30
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")
40
41
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.
46
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")
57
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")
65
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")
75
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")
96
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")
107
108
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")
114
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")
119
120 ;; The remainder of this file is auto-generated by neon-schedgen.
121
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")
128
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")
135
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")
142
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")
149
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")
156
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")
163
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")
169
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")
177
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")
185
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")
192
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")
199
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")
206
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")
213
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")
221
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")
229
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")
237
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")
245
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")
252
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")
259
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")
267
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")
274
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")
281
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")
288
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")
295
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")
302
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")
309
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")
316
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")
323
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")
330
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")
337
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")
344
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")
352
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")
360
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")
368
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")
376
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")
383
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")
390
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")
397
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")
404
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")
411
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")
417
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")
423
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")
429
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")
435
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")
441
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")
447
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")
453
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")
459
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")
465
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")
471
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")
477
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")
484
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")
491
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")
497
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")
503
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")
509
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")
515
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")
521
522 ;; Exceptions to the default latencies.
523
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")
537
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")
551
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")
565
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")
579
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")
593
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")
607
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")
621
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")
635
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")
649
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")
663
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")
677
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")
691
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")
705
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")
719
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")
733
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")
747
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")
761
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")
775
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")
789
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")
803
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")
817
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")
831
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")
845
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")
859
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")
873
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")
887
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")
901
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")
915
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")
929
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")
943
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")
957
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")
971
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")
985
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")
999
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")
1013
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")
1027
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")
1041
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")
1055
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")
1069
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")
1083
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")
1097
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")
1111
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")
1125
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")
1139
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")
1153
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")
1167
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")
1181
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")
1195
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")
1209
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")
1223
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")
1237