OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [arm/] [cortex-a9-neon.md] - Blame information for rev 709

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 709 jeremybenn
;; 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
;; .
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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.