Coverage Report

Created: 2024-03-26 07:23

/src/opus/silk/Inlines.h
Line
Count
Source (jump to first uncovered line)
1
/***********************************************************************
2
Copyright (c) 2006-2011, Skype Limited. All rights reserved.
3
Redistribution and use in source and binary forms, with or without
4
modification, are permitted provided that the following conditions
5
are met:
6
- Redistributions of source code must retain the above copyright notice,
7
this list of conditions and the following disclaimer.
8
- Redistributions in binary form must reproduce the above copyright
9
notice, this list of conditions and the following disclaimer in the
10
documentation and/or other materials provided with the distribution.
11
- Neither the name of Internet Society, IETF or IETF Trust, nor the
12
names of specific contributors, may be used to endorse or promote
13
products derived from this software without specific prior written
14
permission.
15
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
POSSIBILITY OF SUCH DAMAGE.
26
***********************************************************************/
27
28
/*! \file silk_Inlines.h
29
 *  \brief silk_Inlines.h defines OPUS_INLINE signal processing functions.
30
 */
31
32
#ifndef SILK_FIX_INLINES_H
33
#define SILK_FIX_INLINES_H
34
35
#ifdef  __cplusplus
36
extern "C"
37
{
38
#endif
39
40
/* count leading zeros of opus_int64 */
41
static OPUS_INLINE opus_int32 silk_CLZ64( opus_int64 in )
42
74.2M
{
43
74.2M
    opus_int32 in_upper;
44
45
74.2M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
74.2M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
73.5M
        return 32 + silk_CLZ32( (opus_int32) in );
49
73.5M
    } else {
50
        /* Search in the upper 32 bits */
51
672k
        return silk_CLZ32( in_upper );
52
672k
    }
53
74.2M
}
Unexecuted instantiation: opus_encoder.c:silk_CLZ64
Unexecuted instantiation: x86cpu.c:silk_CLZ64
Unexecuted instantiation: enc_API.c:silk_CLZ64
Unexecuted instantiation: encode_indices.c:silk_CLZ64
Unexecuted instantiation: encode_pulses.c:silk_CLZ64
Unexecuted instantiation: shell_coder.c:silk_CLZ64
Unexecuted instantiation: tables_gain.c:silk_CLZ64
Unexecuted instantiation: tables_LTP.c:silk_CLZ64
Unexecuted instantiation: tables_other.c:silk_CLZ64
Unexecuted instantiation: tables_pitch_lag.c:silk_CLZ64
Unexecuted instantiation: tables_pulses_per_block.c:silk_CLZ64
Unexecuted instantiation: HP_variable_cutoff.c:silk_CLZ64
Unexecuted instantiation: NLSF_unpack.c:silk_CLZ64
Unexecuted instantiation: stereo_LR_to_MS.c:silk_CLZ64
Unexecuted instantiation: check_control_input.c:silk_CLZ64
Unexecuted instantiation: control_SNR.c:silk_CLZ64
Unexecuted instantiation: init_encoder.c:silk_CLZ64
Unexecuted instantiation: control_codec.c:silk_CLZ64
Unexecuted instantiation: biquad_alt.c:silk_CLZ64
Unexecuted instantiation: lin2log.c:silk_CLZ64
Unexecuted instantiation: log2lin.c:silk_CLZ64
Unexecuted instantiation: resampler.c:silk_CLZ64
Unexecuted instantiation: resampler_private_down_FIR.c:silk_CLZ64
Unexecuted instantiation: resampler_private_IIR_FIR.c:silk_CLZ64
Unexecuted instantiation: resampler_private_up2_HQ.c:silk_CLZ64
Unexecuted instantiation: resampler_rom.c:silk_CLZ64
Unexecuted instantiation: stereo_encode_pred.c:silk_CLZ64
Unexecuted instantiation: stereo_find_predictor.c:silk_CLZ64
Unexecuted instantiation: stereo_quant_pred.c:silk_CLZ64
Unexecuted instantiation: encode_frame_FIX.c:silk_CLZ64
Unexecuted instantiation: find_pitch_lags_FIX.c:silk_CLZ64
Unexecuted instantiation: find_pred_coefs_FIX.c:silk_CLZ64
Unexecuted instantiation: noise_shape_analysis_FIX.c:silk_CLZ64
Unexecuted instantiation: process_gains_FIX.c:silk_CLZ64
Unexecuted instantiation: residual_energy_FIX.c:silk_CLZ64
warped_autocorrelation_FIX.c:silk_CLZ64
Line
Count
Source
42
26.5M
{
43
26.5M
    opus_int32 in_upper;
44
45
26.5M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
26.5M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
25.8M
        return 32 + silk_CLZ32( (opus_int32) in );
49
25.8M
    } else {
50
        /* Search in the upper 32 bits */
51
671k
        return silk_CLZ32( in_upper );
52
671k
    }
53
26.5M
}
Unexecuted instantiation: apply_sine_window_FIX.c:silk_CLZ64
Unexecuted instantiation: autocorr_FIX.c:silk_CLZ64
Unexecuted instantiation: k2a_FIX.c:silk_CLZ64
Unexecuted instantiation: k2a_Q16_FIX.c:silk_CLZ64
Unexecuted instantiation: pitch_analysis_core_FIX.c:silk_CLZ64
Unexecuted instantiation: vector_ops_FIX.c:silk_CLZ64
Unexecuted instantiation: schur64_FIX.c:silk_CLZ64
Unexecuted instantiation: schur_FIX.c:silk_CLZ64
Unexecuted instantiation: x86_silk_map.c:silk_CLZ64
Unexecuted instantiation: NSQ_del_dec_avx2.c:silk_CLZ64
Unexecuted instantiation: opus_decoder.c:silk_CLZ64
Unexecuted instantiation: code_signs.c:silk_CLZ64
Unexecuted instantiation: dec_API.c:silk_CLZ64
Unexecuted instantiation: gain_quant.c:silk_CLZ64
Unexecuted instantiation: LP_variable_cutoff.c:silk_CLZ64
Unexecuted instantiation: NSQ.c:silk_CLZ64
Unexecuted instantiation: NSQ_del_dec.c:silk_CLZ64
Unexecuted instantiation: tables_NLSF_CB_NB_MB.c:silk_CLZ64
Unexecuted instantiation: tables_NLSF_CB_WB.c:silk_CLZ64
Unexecuted instantiation: VAD.c:silk_CLZ64
Unexecuted instantiation: control_audio_bandwidth.c:silk_CLZ64
Unexecuted instantiation: quant_LTP_gains.c:silk_CLZ64
Unexecuted instantiation: VQ_WMat_EC.c:silk_CLZ64
Unexecuted instantiation: process_NLSFs.c:silk_CLZ64
Unexecuted instantiation: stereo_MS_to_LR.c:silk_CLZ64
Unexecuted instantiation: ana_filt_bank_1.c:silk_CLZ64
Unexecuted instantiation: bwexpander_32.c:silk_CLZ64
Unexecuted instantiation: bwexpander.c:silk_CLZ64
Unexecuted instantiation: inner_prod_aligned.c:silk_CLZ64
Unexecuted instantiation: LPC_analysis_filter.c:silk_CLZ64
Unexecuted instantiation: NLSF2A.c:silk_CLZ64
Unexecuted instantiation: NLSF_VQ_weights_laroia.c:silk_CLZ64
Unexecuted instantiation: pitch_est_tables.c:silk_CLZ64
Unexecuted instantiation: resampler_down2_3.c:silk_CLZ64
Unexecuted instantiation: resampler_down2.c:silk_CLZ64
Unexecuted instantiation: resampler_private_AR2.c:silk_CLZ64
Unexecuted instantiation: sigm_Q15.c:silk_CLZ64
Unexecuted instantiation: sort.c:silk_CLZ64
Unexecuted instantiation: sum_sqr_shift.c:silk_CLZ64
Unexecuted instantiation: stereo_decode_pred.c:silk_CLZ64
Unexecuted instantiation: LPC_fit.c:silk_CLZ64
Unexecuted instantiation: LTP_analysis_filter_FIX.c:silk_CLZ64
Unexecuted instantiation: LTP_scale_ctrl_FIX.c:silk_CLZ64
Unexecuted instantiation: find_LPC_FIX.c:silk_CLZ64
Unexecuted instantiation: find_LTP_FIX.c:silk_CLZ64
burg_modified_FIX.c:silk_CLZ64
Line
Count
Source
42
23.8M
{
43
23.8M
    opus_int32 in_upper;
44
45
23.8M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
23.8M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
23.8M
        return 32 + silk_CLZ32( (opus_int32) in );
49
23.8M
    } else {
50
        /* Search in the upper 32 bits */
51
353
        return silk_CLZ32( in_upper );
52
353
    }
53
23.8M
}
Unexecuted instantiation: NSQ_sse4_1.c:silk_CLZ64
Unexecuted instantiation: NSQ_del_dec_sse4_1.c:silk_CLZ64
Unexecuted instantiation: VAD_sse4_1.c:silk_CLZ64
Unexecuted instantiation: VQ_WMat_EC_sse4_1.c:silk_CLZ64
Unexecuted instantiation: vector_ops_FIX_sse4_1.c:silk_CLZ64
burg_modified_FIX_sse4_1.c:silk_CLZ64
Line
Count
Source
42
23.8M
{
43
23.8M
    opus_int32 in_upper;
44
45
23.8M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
23.8M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
23.8M
        return 32 + silk_CLZ32( (opus_int32) in );
49
23.8M
    } else {
50
        /* Search in the upper 32 bits */
51
353
        return silk_CLZ32( in_upper );
52
353
    }
53
23.8M
}
Unexecuted instantiation: init_decoder.c:silk_CLZ64
Unexecuted instantiation: decode_frame.c:silk_CLZ64
Unexecuted instantiation: decode_parameters.c:silk_CLZ64
Unexecuted instantiation: decode_indices.c:silk_CLZ64
Unexecuted instantiation: decode_pulses.c:silk_CLZ64
Unexecuted instantiation: decoder_set_fs.c:silk_CLZ64
Unexecuted instantiation: interpolate.c:silk_CLZ64
Unexecuted instantiation: NLSF_decode.c:silk_CLZ64
Unexecuted instantiation: PLC.c:silk_CLZ64
Unexecuted instantiation: NLSF_encode.c:silk_CLZ64
Unexecuted instantiation: NLSF_VQ.c:silk_CLZ64
Unexecuted instantiation: NLSF_del_dec_quant.c:silk_CLZ64
Unexecuted instantiation: A2NLSF.c:silk_CLZ64
Unexecuted instantiation: decode_pitch.c:silk_CLZ64
Unexecuted instantiation: LPC_inv_pred_gain.c:silk_CLZ64
Unexecuted instantiation: table_LSF_cos.c:silk_CLZ64
Unexecuted instantiation: NLSF_stabilize.c:silk_CLZ64
Unexecuted instantiation: corrMatrix_FIX.c:silk_CLZ64
Unexecuted instantiation: CNG.c:silk_CLZ64
Unexecuted instantiation: decode_core.c:silk_CLZ64
54
55
/* get number of leading zeros and fractional part (the bits right after the leading one */
56
static OPUS_INLINE void silk_CLZ_FRAC(
57
    opus_int32 in,            /* I  input                               */
58
    opus_int32 *lz,           /* O  number of leading zeros             */
59
    opus_int32 *frac_Q7       /* O  the 7 bits right after the leading one */
60
)
61
913M
{
62
913M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
913M
    * lz = lzeros;
65
913M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
913M
}
Unexecuted instantiation: opus_encoder.c:silk_CLZ_FRAC
Unexecuted instantiation: x86cpu.c:silk_CLZ_FRAC
Unexecuted instantiation: enc_API.c:silk_CLZ_FRAC
Unexecuted instantiation: encode_indices.c:silk_CLZ_FRAC
Unexecuted instantiation: encode_pulses.c:silk_CLZ_FRAC
Unexecuted instantiation: shell_coder.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_gain.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_LTP.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_other.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_pitch_lag.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_pulses_per_block.c:silk_CLZ_FRAC
Unexecuted instantiation: HP_variable_cutoff.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_unpack.c:silk_CLZ_FRAC
Unexecuted instantiation: stereo_LR_to_MS.c:silk_CLZ_FRAC
Unexecuted instantiation: check_control_input.c:silk_CLZ_FRAC
Unexecuted instantiation: control_SNR.c:silk_CLZ_FRAC
Unexecuted instantiation: init_encoder.c:silk_CLZ_FRAC
Unexecuted instantiation: control_codec.c:silk_CLZ_FRAC
Unexecuted instantiation: biquad_alt.c:silk_CLZ_FRAC
lin2log.c:silk_CLZ_FRAC
Line
Count
Source
61
772M
{
62
772M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
772M
    * lz = lzeros;
65
772M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
772M
}
Unexecuted instantiation: log2lin.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_private_down_FIR.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_private_IIR_FIR.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_private_up2_HQ.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_rom.c:silk_CLZ_FRAC
Unexecuted instantiation: stereo_encode_pred.c:silk_CLZ_FRAC
stereo_find_predictor.c:silk_CLZ_FRAC
Line
Count
Source
61
7.99M
{
62
7.99M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
7.99M
    * lz = lzeros;
65
7.99M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
7.99M
}
Unexecuted instantiation: stereo_quant_pred.c:silk_CLZ_FRAC
Unexecuted instantiation: encode_frame_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: find_pitch_lags_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: find_pred_coefs_FIX.c:silk_CLZ_FRAC
noise_shape_analysis_FIX.c:silk_CLZ_FRAC
Line
Count
Source
61
64.1M
{
62
64.1M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
64.1M
    * lz = lzeros;
65
64.1M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
64.1M
}
process_gains_FIX.c:silk_CLZ_FRAC
Line
Count
Source
61
63.9M
{
62
63.9M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
63.9M
    * lz = lzeros;
65
63.9M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
63.9M
}
Unexecuted instantiation: residual_energy_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: warped_autocorrelation_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: apply_sine_window_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: autocorr_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: k2a_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: k2a_Q16_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: pitch_analysis_core_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: vector_ops_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: schur64_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: schur_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: x86_silk_map.c:silk_CLZ_FRAC
Unexecuted instantiation: NSQ_del_dec_avx2.c:silk_CLZ_FRAC
Unexecuted instantiation: opus_decoder.c:silk_CLZ_FRAC
Unexecuted instantiation: code_signs.c:silk_CLZ_FRAC
Unexecuted instantiation: dec_API.c:silk_CLZ_FRAC
Unexecuted instantiation: gain_quant.c:silk_CLZ_FRAC
Unexecuted instantiation: LP_variable_cutoff.c:silk_CLZ_FRAC
Unexecuted instantiation: NSQ.c:silk_CLZ_FRAC
Unexecuted instantiation: NSQ_del_dec.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_NLSF_CB_NB_MB.c:silk_CLZ_FRAC
Unexecuted instantiation: tables_NLSF_CB_WB.c:silk_CLZ_FRAC
VAD.c:silk_CLZ_FRAC
Line
Count
Source
61
1.29M
{
62
1.29M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.29M
    * lz = lzeros;
65
1.29M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.29M
}
Unexecuted instantiation: control_audio_bandwidth.c:silk_CLZ_FRAC
Unexecuted instantiation: quant_LTP_gains.c:silk_CLZ_FRAC
Unexecuted instantiation: VQ_WMat_EC.c:silk_CLZ_FRAC
Unexecuted instantiation: process_NLSFs.c:silk_CLZ_FRAC
Unexecuted instantiation: stereo_MS_to_LR.c:silk_CLZ_FRAC
Unexecuted instantiation: ana_filt_bank_1.c:silk_CLZ_FRAC
Unexecuted instantiation: bwexpander_32.c:silk_CLZ_FRAC
Unexecuted instantiation: bwexpander.c:silk_CLZ_FRAC
Unexecuted instantiation: inner_prod_aligned.c:silk_CLZ_FRAC
Unexecuted instantiation: LPC_analysis_filter.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF2A.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_VQ_weights_laroia.c:silk_CLZ_FRAC
Unexecuted instantiation: pitch_est_tables.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_down2_3.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_down2.c:silk_CLZ_FRAC
Unexecuted instantiation: resampler_private_AR2.c:silk_CLZ_FRAC
Unexecuted instantiation: sigm_Q15.c:silk_CLZ_FRAC
Unexecuted instantiation: sort.c:silk_CLZ_FRAC
Unexecuted instantiation: sum_sqr_shift.c:silk_CLZ_FRAC
Unexecuted instantiation: stereo_decode_pred.c:silk_CLZ_FRAC
Unexecuted instantiation: LPC_fit.c:silk_CLZ_FRAC
Unexecuted instantiation: LTP_analysis_filter_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: LTP_scale_ctrl_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: find_LPC_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: find_LTP_FIX.c:silk_CLZ_FRAC
burg_modified_FIX.c:silk_CLZ_FRAC
Line
Count
Source
61
1.48M
{
62
1.48M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.48M
    * lz = lzeros;
65
1.48M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.48M
}
Unexecuted instantiation: NSQ_sse4_1.c:silk_CLZ_FRAC
Unexecuted instantiation: NSQ_del_dec_sse4_1.c:silk_CLZ_FRAC
VAD_sse4_1.c:silk_CLZ_FRAC
Line
Count
Source
61
1.29M
{
62
1.29M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.29M
    * lz = lzeros;
65
1.29M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.29M
}
Unexecuted instantiation: VQ_WMat_EC_sse4_1.c:silk_CLZ_FRAC
Unexecuted instantiation: vector_ops_FIX_sse4_1.c:silk_CLZ_FRAC
burg_modified_FIX_sse4_1.c:silk_CLZ_FRAC
Line
Count
Source
61
1.48M
{
62
1.48M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.48M
    * lz = lzeros;
65
1.48M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.48M
}
Unexecuted instantiation: init_decoder.c:silk_CLZ_FRAC
Unexecuted instantiation: decode_frame.c:silk_CLZ_FRAC
Unexecuted instantiation: decode_parameters.c:silk_CLZ_FRAC
Unexecuted instantiation: decode_indices.c:silk_CLZ_FRAC
Unexecuted instantiation: decode_pulses.c:silk_CLZ_FRAC
Unexecuted instantiation: decoder_set_fs.c:silk_CLZ_FRAC
Unexecuted instantiation: interpolate.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_decode.c:silk_CLZ_FRAC
Unexecuted instantiation: PLC.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_encode.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_VQ.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_del_dec_quant.c:silk_CLZ_FRAC
Unexecuted instantiation: A2NLSF.c:silk_CLZ_FRAC
Unexecuted instantiation: decode_pitch.c:silk_CLZ_FRAC
Unexecuted instantiation: LPC_inv_pred_gain.c:silk_CLZ_FRAC
Unexecuted instantiation: table_LSF_cos.c:silk_CLZ_FRAC
Unexecuted instantiation: NLSF_stabilize.c:silk_CLZ_FRAC
Unexecuted instantiation: corrMatrix_FIX.c:silk_CLZ_FRAC
Unexecuted instantiation: CNG.c:silk_CLZ_FRAC
Unexecuted instantiation: decode_core.c:silk_CLZ_FRAC
67
68
/* Approximation of square root                                          */
69
/* Accuracy: < +/- 10%  for output values > 15                           */
70
/*           < +/- 2.5% for output values > 120                          */
71
static OPUS_INLINE opus_int32 silk_SQRT_APPROX( opus_int32 x )
72
187M
{
73
187M
    opus_int32 y, lz, frac_Q7;
74
75
187M
    if( x <= 0 ) {
76
45.9M
        return 0;
77
45.9M
    }
78
79
141M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
141M
    if( lz & 1 ) {
82
128M
        y = 32768;
83
128M
    } else {
84
13.4M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
13.4M
    }
86
87
    /* get scaling right */
88
141M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
141M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
141M
    return y;
94
187M
}
Unexecuted instantiation: opus_encoder.c:silk_SQRT_APPROX
Unexecuted instantiation: x86cpu.c:silk_SQRT_APPROX
Unexecuted instantiation: enc_API.c:silk_SQRT_APPROX
Unexecuted instantiation: encode_indices.c:silk_SQRT_APPROX
Unexecuted instantiation: encode_pulses.c:silk_SQRT_APPROX
Unexecuted instantiation: shell_coder.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_gain.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_LTP.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_other.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_pitch_lag.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_pulses_per_block.c:silk_SQRT_APPROX
Unexecuted instantiation: HP_variable_cutoff.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_unpack.c:silk_SQRT_APPROX
Unexecuted instantiation: stereo_LR_to_MS.c:silk_SQRT_APPROX
Unexecuted instantiation: check_control_input.c:silk_SQRT_APPROX
Unexecuted instantiation: control_SNR.c:silk_SQRT_APPROX
Unexecuted instantiation: init_encoder.c:silk_SQRT_APPROX
Unexecuted instantiation: control_codec.c:silk_SQRT_APPROX
Unexecuted instantiation: biquad_alt.c:silk_SQRT_APPROX
Unexecuted instantiation: lin2log.c:silk_SQRT_APPROX
Unexecuted instantiation: log2lin.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_private_down_FIR.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_private_IIR_FIR.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_private_up2_HQ.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_rom.c:silk_SQRT_APPROX
Unexecuted instantiation: stereo_encode_pred.c:silk_SQRT_APPROX
stereo_find_predictor.c:silk_SQRT_APPROX
Line
Count
Source
72
15.5M
{
73
15.5M
    opus_int32 y, lz, frac_Q7;
74
75
15.5M
    if( x <= 0 ) {
76
7.52M
        return 0;
77
7.52M
    }
78
79
7.99M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
7.99M
    if( lz & 1 ) {
82
7.64M
        y = 32768;
83
7.64M
    } else {
84
353k
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
353k
    }
86
87
    /* get scaling right */
88
7.99M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
7.99M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
7.99M
    return y;
94
15.5M
}
Unexecuted instantiation: stereo_quant_pred.c:silk_SQRT_APPROX
Unexecuted instantiation: encode_frame_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: find_pitch_lags_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: find_pred_coefs_FIX.c:silk_SQRT_APPROX
noise_shape_analysis_FIX.c:silk_SQRT_APPROX
Line
Count
Source
72
64.1M
{
73
64.1M
    opus_int32 y, lz, frac_Q7;
74
75
64.1M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
64.1M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
64.1M
    if( lz & 1 ) {
82
60.3M
        y = 32768;
83
60.3M
    } else {
84
3.81M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
3.81M
    }
86
87
    /* get scaling right */
88
64.1M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
64.1M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
64.1M
    return y;
94
64.1M
}
process_gains_FIX.c:silk_SQRT_APPROX
Line
Count
Source
72
63.9M
{
73
63.9M
    opus_int32 y, lz, frac_Q7;
74
75
63.9M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
63.9M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
63.9M
    if( lz & 1 ) {
82
58.9M
        y = 32768;
83
58.9M
    } else {
84
4.90M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
4.90M
    }
86
87
    /* get scaling right */
88
63.9M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
63.9M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
63.9M
    return y;
94
63.9M
}
Unexecuted instantiation: residual_energy_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: warped_autocorrelation_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: apply_sine_window_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: autocorr_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: k2a_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: k2a_Q16_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: pitch_analysis_core_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: vector_ops_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: schur64_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: schur_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: x86_silk_map.c:silk_SQRT_APPROX
Unexecuted instantiation: NSQ_del_dec_avx2.c:silk_SQRT_APPROX
Unexecuted instantiation: opus_decoder.c:silk_SQRT_APPROX
Unexecuted instantiation: code_signs.c:silk_SQRT_APPROX
Unexecuted instantiation: dec_API.c:silk_SQRT_APPROX
Unexecuted instantiation: gain_quant.c:silk_SQRT_APPROX
Unexecuted instantiation: LP_variable_cutoff.c:silk_SQRT_APPROX
Unexecuted instantiation: NSQ.c:silk_SQRT_APPROX
Unexecuted instantiation: NSQ_del_dec.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_NLSF_CB_NB_MB.c:silk_SQRT_APPROX
Unexecuted instantiation: tables_NLSF_CB_WB.c:silk_SQRT_APPROX
VAD.c:silk_SQRT_APPROX
Line
Count
Source
72
20.5M
{
73
20.5M
    opus_int32 y, lz, frac_Q7;
74
75
20.5M
    if( x <= 0 ) {
76
19.2M
        return 0;
77
19.2M
    }
78
79
1.29M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.29M
    if( lz & 1 ) {
82
593k
        y = 32768;
83
703k
    } else {
84
703k
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
703k
    }
86
87
    /* get scaling right */
88
1.29M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.29M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.29M
    return y;
94
20.5M
}
Unexecuted instantiation: control_audio_bandwidth.c:silk_SQRT_APPROX
Unexecuted instantiation: quant_LTP_gains.c:silk_SQRT_APPROX
Unexecuted instantiation: VQ_WMat_EC.c:silk_SQRT_APPROX
Unexecuted instantiation: process_NLSFs.c:silk_SQRT_APPROX
Unexecuted instantiation: stereo_MS_to_LR.c:silk_SQRT_APPROX
Unexecuted instantiation: ana_filt_bank_1.c:silk_SQRT_APPROX
Unexecuted instantiation: bwexpander_32.c:silk_SQRT_APPROX
Unexecuted instantiation: bwexpander.c:silk_SQRT_APPROX
Unexecuted instantiation: inner_prod_aligned.c:silk_SQRT_APPROX
Unexecuted instantiation: LPC_analysis_filter.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF2A.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_VQ_weights_laroia.c:silk_SQRT_APPROX
Unexecuted instantiation: pitch_est_tables.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_down2_3.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_down2.c:silk_SQRT_APPROX
Unexecuted instantiation: resampler_private_AR2.c:silk_SQRT_APPROX
Unexecuted instantiation: sigm_Q15.c:silk_SQRT_APPROX
Unexecuted instantiation: sort.c:silk_SQRT_APPROX
Unexecuted instantiation: sum_sqr_shift.c:silk_SQRT_APPROX
Unexecuted instantiation: stereo_decode_pred.c:silk_SQRT_APPROX
Unexecuted instantiation: LPC_fit.c:silk_SQRT_APPROX
Unexecuted instantiation: LTP_analysis_filter_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: LTP_scale_ctrl_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: find_LPC_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: find_LTP_FIX.c:silk_SQRT_APPROX
burg_modified_FIX.c:silk_SQRT_APPROX
Line
Count
Source
72
1.48M
{
73
1.48M
    opus_int32 y, lz, frac_Q7;
74
75
1.48M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
1.48M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.48M
    if( lz & 1 ) {
82
13.4k
        y = 32768;
83
1.47M
    } else {
84
1.47M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
1.47M
    }
86
87
    /* get scaling right */
88
1.48M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.48M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.48M
    return y;
94
1.48M
}
Unexecuted instantiation: NSQ_sse4_1.c:silk_SQRT_APPROX
Unexecuted instantiation: NSQ_del_dec_sse4_1.c:silk_SQRT_APPROX
VAD_sse4_1.c:silk_SQRT_APPROX
Line
Count
Source
72
20.5M
{
73
20.5M
    opus_int32 y, lz, frac_Q7;
74
75
20.5M
    if( x <= 0 ) {
76
19.2M
        return 0;
77
19.2M
    }
78
79
1.29M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.29M
    if( lz & 1 ) {
82
593k
        y = 32768;
83
703k
    } else {
84
703k
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
703k
    }
86
87
    /* get scaling right */
88
1.29M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.29M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.29M
    return y;
94
20.5M
}
Unexecuted instantiation: VQ_WMat_EC_sse4_1.c:silk_SQRT_APPROX
Unexecuted instantiation: vector_ops_FIX_sse4_1.c:silk_SQRT_APPROX
burg_modified_FIX_sse4_1.c:silk_SQRT_APPROX
Line
Count
Source
72
1.48M
{
73
1.48M
    opus_int32 y, lz, frac_Q7;
74
75
1.48M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
1.48M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.48M
    if( lz & 1 ) {
82
13.4k
        y = 32768;
83
1.47M
    } else {
84
1.47M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
1.47M
    }
86
87
    /* get scaling right */
88
1.48M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.48M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.48M
    return y;
94
1.48M
}
Unexecuted instantiation: init_decoder.c:silk_SQRT_APPROX
Unexecuted instantiation: decode_frame.c:silk_SQRT_APPROX
Unexecuted instantiation: decode_parameters.c:silk_SQRT_APPROX
Unexecuted instantiation: decode_indices.c:silk_SQRT_APPROX
Unexecuted instantiation: decode_pulses.c:silk_SQRT_APPROX
Unexecuted instantiation: decoder_set_fs.c:silk_SQRT_APPROX
Unexecuted instantiation: interpolate.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_decode.c:silk_SQRT_APPROX
Unexecuted instantiation: PLC.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_encode.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_VQ.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_del_dec_quant.c:silk_SQRT_APPROX
Unexecuted instantiation: A2NLSF.c:silk_SQRT_APPROX
Unexecuted instantiation: decode_pitch.c:silk_SQRT_APPROX
Unexecuted instantiation: LPC_inv_pred_gain.c:silk_SQRT_APPROX
Unexecuted instantiation: table_LSF_cos.c:silk_SQRT_APPROX
Unexecuted instantiation: NLSF_stabilize.c:silk_SQRT_APPROX
Unexecuted instantiation: corrMatrix_FIX.c:silk_SQRT_APPROX
Unexecuted instantiation: CNG.c:silk_SQRT_APPROX
Unexecuted instantiation: decode_core.c:silk_SQRT_APPROX
95
96
/* Divide two int32 values and return result as int32 in a given Q-domain */
97
static OPUS_INLINE opus_int32 silk_DIV32_varQ(   /* O    returns a good approximation of "(a32 << Qres) / b32" */
98
    const opus_int32     a32,               /* I    numerator (Q0)                  */
99
    const opus_int32     b32,               /* I    denominator (Q0)                */
100
    const opus_int       Qres               /* I    Q-domain of result (>= 0)       */
101
)
102
2.96G
{
103
2.96G
    opus_int   a_headrm, b_headrm, lshift;
104
2.96G
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
2.96G
    silk_assert( b32 != 0 );
107
2.96G
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
2.96G
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
2.96G
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
2.96G
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
2.96G
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
2.96G
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
2.96G
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
2.96G
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
2.96G
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
2.96G
    lshift = 29 + a_headrm - b_headrm - Qres;
130
2.96G
    if( lshift < 0 ) {
131
495M
        return silk_LSHIFT_SAT32(result, -lshift);
132
2.46G
    } else {
133
2.46G
        if( lshift < 32){
134
2.46G
            return silk_RSHIFT(result, lshift);
135
2.46G
        } else {
136
            /* Avoid undefined result */
137
1.20M
            return 0;
138
1.20M
        }
139
2.46G
    }
140
2.96G
}
Unexecuted instantiation: opus_encoder.c:silk_DIV32_varQ
Unexecuted instantiation: x86cpu.c:silk_DIV32_varQ
Unexecuted instantiation: enc_API.c:silk_DIV32_varQ
Unexecuted instantiation: encode_indices.c:silk_DIV32_varQ
Unexecuted instantiation: encode_pulses.c:silk_DIV32_varQ
Unexecuted instantiation: shell_coder.c:silk_DIV32_varQ
Unexecuted instantiation: tables_gain.c:silk_DIV32_varQ
Unexecuted instantiation: tables_LTP.c:silk_DIV32_varQ
Unexecuted instantiation: tables_other.c:silk_DIV32_varQ
Unexecuted instantiation: tables_pitch_lag.c:silk_DIV32_varQ
Unexecuted instantiation: tables_pulses_per_block.c:silk_DIV32_varQ
Unexecuted instantiation: HP_variable_cutoff.c:silk_DIV32_varQ
Unexecuted instantiation: NLSF_unpack.c:silk_DIV32_varQ
stereo_LR_to_MS.c:silk_DIV32_varQ
Line
Count
Source
102
3.90M
{
103
3.90M
    opus_int   a_headrm, b_headrm, lshift;
104
3.90M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
3.90M
    silk_assert( b32 != 0 );
107
3.90M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
3.90M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
3.90M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
3.90M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
3.90M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
3.90M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
3.90M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
3.90M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
3.90M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
3.90M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
3.90M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
3.90M
    } else {
133
3.90M
        if( lshift < 32){
134
3.90M
            return silk_RSHIFT(result, lshift);
135
3.90M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
3.90M
    }
140
3.90M
}
Unexecuted instantiation: check_control_input.c:silk_DIV32_varQ
Unexecuted instantiation: control_SNR.c:silk_DIV32_varQ
Unexecuted instantiation: init_encoder.c:silk_DIV32_varQ
Unexecuted instantiation: control_codec.c:silk_DIV32_varQ
Unexecuted instantiation: biquad_alt.c:silk_DIV32_varQ
Unexecuted instantiation: lin2log.c:silk_DIV32_varQ
Unexecuted instantiation: log2lin.c:silk_DIV32_varQ
Unexecuted instantiation: resampler.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_private_down_FIR.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_private_IIR_FIR.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_private_up2_HQ.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_rom.c:silk_DIV32_varQ
Unexecuted instantiation: stereo_encode_pred.c:silk_DIV32_varQ
stereo_find_predictor.c:silk_DIV32_varQ
Line
Count
Source
102
15.5M
{
103
15.5M
    opus_int   a_headrm, b_headrm, lshift;
104
15.5M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
15.5M
    silk_assert( b32 != 0 );
107
15.5M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
15.5M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
15.5M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
15.5M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
15.5M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
15.5M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
15.5M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
15.5M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
15.5M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
15.5M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
15.5M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
15.5M
    } else {
133
15.5M
        if( lshift < 32){
134
15.5M
            return silk_RSHIFT(result, lshift);
135
15.5M
        } else {
136
            /* Avoid undefined result */
137
2.33k
            return 0;
138
2.33k
        }
139
15.5M
    }
140
15.5M
}
Unexecuted instantiation: stereo_quant_pred.c:silk_DIV32_varQ
Unexecuted instantiation: encode_frame_FIX.c:silk_DIV32_varQ
find_pitch_lags_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
19.7M
{
103
19.7M
    opus_int   a_headrm, b_headrm, lshift;
104
19.7M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
19.7M
    silk_assert( b32 != 0 );
107
19.7M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
19.7M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
19.7M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
19.7M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
19.7M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
19.7M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
19.7M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
19.7M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
19.7M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
19.7M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
19.7M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
19.7M
    } else {
133
19.7M
        if( lshift < 32){
134
19.7M
            return silk_RSHIFT(result, lshift);
135
19.7M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
19.7M
    }
140
19.7M
}
find_pred_coefs_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
78.5M
{
103
78.5M
    opus_int   a_headrm, b_headrm, lshift;
104
78.5M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
78.5M
    silk_assert( b32 != 0 );
107
78.5M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
78.5M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
78.5M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
78.5M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
78.5M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
78.5M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
78.5M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
78.5M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
78.5M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
78.5M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
78.5M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
78.5M
    } else {
133
78.5M
        if( lshift < 32){
134
78.5M
            return silk_RSHIFT(result, lshift);
135
78.5M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
78.5M
    }
140
78.5M
}
noise_shape_analysis_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
46.3M
{
103
46.3M
    opus_int   a_headrm, b_headrm, lshift;
104
46.3M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
46.3M
    silk_assert( b32 != 0 );
107
46.3M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
46.3M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
46.3M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
46.3M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
46.3M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
46.3M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
46.3M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
46.3M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
46.3M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
46.3M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
46.3M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
46.3M
    } else {
133
46.3M
        if( lshift < 32){
134
46.3M
            return silk_RSHIFT(result, lshift);
135
46.3M
        } else {
136
            /* Avoid undefined result */
137
1
            return 0;
138
1
        }
139
46.3M
    }
140
46.3M
}
Unexecuted instantiation: process_gains_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: residual_energy_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: warped_autocorrelation_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: apply_sine_window_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: autocorr_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: k2a_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: k2a_Q16_FIX.c:silk_DIV32_varQ
pitch_analysis_core_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
63.6M
{
103
63.6M
    opus_int   a_headrm, b_headrm, lshift;
104
63.6M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
63.6M
    silk_assert( b32 != 0 );
107
63.6M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
63.6M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
63.6M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
63.6M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
63.6M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
63.6M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
63.6M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
63.6M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
63.6M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
63.6M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
63.6M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
63.6M
    } else {
133
63.6M
        if( lshift < 32){
134
62.4M
            return silk_RSHIFT(result, lshift);
135
62.4M
        } else {
136
            /* Avoid undefined result */
137
1.20M
            return 0;
138
1.20M
        }
139
63.6M
    }
140
63.6M
}
Unexecuted instantiation: vector_ops_FIX.c:silk_DIV32_varQ
schur64_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
1.00G
{
103
1.00G
    opus_int   a_headrm, b_headrm, lshift;
104
1.00G
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
1.00G
    silk_assert( b32 != 0 );
107
1.00G
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
1.00G
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
1.00G
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
1.00G
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
1.00G
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
1.00G
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
1.00G
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
1.00G
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
1.00G
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
1.00G
    lshift = 29 + a_headrm - b_headrm - Qres;
130
1.00G
    if( lshift < 0 ) {
131
490M
        return silk_LSHIFT_SAT32(result, -lshift);
132
511M
    } else {
133
511M
        if( lshift < 32){
134
511M
            return silk_RSHIFT(result, lshift);
135
511M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
511M
    }
140
1.00G
}
Unexecuted instantiation: schur_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: x86_silk_map.c:silk_DIV32_varQ
NSQ_del_dec_avx2.c:silk_DIV32_varQ
Line
Count
Source
102
831k
{
103
831k
    opus_int   a_headrm, b_headrm, lshift;
104
831k
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
831k
    silk_assert( b32 != 0 );
107
831k
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
831k
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
831k
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
831k
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
831k
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
831k
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
831k
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
831k
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
831k
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
831k
    lshift = 29 + a_headrm - b_headrm - Qres;
130
831k
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
831k
    } else {
133
831k
        if( lshift < 32){
134
831k
            return silk_RSHIFT(result, lshift);
135
831k
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
831k
    }
140
831k
}
Unexecuted instantiation: opus_decoder.c:silk_DIV32_varQ
Unexecuted instantiation: code_signs.c:silk_DIV32_varQ
Unexecuted instantiation: dec_API.c:silk_DIV32_varQ
Unexecuted instantiation: gain_quant.c:silk_DIV32_varQ
Unexecuted instantiation: LP_variable_cutoff.c:silk_DIV32_varQ
NSQ.c:silk_DIV32_varQ
Line
Count
Source
102
2.40M
{
103
2.40M
    opus_int   a_headrm, b_headrm, lshift;
104
2.40M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
2.40M
    silk_assert( b32 != 0 );
107
2.40M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
2.40M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
2.40M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
2.40M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
2.40M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
2.40M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
2.40M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
2.40M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
2.40M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
2.40M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
2.40M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
2.40M
    } else {
133
2.40M
        if( lshift < 32){
134
2.40M
            return silk_RSHIFT(result, lshift);
135
2.40M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
2.40M
    }
140
2.40M
}
NSQ_del_dec.c:silk_DIV32_varQ
Line
Count
Source
102
3.10M
{
103
3.10M
    opus_int   a_headrm, b_headrm, lshift;
104
3.10M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
3.10M
    silk_assert( b32 != 0 );
107
3.10M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
3.10M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
3.10M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
3.10M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
3.10M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
3.10M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
3.10M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
3.10M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
3.10M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
3.10M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
3.10M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
3.10M
    } else {
133
3.10M
        if( lshift < 32){
134
3.10M
            return silk_RSHIFT(result, lshift);
135
3.10M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
3.10M
    }
140
3.10M
}
Unexecuted instantiation: tables_NLSF_CB_NB_MB.c:silk_DIV32_varQ
Unexecuted instantiation: tables_NLSF_CB_WB.c:silk_DIV32_varQ
Unexecuted instantiation: VAD.c:silk_DIV32_varQ
Unexecuted instantiation: control_audio_bandwidth.c:silk_DIV32_varQ
Unexecuted instantiation: quant_LTP_gains.c:silk_DIV32_varQ
Unexecuted instantiation: VQ_WMat_EC.c:silk_DIV32_varQ
Unexecuted instantiation: process_NLSFs.c:silk_DIV32_varQ
Unexecuted instantiation: stereo_MS_to_LR.c:silk_DIV32_varQ
Unexecuted instantiation: ana_filt_bank_1.c:silk_DIV32_varQ
Unexecuted instantiation: bwexpander_32.c:silk_DIV32_varQ
Unexecuted instantiation: bwexpander.c:silk_DIV32_varQ
Unexecuted instantiation: inner_prod_aligned.c:silk_DIV32_varQ
Unexecuted instantiation: LPC_analysis_filter.c:silk_DIV32_varQ
Unexecuted instantiation: NLSF2A.c:silk_DIV32_varQ
Unexecuted instantiation: NLSF_VQ_weights_laroia.c:silk_DIV32_varQ
Unexecuted instantiation: pitch_est_tables.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_down2_3.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_down2.c:silk_DIV32_varQ
Unexecuted instantiation: resampler_private_AR2.c:silk_DIV32_varQ
Unexecuted instantiation: sigm_Q15.c:silk_DIV32_varQ
Unexecuted instantiation: sort.c:silk_DIV32_varQ
Unexecuted instantiation: sum_sqr_shift.c:silk_DIV32_varQ
Unexecuted instantiation: stereo_decode_pred.c:silk_DIV32_varQ
Unexecuted instantiation: LPC_fit.c:silk_DIV32_varQ
Unexecuted instantiation: LTP_analysis_filter_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: LTP_scale_ctrl_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: find_LPC_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: find_LTP_FIX.c:silk_DIV32_varQ
burg_modified_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
255M
{
103
255M
    opus_int   a_headrm, b_headrm, lshift;
104
255M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
255M
    silk_assert( b32 != 0 );
107
255M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
255M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
255M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
255M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
255M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
255M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
255M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
255M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
255M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
255M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
255M
    if( lshift < 0 ) {
131
2.78M
        return silk_LSHIFT_SAT32(result, -lshift);
132
252M
    } else {
133
252M
        if( lshift < 32){
134
252M
            return silk_RSHIFT(result, lshift);
135
252M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
252M
    }
140
255M
}
NSQ_sse4_1.c:silk_DIV32_varQ
Line
Count
Source
102
2.40M
{
103
2.40M
    opus_int   a_headrm, b_headrm, lshift;
104
2.40M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
2.40M
    silk_assert( b32 != 0 );
107
2.40M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
2.40M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
2.40M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
2.40M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
2.40M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
2.40M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
2.40M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
2.40M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
2.40M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
2.40M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
2.40M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
2.40M
    } else {
133
2.40M
        if( lshift < 32){
134
2.40M
            return silk_RSHIFT(result, lshift);
135
2.40M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
2.40M
    }
140
2.40M
}
Unexecuted instantiation: NSQ_del_dec_sse4_1.c:silk_DIV32_varQ
Unexecuted instantiation: VAD_sse4_1.c:silk_DIV32_varQ
Unexecuted instantiation: VQ_WMat_EC_sse4_1.c:silk_DIV32_varQ
Unexecuted instantiation: vector_ops_FIX_sse4_1.c:silk_DIV32_varQ
burg_modified_FIX_sse4_1.c:silk_DIV32_varQ
Line
Count
Source
102
255M
{
103
255M
    opus_int   a_headrm, b_headrm, lshift;
104
255M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
255M
    silk_assert( b32 != 0 );
107
255M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
255M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
255M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
255M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
255M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
255M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
255M
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
255M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
255M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
255M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
255M
    if( lshift < 0 ) {
131
2.78M
        return silk_LSHIFT_SAT32(result, -lshift);
132
252M
    } else {
133
252M
        if( lshift < 32){
134
252M
            return silk_RSHIFT(result, lshift);
135
252M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
252M
    }
140
255M
}
Unexecuted instantiation: init_decoder.c:silk_DIV32_varQ
Unexecuted instantiation: decode_frame.c:silk_DIV32_varQ
Unexecuted instantiation: decode_parameters.c:silk_DIV32_varQ
Unexecuted instantiation: decode_indices.c:silk_DIV32_varQ
Unexecuted instantiation: decode_pulses.c:silk_DIV32_varQ
Unexecuted instantiation: decoder_set_fs.c:silk_DIV32_varQ
Unexecuted instantiation: interpolate.c:silk_DIV32_varQ
Unexecuted instantiation: NLSF_decode.c:silk_DIV32_varQ
Unexecuted instantiation: PLC.c:silk_DIV32_varQ
NLSF_encode.c:silk_DIV32_varQ
Line
Count
Source
102
1.21G
{
103
1.21G
    opus_int   a_headrm, b_headrm, lshift;
104
1.21G
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
1.21G
    silk_assert( b32 != 0 );
107
1.21G
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
1.21G
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
1.21G
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
1.21G
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
1.21G
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
1.21G
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
1.21G
    result = silk_SMULWB(a32_nrm, b32_inv);                                     /* Q: 29 + a_headrm - b_headrm  */
120
121
    /* Compute residual by subtracting product of denominator and first approximation */
122
    /* It's OK to overflow because the final value of a32_nrm should always be small */
123
1.21G
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
1.21G
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
1.21G
    lshift = 29 + a_headrm - b_headrm - Qres;
130
1.21G
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
1.21G
    } else {
133
1.21G
        if( lshift < 32){
134
1.21G
            return silk_RSHIFT(result, lshift);
135
1.21G
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
1.21G
    }
140
1.21G
}
Unexecuted instantiation: NLSF_VQ.c:silk_DIV32_varQ
Unexecuted instantiation: NLSF_del_dec_quant.c:silk_DIV32_varQ
Unexecuted instantiation: A2NLSF.c:silk_DIV32_varQ
Unexecuted instantiation: decode_pitch.c:silk_DIV32_varQ
Unexecuted instantiation: LPC_inv_pred_gain.c:silk_DIV32_varQ
Unexecuted instantiation: table_LSF_cos.c:silk_DIV32_varQ
Unexecuted instantiation: NLSF_stabilize.c:silk_DIV32_varQ
Unexecuted instantiation: corrMatrix_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: CNG.c:silk_DIV32_varQ
Unexecuted instantiation: decode_core.c:silk_DIV32_varQ
141
142
/* Invert int32 value and return result as int32 in a given Q-domain */
143
static OPUS_INLINE opus_int32 silk_INVERSE32_varQ(   /* O    returns a good approximation of "(1 << Qres) / b32" */
144
    const opus_int32     b32,                   /* I    denominator (Q0)                */
145
    const opus_int       Qres                   /* I    Q-domain of result (> 0)        */
146
)
147
532M
{
148
532M
    opus_int   b_headrm, lshift;
149
532M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
532M
    silk_assert( b32 != 0 );
152
532M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
532M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
532M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
532M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
532M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
532M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
532M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
532M
    lshift = 61 - b_headrm - Qres;
172
532M
    if( lshift <= 0 ) {
173
493M
        return silk_LSHIFT_SAT32(result, -lshift);
174
493M
    } else {
175
38.9M
        if( lshift < 32){
176
38.9M
            return silk_RSHIFT(result, lshift);
177
38.9M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
38.9M
    }
182
532M
}
Unexecuted instantiation: opus_encoder.c:silk_INVERSE32_varQ
Unexecuted instantiation: x86cpu.c:silk_INVERSE32_varQ
Unexecuted instantiation: enc_API.c:silk_INVERSE32_varQ
Unexecuted instantiation: encode_indices.c:silk_INVERSE32_varQ
Unexecuted instantiation: encode_pulses.c:silk_INVERSE32_varQ
Unexecuted instantiation: shell_coder.c:silk_INVERSE32_varQ
Unexecuted instantiation: tables_gain.c:silk_INVERSE32_varQ
Unexecuted instantiation: tables_LTP.c:silk_INVERSE32_varQ
Unexecuted instantiation: tables_other.c:silk_INVERSE32_varQ
Unexecuted instantiation: tables_pitch_lag.c:silk_INVERSE32_varQ
Unexecuted instantiation: tables_pulses_per_block.c:silk_INVERSE32_varQ
Unexecuted instantiation: HP_variable_cutoff.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_unpack.c:silk_INVERSE32_varQ
Unexecuted instantiation: stereo_LR_to_MS.c:silk_INVERSE32_varQ
Unexecuted instantiation: check_control_input.c:silk_INVERSE32_varQ
Unexecuted instantiation: control_SNR.c:silk_INVERSE32_varQ
Unexecuted instantiation: init_encoder.c:silk_INVERSE32_varQ
Unexecuted instantiation: control_codec.c:silk_INVERSE32_varQ
Unexecuted instantiation: biquad_alt.c:silk_INVERSE32_varQ
Unexecuted instantiation: lin2log.c:silk_INVERSE32_varQ
Unexecuted instantiation: log2lin.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_private_down_FIR.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_private_IIR_FIR.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_private_up2_HQ.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_rom.c:silk_INVERSE32_varQ
Unexecuted instantiation: stereo_encode_pred.c:silk_INVERSE32_varQ
Unexecuted instantiation: stereo_find_predictor.c:silk_INVERSE32_varQ
Unexecuted instantiation: stereo_quant_pred.c:silk_INVERSE32_varQ
Unexecuted instantiation: encode_frame_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: find_pitch_lags_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: find_pred_coefs_FIX.c:silk_INVERSE32_varQ
noise_shape_analysis_FIX.c:silk_INVERSE32_varQ
Line
Count
Source
147
26.5M
{
148
26.5M
    opus_int   b_headrm, lshift;
149
26.5M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
26.5M
    silk_assert( b32 != 0 );
152
26.5M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
26.5M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
26.5M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
26.5M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
26.5M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
26.5M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
26.5M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
26.5M
    lshift = 61 - b_headrm - Qres;
172
26.5M
    if( lshift <= 0 ) {
173
0
        return silk_LSHIFT_SAT32(result, -lshift);
174
26.5M
    } else {
175
26.5M
        if( lshift < 32){
176
26.5M
            return silk_RSHIFT(result, lshift);
177
26.5M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
26.5M
    }
182
26.5M
}
Unexecuted instantiation: process_gains_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: residual_energy_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: warped_autocorrelation_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: apply_sine_window_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: autocorr_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: k2a_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: k2a_Q16_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: pitch_analysis_core_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: vector_ops_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: schur64_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: schur_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: x86_silk_map.c:silk_INVERSE32_varQ
NSQ_del_dec_avx2.c:silk_INVERSE32_varQ
Line
Count
Source
147
17.7M
{
148
17.7M
    opus_int   b_headrm, lshift;
149
17.7M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
17.7M
    silk_assert( b32 != 0 );
152
17.7M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
17.7M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
17.7M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
17.7M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
17.7M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
17.7M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
17.7M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
17.7M
    lshift = 61 - b_headrm - Qres;
172
17.7M
    if( lshift <= 0 ) {
173
16.4M
        return silk_LSHIFT_SAT32(result, -lshift);
174
16.4M
    } else {
175
1.25M
        if( lshift < 32){
176
1.25M
            return silk_RSHIFT(result, lshift);
177
1.25M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
1.25M
    }
182
17.7M
}
Unexecuted instantiation: opus_decoder.c:silk_INVERSE32_varQ
Unexecuted instantiation: code_signs.c:silk_INVERSE32_varQ
Unexecuted instantiation: dec_API.c:silk_INVERSE32_varQ
Unexecuted instantiation: gain_quant.c:silk_INVERSE32_varQ
Unexecuted instantiation: LP_variable_cutoff.c:silk_INVERSE32_varQ
NSQ.c:silk_INVERSE32_varQ
Line
Count
Source
147
27.4M
{
148
27.4M
    opus_int   b_headrm, lshift;
149
27.4M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
27.4M
    silk_assert( b32 != 0 );
152
27.4M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
27.4M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
27.4M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
27.4M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
27.4M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
27.4M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
27.4M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
27.4M
    lshift = 61 - b_headrm - Qres;
172
27.4M
    if( lshift <= 0 ) {
173
24.0M
        return silk_LSHIFT_SAT32(result, -lshift);
174
24.0M
    } else {
175
3.35M
        if( lshift < 32){
176
3.35M
            return silk_RSHIFT(result, lshift);
177
3.35M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
3.35M
    }
182
27.4M
}
NSQ_del_dec.c:silk_INVERSE32_varQ
Line
Count
Source
147
63.2M
{
148
63.2M
    opus_int   b_headrm, lshift;
149
63.2M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
63.2M
    silk_assert( b32 != 0 );
152
63.2M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
63.2M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
63.2M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
63.2M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
63.2M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
63.2M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
63.2M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
63.2M
    lshift = 61 - b_headrm - Qres;
172
63.2M
    if( lshift <= 0 ) {
173
58.7M
        return silk_LSHIFT_SAT32(result, -lshift);
174
58.7M
    } else {
175
4.47M
        if( lshift < 32){
176
4.47M
            return silk_RSHIFT(result, lshift);
177
4.47M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
4.47M
    }
182
63.2M
}
Unexecuted instantiation: tables_NLSF_CB_NB_MB.c:silk_INVERSE32_varQ
Unexecuted instantiation: tables_NLSF_CB_WB.c:silk_INVERSE32_varQ
Unexecuted instantiation: VAD.c:silk_INVERSE32_varQ
Unexecuted instantiation: control_audio_bandwidth.c:silk_INVERSE32_varQ
Unexecuted instantiation: quant_LTP_gains.c:silk_INVERSE32_varQ
Unexecuted instantiation: VQ_WMat_EC.c:silk_INVERSE32_varQ
Unexecuted instantiation: process_NLSFs.c:silk_INVERSE32_varQ
Unexecuted instantiation: stereo_MS_to_LR.c:silk_INVERSE32_varQ
Unexecuted instantiation: ana_filt_bank_1.c:silk_INVERSE32_varQ
Unexecuted instantiation: bwexpander_32.c:silk_INVERSE32_varQ
Unexecuted instantiation: bwexpander.c:silk_INVERSE32_varQ
Unexecuted instantiation: inner_prod_aligned.c:silk_INVERSE32_varQ
Unexecuted instantiation: LPC_analysis_filter.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF2A.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_VQ_weights_laroia.c:silk_INVERSE32_varQ
Unexecuted instantiation: pitch_est_tables.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_down2_3.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_down2.c:silk_INVERSE32_varQ
Unexecuted instantiation: resampler_private_AR2.c:silk_INVERSE32_varQ
Unexecuted instantiation: sigm_Q15.c:silk_INVERSE32_varQ
Unexecuted instantiation: sort.c:silk_INVERSE32_varQ
Unexecuted instantiation: sum_sqr_shift.c:silk_INVERSE32_varQ
Unexecuted instantiation: stereo_decode_pred.c:silk_INVERSE32_varQ
Unexecuted instantiation: LPC_fit.c:silk_INVERSE32_varQ
Unexecuted instantiation: LTP_analysis_filter_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: LTP_scale_ctrl_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: find_LPC_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: find_LTP_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: burg_modified_FIX.c:silk_INVERSE32_varQ
NSQ_sse4_1.c:silk_INVERSE32_varQ
Line
Count
Source
147
27.4M
{
148
27.4M
    opus_int   b_headrm, lshift;
149
27.4M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
27.4M
    silk_assert( b32 != 0 );
152
27.4M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
27.4M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
27.4M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
27.4M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
27.4M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
27.4M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
27.4M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
27.4M
    lshift = 61 - b_headrm - Qres;
172
27.4M
    if( lshift <= 0 ) {
173
24.0M
        return silk_LSHIFT_SAT32(result, -lshift);
174
24.0M
    } else {
175
3.35M
        if( lshift < 32){
176
3.35M
            return silk_RSHIFT(result, lshift);
177
3.35M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
3.35M
    }
182
27.4M
}
Unexecuted instantiation: NSQ_del_dec_sse4_1.c:silk_INVERSE32_varQ
Unexecuted instantiation: VAD_sse4_1.c:silk_INVERSE32_varQ
Unexecuted instantiation: VQ_WMat_EC_sse4_1.c:silk_INVERSE32_varQ
Unexecuted instantiation: vector_ops_FIX_sse4_1.c:silk_INVERSE32_varQ
Unexecuted instantiation: burg_modified_FIX_sse4_1.c:silk_INVERSE32_varQ
Unexecuted instantiation: init_decoder.c:silk_INVERSE32_varQ
Unexecuted instantiation: decode_frame.c:silk_INVERSE32_varQ
Unexecuted instantiation: decode_parameters.c:silk_INVERSE32_varQ
Unexecuted instantiation: decode_indices.c:silk_INVERSE32_varQ
Unexecuted instantiation: decode_pulses.c:silk_INVERSE32_varQ
Unexecuted instantiation: decoder_set_fs.c:silk_INVERSE32_varQ
Unexecuted instantiation: interpolate.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_decode.c:silk_INVERSE32_varQ
Unexecuted instantiation: PLC.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_encode.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_VQ.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_del_dec_quant.c:silk_INVERSE32_varQ
Unexecuted instantiation: A2NLSF.c:silk_INVERSE32_varQ
Unexecuted instantiation: decode_pitch.c:silk_INVERSE32_varQ
LPC_inv_pred_gain.c:silk_INVERSE32_varQ
Line
Count
Source
147
369M
{
148
369M
    opus_int   b_headrm, lshift;
149
369M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
369M
    silk_assert( b32 != 0 );
152
369M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
369M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
369M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
369M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
369M
    result = silk_LSHIFT(b32_inv, 16);                                          /* Q: 61 - b_headrm            */
163
164
    /* Compute residual by subtracting product of denominator and first approximation from one */
165
369M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
369M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
369M
    lshift = 61 - b_headrm - Qres;
172
369M
    if( lshift <= 0 ) {
173
369M
        return silk_LSHIFT_SAT32(result, -lshift);
174
369M
    } else {
175
0
        if( lshift < 32){
176
0
            return silk_RSHIFT(result, lshift);
177
0
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
0
    }
182
369M
}
Unexecuted instantiation: table_LSF_cos.c:silk_INVERSE32_varQ
Unexecuted instantiation: NLSF_stabilize.c:silk_INVERSE32_varQ
Unexecuted instantiation: corrMatrix_FIX.c:silk_INVERSE32_varQ
Unexecuted instantiation: CNG.c:silk_INVERSE32_varQ
Unexecuted instantiation: decode_core.c:silk_INVERSE32_varQ
183
184
#ifdef  __cplusplus
185
}
186
#endif
187
188
#endif /* SILK_FIX_INLINES_H */