xref: /aosp_15_r20/external/libxaac/decoder/armv7/ixheaacd_dct3_32.s (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1*15dc779aSAndroid Build Coastguard Worker@/******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker@ *
3*15dc779aSAndroid Build Coastguard Worker@ * Copyright (C) 2018 The Android Open Source Project
4*15dc779aSAndroid Build Coastguard Worker@ *
5*15dc779aSAndroid Build Coastguard Worker@ * Licensed under the Apache License, Version 2.0 (the "License");
6*15dc779aSAndroid Build Coastguard Worker@ * you may not use this file except in compliance with the License.
7*15dc779aSAndroid Build Coastguard Worker@ * You may obtain a copy of the License at:
8*15dc779aSAndroid Build Coastguard Worker@ *
9*15dc779aSAndroid Build Coastguard Worker@ * http://www.apache.org/licenses/LICENSE-2.0
10*15dc779aSAndroid Build Coastguard Worker@ *
11*15dc779aSAndroid Build Coastguard Worker@ * Unless required by applicable law or agreed to in writing, software
12*15dc779aSAndroid Build Coastguard Worker@ * distributed under the License is distributed on an "AS IS" BASIS,
13*15dc779aSAndroid Build Coastguard Worker@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*15dc779aSAndroid Build Coastguard Worker@ * See the License for the specific language governing permissions and
15*15dc779aSAndroid Build Coastguard Worker@ * limitations under the License.
16*15dc779aSAndroid Build Coastguard Worker@ *
17*15dc779aSAndroid Build Coastguard Worker@ *****************************************************************************
18*15dc779aSAndroid Build Coastguard Worker@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*15dc779aSAndroid Build Coastguard Worker@*/
20*15dc779aSAndroid Build Coastguard Worker
21*15dc779aSAndroid Build Coastguard Worker
22*15dc779aSAndroid Build Coastguard Worker.text
23*15dc779aSAndroid Build Coastguard Worker.p2align 2
24*15dc779aSAndroid Build Coastguard Worker.global ixheaacd_dct3_32
25*15dc779aSAndroid Build Coastguard Worker.type ixheaacd_dct3_32, %function
26*15dc779aSAndroid Build Coastguard Worker.extern ixheaacd_radix4bfly
27*15dc779aSAndroid Build Coastguard Worker.hidden ixheaacd_radix4bfly
28*15dc779aSAndroid Build Coastguard Worker.extern ixheaacd_postradixcompute4
29*15dc779aSAndroid Build Coastguard Worker.hidden ixheaacd_postradixcompute4
30*15dc779aSAndroid Build Coastguard Worker
31*15dc779aSAndroid Build Coastguard Workerixheaacd_dct3_32:
32*15dc779aSAndroid Build Coastguard Worker
33*15dc779aSAndroid Build Coastguard Worker
34*15dc779aSAndroid Build Coastguard Worker    STMFD           sp!, {R4-R12, R14}
35*15dc779aSAndroid Build Coastguard Worker    VPUSH           {D8 - D15}
36*15dc779aSAndroid Build Coastguard Worker    ADD             R6, R0, #196
37*15dc779aSAndroid Build Coastguard Worker    SUB             R7, R6, #8
38*15dc779aSAndroid Build Coastguard Worker    ADD             R10, R7, #4
39*15dc779aSAndroid Build Coastguard Worker    MOV             R9, #0
40*15dc779aSAndroid Build Coastguard Worker    VDUP.32         D0, R9
41*15dc779aSAndroid Build Coastguard Worker    ADD             R4, R2, #8
42*15dc779aSAndroid Build Coastguard Worker    MOV             R8, R1
43*15dc779aSAndroid Build Coastguard Worker
44*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D0[0], [R10]
45*15dc779aSAndroid Build Coastguard Worker    MOV             R11, #-4
46*15dc779aSAndroid Build Coastguard Worker
47*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D0, D0, #7
48*15dc779aSAndroid Build Coastguard Worker    VLD4.16         {D12, D13, D14, D15}, [R4]!
49*15dc779aSAndroid Build Coastguard Worker
50*15dc779aSAndroid Build Coastguard Worker    MOV             R12, #-16
51*15dc779aSAndroid Build Coastguard Worker    VST1.32         D0, [R8]!
52*15dc779aSAndroid Build Coastguard Worker    SUB             R7, R7, #12
53*15dc779aSAndroid Build Coastguard Worker
54*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q0}, [R6]!
55*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q1}, [R7], R12
56*15dc779aSAndroid Build Coastguard Worker    SUB             R9, R6, #144
57*15dc779aSAndroid Build Coastguard Worker
58*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q1, Q1
59*15dc779aSAndroid Build Coastguard Worker    SUB             R5, R7, #112
60*15dc779aSAndroid Build Coastguard Worker
61*15dc779aSAndroid Build Coastguard Worker    VSWP            D2, D3
62*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q0, Q0, #7
63*15dc779aSAndroid Build Coastguard Worker
64*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q1, Q1, #7
65*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q3}, [R9]!
66*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q2, Q1, Q0
67*15dc779aSAndroid Build Coastguard Worker
68*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D4, D5
69*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q3, Q3, #7
70*15dc779aSAndroid Build Coastguard Worker
71*15dc779aSAndroid Build Coastguard Worker
72*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q4}, [R5], R12
73*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D4, D12
74*15dc779aSAndroid Build Coastguard Worker
75*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q4, Q4
76*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D4, D13
77*15dc779aSAndroid Build Coastguard Worker
78*15dc779aSAndroid Build Coastguard Worker    VSWP            D8, D9
79*15dc779aSAndroid Build Coastguard Worker
80*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q4, Q4, #7
81*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q0}, [R6]!
82*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q5, Q3, Q4
83*15dc779aSAndroid Build Coastguard Worker
84*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D10, D11
85*15dc779aSAndroid Build Coastguard Worker
86*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D10, D13
87*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q1}, [R7], R12
88*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D10, D12
89*15dc779aSAndroid Build Coastguard Worker
90*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q1, Q1
91*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q0, Q0, #7
92*15dc779aSAndroid Build Coastguard Worker
93*15dc779aSAndroid Build Coastguard Worker    VSWP            D2, D3
94*15dc779aSAndroid Build Coastguard Worker
95*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
96*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q1, Q1, #7
97*15dc779aSAndroid Build Coastguard Worker
98*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D5, D12
99*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D11, D13
100*15dc779aSAndroid Build Coastguard Worker
101*15dc779aSAndroid Build Coastguard Worker
102*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
103*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D5, D13
104*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q2, Q1, Q0
105*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D11, D12
106*15dc779aSAndroid Build Coastguard Worker
107*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D4, D5
108*15dc779aSAndroid Build Coastguard Worker    SUB             R9, R6, #144
109*15dc779aSAndroid Build Coastguard Worker
110*15dc779aSAndroid Build Coastguard Worker    VSWP            Q15, Q14
111*15dc779aSAndroid Build Coastguard Worker    SUB             R5, R7, #112
112*15dc779aSAndroid Build Coastguard Worker
113*15dc779aSAndroid Build Coastguard Worker    VST2.32         {Q14, Q15}, [R8]!
114*15dc779aSAndroid Build Coastguard Worker
115*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q3}, [R9]!
116*15dc779aSAndroid Build Coastguard Worker
117*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q4}, [R5], R12
118*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q3, Q3, #7
119*15dc779aSAndroid Build Coastguard Worker
120*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q4, Q4
121*15dc779aSAndroid Build Coastguard Worker
122*15dc779aSAndroid Build Coastguard Worker    VSWP            D8, D9
123*15dc779aSAndroid Build Coastguard Worker
124*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q4, Q4, #7
125*15dc779aSAndroid Build Coastguard Worker    VLD4.16         {D12, D13, D14, D15}, [R4]!
126*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q5, Q3, Q4
127*15dc779aSAndroid Build Coastguard Worker
128*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D10, D11
129*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D4, D12
130*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D10, D13
131*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D4, D13
132*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q0}, [R6]!
133*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D10, D12
134*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q1}, [R7], R11
135*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
136*15dc779aSAndroid Build Coastguard Worker
137*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q1, Q1
138*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
139*15dc779aSAndroid Build Coastguard Worker
140*15dc779aSAndroid Build Coastguard Worker    VSWP            D2, D3
141*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q0, Q0, #7
142*15dc779aSAndroid Build Coastguard Worker
143*15dc779aSAndroid Build Coastguard Worker    SUB             R9, R6, #144
144*15dc779aSAndroid Build Coastguard Worker
145*15dc779aSAndroid Build Coastguard Worker    SUB             R5, R7, #124
146*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q3}, [R9]!
147*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D5, D13
148*15dc779aSAndroid Build Coastguard Worker
149*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D11, D12
150*15dc779aSAndroid Build Coastguard Worker    VLD1.32         {Q4}, [R5], R11
151*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D5, D12
152*15dc779aSAndroid Build Coastguard Worker
153*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q4, Q4
154*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D11, D13
155*15dc779aSAndroid Build Coastguard Worker
156*15dc779aSAndroid Build Coastguard Worker    VSWP            D8, D9
157*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q1, Q1, #7
158*15dc779aSAndroid Build Coastguard Worker
159*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q2, Q1, Q0
160*15dc779aSAndroid Build Coastguard Worker    VLD4.16         {D12, D13, D14, D15}, [R4]!
161*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q3, Q3, #7
162*15dc779aSAndroid Build Coastguard Worker
163*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D4, D5
164*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q4, Q4, #7
165*15dc779aSAndroid Build Coastguard Worker
166*15dc779aSAndroid Build Coastguard Worker    VSWP            Q15, Q14
167*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q5, Q3, Q4
168*15dc779aSAndroid Build Coastguard Worker
169*15dc779aSAndroid Build Coastguard Worker    VST2.32         {Q14, Q15}, [R8]!
170*15dc779aSAndroid Build Coastguard Worker
171*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D10, D11
172*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D4, D12
173*15dc779aSAndroid Build Coastguard Worker
174*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D10, D13
175*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D0, [R6]!
176*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D4, D13
177*15dc779aSAndroid Build Coastguard Worker
178*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D10, D12
179*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D1[0], [R6]!
180*15dc779aSAndroid Build Coastguard Worker
181*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
182*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D2[0], [R7], R11
183*15dc779aSAndroid Build Coastguard Worker
184*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D5, D12
185*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D2[1], [R7], R11
186*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D11, D13
187*15dc779aSAndroid Build Coastguard Worker
188*15dc779aSAndroid Build Coastguard Worker    SUB             R9, R6, #140
189*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D3[0], [R7], R11
190*15dc779aSAndroid Build Coastguard Worker
191*15dc779aSAndroid Build Coastguard Worker    SUB             R5, R7, #116
192*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D6, [R9]!
193*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
194*15dc779aSAndroid Build Coastguard Worker
195*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q0, Q0, #7
196*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D7[0], [R9]!
197*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D5, D13
198*15dc779aSAndroid Build Coastguard Worker
199*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D8[0], [R5], R11
200*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D11, D12
201*15dc779aSAndroid Build Coastguard Worker
202*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q1, Q1, #7
203*15dc779aSAndroid Build Coastguard Worker    VLD4.16         {D12, D13, D14, D15}, [R4]
204*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q2, Q1, Q0
205*15dc779aSAndroid Build Coastguard Worker
206*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D8[1], [R5], R11
207*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q3, Q3, #7
208*15dc779aSAndroid Build Coastguard Worker
209*15dc779aSAndroid Build Coastguard Worker    VSWP            Q15, Q14
210*15dc779aSAndroid Build Coastguard Worker
211*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D9[0], [R5], R11
212*15dc779aSAndroid Build Coastguard Worker
213*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q4, Q4, #7
214*15dc779aSAndroid Build Coastguard Worker    VST2.32         {Q14, Q15}, [R8]!
215*15dc779aSAndroid Build Coastguard Worker    ADD             R4, #24
216*15dc779aSAndroid Build Coastguard Worker
217*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D4, D5
218*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q5, Q3, Q4
219*15dc779aSAndroid Build Coastguard Worker
220*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D10, D11
221*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D4, D12
222*15dc779aSAndroid Build Coastguard Worker
223*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D10, D13
224*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D4, D13
225*15dc779aSAndroid Build Coastguard Worker
226*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D10, D12
227*15dc779aSAndroid Build Coastguard Worker    VLD1.16         D0[0], [R4]!
228*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
229*15dc779aSAndroid Build Coastguard Worker
230*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
231*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D2[0], [R7], R11
232*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D5, D12
233*15dc779aSAndroid Build Coastguard Worker
234*15dc779aSAndroid Build Coastguard Worker    SUB             R5, R7, #124
235*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D11, D13
236*15dc779aSAndroid Build Coastguard Worker    VLD1.32         D4[0], [R5]
237*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D5, D13
238*15dc779aSAndroid Build Coastguard Worker
239*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D11, D12
240*15dc779aSAndroid Build Coastguard Worker
241*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D2, D2, #7
242*15dc779aSAndroid Build Coastguard Worker    VST1.32         D30[0], [R8]!
243*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D4, D4, #7
244*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        D2, D2, D4
245*15dc779aSAndroid Build Coastguard Worker
246*15dc779aSAndroid Build Coastguard Worker    VMOV            D4, D2
247*15dc779aSAndroid Build Coastguard Worker    VST1.32         D28[0], [R8]!
248*15dc779aSAndroid Build Coastguard Worker    MOV             R6, R1
249*15dc779aSAndroid Build Coastguard Worker
250*15dc779aSAndroid Build Coastguard Worker    ADD             R7, R1, #124
251*15dc779aSAndroid Build Coastguard Worker    VST1.32         D30[1], [R8]!
252*15dc779aSAndroid Build Coastguard Worker    ADD             R10, R3, #16
253*15dc779aSAndroid Build Coastguard Worker
254*15dc779aSAndroid Build Coastguard Worker    SUB             R7, R7, #28
255*15dc779aSAndroid Build Coastguard Worker    VST1.32         D28[1], [R8]!
256*15dc779aSAndroid Build Coastguard Worker    MOV             R5, #-16
257*15dc779aSAndroid Build Coastguard Worker
258*15dc779aSAndroid Build Coastguard Worker    MOV             R9, #-4
259*15dc779aSAndroid Build Coastguard Worker    VST1.32         D31[0], [R8]!
260*15dc779aSAndroid Build Coastguard Worker    MOV             R11, #16
261*15dc779aSAndroid Build Coastguard Worker
262*15dc779aSAndroid Build Coastguard Worker    VST1.32         D29[0], [R8]!
263*15dc779aSAndroid Build Coastguard Worker    MOV             R12, #4
264*15dc779aSAndroid Build Coastguard Worker
265*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D4, D5
266*15dc779aSAndroid Build Coastguard Worker    MOV             R8, #6
267*15dc779aSAndroid Build Coastguard Worker
268*15dc779aSAndroid Build Coastguard Worker    VLD1.16         D1[0], [R4], R8
269*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D4, D0
270*15dc779aSAndroid Build Coastguard Worker
271*15dc779aSAndroid Build Coastguard Worker
272*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D2, D3
273*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D4, D1
274*15dc779aSAndroid Build Coastguard Worker
275*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D2, D1
276*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {D10, D11}, [R6]
277*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D2, D0
278*15dc779aSAndroid Build Coastguard Worker
279*15dc779aSAndroid Build Coastguard Worker    ADD             R4, R3, #4
280*15dc779aSAndroid Build Coastguard Worker    MOV             R8, #-32
281*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
282*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
283*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D5, D0
284*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D3, D1
285*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D5, D1
286*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D3, D0
287*15dc779aSAndroid Build Coastguard Worker
288*15dc779aSAndroid Build Coastguard Worker    VADD.I32        D14, D11, D28
289*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {Q2, Q3}, [R7]
290*15dc779aSAndroid Build Coastguard Worker    VNEG.S32        D14, D14
291*15dc779aSAndroid Build Coastguard Worker
292*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q2, Q2
293*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        D12, D10, D30
294*15dc779aSAndroid Build Coastguard Worker
295*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q3, Q3
296*15dc779aSAndroid Build Coastguard Worker    VADD.I32        D10, D10, D30
297*15dc779aSAndroid Build Coastguard Worker
298*15dc779aSAndroid Build Coastguard Worker    VSWP            D4, D5
299*15dc779aSAndroid Build Coastguard Worker    VADD.I32        D10, D10, D14
300*15dc779aSAndroid Build Coastguard Worker
301*15dc779aSAndroid Build Coastguard Worker    VSWP            D6, D7
302*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        D11, D11, D28
303*15dc779aSAndroid Build Coastguard Worker
304*15dc779aSAndroid Build Coastguard Worker    VADD.I32        D11, D11, D12
305*15dc779aSAndroid Build Coastguard Worker    VLD2.16         {D8, D9}, [R10], R5
306*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D10, D10, #1
307*15dc779aSAndroid Build Coastguard Worker
308*15dc779aSAndroid Build Coastguard Worker    VREV64.16       D8, D8
309*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D11, D11, #1
310*15dc779aSAndroid Build Coastguard Worker
311*15dc779aSAndroid Build Coastguard Worker    VUZP.32         D10, D11
312*15dc779aSAndroid Build Coastguard Worker
313*15dc779aSAndroid Build Coastguard Worker    VST1.32         D10, [R6]!
314*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {Q0, Q1}, [R6]
315*15dc779aSAndroid Build Coastguard Worker
316*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q7, Q0, Q2
317*15dc779aSAndroid Build Coastguard Worker    VLD2.16         {D10, D11}, [R4], R11
318*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q6, Q0, Q2
319*15dc779aSAndroid Build Coastguard Worker
320*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D12, D13
321*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q8, Q1, Q3
322*15dc779aSAndroid Build Coastguard Worker
323*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D16, D17
324*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q9, Q1, Q3
325*15dc779aSAndroid Build Coastguard Worker
326*15dc779aSAndroid Build Coastguard Worker
327*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D12, D8
328*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D16, D10
329*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D12, D10
330*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D16, D8
331*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q7, Q7, #1
332*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
333*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q9, Q9, #1
334*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
335*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D13, D8
336*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D17, D10
337*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D13, D10
338*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D17, D8
339*15dc779aSAndroid Build Coastguard Worker
340*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q10, Q7, Q15
341*15dc779aSAndroid Build Coastguard Worker    VLD2.16         {D8, D9}, [R10]
342*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q13, Q7, Q15
343*15dc779aSAndroid Build Coastguard Worker
344*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q13, Q13
345*15dc779aSAndroid Build Coastguard Worker    VSWP            D26, D27
346*15dc779aSAndroid Build Coastguard Worker
347*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q11, Q9, Q14
348*15dc779aSAndroid Build Coastguard Worker    VREV64.16       D8, D8
349*15dc779aSAndroid Build Coastguard Worker
350*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q12, Q14, Q9
351*15dc779aSAndroid Build Coastguard Worker
352*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q12, Q12
353*15dc779aSAndroid Build Coastguard Worker
354*15dc779aSAndroid Build Coastguard Worker    VST2.32         {Q10, Q11}, [R6]!
355*15dc779aSAndroid Build Coastguard Worker    VSWP            D24, D25
356*15dc779aSAndroid Build Coastguard Worker    VSWP            Q12, Q13
357*15dc779aSAndroid Build Coastguard Worker    VST2.32         {Q12, Q13}, [R7], R8
358*15dc779aSAndroid Build Coastguard Worker
359*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {Q0, Q1}, [R6]
360*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {Q2, Q3}, [R7]
361*15dc779aSAndroid Build Coastguard Worker
362*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q2, Q2
363*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q3, Q3
364*15dc779aSAndroid Build Coastguard Worker
365*15dc779aSAndroid Build Coastguard Worker    VSWP            D4, D5
366*15dc779aSAndroid Build Coastguard Worker    VSWP            D6, D7
367*15dc779aSAndroid Build Coastguard Worker
368*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q6, Q0, Q2
369*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q7, Q0, Q2
370*15dc779aSAndroid Build Coastguard Worker    VLD2.16         {D10, D11}, [R4], R11
371*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q8, Q1, Q3
372*15dc779aSAndroid Build Coastguard Worker
373*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D12, D13
374*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q9, Q1, Q3
375*15dc779aSAndroid Build Coastguard Worker
376*15dc779aSAndroid Build Coastguard Worker
377*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D16, D17
378*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D12, D8
379*15dc779aSAndroid Build Coastguard Worker
380*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D16, D10
381*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D12, D10
382*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D16, D8
383*15dc779aSAndroid Build Coastguard Worker    ADD             R7, R7, #8
384*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
385*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q7, Q7, #1
386*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
387*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D13, D8
388*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D17, D10
389*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D13, D10
390*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D17, D8
391*15dc779aSAndroid Build Coastguard Worker
392*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q9, Q9, #1
393*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q10, Q7, Q15
394*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        Q12, Q14, Q9
395*15dc779aSAndroid Build Coastguard Worker
396*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q11, Q9, Q14
397*15dc779aSAndroid Build Coastguard Worker    VST1.32         D20[0], [R6]!
398*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q13, Q7, Q15
399*15dc779aSAndroid Build Coastguard Worker
400*15dc779aSAndroid Build Coastguard Worker
401*15dc779aSAndroid Build Coastguard Worker    VST1.32         D22[0], [R6]!
402*15dc779aSAndroid Build Coastguard Worker    VST1.32         D20[1], [R6]!
403*15dc779aSAndroid Build Coastguard Worker    VST1.32         D22[1], [R6]!
404*15dc779aSAndroid Build Coastguard Worker    VST1.32         D21[0], [R6]!
405*15dc779aSAndroid Build Coastguard Worker    VST1.32         D23[0], [R6]!
406*15dc779aSAndroid Build Coastguard Worker
407*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q12, Q12
408*15dc779aSAndroid Build Coastguard Worker
409*15dc779aSAndroid Build Coastguard Worker    VREV64.32       Q13, Q13
410*15dc779aSAndroid Build Coastguard Worker    VSWP            D24, D25
411*15dc779aSAndroid Build Coastguard Worker    VSWP            D26, D27
412*15dc779aSAndroid Build Coastguard Worker
413*15dc779aSAndroid Build Coastguard Worker
414*15dc779aSAndroid Build Coastguard Worker    VST1.32         D26[1], [R7]!
415*15dc779aSAndroid Build Coastguard Worker    VST1.32         D24[1], [R7]!
416*15dc779aSAndroid Build Coastguard Worker    VST1.32         D27[0], [R7]!
417*15dc779aSAndroid Build Coastguard Worker    VST1.32         D25[0], [R7]!
418*15dc779aSAndroid Build Coastguard Worker    VST1.32         D27[1], [R7]!
419*15dc779aSAndroid Build Coastguard Worker    VST1.32         D25[1], [R7]!
420*15dc779aSAndroid Build Coastguard Worker
421*15dc779aSAndroid Build Coastguard Worker    SUB             R7, R7, #32
422*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {D0, D1}, [R6]
423*15dc779aSAndroid Build Coastguard Worker    VLD2.32         {D2, D3}, [R7]
424*15dc779aSAndroid Build Coastguard Worker
425*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        D12, D0, D2
426*15dc779aSAndroid Build Coastguard Worker    VLD1.16         D8, [R10], R9
427*15dc779aSAndroid Build Coastguard Worker    VADD.I32        D14, D0, D2
428*15dc779aSAndroid Build Coastguard Worker
429*15dc779aSAndroid Build Coastguard Worker    VADD.I32        D16, D1, D3
430*15dc779aSAndroid Build Coastguard Worker    VLD1.16         D10, [R4], R12
431*15dc779aSAndroid Build Coastguard Worker    VSUB.I32        D18, D1, D3
432*15dc779aSAndroid Build Coastguard Worker
433*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D12, D13
434*15dc779aSAndroid Build Coastguard Worker    MOV             R4, R0
435*15dc779aSAndroid Build Coastguard Worker
436*15dc779aSAndroid Build Coastguard Worker    VUZP.16         D16, D17
437*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q15, D12, D8
438*15dc779aSAndroid Build Coastguard Worker    VMLAL.U16       Q15, D16, D10
439*15dc779aSAndroid Build Coastguard Worker    VMULL.U16       Q14, D12, D10
440*15dc779aSAndroid Build Coastguard Worker    VMLSL.U16       Q14, D16, D8
441*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D18, D18, #1
442*15dc779aSAndroid Build Coastguard Worker    VSHR.U32        Q15, Q15, #16
443*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        Q14, Q14, #16
444*15dc779aSAndroid Build Coastguard Worker
445*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D13, D8
446*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q15, D17, D10
447*15dc779aSAndroid Build Coastguard Worker
448*15dc779aSAndroid Build Coastguard Worker    MOV             R10, R1
449*15dc779aSAndroid Build Coastguard Worker
450*15dc779aSAndroid Build Coastguard Worker    VMLAL.S16       Q14, D13, D10
451*15dc779aSAndroid Build Coastguard Worker    VMLSL.S16       Q14, D17, D8
452*15dc779aSAndroid Build Coastguard Worker    VNEG.S32        Q15, Q15
453*15dc779aSAndroid Build Coastguard Worker    VSHR.S32        D14, D14, #1
454*15dc779aSAndroid Build Coastguard Worker
455*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q13, Q7, Q15
456*15dc779aSAndroid Build Coastguard Worker
457*15dc779aSAndroid Build Coastguard Worker    VADD.I32        Q11, Q9, Q14
458*15dc779aSAndroid Build Coastguard Worker
459*15dc779aSAndroid Build Coastguard Worker    LDR             r0 , [sp , #104]
460*15dc779aSAndroid Build Coastguard Worker    VST1.32         D26[0], [R6]!
461*15dc779aSAndroid Build Coastguard Worker    MOV             r2, #1
462*15dc779aSAndroid Build Coastguard Worker
463*15dc779aSAndroid Build Coastguard Worker    VST1.32         D22[0], [R6]!
464*15dc779aSAndroid Build Coastguard Worker    MOV             r3, #4
465*15dc779aSAndroid Build Coastguard Worker    BL              ixheaacd_radix4bfly
466*15dc779aSAndroid Build Coastguard Worker
467*15dc779aSAndroid Build Coastguard Worker    MOV             r0, r4
468*15dc779aSAndroid Build Coastguard Worker    MOV             r1, r10
469*15dc779aSAndroid Build Coastguard Worker    LDR             r2 , [sp , #108]
470*15dc779aSAndroid Build Coastguard Worker    MOV             r3, #16
471*15dc779aSAndroid Build Coastguard Worker    BL              ixheaacd_postradixcompute4
472*15dc779aSAndroid Build Coastguard Worker
473*15dc779aSAndroid Build Coastguard Worker    MOV             r0, r4
474*15dc779aSAndroid Build Coastguard Worker    MOV             r1, r10
475*15dc779aSAndroid Build Coastguard Worker    LDMIA           r0!, {r4, r5}
476*15dc779aSAndroid Build Coastguard Worker    STR             r4, [r1], #4
477*15dc779aSAndroid Build Coastguard Worker    STR             r5, [r1, #4]
478*15dc779aSAndroid Build Coastguard Worker    ADD             r2, r0, #64
479*15dc779aSAndroid Build Coastguard Worker    ADD             r3, r1, #116
480*15dc779aSAndroid Build Coastguard Worker    MOV             r6, #7
481*15dc779aSAndroid Build Coastguard Worker
482*15dc779aSAndroid Build Coastguard WorkerBACK3:
483*15dc779aSAndroid Build Coastguard Worker
484*15dc779aSAndroid Build Coastguard Worker    LDMIA           r0!, {r4, r5}
485*15dc779aSAndroid Build Coastguard Worker    STR             r5, [r1], #8
486*15dc779aSAndroid Build Coastguard Worker    STR             r4, [r1], #8
487*15dc779aSAndroid Build Coastguard Worker
488*15dc779aSAndroid Build Coastguard Worker    LDMIA           r2!, {r4, r5}
489*15dc779aSAndroid Build Coastguard Worker    STR             r5, [r3], #-8
490*15dc779aSAndroid Build Coastguard Worker    STR             r4, [r3], #-8
491*15dc779aSAndroid Build Coastguard Worker
492*15dc779aSAndroid Build Coastguard Worker    SUBS            r6, r6, #1
493*15dc779aSAndroid Build Coastguard Worker    BNE             BACK3
494*15dc779aSAndroid Build Coastguard Worker
495*15dc779aSAndroid Build Coastguard Worker    LDMIA           r0!, {r4, r5}
496*15dc779aSAndroid Build Coastguard Worker    STR             r5, [r1], #8
497*15dc779aSAndroid Build Coastguard Worker    STR             r4, [r1], #8
498*15dc779aSAndroid Build Coastguard Worker
499*15dc779aSAndroid Build Coastguard Worker    VPOP            {D8 - D15}
500*15dc779aSAndroid Build Coastguard Worker    LDMFD           sp!, {r4-r12, r15}
501*15dc779aSAndroid Build Coastguard Worker
502*15dc779aSAndroid Build Coastguard Worker
503*15dc779aSAndroid Build Coastguard Worker
504*15dc779aSAndroid Build Coastguard Worker
505*15dc779aSAndroid Build Coastguard Worker
506*15dc779aSAndroid Build Coastguard Worker
507*15dc779aSAndroid Build Coastguard Worker
508