Sound Open Firmware
Loading...
Searching...
No Matches
iir_df2t_arm.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2026 Sound Open Firmware. All rights reserved.
4 *
5 * Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
6 */
7
8#ifndef __IIR_DF2T_ARM_H__
9#define __IIR_DF2T_ARM_H__
10
11#include <stdint.h>
12#include <sof/audio/format.h>
13#include <sof/audio/arm_simd.h>
14
15static inline int16_t iir_df2t_s16(struct iir_state_df2t *iir, int16_t x)
16{
17 return arm_sat_s16(Q_SHIFT_RND(iir_df2t(iir, ((int32_t)x) << 16), 31, 15));
18}
19
20static inline int32_t iir_df2t_s24(struct iir_state_df2t *iir, int32_t x)
21{
22 return arm_sat_s24(Q_SHIFT_RND(iir_df2t(iir, x << 8), 31, 23));
23}
24
25static inline int16_t iir_df2t_s32_s16(struct iir_state_df2t *iir, int32_t x)
26{
27 return arm_sat_s16(Q_SHIFT_RND(iir_df2t(iir, x), 31, 15));
28}
29
30static inline int32_t iir_df2t_s32_s24(struct iir_state_df2t *iir, int32_t x)
31{
32 return arm_sat_s24(Q_SHIFT_RND(iir_df2t(iir, x), 31, 23));
33}
34
35#endif /* __IIR_DF2T_ARM_H__ */
static int16_t arm_sat_s16(int32_t val)
Definition arm_simd.h:301
static int32_t arm_sat_s24(int32_t val)
Definition arm_simd.h:308
int32_t iir_df2t(struct iir_state_df2t *iir, int32_t x)
static int16_t iir_df2t_s16(struct iir_state_df2t *iir, int16_t x)
Definition iir_df2t_arm.h:15
static int16_t iir_df2t_s32_s16(struct iir_state_df2t *iir, int32_t x)
Definition iir_df2t_arm.h:25
static int32_t iir_df2t_s32_s24(struct iir_state_df2t *iir, int32_t x)
Definition iir_df2t_arm.h:30
static int32_t iir_df2t_s24(struct iir_state_df2t *iir, int32_t x)
Definition iir_df2t_arm.h:20
#define Q_SHIFT_RND(x, src_q, dst_q)
Definition format.h:78
Definition iir_df2t.h:25