@ This file was created from a .asm file
@  using the ads2gas.pl script.
.syntax unified
@
@  Copyright (c) 2016 The WebM project authors. All Rights Reserved.
@
@  Use of this source code is governed by a BSD-style license
@  that can be found in the LICENSE file in the root of the source
@  tree. An additional intellectual property rights grant can be found
@  in the file PATENTS.  All contributing project authors may
@  be found in the AUTHORS file in the root of the source tree.
@

    .include "./vpx_config.asm"

    @ Helper functions used to load tran_low_t into int16, narrowing if
    @ necessary.

    @ \dst0..3 are d registers with the pairs assumed to be contiguous in
    @ non-high-bitdepth builds. q0-q3 are used as temporaries in high-bitdepth.
.macro    LOAD_TRAN_LOW_TO_S16 dst0, dst1, dst2, dst3, src
    .if CONFIG_VP9_HIGHBITDEPTH
    vld1.s32        {q0,q1}, [\src]!
    vld1.s32        {q2,q3}, [\src]!
    vmovn.i32       \dst0, q0
    vmovn.i32       \dst1, q1
    vmovn.i32       \dst2, q2
    vmovn.i32       \dst3, q3
    .else
    vld1.s16        {\dst0-\dst1,\dst2-\dst3}, [\src]!
    .endif
    .endm

    @ \dst0..3 are d registers. q0-q3 are used as temporaries in high-bitdepth.
.macro    LOAD_TRAN_LOW_TO_S16X2 dst0, dst1, dst2, dst3, src
    .if CONFIG_VP9_HIGHBITDEPTH
    vld2.s32        {q0,q1}, [\src]!
    vld2.s32        {q2,q3}, [\src]!
    vmovn.i32       \dst0, q0
    vmovn.i32       \dst1, q2
    vmovn.i32       \dst2, q1
    vmovn.i32       \dst3, q3
    .else
    vld2.s16        {\dst0,\dst1,\dst2,\dst3}, [\src]!
    .endif
    .endm
    .section .note.GNU-stack,"",%progbits
