151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick///****************************************************************************** 251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * 351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * Copyright (C) 2018 The Android Open Source Project 451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * 551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * Licensed under the Apache License, Version 2.0 (the "License"); 651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * you may not use this file except in compliance with the License. 751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * You may obtain a copy of the License at: 851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * 951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * http://www.apache.org/licenses/LICENSE-2.0 1051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * 1151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * Unless required by applicable law or agreed to in writing, software 1251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * distributed under the License is distributed on an "AS IS" BASIS, 1351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * See the License for the specific language governing permissions and 1551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * limitations under the License. 1651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * 1751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// ***************************************************************************** 1851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick// * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 1951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick//*/ 2051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 2151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick.macro push_v_regs 2251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp q8, q9, [sp, #-32]! 2351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp q10, q11, [sp, #-32]! 2451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp q12, q13, [sp, #-32]! 2551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp q14, q15, [sp, #-32]! 2651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp X8, X9, [sp, #-16]! 2751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp X10, X11, [sp, #-16]! 2851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp X12, X13, [sp, #-16]! 2951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp X14, X15, [sp, #-16]! 3051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp X16, X17, [sp, #-16]! 3151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick stp X29, X30, [sp, #-16]! 3251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick.endm 3351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick.macro pop_v_regs 3451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp X29, X30, [sp], #16 3551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp X16, X17, [sp], #16 3651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp X14, X15, [sp], #16 3751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp X12, X13, [sp], #16 3851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp X10, X11, [sp], #16 3951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp X8, X9, [sp], #16 4051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp q14, q15, [sp], #32 4151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp q12, q13, [sp], #32 4251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp q10, q11, [sp], #32 4351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ldp q8, q9, [sp], #32 4451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick.endm 4551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 4651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick.text 4751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick.global ixheaacd_over_lap_add1_armv8 4851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essickixheaacd_over_lap_add1_armv8: 4951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick push_v_regs 5051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL X10, X5, #1 5151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SUB X11, X10, #1 5251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL X10, X11, #2 5351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ADD X10, X0, X10 5451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SUB X10, X10, #12 5551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL X8, X11, #1 5651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ADD X8, X8, X3 5751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SUB X8, X8, #14 5851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV X12, #-16 5951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick DUP V11.8H, W4 6051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V3.4S}, [X10], X12 6151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV W7, #0x2000 6251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 6351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick NEG W7, W7 6451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQNEG V0.4S, V3.4S 6551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick DUP V10.4S, W7 6651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V31.8H, V0.8H, V0.8H 6751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V30.8H, V0.8H, V0.8H 6851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V31.8h, V31.8h 6951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V30.8h, V30.8h 7051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SUB X11, X5, #1 7151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V7.8H, V3.8H, V3.8H 7251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V6.8H, V3.8H, V3.8H 7351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V7.8H, V7.8H 7451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V6.8H, V6.8H 7551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V16.S[0], W6 7651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V17.S[0], W11 7751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V17.4S, V16.4H, V17.4H 7851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV W11, V17.S[0] 7951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL X11, X11, #1 8051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 8151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD2 {V2.4H, V3.4H}, [X8], X12 8251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ADD X11, X11, X2 8351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V2.4H, V2.4H 8451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V3.4H, V3.4H 8551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL X4, X6, #1 8651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick NEG X4, X4 8751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL X9, X6, #1 8851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V16.S[0], W5 8951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V17.S[0], W6 9051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V17.4S, V16.4H, V17.4H 9151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV W6, V17.S[0] 9251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LSL W6, W6, #1 9351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ADD X6, X6, X2 9451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 9551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V15.4S, V7.4H, V2.4H 9651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V4.4S}, [X1], #16 9751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V15.4S, V15.4S, #16 9851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 9951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V15.4S, V6.4H, V2.4H 10051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V15.4S, V15.4S, V11.4S 10151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V3.4H, #0 10251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 10351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 10451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 10551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 10651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V14.16B, V28.16B 10751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 10851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V14.4S, V14.4S, V10.4S 10951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V13.4S, V15.4S, V14.4S 11051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V13.4S, V13.4S, #2 11151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V13.4S, V13.4S, #16 11251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V26.8H, V13.8H, V13.8H 11351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 11451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V12.4S, V31.4H, V3.4H 11551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V12.4S, V12.4S, #16 11651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V12.4S, V30.4H, V3.4H 11751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V12.4S, V12.4S, V11.4S 11851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V3.4S}, [X10], X12 11951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 12051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V2.4H, #0 12151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 12251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 12351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 12451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 12551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V8.16B, V28.16B 12651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 12751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V8.4S, V8.4S, V10.4S 12851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 12951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQNEG V0.4S, V3.4S 13051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V1.8H, V0.8H, V0.8H 13151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V0.8H, V0.8H, V0.8H 13251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V1.8h, V1.8h 13351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V0.8h, V0.8h 13451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V9.4S, V12.4S, V8.4S 13551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V7.8H, V3.8H, V3.8H 13651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V6.8H, V3.8H, V3.8H 13751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V7.8h, V7.8h 13851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V6.8h, V6.8h 13951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V9.4S, V9.4S, #2 14051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD2 {V2.4H, V3.4H}, [X8], X12 14151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V9.4S, V9.4S, #16 14251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V2.4H, V2.4H 14351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V3.4H, V3.4H 14451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V18.8H, V9.8H, V9.8H 14551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 14651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V4.4S}, [X1], #16 14751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SUB W5, W5, #8 14851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 14951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 15051aa06e124ba688ca810b25ee0b5bb66678aac14Ray EssickLOOP_1: 15151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 15251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[0], [X11], X4 15351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V15.4S, V7.4H, V2.4H 15451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[1], [X11], X4 15551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V12.4S, V1.4H, V3.4H 15651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[2], [X11], X4 15751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V15.4S, V15.4S, #16 15851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[3], [X11], X4 15951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V12.4S, V12.4S, #16 16051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[0], [X6], X9 16151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V15.4S, V6.4H, V2.4H 16251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[1], [X6], X9 16351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V12.4S, V0.4H, V3.4H 16451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[2], [X6], X9 16551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V15.4S, V15.4S, V11.4S 16651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[3], [X6], X9 16751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V12.4S, V12.4S, V11.4S 16851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V6.4S}, [X10], X12 16951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 17051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V3.4H, #0 17151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 17251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 17351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 17451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 17551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V14.16B, V28.16B 17651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 17751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V2.4H, #0 17851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 17951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 18051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 18151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 18251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V8.16B, V28.16B 18351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 18451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD2 {V2.4H, V3.4H}, [X8], X12 18551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 18651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQNEG V0.4S, V6.4S 18751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 18851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V4.4S}, [X1], #16 18951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 19051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V14.4S, V14.4S, V10.4S 19151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V1.8H, V0.8H, V0.8H 19251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V0.8H, V0.8H, V0.8H 19351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V1.8h, V1.8h 19451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V0.8h, V0.8h 19551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V8.4S, V8.4S, V10.4S 19651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V7.8H, V6.8H, V6.8H 19751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V6.8H, V6.8H, V6.8H 19851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V7.8h, V7.8h 19951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V6.8h, V6.8h 20051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V13.4S, V15.4S, V14.4S 20151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V2.4H, V2.4H 20251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V3.4H, V3.4H 20351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V9.4S, V12.4S, V8.4S 20451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V13.4S, V13.4S, #2 20551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V9.4S, V9.4S, #2 20651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V15.4S, V7.4H, V2.4H 20751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V13.4S, V13.4S, #16 20851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V26.8H, V13.8H, V13.8H 20951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V9.4S, V9.4S, #16 21051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[0], [X11], X4 21151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V12.4S, V1.4H, V3.4H 21251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V18.8H, V9.8H, V9.8H 21351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V15.4S, V15.4S, #16 21451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[1], [X11], X4 21551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V15.4S, V6.4H, V2.4H 21651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[2], [X11], X4 21751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V12.4S, V12.4S, #16 21851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[3], [X11], X4 21951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V12.4S, V0.4H, V3.4H 22051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[0], [X6], X9 22151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V15.4S, V15.4S, V11.4S 22251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[1], [X6], X9 22351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V12.4S, V12.4S, V11.4S 22451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[2], [X6], X9 22551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 22651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V3.4H, #0 22751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 22851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 22951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 23051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 23151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V14.16B, V28.16B 23251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 23351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[3], [X6], X9 23451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 23551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 23651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V2.4H, #0 23751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 23851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 23951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 24051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 24151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V8.16B, V28.16B 24251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 24351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V3.4S}, [X10], X12 24451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V14.4S, V14.4S, V10.4S 24551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 24651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQNEG V0.4S, V3.4S 24751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V1.8H, V0.8H, V0.8H 24851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V0.8H, V0.8H, V0.8H 24951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V1.8H, V1.8H 25051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V0.8H, V0.8H 25151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V13.4S, V15.4S, V14.4S 25251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V7.8H, V3.8H, V3.8H 25351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP2 V6.8H, V3.8H, V3.8H 25451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V7.8H, V7.8H 25551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V6.8H, V6.8H 25651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V8.4S, V8.4S, V10.4S 25751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD2 {V2.4H, V3.4H}, [X8], X12 25851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V9.4S, V12.4S, V8.4S 25951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V2.4H, V2.4H 26051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick REV64 V3.4H, V3.4H 26151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V13.4S, V13.4S, #2 26251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick LD1 {V4.4S}, [X1], #16 26351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 26451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V9.4S, V9.4S, #2 26551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V13.4S, V13.4S, #16 26651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SUBS X5, X5, #8 26751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V9.4S, V9.4S, #16 26851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V26.8H, V13.8H, V13.8H 26951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V18.8H, V9.8H, V9.8H 27051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 27151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick BGT LOOP_1 27251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 27351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[0], [X11], X4 27451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V15.4S, V7.4H, V2.4H 27551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[1], [X11], X4 27651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UMULL V12.4s, V1.4H, V3.4H 27751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[2], [X11], X4 27851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V15.4S, V15.4S, #16 27951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[3], [X11], X4 28051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick USHR V12.4S, V12.4S, #16 28151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 28251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[0], [X6], X9 28351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V15.4S, V6.4H, V2.4H 28451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[1], [X6], X9 28551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMLAL V12.4S, V0.4H, V3.4H 28651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[2], [X6], X9 28751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V15.4S, V15.4S, V11.4S 28851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[3], [X6], X9 28951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V12.4S, V12.4S, V11.4S 29051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 29151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 29251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V3.4H, #0 29351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 29451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 29551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 29651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 29751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V14.16B, V28.16B 29851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 29951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHLL V27.4S, V2.4H, #0 30051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL V28.2D, V27.2S, V4.2S 30151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SMULL2 V29.2D, V27.4S, V4.4S 30251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN V28.2S, V28.2D 30351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQXTN2 V28.4S, V29.2D 30451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick MOV V8.16B, V28.16B 30551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 30651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V14.4S, V14.4S, V10.4S 30751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQADD V8.4S, V8.4S, V10.4S 30851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V13.4S, V15.4S, V14.4S 30951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSUB V9.4S, V12.4S, V8.4S 31051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V13.4S, V13.4S, #2 31151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SQSHL V9.4S, V9.4S, #2 31251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V13.4S, V13.4S, #16 31351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick SSHR V9.4S, V9.4S, #16 31451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V26.8H, V13.8H, V13.8H 31551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 31651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick UZP1 V18.8H, V9.8H, V9.8H 31751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 31851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 31951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[0], [X11], X4 32051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[1], [X11], X4 32151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[2], [X11], X4 32251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V26.H}[3], [X11], X4 32351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 32451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[0], [X6], X9 32551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[1], [X6], X9 32651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[2], [X6], X9 32751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick ST1 {V18.H}[3], [X6], X9 32851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick pop_v_regs 32951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick RET 33051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 33151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 33251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 33351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick 334