1@/******************************************************************************
2@ *
3@ * Copyright (C) 2018 The Android Open Source Project
4@ *
5@ * Licensed under the Apache License, Version 2.0 (the "License");
6@ * you may not use this file except in compliance with the License.
7@ * You may obtain a copy of the License at:
8@ *
9@ * http://www.apache.org/licenses/LICENSE-2.0
10@ *
11@ * Unless required by applicable law or agreed to in writing, software
12@ * distributed under the License is distributed on an "AS IS" BASIS,
13@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14@ * See the License for the specific language governing permissions and
15@ * limitations under the License.
16@ *
17@ *****************************************************************************
18@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19@*/
20
21
22.text
23.p2align 2
24.global ixheaacd_mps_mulshift
25
26ixheaacd_mps_mulshift:
27
28    STMFD           sp!, {R4-R12}
29    VPUSH           {d8 - d15}
30LOOP:
31    VLD1.32         {Q0, Q1}, [R0]!     @LOADING values from R0
32    VLD1.32         {Q2, Q3}, [R1]!     @LOADING values from R1
33    VQDMULL.S32     Q4, D0, D4
34    VQDMULL.S32     Q5, D2, D6
35    VQDMULL.S32     Q6, D1, D5
36    VQDMULL.S32     Q7, D3, D7
37    VUZP.32         Q4, Q6
38    VUZP.32         Q5, Q7
39    VST1.32         {Q6, Q7}, [R2]!     @Storing values to R2
40    SUBS            R3, R3, #8
41    BGT             LOOP
42
43    VPOP            {d8 - d15}
44    LDMFD           sp!, {R4-R12}
45    BX              LR
46
47