Coverage Report

Created: 2023-09-25 08:09

/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
77.1M
{
43
77.1M
    opus_int32 in_upper;
44
45
77.1M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
77.1M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
76.3M
        return 32 + silk_CLZ32( (opus_int32) in );
49
76.3M
    } else {
50
        /* Search in the upper 32 bits */
51
822k
        return silk_CLZ32( in_upper );
52
822k
    }
53
77.1M
}
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.1M
{
43
26.1M
    opus_int32 in_upper;
44
45
26.1M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
26.1M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
25.3M
        return 32 + silk_CLZ32( (opus_int32) in );
49
25.3M
    } else {
50
        /* Search in the upper 32 bits */
51
821k
        return silk_CLZ32( in_upper );
52
821k
    }
53
26.1M
}
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: 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
25.4M
{
43
25.4M
    opus_int32 in_upper;
44
45
25.4M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
25.4M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
25.4M
        return 32 + silk_CLZ32( (opus_int32) in );
49
25.4M
    } else {
50
        /* Search in the upper 32 bits */
51
353
        return silk_CLZ32( in_upper );
52
353
    }
53
25.4M
}
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
25.4M
{
43
25.4M
    opus_int32 in_upper;
44
45
25.4M
    in_upper = (opus_int32)silk_RSHIFT64(in, 32);
46
25.4M
    if (in_upper == 0) {
47
        /* Search in the lower 32 bits */
48
25.4M
        return 32 + silk_CLZ32( (opus_int32) in );
49
25.4M
    } else {
50
        /* Search in the upper 32 bits */
51
353
        return silk_CLZ32( in_upper );
52
353
    }
53
25.4M
}
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
1.02G
{
62
1.02G
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.02G
    * lz = lzeros;
65
1.02G
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.02G
}
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
866M
{
62
866M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
866M
    * lz = lzeros;
65
866M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
866M
}
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
8.71M
{
62
8.71M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
8.71M
    * lz = lzeros;
65
8.71M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
8.71M
}
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
70.2M
{
62
70.2M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
70.2M
    * lz = lzeros;
65
70.2M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
70.2M
}
process_gains_FIX.c:silk_CLZ_FRAC
Line
Count
Source
61
69.9M
{
62
69.9M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
69.9M
    * lz = lzeros;
65
69.9M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
69.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: 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.58M
{
62
1.58M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.58M
    * lz = lzeros;
65
1.58M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.58M
}
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.55M
{
62
1.55M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.55M
    * lz = lzeros;
65
1.55M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.55M
}
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.58M
{
62
1.58M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.58M
    * lz = lzeros;
65
1.58M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.58M
}
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.55M
{
62
1.55M
    opus_int32 lzeros = silk_CLZ32(in);
63
64
1.55M
    * lz = lzeros;
65
1.55M
    * frac_Q7 = silk_ROR32(in, 24 - lzeros) & 0x7f;
66
1.55M
}
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
204M
{
73
204M
    opus_int32 y, lz, frac_Q7;
74
75
204M
    if( x <= 0 ) {
76
49.6M
        return 0;
77
49.6M
    }
78
79
155M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
155M
    if( lz & 1 ) {
82
140M
        y = 32768;
83
140M
    } else {
84
14.5M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
14.5M
    }
86
87
    /* get scaling right */
88
155M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
155M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
155M
    return y;
94
204M
}
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
16.8M
{
73
16.8M
    opus_int32 y, lz, frac_Q7;
74
75
16.8M
    if( x <= 0 ) {
76
8.16M
        return 0;
77
8.16M
    }
78
79
8.71M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
8.71M
    if( lz & 1 ) {
82
8.32M
        y = 32768;
83
8.32M
    } else {
84
389k
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
389k
    }
86
87
    /* get scaling right */
88
8.71M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
8.71M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
8.71M
    return y;
94
16.8M
}
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
70.2M
{
73
70.2M
    opus_int32 y, lz, frac_Q7;
74
75
70.2M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
70.2M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
70.2M
    if( lz & 1 ) {
82
66.1M
        y = 32768;
83
66.1M
    } else {
84
4.07M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
4.07M
    }
86
87
    /* get scaling right */
88
70.2M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
70.2M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
70.2M
    return y;
94
70.2M
}
process_gains_FIX.c:silk_SQRT_APPROX
Line
Count
Source
72
69.9M
{
73
69.9M
    opus_int32 y, lz, frac_Q7;
74
75
69.9M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
69.9M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
69.9M
    if( lz & 1 ) {
82
64.6M
        y = 32768;
83
64.6M
    } else {
84
5.29M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
5.29M
    }
86
87
    /* get scaling right */
88
69.9M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
69.9M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
69.9M
    return y;
94
69.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: 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
22.3M
{
73
22.3M
    opus_int32 y, lz, frac_Q7;
74
75
22.3M
    if( x <= 0 ) {
76
20.7M
        return 0;
77
20.7M
    }
78
79
1.58M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.58M
    if( lz & 1 ) {
82
719k
        y = 32768;
83
870k
    } else {
84
870k
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
870k
    }
86
87
    /* get scaling right */
88
1.58M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.58M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.58M
    return y;
94
22.3M
}
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.55M
{
73
1.55M
    opus_int32 y, lz, frac_Q7;
74
75
1.55M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
1.55M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.55M
    if( lz & 1 ) {
82
10.5k
        y = 32768;
83
1.54M
    } else {
84
1.54M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
1.54M
    }
86
87
    /* get scaling right */
88
1.55M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.55M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.55M
    return y;
94
1.55M
}
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
22.3M
{
73
22.3M
    opus_int32 y, lz, frac_Q7;
74
75
22.3M
    if( x <= 0 ) {
76
20.7M
        return 0;
77
20.7M
    }
78
79
1.58M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.58M
    if( lz & 1 ) {
82
719k
        y = 32768;
83
870k
    } else {
84
870k
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
870k
    }
86
87
    /* get scaling right */
88
1.58M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.58M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.58M
    return y;
94
22.3M
}
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.55M
{
73
1.55M
    opus_int32 y, lz, frac_Q7;
74
75
1.55M
    if( x <= 0 ) {
76
0
        return 0;
77
0
    }
78
79
1.55M
    silk_CLZ_FRAC(x, &lz, &frac_Q7);
80
81
1.55M
    if( lz & 1 ) {
82
10.5k
        y = 32768;
83
1.54M
    } else {
84
1.54M
        y = 46214;        /* 46214 = sqrt(2) * 32768 */
85
1.54M
    }
86
87
    /* get scaling right */
88
1.55M
    y >>= silk_RSHIFT(lz, 1);
89
90
    /* increment using fractional part of input */
91
1.55M
    y = silk_SMLAWB(y, y, silk_SMULBB(213, frac_Q7));
92
93
1.55M
    return y;
94
1.55M
}
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
3.05G
{
103
3.05G
    opus_int   a_headrm, b_headrm, lshift;
104
3.05G
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
3.05G
    silk_assert( b32 != 0 );
107
3.05G
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
3.05G
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
3.05G
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
3.05G
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
3.05G
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
3.05G
    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.05G
    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.05G
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
3.05G
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
3.05G
    lshift = 29 + a_headrm - b_headrm - Qres;
130
3.05G
    if( lshift < 0 ) {
131
476M
        return silk_LSHIFT_SAT32(result, -lshift);
132
2.57G
    } else {
133
2.57G
        if( lshift < 32){
134
2.57G
            return silk_RSHIFT(result, lshift);
135
2.57G
        } else {
136
            /* Avoid undefined result */
137
1.27M
            return 0;
138
1.27M
        }
139
2.57G
    }
140
3.05G
}
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
4.24M
{
103
4.24M
    opus_int   a_headrm, b_headrm, lshift;
104
4.24M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
4.24M
    silk_assert( b32 != 0 );
107
4.24M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
4.24M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
4.24M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
4.24M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
4.24M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
4.24M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
4.24M
    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
4.24M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
4.24M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
4.24M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
4.24M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
4.24M
    } else {
133
4.24M
        if( lshift < 32){
134
4.24M
            return silk_RSHIFT(result, lshift);
135
4.24M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
4.24M
    }
140
4.24M
}
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
16.8M
{
103
16.8M
    opus_int   a_headrm, b_headrm, lshift;
104
16.8M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
16.8M
    silk_assert( b32 != 0 );
107
16.8M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
16.8M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
16.8M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
16.8M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
16.8M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
16.8M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
16.8M
    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
16.8M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
16.8M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
16.8M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
16.8M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
16.8M
    } else {
133
16.8M
        if( lshift < 32){
134
16.8M
            return silk_RSHIFT(result, lshift);
135
16.8M
        } else {
136
            /* Avoid undefined result */
137
2.36k
            return 0;
138
2.36k
        }
139
16.8M
    }
140
16.8M
}
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
21.4M
{
103
21.4M
    opus_int   a_headrm, b_headrm, lshift;
104
21.4M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
21.4M
    silk_assert( b32 != 0 );
107
21.4M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
21.4M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
21.4M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
21.4M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
21.4M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
21.4M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
21.4M
    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
21.4M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
21.4M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
21.4M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
21.4M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
21.4M
    } else {
133
21.4M
        if( lshift < 32){
134
21.4M
            return silk_RSHIFT(result, lshift);
135
21.4M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
21.4M
    }
140
21.4M
}
find_pred_coefs_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
85.6M
{
103
85.6M
    opus_int   a_headrm, b_headrm, lshift;
104
85.6M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
85.6M
    silk_assert( b32 != 0 );
107
85.6M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
85.6M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
85.6M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
85.6M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
85.6M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
85.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
85.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
85.6M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
85.6M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
85.6M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
85.6M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
85.6M
    } else {
133
85.6M
        if( lshift < 32){
134
85.6M
            return silk_RSHIFT(result, lshift);
135
85.6M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
85.6M
    }
140
85.6M
}
noise_shape_analysis_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
47.6M
{
103
47.6M
    opus_int   a_headrm, b_headrm, lshift;
104
47.6M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
47.6M
    silk_assert( b32 != 0 );
107
47.6M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
47.6M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
47.6M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
47.6M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
47.6M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
47.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
47.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
47.6M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
47.6M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
47.6M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
47.6M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
47.6M
    } else {
133
47.6M
        if( lshift < 32){
134
47.6M
            return silk_RSHIFT(result, lshift);
135
47.6M
        } else {
136
            /* Avoid undefined result */
137
1
            return 0;
138
1
        }
139
47.6M
    }
140
47.6M
}
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
77.9M
{
103
77.9M
    opus_int   a_headrm, b_headrm, lshift;
104
77.9M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
77.9M
    silk_assert( b32 != 0 );
107
77.9M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
77.9M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
77.9M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
77.9M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
77.9M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
77.9M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
77.9M
    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
77.9M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
77.9M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
77.9M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
77.9M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
77.9M
    } else {
133
77.9M
        if( lshift < 32){
134
76.6M
            return silk_RSHIFT(result, lshift);
135
76.6M
        } else {
136
            /* Avoid undefined result */
137
1.27M
            return 0;
138
1.27M
        }
139
77.9M
    }
140
77.9M
}
Unexecuted instantiation: vector_ops_FIX.c:silk_DIV32_varQ
schur64_FIX.c:silk_DIV32_varQ
Line
Count
Source
102
1.06G
{
103
1.06G
    opus_int   a_headrm, b_headrm, lshift;
104
1.06G
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
1.06G
    silk_assert( b32 != 0 );
107
1.06G
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
1.06G
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
1.06G
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
1.06G
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
1.06G
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
1.06G
    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.06G
    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.06G
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
1.06G
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
1.06G
    lshift = 29 + a_headrm - b_headrm - Qres;
130
1.06G
    if( lshift < 0 ) {
131
470M
        return silk_LSHIFT_SAT32(result, -lshift);
132
591M
    } else {
133
591M
        if( lshift < 32){
134
591M
            return silk_RSHIFT(result, lshift);
135
591M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
591M
    }
140
1.06G
}
Unexecuted instantiation: schur_FIX.c:silk_DIV32_varQ
Unexecuted instantiation: x86_silk_map.c:silk_DIV32_varQ
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
3.00M
{
103
3.00M
    opus_int   a_headrm, b_headrm, lshift;
104
3.00M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
3.00M
    silk_assert( b32 != 0 );
107
3.00M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
3.00M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
3.00M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
3.00M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
3.00M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
3.00M
    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.00M
    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.00M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
3.00M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
3.00M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
3.00M
    if( lshift < 0 ) {
131
1
        return silk_LSHIFT_SAT32(result, -lshift);
132
3.00M
    } else {
133
3.00M
        if( lshift < 32){
134
3.00M
            return silk_RSHIFT(result, lshift);
135
3.00M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
3.00M
    }
140
3.00M
}
NSQ_del_dec.c:silk_DIV32_varQ
Line
Count
Source
102
1.95M
{
103
1.95M
    opus_int   a_headrm, b_headrm, lshift;
104
1.95M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
1.95M
    silk_assert( b32 != 0 );
107
1.95M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
1.95M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
1.95M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
1.95M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
1.95M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
1.95M
    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.95M
    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.95M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
1.95M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
1.95M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
1.95M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
1.95M
    } else {
133
1.95M
        if( lshift < 32){
134
1.95M
            return silk_RSHIFT(result, lshift);
135
1.95M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
1.95M
    }
140
1.95M
}
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
273M
{
103
273M
    opus_int   a_headrm, b_headrm, lshift;
104
273M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
273M
    silk_assert( b32 != 0 );
107
273M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
273M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
273M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
273M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
273M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
273M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
273M
    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
273M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
273M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
273M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
273M
    if( lshift < 0 ) {
131
3.06M
        return silk_LSHIFT_SAT32(result, -lshift);
132
270M
    } else {
133
270M
        if( lshift < 32){
134
270M
            return silk_RSHIFT(result, lshift);
135
270M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
270M
    }
140
273M
}
NSQ_sse4_1.c:silk_DIV32_varQ
Line
Count
Source
102
3.00M
{
103
3.00M
    opus_int   a_headrm, b_headrm, lshift;
104
3.00M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
3.00M
    silk_assert( b32 != 0 );
107
3.00M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
3.00M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
3.00M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
3.00M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
3.00M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
3.00M
    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.00M
    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.00M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
3.00M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
3.00M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
3.00M
    if( lshift < 0 ) {
131
1
        return silk_LSHIFT_SAT32(result, -lshift);
132
3.00M
    } else {
133
3.00M
        if( lshift < 32){
134
3.00M
            return silk_RSHIFT(result, lshift);
135
3.00M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
3.00M
    }
140
3.00M
}
NSQ_del_dec_sse4_1.c:silk_DIV32_varQ
Line
Count
Source
102
1.95M
{
103
1.95M
    opus_int   a_headrm, b_headrm, lshift;
104
1.95M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
1.95M
    silk_assert( b32 != 0 );
107
1.95M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
1.95M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
1.95M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
1.95M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
1.95M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
1.95M
    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.95M
    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.95M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
1.95M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
1.95M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
1.95M
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
1.95M
    } else {
133
1.95M
        if( lshift < 32){
134
1.95M
            return silk_RSHIFT(result, lshift);
135
1.95M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
1.95M
    }
140
1.95M
}
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
273M
{
103
273M
    opus_int   a_headrm, b_headrm, lshift;
104
273M
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
273M
    silk_assert( b32 != 0 );
107
273M
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
273M
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
273M
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
273M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
273M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
273M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm        */
117
118
    /* First approximation */
119
273M
    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
273M
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
273M
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
273M
    lshift = 29 + a_headrm - b_headrm - Qres;
130
273M
    if( lshift < 0 ) {
131
3.06M
        return silk_LSHIFT_SAT32(result, -lshift);
132
270M
    } else {
133
270M
        if( lshift < 32){
134
270M
            return silk_RSHIFT(result, lshift);
135
270M
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
270M
    }
140
273M
}
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.17G
{
103
1.17G
    opus_int   a_headrm, b_headrm, lshift;
104
1.17G
    opus_int32 b32_inv, a32_nrm, b32_nrm, result;
105
106
1.17G
    silk_assert( b32 != 0 );
107
1.17G
    silk_assert( Qres >= 0 );
108
109
    /* Compute number of bits head room and normalize inputs */
110
1.17G
    a_headrm = silk_CLZ32( silk_abs(a32) ) - 1;
111
1.17G
    a32_nrm = silk_LSHIFT(a32, a_headrm);                                       /* Q: a_headrm                  */
112
1.17G
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
113
1.17G
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                  */
114
115
    /* Inverse of b32, with 14 bits of precision */
116
1.17G
    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.17G
    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.17G
    a32_nrm = silk_SUB32_ovflw(a32_nrm, silk_LSHIFT_ovflw( silk_SMMUL(b32_nrm, result), 3 ));  /* Q: a_headrm   */
124
125
    /* Refinement */
126
1.17G
    result = silk_SMLAWB(result, a32_nrm, b32_inv);                             /* Q: 29 + a_headrm - b_headrm  */
127
128
    /* Convert to Qres domain */
129
1.17G
    lshift = 29 + a_headrm - b_headrm - Qres;
130
1.17G
    if( lshift < 0 ) {
131
0
        return silk_LSHIFT_SAT32(result, -lshift);
132
1.17G
    } else {
133
1.17G
        if( lshift < 32){
134
1.17G
            return silk_RSHIFT(result, lshift);
135
1.17G
        } else {
136
            /* Avoid undefined result */
137
0
            return 0;
138
0
        }
139
1.17G
    }
140
1.17G
}
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
561M
{
148
561M
    opus_int   b_headrm, lshift;
149
561M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
561M
    silk_assert( b32 != 0 );
152
561M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
561M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
561M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
561M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
561M
    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
561M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
561M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
561M
    lshift = 61 - b_headrm - Qres;
172
561M
    if( lshift <= 0 ) {
173
520M
        return silk_LSHIFT_SAT32(result, -lshift);
174
520M
    } else {
175
40.8M
        if( lshift < 32){
176
40.8M
            return silk_RSHIFT(result, lshift);
177
40.8M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
40.8M
    }
182
561M
}
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.1M
{
148
26.1M
    opus_int   b_headrm, lshift;
149
26.1M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
26.1M
    silk_assert( b32 != 0 );
152
26.1M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
26.1M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
26.1M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
26.1M
    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.1M
    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.1M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
26.1M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
26.1M
    lshift = 61 - b_headrm - Qres;
172
26.1M
    if( lshift <= 0 ) {
173
0
        return silk_LSHIFT_SAT32(result, -lshift);
174
26.1M
    } else {
175
26.1M
        if( lshift < 32){
176
26.1M
            return silk_RSHIFT(result, lshift);
177
26.1M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
26.1M
    }
182
26.1M
}
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
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
31.8M
{
148
31.8M
    opus_int   b_headrm, lshift;
149
31.8M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
31.8M
    silk_assert( b32 != 0 );
152
31.8M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
31.8M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
31.8M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
31.8M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
31.8M
    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
31.8M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
31.8M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
31.8M
    lshift = 61 - b_headrm - Qres;
172
31.8M
    if( lshift <= 0 ) {
173
27.4M
        return silk_LSHIFT_SAT32(result, -lshift);
174
27.4M
    } else {
175
4.36M
        if( lshift < 32){
176
4.36M
            return silk_RSHIFT(result, lshift);
177
4.36M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
4.36M
    }
182
31.8M
}
NSQ_del_dec.c:silk_INVERSE32_varQ
Line
Count
Source
147
42.8M
{
148
42.8M
    opus_int   b_headrm, lshift;
149
42.8M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
42.8M
    silk_assert( b32 != 0 );
152
42.8M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
42.8M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
42.8M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
42.8M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
42.8M
    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
42.8M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
42.8M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
42.8M
    lshift = 61 - b_headrm - Qres;
172
42.8M
    if( lshift <= 0 ) {
173
39.8M
        return silk_LSHIFT_SAT32(result, -lshift);
174
39.8M
    } else {
175
2.96M
        if( lshift < 32){
176
2.96M
            return silk_RSHIFT(result, lshift);
177
2.96M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
2.96M
    }
182
42.8M
}
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
31.8M
{
148
31.8M
    opus_int   b_headrm, lshift;
149
31.8M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
31.8M
    silk_assert( b32 != 0 );
152
31.8M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
31.8M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
31.8M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
31.8M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
31.8M
    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
31.8M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
31.8M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
31.8M
    lshift = 61 - b_headrm - Qres;
172
31.8M
    if( lshift <= 0 ) {
173
27.4M
        return silk_LSHIFT_SAT32(result, -lshift);
174
27.4M
    } else {
175
4.36M
        if( lshift < 32){
176
4.36M
            return silk_RSHIFT(result, lshift);
177
4.36M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
4.36M
    }
182
31.8M
}
NSQ_del_dec_sse4_1.c:silk_INVERSE32_varQ
Line
Count
Source
147
42.8M
{
148
42.8M
    opus_int   b_headrm, lshift;
149
42.8M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
42.8M
    silk_assert( b32 != 0 );
152
42.8M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
42.8M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
42.8M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
42.8M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
42.8M
    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
42.8M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
42.8M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
42.8M
    lshift = 61 - b_headrm - Qres;
172
42.8M
    if( lshift <= 0 ) {
173
39.8M
        return silk_LSHIFT_SAT32(result, -lshift);
174
39.8M
    } else {
175
2.96M
        if( lshift < 32){
176
2.96M
            return silk_RSHIFT(result, lshift);
177
2.96M
        }else{
178
            /* Avoid undefined result */
179
0
            return 0;
180
0
        }
181
2.96M
    }
182
42.8M
}
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
385M
{
148
385M
    opus_int   b_headrm, lshift;
149
385M
    opus_int32 b32_inv, b32_nrm, err_Q32, result;
150
151
385M
    silk_assert( b32 != 0 );
152
385M
    silk_assert( Qres > 0 );
153
154
    /* Compute number of bits head room and normalize input */
155
385M
    b_headrm = silk_CLZ32( silk_abs(b32) ) - 1;
156
385M
    b32_nrm = silk_LSHIFT(b32, b_headrm);                                       /* Q: b_headrm                */
157
158
    /* Inverse of b32, with 14 bits of precision */
159
385M
    b32_inv = silk_DIV32_16( silk_int32_MAX >> 2, silk_RSHIFT(b32_nrm, 16) );   /* Q: 29 + 16 - b_headrm    */
160
161
    /* First approximation */
162
385M
    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
385M
    err_Q32 = silk_LSHIFT( ((opus_int32)1<<29) - silk_SMULWB(b32_nrm, b32_inv), 3 );        /* Q32                        */
166
167
    /* Refinement */
168
385M
    result = silk_SMLAWW(result, err_Q32, b32_inv);                             /* Q: 61 - b_headrm            */
169
170
    /* Convert to Qres domain */
171
385M
    lshift = 61 - b_headrm - Qres;
172
385M
    if( lshift <= 0 ) {
173
385M
        return silk_LSHIFT_SAT32(result, -lshift);
174
385M
    } 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
385M
}
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 */