xref: /aosp_15_r20/external/libxaac/decoder/armv8/ixheaacd_overlap_add2.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.macro push_v_regs
23*15dc779aSAndroid Build Coastguard Worker    stp             q8, q9, [sp, #-32]!
24*15dc779aSAndroid Build Coastguard Worker    stp             q10, q11, [sp, #-32]!
25*15dc779aSAndroid Build Coastguard Worker    stp             q12, q13, [sp, #-32]!
26*15dc779aSAndroid Build Coastguard Worker    stp             q14, q15, [sp, #-32]!
27*15dc779aSAndroid Build Coastguard Worker    stp             X8, X9, [sp, #-16]!
28*15dc779aSAndroid Build Coastguard Worker    stp             X10, X11, [sp, #-16]!
29*15dc779aSAndroid Build Coastguard Worker    stp             X12, X13, [sp, #-16]!
30*15dc779aSAndroid Build Coastguard Worker    stp             X14, X15, [sp, #-16]!
31*15dc779aSAndroid Build Coastguard Worker    stp             X16, X17, [sp, #-16]!
32*15dc779aSAndroid Build Coastguard Worker    stp             X29, X30, [sp, #-16]!
33*15dc779aSAndroid Build Coastguard Worker.endm
34*15dc779aSAndroid Build Coastguard Worker.macro pop_v_regs
35*15dc779aSAndroid Build Coastguard Worker    ldp             X29, X30, [sp], #16
36*15dc779aSAndroid Build Coastguard Worker    ldp             X16, X17, [sp], #16
37*15dc779aSAndroid Build Coastguard Worker    ldp             X14, X15, [sp], #16
38*15dc779aSAndroid Build Coastguard Worker    ldp             X12, X13, [sp], #16
39*15dc779aSAndroid Build Coastguard Worker    ldp             X10, X11, [sp], #16
40*15dc779aSAndroid Build Coastguard Worker    ldp             X8, X9, [sp], #16
41*15dc779aSAndroid Build Coastguard Worker    ldp             q14, q15, [sp], #32
42*15dc779aSAndroid Build Coastguard Worker    ldp             q12, q13, [sp], #32
43*15dc779aSAndroid Build Coastguard Worker    ldp             q10, q11, [sp], #32
44*15dc779aSAndroid Build Coastguard Worker    ldp             q8, q9, [sp], #32
45*15dc779aSAndroid Build Coastguard Worker.endm
46*15dc779aSAndroid Build Coastguard Worker.text
47*15dc779aSAndroid Build Coastguard Worker.global ixheaacd_over_lap_add2_armv8
48*15dc779aSAndroid Build Coastguard Worker
49*15dc779aSAndroid Build Coastguard Worker
50*15dc779aSAndroid Build Coastguard Workerixheaacd_over_lap_add2_armv8:
51*15dc779aSAndroid Build Coastguard Worker    push_v_regs
52*15dc779aSAndroid Build Coastguard Worker    MOV             X8, X5
53*15dc779aSAndroid Build Coastguard Worker    SUB             X12, X5, #1
54*15dc779aSAndroid Build Coastguard Worker    LSL             X9, X5, #2
55*15dc779aSAndroid Build Coastguard Worker    LSL             X12, X12, #2
56*15dc779aSAndroid Build Coastguard Worker    ADD             X10, X0, X9
57*15dc779aSAndroid Build Coastguard Worker    ADD             X7, X1, X12
58*15dc779aSAndroid Build Coastguard Worker    ADD             X4, X4, #1
59*15dc779aSAndroid Build Coastguard Worker    LD2             {V0.4H, V1.4H}, [X10], #16
60*15dc779aSAndroid Build Coastguard Worker    LSL             X11, X6, #2
61*15dc779aSAndroid Build Coastguard Worker    SUB             X7, X7, #12
62*15dc779aSAndroid Build Coastguard Worker    SUB             X4, X4, #16
63*15dc779aSAndroid Build Coastguard Worker    MOV             X12, #-16
64*15dc779aSAndroid Build Coastguard Worker    MOV             X13, #1
65*15dc779aSAndroid Build Coastguard Worker    ADD             X14, X4, #1
66*15dc779aSAndroid Build Coastguard Worker    NEG             X14, X14
67*15dc779aSAndroid Build Coastguard Worker    DUP             V21.4S, W4
68*15dc779aSAndroid Build Coastguard Worker    LD2             {V6.4H, V7.4H}, [X7], X12
69*15dc779aSAndroid Build Coastguard Worker    LSL             X4, X13, X14
70*15dc779aSAndroid Build Coastguard Worker    REV64           V4.4H, V6.4H
71*15dc779aSAndroid Build Coastguard Worker    DUP             V20.4S, W4
72*15dc779aSAndroid Build Coastguard Worker    REV64           V5.4H, V7.4H
73*15dc779aSAndroid Build Coastguard Worker    MOV             X4, X3
74*15dc779aSAndroid Build Coastguard Worker
75*15dc779aSAndroid Build Coastguard Worker    MOV             X9, X2
76*15dc779aSAndroid Build Coastguard Worker    LD2             {V2.4H, V3.4H}, [X3], #16
77*15dc779aSAndroid Build Coastguard Worker
78*15dc779aSAndroid Build Coastguard Worker    UMULL           V23.4S, V0.4H, V2.4H
79*15dc779aSAndroid Build Coastguard Worker    UMLSL           V23.4S, V4.4H, V3.4H
80*15dc779aSAndroid Build Coastguard Worker    LD2             {V8.4H, V9.4H}, [X10], #16
81*15dc779aSAndroid Build Coastguard Worker    SSHR            V23.4S, V23.4S, #16
82*15dc779aSAndroid Build Coastguard Worker    LD2             {V10.4H, V11.4H}, [X3], #16
83*15dc779aSAndroid Build Coastguard Worker    SMLAL           V23.4S, V1.4H, V2.4H
84*15dc779aSAndroid Build Coastguard Worker    SMLSL           V23.4S, V5.4H, V3.4H
85*15dc779aSAndroid Build Coastguard Worker    LD2             {V14.4H, V15.4H}, [X7], X12
86*15dc779aSAndroid Build Coastguard Worker    REV64           V12.4H, V14.4H
87*15dc779aSAndroid Build Coastguard Worker    REV64           V13.4H, V15.4H
88*15dc779aSAndroid Build Coastguard Worker    SQADD           V22.4S, V23.4S, V20.4S
89*15dc779aSAndroid Build Coastguard Worker    SSHL            V22.4S, V22.4S, V21.4S
90*15dc779aSAndroid Build Coastguard Worker    MOV             V24.16B, V22.16B
91*15dc779aSAndroid Build Coastguard Worker    SUB             X8, X8, #8
92*15dc779aSAndroid Build Coastguard Worker
93*15dc779aSAndroid Build Coastguard WorkerLOOP_1:
94*15dc779aSAndroid Build Coastguard Worker
95*15dc779aSAndroid Build Coastguard Worker    LD2             {V0.4H, V1.4H}, [X10], #16
96*15dc779aSAndroid Build Coastguard Worker    UMULL           V19.4S, V8.4H, V10.4H
97*15dc779aSAndroid Build Coastguard Worker    LD2             {V2.4H, V3.4H}, [X3], #16
98*15dc779aSAndroid Build Coastguard Worker    UMLSL           V19.4S, V12.4H, V11.4H
99*15dc779aSAndroid Build Coastguard Worker    LD2             {V6.4H, V7.4H}, [X7], X12
100*15dc779aSAndroid Build Coastguard Worker    UMULL           V23.4S, V0.4H, V2.4H
101*15dc779aSAndroid Build Coastguard Worker    REV64           V4.4H, V6.4H
102*15dc779aSAndroid Build Coastguard Worker    UMLSL           V23.4S, V4.4H, V3.4H
103*15dc779aSAndroid Build Coastguard Worker    REV64           V5.4H, V7.4H
104*15dc779aSAndroid Build Coastguard Worker    SSHR            V19.4S, V19.4S, #16
105*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[0], [X2], X11
106*15dc779aSAndroid Build Coastguard Worker    SMLAL           V19.4S, V9.4H, V10.4H
107*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[1], [X2], X11
108*15dc779aSAndroid Build Coastguard Worker    SSHR            V23.4S, V23.4S, #16
109*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[2], [X2], X11
110*15dc779aSAndroid Build Coastguard Worker    SMLAL           V23.4S, V1.4H, V2.4H
111*15dc779aSAndroid Build Coastguard Worker
112*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[3], [X2], X11
113*15dc779aSAndroid Build Coastguard Worker    SMLSL           V19.4S, V13.4H, V11.4H
114*15dc779aSAndroid Build Coastguard Worker    SMLSL           V23.4S, V5.4H, V3.4H
115*15dc779aSAndroid Build Coastguard Worker
116*15dc779aSAndroid Build Coastguard Worker    LD2             {V8.4H, V9.4H}, [X10], #16
117*15dc779aSAndroid Build Coastguard Worker    LD2             {V10.4H, V11.4H}, [X3], #16
118*15dc779aSAndroid Build Coastguard Worker
119*15dc779aSAndroid Build Coastguard Worker
120*15dc779aSAndroid Build Coastguard Worker    LD2             {V14.4H, V15.4H}, [X7], X12
121*15dc779aSAndroid Build Coastguard Worker    SQADD           V18.4S, V19.4S, V20.4S
122*15dc779aSAndroid Build Coastguard Worker    REV64           V12.4H, V14.4H
123*15dc779aSAndroid Build Coastguard Worker    REV64           V13.4H, V15.4H
124*15dc779aSAndroid Build Coastguard Worker    SQADD           V22.4S, V23.4S, V20.4S
125*15dc779aSAndroid Build Coastguard Worker    SSHL            V18.4S, V18.4S, V21.4S
126*15dc779aSAndroid Build Coastguard Worker    MOV             V16.16B, V18.16B
127*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[0], [X2], X11
128*15dc779aSAndroid Build Coastguard Worker    SSHL            V22.4S, V22.4S, V21.4S
129*15dc779aSAndroid Build Coastguard Worker
130*15dc779aSAndroid Build Coastguard Worker
131*15dc779aSAndroid Build Coastguard Worker    MOV             V24.16B, V22.16B
132*15dc779aSAndroid Build Coastguard Worker    SUBS            X8, X8, #8
133*15dc779aSAndroid Build Coastguard Worker
134*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[1], [X2], X11
135*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[2], [X2], X11
136*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[3], [X2], X11
137*15dc779aSAndroid Build Coastguard Worker
138*15dc779aSAndroid Build Coastguard Worker
139*15dc779aSAndroid Build Coastguard Worker    BGT             LOOP_1
140*15dc779aSAndroid Build Coastguard Worker
141*15dc779aSAndroid Build Coastguard Worker
142*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[0], [X2], X11
143*15dc779aSAndroid Build Coastguard Worker    UMULL           V19.4S, V8.4H, V10.4H
144*15dc779aSAndroid Build Coastguard Worker    UMLSL           V19.4S, V12.4H, V11.4H
145*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[1], [X2], X11
146*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[2], [X2], X11
147*15dc779aSAndroid Build Coastguard Worker    SSHR            V19.4S, V19.4S, #16
148*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[3], [X2], X11
149*15dc779aSAndroid Build Coastguard Worker    SMLAL           V19.4S, V9.4H, V10.4H
150*15dc779aSAndroid Build Coastguard Worker    SMLSL           V19.4S, V13.4H, V11.4H
151*15dc779aSAndroid Build Coastguard Worker    MOV             X12, #12
152*15dc779aSAndroid Build Coastguard Worker    MOV             V30.S[0], W5
153*15dc779aSAndroid Build Coastguard Worker    MOV             V31.S[0], W6
154*15dc779aSAndroid Build Coastguard Worker    SMULL           V29.4S, V30.4H, V31.4H
155*15dc779aSAndroid Build Coastguard Worker    MOV             W7, V29.S[0]
156*15dc779aSAndroid Build Coastguard Worker
157*15dc779aSAndroid Build Coastguard Worker    LSL             W10, W5, #1
158*15dc779aSAndroid Build Coastguard Worker    SQADD           V18.4S, V19.4S, V20.4S
159*15dc779aSAndroid Build Coastguard Worker    SSHL            V18.4S, V18.4S, V21.4S
160*15dc779aSAndroid Build Coastguard Worker    MOV             V16.16B, V18.16B
161*15dc779aSAndroid Build Coastguard Worker
162*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[0], [X2], X11
163*15dc779aSAndroid Build Coastguard Worker    LSL             X7, X7, #2
164*15dc779aSAndroid Build Coastguard Worker
165*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[1], [X2], X11
166*15dc779aSAndroid Build Coastguard Worker    ADD             X7, X7, X9
167*15dc779aSAndroid Build Coastguard Worker
168*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[2], [X2], X11
169*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[3], [X2], X11
170*15dc779aSAndroid Build Coastguard Worker
171*15dc779aSAndroid Build Coastguard Worker    SUB             X11, X10, #1
172*15dc779aSAndroid Build Coastguard Worker    LSL             X10, X11, #2
173*15dc779aSAndroid Build Coastguard Worker    ADD             X10, X0, X10
174*15dc779aSAndroid Build Coastguard Worker    LSL             X11, X11, #1
175*15dc779aSAndroid Build Coastguard Worker    SUB             X10, X10, X12
176*15dc779aSAndroid Build Coastguard Worker    LSL             X8, X6, #2
177*15dc779aSAndroid Build Coastguard Worker    MOV             X12, #-16
178*15dc779aSAndroid Build Coastguard Worker    ADD             X11, X11, X4
179*15dc779aSAndroid Build Coastguard Worker
180*15dc779aSAndroid Build Coastguard Worker    LD1             {V6.4S}, [X10], X12
181*15dc779aSAndroid Build Coastguard Worker    SUB             X11, X11, #14
182*15dc779aSAndroid Build Coastguard Worker
183*15dc779aSAndroid Build Coastguard Worker
184*15dc779aSAndroid Build Coastguard Worker    REV64           V0.4S, V6.4S
185*15dc779aSAndroid Build Coastguard Worker    SQNEG           V0.4S, V0.4S
186*15dc779aSAndroid Build Coastguard Worker
187*15dc779aSAndroid Build Coastguard Worker
188*15dc779aSAndroid Build Coastguard Worker    UZP1            V1.8H, V0.8H, V0.8H
189*15dc779aSAndroid Build Coastguard Worker    UZP2            V0.8H, V0.8H, V0.8H
190*15dc779aSAndroid Build Coastguard Worker    REV64           V1.4S, V1.4S
191*15dc779aSAndroid Build Coastguard Worker    REV64           V0.4S, V0.4S
192*15dc779aSAndroid Build Coastguard Worker    LD2             {V2.4H, V3.4H}, [X11], X12
193*15dc779aSAndroid Build Coastguard Worker    REV64           V2.4H, V2.4H
194*15dc779aSAndroid Build Coastguard Worker    REV64           V3.4H, V3.4H
195*15dc779aSAndroid Build Coastguard Worker
196*15dc779aSAndroid Build Coastguard Worker    LD2             {V4.4H, V5.4H}, [X1], #16
197*15dc779aSAndroid Build Coastguard Worker
198*15dc779aSAndroid Build Coastguard Worker    UMULL           V23.4S, V1.4H, V3.4H
199*15dc779aSAndroid Build Coastguard Worker    UMLSL           V23.4S, V4.4H, V2.4H
200*15dc779aSAndroid Build Coastguard Worker    SSHR            V23.4S, V23.4S, #16
201*15dc779aSAndroid Build Coastguard Worker    SMLAL           V23.4S, V0.4H, V3.4H
202*15dc779aSAndroid Build Coastguard Worker    SMLSL           V23.4S, V5.4H, V2.4H
203*15dc779aSAndroid Build Coastguard Worker    SQADD           V22.4S, V23.4S, V20.4S
204*15dc779aSAndroid Build Coastguard Worker    SSHL            V22.4S, V22.4S, V21.4S
205*15dc779aSAndroid Build Coastguard Worker    MOV             V24.16B, V22.16B
206*15dc779aSAndroid Build Coastguard Worker
207*15dc779aSAndroid Build Coastguard Worker
208*15dc779aSAndroid Build Coastguard Worker    LD1             {V14.4S}, [X10], X12
209*15dc779aSAndroid Build Coastguard Worker    UMULL           V23.4S, V1.4H, V3.4H
210*15dc779aSAndroid Build Coastguard Worker    UMLSL           V23.4S, V4.4H, V2.4H
211*15dc779aSAndroid Build Coastguard Worker    REV64           V8.4S, V14.4S
212*15dc779aSAndroid Build Coastguard Worker    SQNEG           V8.4S, V8.4S
213*15dc779aSAndroid Build Coastguard Worker    LD2             {V10.4H, V11.4H}, [X11], X12
214*15dc779aSAndroid Build Coastguard Worker    SSHR            V23.4S, V23.4S, #16
215*15dc779aSAndroid Build Coastguard Worker    LD2             {V12.4H, V13.4H}, [X1], #16
216*15dc779aSAndroid Build Coastguard Worker    SMLAL           V23.4S, V0.4H, V3.4H
217*15dc779aSAndroid Build Coastguard Worker    SMLSL           V23.4S, V5.4H, V2.4H
218*15dc779aSAndroid Build Coastguard Worker    UZP1            V9.8H, V8.8H, V8.8H
219*15dc779aSAndroid Build Coastguard Worker    UZP2            V8.8H, V8.8H, V8.8H
220*15dc779aSAndroid Build Coastguard Worker    rev64           v9.4s, v9.4s
221*15dc779aSAndroid Build Coastguard Worker    rev64           v8.4s, v8.4s
222*15dc779aSAndroid Build Coastguard Worker    REV64           V10.4H, V10.4H
223*15dc779aSAndroid Build Coastguard Worker    REV64           V11.4H, V11.4H
224*15dc779aSAndroid Build Coastguard Worker    SQADD           V22.4S, V23.4S, V20.4S
225*15dc779aSAndroid Build Coastguard Worker    SUB             X5, X5, #8
226*15dc779aSAndroid Build Coastguard Worker    SSHL            V22.4S, V22.4S, V21.4S
227*15dc779aSAndroid Build Coastguard Worker    MOV             V24.16B, V22.16B
228*15dc779aSAndroid Build Coastguard Worker
229*15dc779aSAndroid Build Coastguard Worker
230*15dc779aSAndroid Build Coastguard WorkerLOOP_2:
231*15dc779aSAndroid Build Coastguard Worker
232*15dc779aSAndroid Build Coastguard Worker
233*15dc779aSAndroid Build Coastguard Worker    LD1             {V6.4S}, [X10], X12
234*15dc779aSAndroid Build Coastguard Worker    UMULL           V19.4S, V9.4H, V11.4H
235*15dc779aSAndroid Build Coastguard Worker    REV64           V0.4S, V6.4S
236*15dc779aSAndroid Build Coastguard Worker    SQNEG           V0.4S, V0.4S
237*15dc779aSAndroid Build Coastguard Worker    UZP1            V1.8H, V0.8H, V0.8H
238*15dc779aSAndroid Build Coastguard Worker    UZP2            V0.8H, V0.8H, V0.8H
239*15dc779aSAndroid Build Coastguard Worker    REV64           V1.4S, V1.4S
240*15dc779aSAndroid Build Coastguard Worker    REV64           V0.4S, V0.4S
241*15dc779aSAndroid Build Coastguard Worker    LD2             {V2.4H, V3.4H}, [X11], X12
242*15dc779aSAndroid Build Coastguard Worker    REV64           V2.8H, V2.8H
243*15dc779aSAndroid Build Coastguard Worker    REV64           V3.8H, V3.8H
244*15dc779aSAndroid Build Coastguard Worker
245*15dc779aSAndroid Build Coastguard Worker    LD2             {V4.4H, V5.4H}, [X1], #16
246*15dc779aSAndroid Build Coastguard Worker    UMLSL           V19.4S, V12.4H, V10.4H
247*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[0], [X7], X8
248*15dc779aSAndroid Build Coastguard Worker    UMULL           V23.4S, V1.4H, V3.4H
249*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[1], [X7], X8
250*15dc779aSAndroid Build Coastguard Worker    SSHR            V19.4S, V19.4S, #16
251*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[2], [X7], X8
252*15dc779aSAndroid Build Coastguard Worker    UMLSL           V23.4S, V4.4H, V2.4H
253*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[3], [X7], X8
254*15dc779aSAndroid Build Coastguard Worker    SMLAL           V19.4S, V8.4H, V11.4H
255*15dc779aSAndroid Build Coastguard Worker    LD1             {V14.4S}, [X10], X12
256*15dc779aSAndroid Build Coastguard Worker    SSHR            V23.4S, V23.4S, #16
257*15dc779aSAndroid Build Coastguard Worker    SMLSL           V19.4S, V13.4H, V10.4H
258*15dc779aSAndroid Build Coastguard Worker    LD2             {V10.4H, V11.4H}, [X11], X12
259*15dc779aSAndroid Build Coastguard Worker    SMLAL           V23.4S, V0.4H, V3.4H
260*15dc779aSAndroid Build Coastguard Worker    SMLSL           V23.4S, V5.4H, V2.4H
261*15dc779aSAndroid Build Coastguard Worker    REV64           V8.4S, V14.4S
262*15dc779aSAndroid Build Coastguard Worker    LD2             {V12.4H, V13.4H}, [X1], #16
263*15dc779aSAndroid Build Coastguard Worker    SQNEG           V8.4S, V8.4S
264*15dc779aSAndroid Build Coastguard Worker    REV64           V11.4H, V11.4h
265*15dc779aSAndroid Build Coastguard Worker    REV64           V10.4H, V10.4H
266*15dc779aSAndroid Build Coastguard Worker    SQADD           V18.4S, V19.4S, V20.4S
267*15dc779aSAndroid Build Coastguard Worker    UZP1            V9.8H, V8.8H, V8.8H
268*15dc779aSAndroid Build Coastguard Worker    UZP2            V8.8H, V8.8H, V8.8H
269*15dc779aSAndroid Build Coastguard Worker    rev64           v9.4s, v9.4s
270*15dc779aSAndroid Build Coastguard Worker    rev64           v8.4s, v8.4s
271*15dc779aSAndroid Build Coastguard Worker    SQADD           V22.4S, V23.4S, V20.4S
272*15dc779aSAndroid Build Coastguard Worker    SSHL            V18.4S, V18.4S, V21.4S
273*15dc779aSAndroid Build Coastguard Worker    SUBS            X5, X5, #8
274*15dc779aSAndroid Build Coastguard Worker    MOV             V16.16B, V18.16B
275*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[0], [X7], X8
276*15dc779aSAndroid Build Coastguard Worker    SSHL            V22.4S, V22.4S, V21.4S
277*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[1], [X7], X8
278*15dc779aSAndroid Build Coastguard Worker    MOV             V24.16B, V22.16B
279*15dc779aSAndroid Build Coastguard Worker
280*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[2], [X7], X8
281*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[3], [X7], X8
282*15dc779aSAndroid Build Coastguard Worker
283*15dc779aSAndroid Build Coastguard Worker    BGT             LOOP_2
284*15dc779aSAndroid Build Coastguard Worker
285*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[0], [X7], X8
286*15dc779aSAndroid Build Coastguard Worker    UMULL           V19.4S, V9.4H, V11.4H
287*15dc779aSAndroid Build Coastguard Worker    UMLSL           V19.4S, V12.4H, V10.4H
288*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[1], [X7], X8
289*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[2], [X7], X8
290*15dc779aSAndroid Build Coastguard Worker    SSHR            V19.4S, V19.4S, #16
291*15dc779aSAndroid Build Coastguard Worker    ST1             {V24.S}[3], [X7], X8
292*15dc779aSAndroid Build Coastguard Worker
293*15dc779aSAndroid Build Coastguard Worker    SMLAL           V19.4S, V8.4H, V11.4H
294*15dc779aSAndroid Build Coastguard Worker    SMLSL           V19.4S, V13.4H, V10.4H
295*15dc779aSAndroid Build Coastguard Worker    SQADD           V18.4S, V19.4S, V20.4S
296*15dc779aSAndroid Build Coastguard Worker    SSHL            V18.4S, V18.4S, V21.4S
297*15dc779aSAndroid Build Coastguard Worker    MOV             V16.16B, V18.16B
298*15dc779aSAndroid Build Coastguard Worker
299*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[0], [X7], X8
300*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[1], [X7], X8
301*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[2], [X7], X8
302*15dc779aSAndroid Build Coastguard Worker    ST1             {V16.S}[3], [X7], X8
303*15dc779aSAndroid Build Coastguard Worker
304*15dc779aSAndroid Build Coastguard Worker    pop_v_regs
305*15dc779aSAndroid Build Coastguard Worker    RET
306