1411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org/*
2411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *  Copyright (c) 2014 The WebM project authors. All Rights Reserved.
3411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *
4411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *  Use of this source code is governed by a BSD-style license
5411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *  that can be found in the LICENSE file in the root of the source
6411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *  tree. An additional intellectual property rights grant can be found
7411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *  in the file PATENTS.  All contributing project authors may
8411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org *  be found in the AUTHORS file in the root of the source tree.
9411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org */
10411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org
11411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org#include <arm_neon.h>
12411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org
137765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org#include "vp8/common/blockd.h"
147765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org
157765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgvoid vp8_dequantize_b_neon(BLOCKD *d, short *DQC) {
16411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org    int16x8x2_t qQ, qDQC, qDQ;
17411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org
187765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org    qQ   = vld2q_s16(d->qcoeff);
19411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org    qDQC = vld2q_s16(DQC);
20411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org
21411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org    qDQ.val[0] = vmulq_s16(qQ.val[0], qDQC.val[0]);
22411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org    qDQ.val[1] = vmulq_s16(qQ.val[1], qDQC.val[1]);
23411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org
247765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org    vst2q_s16(d->dqcoeff, qDQ);
25411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.org}
26