Mercurial > hg > CbC > CbC_gcc
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 |