Sound Open Firmware
Loading...
Searching...
No Matches
iir_df2t_riscv.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
6#ifndef __IIR_DF2T_RISCV_H__
7#define __IIR_DF2T_RISCV_H__
8
9#include <stdint.h>
10#include <sof/audio/format.h>
11
12static inline int16_t iir_df2t_s16(struct iir_state_df2t *iir, int16_t x)
13{
14 return sat_int16(Q_SHIFT_RND(iir_df2t(iir, ((int32_t)x) << 16), 31, 15));
15}
16
17static inline int32_t iir_df2t_s24(struct iir_state_df2t *iir, int32_t x)
18{
19 return sat_int24(Q_SHIFT_RND(iir_df2t(iir, x << 8), 31, 23));
20}
21
22static inline int16_t iir_df2t_s32_s16(struct iir_state_df2t *iir, int32_t x)
23{
24 return sat_int16(Q_SHIFT_RND(iir_df2t(iir, x), 31, 15));
25}
26
27static inline int32_t iir_df2t_s32_s24(struct iir_state_df2t *iir, int32_t x)
28{
29 return sat_int24(Q_SHIFT_RND(iir_df2t(iir, x), 31, 23));
30}
31
32#endif /* __IIR_DF2T_RISCV_H__ */
static int16_t sat_int16(int32_t x)
Saturate a 32-bit integer to signed 16-bit integer range.
Definition format_generic.h:56
static int32_t sat_int24(int32_t x)
Saturate a 32-bit integer to signed 24-bit integer range.
Definition format_generic.h:41
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_riscv.h:12
static int16_t iir_df2t_s32_s16(struct iir_state_df2t *iir, int32_t x)
Definition iir_df2t_riscv.h:22
static int32_t iir_df2t_s32_s24(struct iir_state_df2t *iir, int32_t x)
Definition iir_df2t_riscv.h:27
static int32_t iir_df2t_s24(struct iir_state_df2t *iir, int32_t x)
Definition iir_df2t_riscv.h:17
#define Q_SHIFT_RND(x, src_q, dst_q)
Definition format.h:78
Definition iir_df2t.h:25