Coverage Report

Created: 2026-09-01 06:32

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libxaac/decoder/ixheaacd_mps_basic_op.h
Line
Count
Source
1
/******************************************************************************
2
 *
3
 * Copyright (C) 2023 The Android Open Source Project
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at:
8
 *
9
 * http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 *****************************************************************************
18
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19
*/
20
#ifndef IXHEAACD_MPS_BASIC_OP_H
21
#define IXHEAACD_MPS_BASIC_OP_H
22
23
0
#define NORM32 (0x40000000)
24
7.27M
#define INV_SQRT_2_Q31 (1518500250)
25
17.3M
#define Q_SQRT_TAB (15)
26
0
#define LOG2XQ17 (5171707904LL)
27
0
#define LOG_COEFF1 (27890)
28
0
#define LOG_COEFF2 (16262)
29
0
#define LOG_COEFF3 (7574)
30
0
#define LOG_COEFF4 (1786)
31
32
0
#define TRIG_TABLE_CONV_FAC 326
33
34
103M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
103M
  WORD32 temp_1, temp_2;
36
103M
  temp_1 = (WORD32)(a >> 32);
37
103M
  temp_2 = ixheaac_norm32(temp_1);
38
103M
  if (temp_2 < 31) {
39
70.7M
    return (32 - temp_2);
40
70.7M
  } else {
41
32.8M
    temp_2 = (WORD32)(a);
42
32.8M
    if ((temp_1 ^ temp_2) < 0) {
43
901k
      return 1;
44
31.9M
    } else {
45
31.9M
      return 0;
46
31.9M
    }
47
32.8M
  }
48
103M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_get_rshift_bits
ixheaacd_mps_decorr.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
68.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
68.9M
  WORD32 temp_1, temp_2;
36
68.9M
  temp_1 = (WORD32)(a >> 32);
37
68.9M
  temp_2 = ixheaac_norm32(temp_1);
38
68.9M
  if (temp_2 < 31) {
39
53.8M
    return (32 - temp_2);
40
53.8M
  } else {
41
15.1M
    temp_2 = (WORD32)(a);
42
15.1M
    if ((temp_1 ^ temp_2) < 0) {
43
127k
      return 1;
44
14.9M
    } else {
45
14.9M
      return 0;
46
14.9M
    }
47
15.1M
  }
48
68.9M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_get_rshift_bits
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
15.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
15.9M
  WORD32 temp_1, temp_2;
36
15.9M
  temp_1 = (WORD32)(a >> 32);
37
15.9M
  temp_2 = ixheaac_norm32(temp_1);
38
15.9M
  if (temp_2 < 31) {
39
11.1M
    return (32 - temp_2);
40
11.1M
  } else {
41
4.71M
    temp_2 = (WORD32)(a);
42
4.71M
    if ((temp_1 ^ temp_2) < 0) {
43
35.6k
      return 1;
44
4.67M
    } else {
45
4.67M
      return 0;
46
4.67M
    }
47
4.71M
  }
48
15.9M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
18.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
18.8M
  WORD32 temp_1, temp_2;
36
18.8M
  temp_1 = (WORD32)(a >> 32);
37
18.8M
  temp_2 = ixheaac_norm32(temp_1);
38
18.8M
  if (temp_2 < 31) {
39
5.79M
    return (32 - temp_2);
40
13.0M
  } else {
41
13.0M
    temp_2 = (WORD32)(a);
42
13.0M
    if ((temp_1 ^ temp_2) < 0) {
43
738k
      return 1;
44
12.2M
    } else {
45
12.2M
      return 0;
46
12.2M
    }
47
13.0M
  }
48
18.8M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_get_rshift_bits
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_get_rshift_bits
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
900
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
900
  WORD32 temp_1, temp_2;
36
900
  temp_1 = (WORD32)(a >> 32);
37
900
  temp_2 = ixheaac_norm32(temp_1);
38
900
  if (temp_2 < 31) {
39
0
    return (32 - temp_2);
40
900
  } else {
41
900
    temp_2 = (WORD32)(a);
42
900
    if ((temp_1 ^ temp_2) < 0) {
43
0
      return 1;
44
900
    } else {
45
900
      return 0;
46
900
    }
47
900
  }
48
900
}
49
50
84.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
84.8M
  WORD32 x;
52
84.8M
  x = ixheaacd_mps_get_rshift_bits(a);
53
84.8M
  *qfac = 20 - x;
54
84.8M
  return (WORD32)((WORD64)a >> x);
55
84.8M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_narrow
ixheaacd_mps_decorr.c:ixheaacd_mps_narrow
Line
Count
Source
50
68.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
68.9M
  WORD32 x;
52
68.9M
  x = ixheaacd_mps_get_rshift_bits(a);
53
68.9M
  *qfac = 20 - x;
54
68.9M
  return (WORD32)((WORD64)a >> x);
55
68.9M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_narrow
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_narrow
Line
Count
Source
50
15.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
15.9M
  WORD32 x;
52
15.9M
  x = ixheaacd_mps_get_rshift_bits(a);
53
15.9M
  *qfac = 20 - x;
54
15.9M
  return (WORD32)((WORD64)a >> x);
55
15.9M
}
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_narrow
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_narrow
56
57
17.6M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
17.6M
  WORD32 index, answer, temp;
59
17.6M
  WORD k;
60
61
17.6M
  if (num == 0) return 0;
62
63
17.3M
  k = ixheaac_norm32(num);
64
17.3M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
17.3M
  *q += k;
66
17.3M
  index = temp & 0x1FF;
67
17.3M
  answer = sqrt_tab[index];
68
17.3M
  if (*q & 1) {
69
7.27M
    *q -= 1;
70
7.27M
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
7.27M
  }
72
17.3M
  *q = *q >> 1;
73
17.3M
  *q += Q_SQRT_TAB;
74
17.3M
  return answer;
75
17.6M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_sqrt
ixheaacd_mps_decorr.c:ixheaacd_mps_sqrt
Line
Count
Source
57
15.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
15.4M
  WORD32 index, answer, temp;
59
15.4M
  WORD k;
60
61
15.4M
  if (num == 0) return 0;
62
63
15.4M
  k = ixheaac_norm32(num);
64
15.4M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
15.4M
  *q += k;
66
15.4M
  index = temp & 0x1FF;
67
15.4M
  answer = sqrt_tab[index];
68
15.4M
  if (*q & 1) {
69
6.33M
    *q -= 1;
70
6.33M
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
6.33M
  }
72
15.4M
  *q = *q >> 1;
73
15.4M
  *q += Q_SQRT_TAB;
74
15.4M
  return answer;
75
15.4M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_sqrt
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_sqrt
Line
Count
Source
57
665k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
665k
  WORD32 index, answer, temp;
59
665k
  WORD k;
60
61
665k
  if (num == 0) return 0;
62
63
552k
  k = ixheaac_norm32(num);
64
552k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
552k
  *q += k;
66
552k
  index = temp & 0x1FF;
67
552k
  answer = sqrt_tab[index];
68
552k
  if (*q & 1) {
69
290k
    *q -= 1;
70
290k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
290k
  }
72
552k
  *q = *q >> 1;
73
552k
  *q += Q_SQRT_TAB;
74
552k
  return answer;
75
665k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_sqrt
Line
Count
Source
57
1.08M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
1.08M
  WORD32 index, answer, temp;
59
1.08M
  WORD k;
60
61
1.08M
  if (num == 0) return 0;
62
63
919k
  k = ixheaac_norm32(num);
64
919k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
919k
  *q += k;
66
919k
  index = temp & 0x1FF;
67
919k
  answer = sqrt_tab[index];
68
919k
  if (*q & 1) {
69
462k
    *q -= 1;
70
462k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
462k
  }
72
919k
  *q = *q >> 1;
73
919k
  *q += Q_SQRT_TAB;
74
919k
  return answer;
75
1.08M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_sqrt
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_sqrt
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_sqrt
Line
Count
Source
57
479k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
479k
  WORD32 index, answer, temp;
59
479k
  WORD k;
60
61
479k
  if (num == 0) return 0;
62
63
446k
  k = ixheaac_norm32(num);
64
446k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
446k
  *q += k;
66
446k
  index = temp & 0x1FF;
67
446k
  answer = sqrt_tab[index];
68
446k
  if (*q & 1) {
69
184k
    *q -= 1;
70
184k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
184k
  }
72
446k
  *q = *q >> 1;
73
446k
  *q += Q_SQRT_TAB;
74
446k
  return answer;
75
479k
}
76
77
static PLATFORM_INLINE WORD32 ixheaacd_mps_reshape_add32(WORD32 op1, WORD32 op2, WORD16 *qop1,
78
50.7M
                                                         WORD16 qop2) {
79
50.7M
  WORD64 tempresult;
80
50.7M
  if (0 == op2) {
81
13.1M
    return op1;
82
13.1M
  }
83
37.6M
  if (0 == op1) {
84
2.71M
    *qop1 = qop2;
85
2.71M
    return op2;
86
2.71M
  }
87
34.9M
  if (*qop1 < qop2) {
88
25.0M
    if ((qop2 - *qop1) > 31)
89
85.5k
      op2 = 0;
90
24.9M
    else
91
24.9M
      op2 = op2 >> (qop2 - *qop1);
92
25.0M
    tempresult = (WORD64)op1 + (WORD64)op2;
93
25.0M
  } else {
94
9.90M
    if ((*qop1 - qop2) > 31)
95
20.6k
      op1 = 0;
96
9.88M
    else
97
9.88M
      op1 = op1 >> (*qop1 - qop2);
98
9.90M
    *qop1 = qop2;
99
9.90M
    tempresult = (WORD64)op1 + (WORD64)op2;
100
9.90M
  }
101
34.9M
  if (tempresult > (WORD32)0x7fffffff || tempresult < (WORD32)0x80000000) {
102
7.20M
    tempresult = tempresult >> 1;
103
7.20M
    *qop1 -= 1;
104
7.20M
  }
105
34.9M
  return (WORD32)tempresult;
106
37.6M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_reshape_add32
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_reshape_add32
Line
Count
Source
78
50.7M
                                                         WORD16 qop2) {
79
50.7M
  WORD64 tempresult;
80
50.7M
  if (0 == op2) {
81
13.1M
    return op1;
82
13.1M
  }
83
37.6M
  if (0 == op1) {
84
2.71M
    *qop1 = qop2;
85
2.71M
    return op2;
86
2.71M
  }
87
34.9M
  if (*qop1 < qop2) {
88
25.0M
    if ((qop2 - *qop1) > 31)
89
85.5k
      op2 = 0;
90
24.9M
    else
91
24.9M
      op2 = op2 >> (qop2 - *qop1);
92
25.0M
    tempresult = (WORD64)op1 + (WORD64)op2;
93
25.0M
  } else {
94
9.90M
    if ((*qop1 - qop2) > 31)
95
20.6k
      op1 = 0;
96
9.88M
    else
97
9.88M
      op1 = op1 >> (*qop1 - qop2);
98
9.90M
    *qop1 = qop2;
99
9.90M
    tempresult = (WORD64)op1 + (WORD64)op2;
100
9.90M
  }
101
34.9M
  if (tempresult > (WORD32)0x7fffffff || tempresult < (WORD32)0x80000000) {
102
7.20M
    tempresult = tempresult >> 1;
103
7.20M
    *qop1 -= 1;
104
7.20M
  }
105
34.9M
  return (WORD32)tempresult;
106
37.6M
}
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_reshape_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_reshape_add32
107
108
140M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
140M
  WORD64 temp_result;
110
111
140M
  if (a == 0 || b == 0) {
112
65.6M
    if (b == 0) {
113
63.7M
      return a;
114
63.7M
    } else {
115
1.95M
      *q_a = q_b;
116
1.95M
      return b;
117
1.95M
    }
118
65.6M
  }
119
74.4M
  if (*q_a > q_b) {
120
3.12M
    if (((*q_a) - q_b) > 31) {
121
5.31k
      a = 0;
122
5.31k
      *q_a = q_b;
123
3.11M
    } else {
124
3.11M
      a = (a >> ((*q_a) - q_b));
125
3.11M
      *q_a = q_b;
126
3.11M
    }
127
71.3M
  } else {
128
71.3M
    if ((q_b - (*q_a)) > 31) {
129
195k
      b = 0;
130
71.1M
    } else {
131
71.1M
      b = (b >> (q_b - (*q_a)));
132
71.1M
      q_b = *q_a;
133
71.1M
    }
134
71.3M
  }
135
74.4M
  temp_result = (WORD64)a + (WORD64)b;
136
74.4M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
3.90M
    temp_result = temp_result >> 1;
138
3.90M
    *q_a -= 1;
139
3.90M
  }
140
141
74.4M
  return (WORD32)temp_result;
142
140M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_add32
ixheaacd_mps_decorr.c:ixheaacd_mps_add32
Line
Count
Source
108
68.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
68.9M
  WORD64 temp_result;
110
111
68.9M
  if (a == 0 || b == 0) {
112
14.0M
    if (b == 0) {
113
13.5M
      return a;
114
13.5M
    } else {
115
462k
      *q_a = q_b;
116
462k
      return b;
117
462k
    }
118
14.0M
  }
119
54.8M
  if (*q_a > q_b) {
120
1.88M
    if (((*q_a) - q_b) > 31) {
121
1.59k
      a = 0;
122
1.59k
      *q_a = q_b;
123
1.88M
    } else {
124
1.88M
      a = (a >> ((*q_a) - q_b));
125
1.88M
      *q_a = q_b;
126
1.88M
    }
127
53.0M
  } else {
128
53.0M
    if ((q_b - (*q_a)) > 31) {
129
192k
      b = 0;
130
52.8M
    } else {
131
52.8M
      b = (b >> (q_b - (*q_a)));
132
52.8M
      q_b = *q_a;
133
52.8M
    }
134
53.0M
  }
135
54.8M
  temp_result = (WORD64)a + (WORD64)b;
136
54.8M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
1.64M
    temp_result = temp_result >> 1;
138
1.64M
    *q_a -= 1;
139
1.64M
  }
140
141
54.8M
  return (WORD32)temp_result;
142
68.9M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_add32
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_add32
Line
Count
Source
108
92.7k
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
92.7k
  WORD64 temp_result;
110
111
92.7k
  if (a == 0 || b == 0) {
112
58.8k
    if (b == 0) {
113
171
      return a;
114
58.6k
    } else {
115
58.6k
      *q_a = q_b;
116
58.6k
      return b;
117
58.6k
    }
118
58.8k
  }
119
33.8k
  if (*q_a > q_b) {
120
7.11k
    if (((*q_a) - q_b) > 31) {
121
229
      a = 0;
122
229
      *q_a = q_b;
123
6.88k
    } else {
124
6.88k
      a = (a >> ((*q_a) - q_b));
125
6.88k
      *q_a = q_b;
126
6.88k
    }
127
26.7k
  } else {
128
26.7k
    if ((q_b - (*q_a)) > 31) {
129
0
      b = 0;
130
26.7k
    } else {
131
26.7k
      b = (b >> (q_b - (*q_a)));
132
26.7k
      q_b = *q_a;
133
26.7k
    }
134
26.7k
  }
135
33.8k
  temp_result = (WORD64)a + (WORD64)b;
136
33.8k
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
39
    temp_result = temp_result >> 1;
138
39
    *q_a -= 1;
139
39
  }
140
141
33.8k
  return (WORD32)temp_result;
142
92.7k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_add32
Line
Count
Source
108
71.1M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
71.1M
  WORD64 temp_result;
110
111
71.1M
  if (a == 0 || b == 0) {
112
51.5M
    if (b == 0) {
113
50.1M
      return a;
114
50.1M
    } else {
115
1.43M
      *q_a = q_b;
116
1.43M
      return b;
117
1.43M
    }
118
51.5M
  }
119
19.5M
  if (*q_a > q_b) {
120
1.23M
    if (((*q_a) - q_b) > 31) {
121
3.48k
      a = 0;
122
3.48k
      *q_a = q_b;
123
1.22M
    } else {
124
1.22M
      a = (a >> ((*q_a) - q_b));
125
1.22M
      *q_a = q_b;
126
1.22M
    }
127
18.3M
  } else {
128
18.3M
    if ((q_b - (*q_a)) > 31) {
129
3.09k
      b = 0;
130
18.3M
    } else {
131
18.3M
      b = (b >> (q_b - (*q_a)));
132
18.3M
      q_b = *q_a;
133
18.3M
    }
134
18.3M
  }
135
19.5M
  temp_result = (WORD64)a + (WORD64)b;
136
19.5M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
2.26M
    temp_result = temp_result >> 1;
138
2.26M
    *q_a -= 1;
139
2.26M
  }
140
141
19.5M
  return (WORD32)temp_result;
142
71.1M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_add32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_add32
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_add32
Line
Count
Source
108
1.56k
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
1.56k
  WORD64 temp_result;
110
111
1.56k
  if (a == 0 || b == 0) {
112
879
    if (b == 0) {
113
0
      return a;
114
879
    } else {
115
879
      *q_a = q_b;
116
879
      return b;
117
879
    }
118
879
  }
119
685
  if (*q_a > q_b) {
120
0
    if (((*q_a) - q_b) > 31) {
121
0
      a = 0;
122
0
      *q_a = q_b;
123
0
    } else {
124
0
      a = (a >> ((*q_a) - q_b));
125
0
      *q_a = q_b;
126
0
    }
127
685
  } else {
128
685
    if ((q_b - (*q_a)) > 31) {
129
0
      b = 0;
130
685
    } else {
131
685
      b = (b >> (q_b - (*q_a)));
132
685
      q_b = *q_a;
133
685
    }
134
685
  }
135
685
  temp_result = (WORD64)a + (WORD64)b;
136
685
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
0
    temp_result = temp_result >> 1;
138
0
    *q_a -= 1;
139
0
  }
140
141
685
  return (WORD32)temp_result;
142
1.56k
}
143
144
88.5M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
88.5M
  WORD64 temp_result;
146
88.5M
  WORD32 temp;
147
148
88.5M
  if (a == 0 || b == 0) {
149
69.7M
    temp_result = 0;
150
69.7M
    *q_a = 15;
151
69.7M
    return (WORD32)temp_result;
152
69.7M
  }
153
154
18.8M
  *q_a = *q_a + q_b;
155
156
18.8M
  temp_result = (WORD64)a * (WORD64)b;
157
18.8M
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
18.8M
  if (0 != temp) {
159
6.53M
    *q_a -= temp;
160
6.53M
    temp_result = temp_result >> temp;
161
6.53M
  }
162
163
18.8M
  return (WORD32)temp_result;
164
88.5M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32
ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32
Line
Count
Source
144
88.5M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
88.5M
  WORD64 temp_result;
146
88.5M
  WORD32 temp;
147
148
88.5M
  if (a == 0 || b == 0) {
149
69.7M
    temp_result = 0;
150
69.7M
    *q_a = 15;
151
69.7M
    return (WORD32)temp_result;
152
69.7M
  }
153
154
18.8M
  *q_a = *q_a + q_b;
155
156
18.8M
  temp_result = (WORD64)a * (WORD64)b;
157
18.8M
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
18.8M
  if (0 != temp) {
159
6.53M
    *q_a -= temp;
160
6.53M
    temp_result = temp_result >> temp;
161
6.53M
  }
162
163
18.8M
  return (WORD32)temp_result;
164
88.5M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32
Line
Count
Source
144
3.04k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
3.04k
  WORD64 temp_result;
146
3.04k
  WORD32 temp;
147
148
3.04k
  if (a == 0 || b == 0) {
149
2.14k
    temp_result = 0;
150
2.14k
    *q_a = 15;
151
2.14k
    return (WORD32)temp_result;
152
2.14k
  }
153
154
900
  *q_a = *q_a + q_b;
155
156
900
  temp_result = (WORD64)a * (WORD64)b;
157
900
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
900
  if (0 != temp) {
159
0
    *q_a -= temp;
160
0
    temp_result = temp_result >> temp;
161
0
  }
162
163
900
  return (WORD32)temp_result;
164
3.04k
}
165
166
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x32(WORD32 a, WORD32 b, WORD16 *q_a,
167
1.75M
                                                     WORD16 q_b) {
168
1.75M
  WORD64 temp_result;
169
1.75M
  if (a == 0 || b == 0) {
170
453k
    temp_result = 0;
171
453k
    *q_a = 15;
172
453k
    return (WORD32)temp_result;
173
453k
  }
174
1.29M
  *q_a = *q_a + q_b;
175
176
1.29M
  temp_result = (WORD64)a * (WORD64)b;
177
33.0M
  while (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
178
31.7M
    temp_result = temp_result >> 1;
179
31.7M
    *q_a -= 1;
180
31.7M
  }
181
182
1.29M
  return (WORD32)temp_result;
183
1.75M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32x32
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32x32
Line
Count
Source
167
1.75M
                                                     WORD16 q_b) {
168
1.75M
  WORD64 temp_result;
169
1.75M
  if (a == 0 || b == 0) {
170
453k
    temp_result = 0;
171
453k
    *q_a = 15;
172
453k
    return (WORD32)temp_result;
173
453k
  }
174
1.29M
  *q_a = *q_a + q_b;
175
176
1.29M
  temp_result = (WORD64)a * (WORD64)b;
177
33.0M
  while (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
178
31.7M
    temp_result = temp_result >> 1;
179
31.7M
    *q_a -= 1;
180
31.7M
  }
181
182
1.29M
  return (WORD32)temp_result;
183
1.75M
}
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32x32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32x32
184
185
65.5M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
65.5M
  WORD32 result;
187
65.5M
  WORD64 temp_result;
188
189
65.5M
  temp_result = (WORD64)a * (WORD64)b;
190
65.5M
  result = (WORD32)(temp_result >> n);
191
192
65.5M
  return (result);
193
65.5M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_n
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_n
Line
Count
Source
185
65.3M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
65.3M
  WORD32 result;
187
65.3M
  WORD64 temp_result;
188
189
65.3M
  temp_result = (WORD64)a * (WORD64)b;
190
65.3M
  result = (WORD32)(temp_result >> n);
191
192
65.3M
  return (result);
193
65.3M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_n
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32_shr_n
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32_shr_n
Line
Count
Source
185
226k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
226k
  WORD32 result;
187
226k
  WORD64 temp_result;
188
189
226k
  temp_result = (WORD64)a * (WORD64)b;
190
226k
  result = (WORD32)(temp_result >> n);
191
192
226k
  return (result);
193
226k
}
194
195
2.29G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
2.29G
  WORD32 result;
197
2.29G
  WORD64 temp_result;
198
199
2.29G
  temp_result = (WORD64)a * (WORD64)b;
200
2.29G
  result = (WORD32)(temp_result >> 30);
201
202
2.29G
  return (result);
203
2.29G
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32_shr_30
ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
3.13M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
3.13M
  WORD32 result;
197
3.13M
  WORD64 temp_result;
198
199
3.13M
  temp_result = (WORD64)a * (WORD64)b;
200
3.13M
  result = (WORD32)(temp_result >> 30);
201
202
3.13M
  return (result);
203
3.13M
}
ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
2.28G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
2.28G
  WORD32 result;
197
2.28G
  WORD64 temp_result;
198
199
2.28G
  temp_result = (WORD64)a * (WORD64)b;
200
2.28G
  result = (WORD32)(temp_result >> 30);
201
202
2.28G
  return (result);
203
2.28G
}
ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
1.09M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
1.09M
  WORD32 result;
197
1.09M
  WORD64 temp_result;
198
199
1.09M
  temp_result = (WORD64)a * (WORD64)b;
200
1.09M
  result = (WORD32)(temp_result >> 30);
201
202
1.09M
  return (result);
203
1.09M
}
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32_shr_30
ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
288k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
288k
  WORD32 result;
197
288k
  WORD64 temp_result;
198
199
288k
  temp_result = (WORD64)a * (WORD64)b;
200
288k
  result = (WORD32)(temp_result >> 30);
201
202
288k
  return (result);
203
288k
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32_shr_30
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32_shr_30
ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
14.3k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
14.3k
  WORD32 result;
197
14.3k
  WORD64 temp_result;
198
199
14.3k
  temp_result = (WORD64)a * (WORD64)b;
200
14.3k
  result = (WORD32)(temp_result >> 30);
201
202
14.3k
  return (result);
203
14.3k
}
ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
9.95k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
9.95k
  WORD32 result;
197
9.95k
  WORD64 temp_result;
198
199
9.95k
  temp_result = (WORD64)a * (WORD64)b;
200
9.95k
  result = (WORD32)(temp_result >> 30);
201
202
9.95k
  return (result);
203
9.95k
}
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32_shr_30
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
85.5k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
85.5k
  WORD32 result;
197
85.5k
  WORD64 temp_result;
198
199
85.5k
  temp_result = (WORD64)a * (WORD64)b;
200
85.5k
  result = (WORD32)(temp_result >> 30);
201
202
85.5k
  return (result);
203
85.5k
}
204
205
46.3k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_16(WORD32 a, WORD32 b) {
206
46.3k
  WORD32 result;
207
46.3k
  WORD64 temp_result;
208
209
46.3k
  temp_result = (WORD64)a * (WORD64)b;
210
46.3k
  result = (WORD32)(temp_result >> 16);
211
46.3k
  return (result);
212
46.3k
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_16
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32_shr_16
Line
Count
Source
205
46.3k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_16(WORD32 a, WORD32 b) {
206
46.3k
  WORD32 result;
207
46.3k
  WORD64 temp_result;
208
209
46.3k
  temp_result = (WORD64)a * (WORD64)b;
210
46.3k
  result = (WORD32)(temp_result >> 16);
211
46.3k
  return (result);
212
46.3k
}
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32_shr_16
213
214
3.01G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
3.01G
  WORD32 result;
216
3.01G
  WORD64 temp_result;
217
3.01G
  temp_result = (WORD64)a * (WORD64)b;
218
3.01G
  result = (WORD32)(temp_result >> 16);
219
3.01G
  return (result);
220
3.01G
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32x16_shr_16
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32x16_shr_16
Line
Count
Source
214
2.95G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
2.95G
  WORD32 result;
216
2.95G
  WORD64 temp_result;
217
2.95G
  temp_result = (WORD64)a * (WORD64)b;
218
2.95G
  result = (WORD32)(temp_result >> 16);
219
2.95G
  return (result);
220
2.95G
}
ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32x16_shr_16
Line
Count
Source
214
60.7M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
60.7M
  WORD32 result;
216
60.7M
  WORD64 temp_result;
217
60.7M
  temp_result = (WORD64)a * (WORD64)b;
218
60.7M
  result = (WORD32)(temp_result >> 16);
219
60.7M
  return (result);
220
60.7M
}
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32x16_shr_16
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32x16_shr_16
221
222
2.24G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
2.24G
  WORD32 result;
224
2.24G
  WORD64 temp_result;
225
2.24G
  temp_result = (WORD64)a * (WORD64)b;
226
2.24G
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
2.24G
  return (result);
229
2.24G
}
ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
138M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
138M
  WORD32 result;
224
138M
  WORD64 temp_result;
225
138M
  temp_result = (WORD64)a * (WORD64)b;
226
138M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
138M
  return (result);
229
138M
}
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_15
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32_shr_15
ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
121M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
121M
  WORD32 result;
224
121M
  WORD64 temp_result;
225
121M
  temp_result = (WORD64)a * (WORD64)b;
226
121M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
121M
  return (result);
229
121M
}
ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
163M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
163M
  WORD32 result;
224
163M
  WORD64 temp_result;
225
163M
  temp_result = (WORD64)a * (WORD64)b;
226
163M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
163M
  return (result);
229
163M
}
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_15
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
4.81M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
4.81M
  WORD32 result;
224
4.81M
  WORD64 temp_result;
225
4.81M
  temp_result = (WORD64)a * (WORD64)b;
226
4.81M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
4.81M
  return (result);
229
4.81M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
12.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
12.8M
  WORD32 result;
224
12.8M
  WORD64 temp_result;
225
12.8M
  temp_result = (WORD64)a * (WORD64)b;
226
12.8M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
12.8M
  return (result);
229
12.8M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32_shr_15
ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
982M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
982M
  WORD32 result;
224
982M
  WORD64 temp_result;
225
982M
  temp_result = (WORD64)a * (WORD64)b;
226
982M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
982M
  return (result);
229
982M
}
ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
816M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
816M
  WORD32 result;
224
816M
  WORD64 temp_result;
225
816M
  temp_result = (WORD64)a * (WORD64)b;
226
816M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
816M
  return (result);
229
816M
}
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32_shr_15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32_shr_15
ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
1.13M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
1.13M
  WORD32 result;
224
1.13M
  WORD64 temp_result;
225
1.13M
  temp_result = (WORD64)a * (WORD64)b;
226
1.13M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
1.13M
  return (result);
229
1.13M
}
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32_shr_15
ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
168k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
168k
  WORD32 result;
224
168k
  WORD64 temp_result;
225
168k
  temp_result = (WORD64)a * (WORD64)b;
226
168k
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
168k
  return (result);
229
168k
}
ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
811k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
811k
  WORD32 result;
224
811k
  WORD64 temp_result;
225
811k
  temp_result = (WORD64)a * (WORD64)b;
226
811k
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
811k
  return (result);
229
811k
}
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32_shr_15
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
6.95M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
6.95M
  WORD32 result;
224
6.95M
  WORD64 temp_result;
225
6.95M
  temp_result = (WORD64)a * (WORD64)b;
226
6.95M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
6.95M
  return (result);
229
6.95M
}
230
231
141M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_14(WORD32 a, WORD32 b) {
232
141M
  WORD32 result;
233
141M
  WORD64 temp_result;
234
235
141M
  temp_result = (WORD64)a * (WORD64)b;
236
141M
  result = (WORD32)(temp_result >> 16);
237
141M
  result = result << 2;
238
239
141M
  return (result);
240
141M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_14
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_14
Line
Count
Source
231
141M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_14(WORD32 a, WORD32 b) {
232
141M
  WORD32 result;
233
141M
  WORD64 temp_result;
234
235
141M
  temp_result = (WORD64)a * (WORD64)b;
236
141M
  result = (WORD32)(temp_result >> 16);
237
141M
  result = result << 2;
238
239
141M
  return (result);
240
141M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_mult32_shr_14
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_mult32_shr_14
241
242
38.2M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
38.2M
  WORD32 quotient;
244
38.2M
  UWORD32 mantissa_nr, mantissa_dr;
245
38.2M
  LOOPINDEX i;
246
38.2M
  WORD q_nr, q_dr;
247
248
38.2M
  quotient = 0;
249
250
38.2M
  if (0 == b) {
251
4.95M
    *q_format = 0;
252
4.95M
    return (a);
253
4.95M
  }
254
255
33.2M
  quotient = 0;
256
257
33.2M
  q_nr = ixheaac_norm32(a);
258
33.2M
  mantissa_nr = (UWORD32)a << (q_nr);
259
33.2M
  q_dr = ixheaac_norm32(b);
260
33.2M
  mantissa_dr = (UWORD32)b << (q_dr);
261
33.2M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
1.06G
  for (i = 0; i < 31; i++) {
264
1.03G
    quotient <<= 1;
265
266
1.03G
    if (mantissa_nr >= mantissa_dr) {
267
485M
      mantissa_nr -= mantissa_dr;
268
485M
      quotient += 1;
269
485M
    }
270
1.03G
    mantissa_nr <<= 1;
271
1.03G
  }
272
273
33.2M
  if ((a ^ b) < 0) {
274
390k
    return -(quotient);
275
390k
  }
276
277
32.8M
  return quotient;
278
33.2M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_div_32
ixheaacd_mps_decorr.c:ixheaacd_mps_div_32
Line
Count
Source
242
19.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
19.4M
  WORD32 quotient;
244
19.4M
  UWORD32 mantissa_nr, mantissa_dr;
245
19.4M
  LOOPINDEX i;
246
19.4M
  WORD q_nr, q_dr;
247
248
19.4M
  quotient = 0;
249
250
19.4M
  if (0 == b) {
251
1.29M
    *q_format = 0;
252
1.29M
    return (a);
253
1.29M
  }
254
255
18.1M
  quotient = 0;
256
257
18.1M
  q_nr = ixheaac_norm32(a);
258
18.1M
  mantissa_nr = (UWORD32)a << (q_nr);
259
18.1M
  q_dr = ixheaac_norm32(b);
260
18.1M
  mantissa_dr = (UWORD32)b << (q_dr);
261
18.1M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
579M
  for (i = 0; i < 31; i++) {
264
561M
    quotient <<= 1;
265
266
561M
    if (mantissa_nr >= mantissa_dr) {
267
282M
      mantissa_nr -= mantissa_dr;
268
282M
      quotient += 1;
269
282M
    }
270
561M
    mantissa_nr <<= 1;
271
561M
  }
272
273
18.1M
  if ((a ^ b) < 0) {
274
0
    return -(quotient);
275
0
  }
276
277
18.1M
  return quotient;
278
18.1M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_div_32
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_div_32
Line
Count
Source
242
16.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
16.4M
  WORD32 quotient;
244
16.4M
  UWORD32 mantissa_nr, mantissa_dr;
245
16.4M
  LOOPINDEX i;
246
16.4M
  WORD q_nr, q_dr;
247
248
16.4M
  quotient = 0;
249
250
16.4M
  if (0 == b) {
251
3.58M
    *q_format = 0;
252
3.58M
    return (a);
253
3.58M
  }
254
255
12.8M
  quotient = 0;
256
257
12.8M
  q_nr = ixheaac_norm32(a);
258
12.8M
  mantissa_nr = (UWORD32)a << (q_nr);
259
12.8M
  q_dr = ixheaac_norm32(b);
260
12.8M
  mantissa_dr = (UWORD32)b << (q_dr);
261
12.8M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
412M
  for (i = 0; i < 31; i++) {
264
399M
    quotient <<= 1;
265
266
399M
    if (mantissa_nr >= mantissa_dr) {
267
187M
      mantissa_nr -= mantissa_dr;
268
187M
      quotient += 1;
269
187M
    }
270
399M
    mantissa_nr <<= 1;
271
399M
  }
272
273
12.8M
  if ((a ^ b) < 0) {
274
390k
    return -(quotient);
275
390k
  }
276
277
12.4M
  return quotient;
278
12.8M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_div_32
Line
Count
Source
242
1.63M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
1.63M
  WORD32 quotient;
244
1.63M
  UWORD32 mantissa_nr, mantissa_dr;
245
1.63M
  LOOPINDEX i;
246
1.63M
  WORD q_nr, q_dr;
247
248
1.63M
  quotient = 0;
249
250
1.63M
  if (0 == b) {
251
0
    *q_format = 0;
252
0
    return (a);
253
0
  }
254
255
1.63M
  quotient = 0;
256
257
1.63M
  q_nr = ixheaac_norm32(a);
258
1.63M
  mantissa_nr = (UWORD32)a << (q_nr);
259
1.63M
  q_dr = ixheaac_norm32(b);
260
1.63M
  mantissa_dr = (UWORD32)b << (q_dr);
261
1.63M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
52.2M
  for (i = 0; i < 31; i++) {
264
50.5M
    quotient <<= 1;
265
266
50.5M
    if (mantissa_nr >= mantissa_dr) {
267
8.59M
      mantissa_nr -= mantissa_dr;
268
8.59M
      quotient += 1;
269
8.59M
    }
270
50.5M
    mantissa_nr <<= 1;
271
50.5M
  }
272
273
1.63M
  if ((a ^ b) < 0) {
274
0
    return -(quotient);
275
0
  }
276
277
1.63M
  return quotient;
278
1.63M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_div_32
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_div_32
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_div_32
Line
Count
Source
242
731k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
731k
  WORD32 quotient;
244
731k
  UWORD32 mantissa_nr, mantissa_dr;
245
731k
  LOOPINDEX i;
246
731k
  WORD q_nr, q_dr;
247
248
731k
  quotient = 0;
249
250
731k
  if (0 == b) {
251
80.4k
    *q_format = 0;
252
80.4k
    return (a);
253
80.4k
  }
254
255
651k
  quotient = 0;
256
257
651k
  q_nr = ixheaac_norm32(a);
258
651k
  mantissa_nr = (UWORD32)a << (q_nr);
259
651k
  q_dr = ixheaac_norm32(b);
260
651k
  mantissa_dr = (UWORD32)b << (q_dr);
261
651k
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
20.8M
  for (i = 0; i < 31; i++) {
264
20.1M
    quotient <<= 1;
265
266
20.1M
    if (mantissa_nr >= mantissa_dr) {
267
6.77M
      mantissa_nr -= mantissa_dr;
268
6.77M
      quotient += 1;
269
6.77M
    }
270
20.1M
    mantissa_nr <<= 1;
271
20.1M
  }
272
273
651k
  if ((a ^ b) < 0) {
274
224
    return -(quotient);
275
224
  }
276
277
650k
  return quotient;
278
651k
}
279
280
2.51M
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
2.51M
  WORD64 result;
282
2.51M
  if (qtemp == n)
283
977k
    return temp;
284
1.53M
  else if (qtemp > n)
285
1.29M
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
237k
  else {
287
237k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
237k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
237k
      temp = (WORD32)result;
292
237k
  }
293
1.53M
  return temp;
294
2.51M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_convert_to_qn
ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_convert_to_qn
Line
Count
Source
280
711k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
711k
  WORD64 result;
282
711k
  if (qtemp == n)
283
52
    return temp;
284
711k
  else if (qtemp > n)
285
673k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
38.2k
  else {
287
38.2k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
38.2k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
38.2k
      temp = (WORD32)result;
292
38.2k
  }
293
711k
  return temp;
294
711k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_convert_to_qn
Line
Count
Source
280
1.09M
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
1.09M
  WORD64 result;
282
1.09M
  if (qtemp == n)
283
973k
    return temp;
284
120k
  else if (qtemp > n)
285
0
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
120k
  else {
287
120k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
120k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
120k
      temp = (WORD32)result;
292
120k
  }
293
120k
  return temp;
294
1.09M
}
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_convert_to_qn
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_convert_to_qn
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_convert_to_qn
Line
Count
Source
280
706k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
706k
  WORD64 result;
282
706k
  if (qtemp == n)
283
3.80k
    return temp;
284
702k
  else if (qtemp > n)
285
623k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
78.6k
  else {
287
78.6k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
78.6k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
78.6k
      temp = (WORD32)result;
292
78.6k
  }
293
702k
  return temp;
294
706k
}
295
296
221k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div32_in_q15(WORD32 num, WORD32 den) {
297
221k
  WORD32 quotient;
298
221k
  WORD16 q_quotient;
299
300
221k
  quotient = ixheaacd_mps_div_32(num, den, &q_quotient);
301
221k
  quotient = ixheaacd_mps_convert_to_qn(quotient, q_quotient, 15);
302
221k
  return quotient;
303
221k
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_div32_in_q15
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_div32_in_q15
ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_div32_in_q15
Line
Count
Source
296
221k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div32_in_q15(WORD32 num, WORD32 den) {
297
221k
  WORD32 quotient;
298
221k
  WORD16 q_quotient;
299
300
221k
  quotient = ixheaacd_mps_div_32(num, den, &q_quotient);
301
221k
  quotient = ixheaacd_mps_convert_to_qn(quotient, q_quotient, 15);
302
221k
  return quotient;
303
221k
}
304
305
0
static PLATFORM_INLINE WORD32 ixheaacd_mps_log10(WORD32 a, WORD16 q_a) {
306
0
  WORD32 x;
307
0
  WORD16 q_x;
308
0
  WORD32 j, k, temp;
309
0
  WORD16 q_num;
310
0
  q_num = ixheaac_norm32(a);
311
0
  a = a << q_num;
312
0
  x = ixheaacd_mps_div_32(a, NORM32, &q_x);
313
314
0
  if (q_x > 16)
315
0
    x = x >> (q_x - 16);
316
0
  else
317
0
    x = x << (16 - q_x);
318
319
0
  q_num = 30 - (q_num + q_a);
320
321
0
  j = x - ONE_IN_Q16;
322
0
  k = ixheaacd_mps_mult32_shr_16(SQRT_THREE_Q15, j);
323
0
  temp = ixheaacd_mps_mult32_shr_16(j, j);
324
0
  k -= ixheaacd_mps_mult32_shr_16(LOG_COEFF1, temp);
325
0
  temp = ixheaacd_mps_mult32_shr_16(temp, j);
326
0
  k += ixheaacd_mps_mult32_shr_16(LOG_COEFF2, temp);
327
0
  temp = ixheaacd_mps_mult32_shr_16(temp, j);
328
0
  k -= ixheaacd_mps_mult32_shr_16(LOG_COEFF3, temp);
329
0
  temp = ixheaacd_mps_mult32_shr_16(temp, j);
330
0
  k += ixheaacd_mps_mult32_shr_16(LOG_COEFF4, temp);
331
332
0
  k += (WORD32)(q_num * ((WORD32)LOG2XQ17));
333
334
0
  return (k >> 1);
335
0
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_log10
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_log10
336
337
0
static PLATFORM_INLINE WORD32 ixheaacd_mps_cos(WORD32 a, const WORD32 *cosine_tab) {
338
0
  WORD32 temp_result;
339
340
0
  if (a < 0) {
341
0
    a = -a;
342
0
  }
343
344
0
  a = a % TWO_PI_IN_Q15;
345
346
0
  temp_result = cosine_tab[((a * TRIG_TABLE_CONV_FAC) >> 15)];
347
0
  return temp_result;
348
0
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_cos
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_cos
349
350
0
static PLATFORM_INLINE WORD32 ixheaacd_mps_sin(WORD32 a, const WORD32 *sine_tab) {
351
0
  WORD32 temp_result, flag = 0;
352
353
0
  if (a < 0) {
354
0
    a = -a;
355
0
    flag = 1;
356
0
  }
357
358
0
  a = a % TWO_PI_IN_Q15;
359
360
0
  temp_result = sine_tab[((a * TRIG_TABLE_CONV_FAC) >> 15)];
361
0
  if (flag) temp_result = -temp_result;
362
363
0
  return temp_result;
364
0
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_decorr.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_sin
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_sin
365
366
56.1M
static PLATFORM_INLINE WORD32 ixheaacd_mps_comp(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
367
56.1M
  if (a == 0 || b == 0) {
368
12.7M
    if (a == 0) {
369
11.4M
      if (b < 0)
370
0
        return 1;
371
11.4M
      else
372
11.4M
        return 0;
373
11.4M
    } else if (b == 0) {
374
1.32M
      if (a > 0)
375
1.32M
        return 1;
376
0
      else
377
0
        return 0;
378
1.32M
    }
379
12.7M
  }
380
381
43.3M
  if (*q_a > q_b) {
382
27.9M
    a = (a >> ((*q_a) - q_b));
383
27.9M
  } else {
384
15.4M
    b = (b >> (q_b - (*q_a)));
385
15.4M
  }
386
387
43.3M
  if (a > b)
388
18.0M
    return 1;
389
25.2M
  else
390
25.2M
    return 0;
391
43.3M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_comp
ixheaacd_mps_decorr.c:ixheaacd_mps_comp
Line
Count
Source
366
56.1M
static PLATFORM_INLINE WORD32 ixheaacd_mps_comp(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
367
56.1M
  if (a == 0 || b == 0) {
368
12.7M
    if (a == 0) {
369
11.4M
      if (b < 0)
370
0
        return 1;
371
11.4M
      else
372
11.4M
        return 0;
373
11.4M
    } else if (b == 0) {
374
1.32M
      if (a > 0)
375
1.32M
        return 1;
376
0
      else
377
0
        return 0;
378
1.32M
    }
379
12.7M
  }
380
381
43.3M
  if (*q_a > q_b) {
382
27.9M
    a = (a >> ((*q_a) - q_b));
383
27.9M
  } else {
384
15.4M
    b = (b >> (q_b - (*q_a)));
385
15.4M
  }
386
387
43.3M
  if (a > b)
388
18.0M
    return 1;
389
25.2M
  else
390
25.2M
    return 0;
391
43.3M
}
Unexecuted instantiation: ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_mdct_2_qmf.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_polyphase.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_process.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_reshape_bb_env.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_temp_process.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_tonality.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_apply_m1.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_apply_m2.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_blind.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_emm.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_515x.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_51sx.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_52xx.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_tree_757x.c:ixheaacd_mps_comp
Unexecuted instantiation: ixheaacd_mps_calc_m1m2_common.c:ixheaacd_mps_comp
392
393
#endif /* IXHEAACD_MPS_BASIC_OP_H */