Coverage Report

Created: 2026-10-31 07:10

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.77M
#define INV_SQRT_2_Q31 (1518500250)
25
18.1M
#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
111M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
111M
  WORD32 temp_1, temp_2;
36
111M
  temp_1 = (WORD32)(a >> 32);
37
111M
  temp_2 = ixheaac_norm32(temp_1);
38
111M
  if (temp_2 < 31) {
39
73.2M
    return (32 - temp_2);
40
73.2M
  } else {
41
38.6M
    temp_2 = (WORD32)(a);
42
38.6M
    if ((temp_1 ^ temp_2) < 0) {
43
936k
      return 1;
44
37.7M
    } else {
45
37.7M
      return 0;
46
37.7M
    }
47
38.6M
  }
48
111M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_get_rshift_bits
ixheaacd_mps_decorr.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
74.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
74.4M
  WORD32 temp_1, temp_2;
36
74.4M
  temp_1 = (WORD32)(a >> 32);
37
74.4M
  temp_2 = ixheaac_norm32(temp_1);
38
74.4M
  if (temp_2 < 31) {
39
55.2M
    return (32 - temp_2);
40
55.2M
  } else {
41
19.2M
    temp_2 = (WORD32)(a);
42
19.2M
    if ((temp_1 ^ temp_2) < 0) {
43
142k
      return 1;
44
19.0M
    } else {
45
19.0M
      return 0;
46
19.0M
    }
47
19.2M
  }
48
74.4M
}
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.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
15.4M
  WORD32 temp_1, temp_2;
36
15.4M
  temp_1 = (WORD32)(a >> 32);
37
15.4M
  temp_2 = ixheaac_norm32(temp_1);
38
15.4M
  if (temp_2 < 31) {
39
10.5M
    return (32 - temp_2);
40
10.5M
  } else {
41
4.91M
    temp_2 = (WORD32)(a);
42
4.91M
    if ((temp_1 ^ temp_2) < 0) {
43
36.5k
      return 1;
44
4.87M
    } else {
45
4.87M
      return 0;
46
4.87M
    }
47
4.91M
  }
48
15.4M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
22.0M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
22.0M
  WORD32 temp_1, temp_2;
36
22.0M
  temp_1 = (WORD32)(a >> 32);
37
22.0M
  temp_2 = ixheaac_norm32(temp_1);
38
22.0M
  if (temp_2 < 31) {
39
7.50M
    return (32 - temp_2);
40
14.5M
  } else {
41
14.5M
    temp_2 = (WORD32)(a);
42
14.5M
    if ((temp_1 ^ temp_2) < 0) {
43
757k
      return 1;
44
13.7M
    } else {
45
13.7M
      return 0;
46
13.7M
    }
47
14.5M
  }
48
22.0M
}
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
1.76k
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
1.76k
  WORD32 temp_1, temp_2;
36
1.76k
  temp_1 = (WORD32)(a >> 32);
37
1.76k
  temp_2 = ixheaac_norm32(temp_1);
38
1.76k
  if (temp_2 < 31) {
39
0
    return (32 - temp_2);
40
1.76k
  } else {
41
1.76k
    temp_2 = (WORD32)(a);
42
1.76k
    if ((temp_1 ^ temp_2) < 0) {
43
0
      return 1;
44
1.76k
    } else {
45
1.76k
      return 0;
46
1.76k
    }
47
1.76k
  }
48
1.76k
}
49
50
89.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
89.9M
  WORD32 x;
52
89.9M
  x = ixheaacd_mps_get_rshift_bits(a);
53
89.9M
  *qfac = 20 - x;
54
89.9M
  return (WORD32)((WORD64)a >> x);
55
89.9M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_narrow
ixheaacd_mps_decorr.c:ixheaacd_mps_narrow
Line
Count
Source
50
74.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
74.4M
  WORD32 x;
52
74.4M
  x = ixheaacd_mps_get_rshift_bits(a);
53
74.4M
  *qfac = 20 - x;
54
74.4M
  return (WORD32)((WORD64)a >> x);
55
74.4M
}
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.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
15.4M
  WORD32 x;
52
15.4M
  x = ixheaacd_mps_get_rshift_bits(a);
53
15.4M
  *qfac = 20 - x;
54
15.4M
  return (WORD32)((WORD64)a >> x);
55
15.4M
}
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
18.5M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
18.5M
  WORD32 index, answer, temp;
59
18.5M
  WORD k;
60
61
18.5M
  if (num == 0) return 0;
62
63
18.1M
  k = ixheaac_norm32(num);
64
18.1M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
18.1M
  *q += k;
66
18.1M
  index = temp & 0x1FF;
67
18.1M
  answer = sqrt_tab[index];
68
18.1M
  if (*q & 1) {
69
7.77M
    *q -= 1;
70
7.77M
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
7.77M
  }
72
18.1M
  *q = *q >> 1;
73
18.1M
  *q += Q_SQRT_TAB;
74
18.1M
  return answer;
75
18.5M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_sqrt
ixheaacd_mps_decorr.c:ixheaacd_mps_sqrt
Line
Count
Source
57
16.0M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
16.0M
  WORD32 index, answer, temp;
59
16.0M
  WORD k;
60
61
16.0M
  if (num == 0) return 0;
62
63
16.0M
  k = ixheaac_norm32(num);
64
16.0M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
16.0M
  *q += k;
66
16.0M
  index = temp & 0x1FF;
67
16.0M
  answer = sqrt_tab[index];
68
16.0M
  if (*q & 1) {
69
6.72M
    *q -= 1;
70
6.72M
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
6.72M
  }
72
16.0M
  *q = *q >> 1;
73
16.0M
  *q += Q_SQRT_TAB;
74
16.0M
  return answer;
75
16.0M
}
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
667k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
667k
  WORD32 index, answer, temp;
59
667k
  WORD k;
60
61
667k
  if (num == 0) return 0;
62
63
533k
  k = ixheaac_norm32(num);
64
533k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
533k
  *q += k;
66
533k
  index = temp & 0x1FF;
67
533k
  answer = sqrt_tab[index];
68
533k
  if (*q & 1) {
69
279k
    *q -= 1;
70
279k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
279k
  }
72
533k
  *q = *q >> 1;
73
533k
  *q += Q_SQRT_TAB;
74
533k
  return answer;
75
667k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_sqrt
Line
Count
Source
57
1.23M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
1.23M
  WORD32 index, answer, temp;
59
1.23M
  WORD k;
60
61
1.23M
  if (num == 0) return 0;
62
63
1.03M
  k = ixheaac_norm32(num);
64
1.03M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
1.03M
  *q += k;
66
1.03M
  index = temp & 0x1FF;
67
1.03M
  answer = sqrt_tab[index];
68
1.03M
  if (*q & 1) {
69
529k
    *q -= 1;
70
529k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
529k
  }
72
1.03M
  *q = *q >> 1;
73
1.03M
  *q += Q_SQRT_TAB;
74
1.03M
  return answer;
75
1.23M
}
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
627k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
627k
  WORD32 index, answer, temp;
59
627k
  WORD k;
60
61
627k
  if (num == 0) return 0;
62
63
585k
  k = ixheaac_norm32(num);
64
585k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
585k
  *q += k;
66
585k
  index = temp & 0x1FF;
67
585k
  answer = sqrt_tab[index];
68
585k
  if (*q & 1) {
69
243k
    *q -= 1;
70
243k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
243k
  }
72
585k
  *q = *q >> 1;
73
585k
  *q += Q_SQRT_TAB;
74
585k
  return answer;
75
627k
}
76
77
static PLATFORM_INLINE WORD32 ixheaacd_mps_reshape_add32(WORD32 op1, WORD32 op2, WORD16 *qop1,
78
49.1M
                                                         WORD16 qop2) {
79
49.1M
  WORD64 tempresult;
80
49.1M
  if (0 == op2) {
81
13.6M
    return op1;
82
13.6M
  }
83
35.4M
  if (0 == op1) {
84
2.58M
    *qop1 = qop2;
85
2.58M
    return op2;
86
2.58M
  }
87
32.8M
  if (*qop1 < qop2) {
88
23.4M
    if ((qop2 - *qop1) > 31)
89
81.9k
      op2 = 0;
90
23.3M
    else
91
23.3M
      op2 = op2 >> (qop2 - *qop1);
92
23.4M
    tempresult = (WORD64)op1 + (WORD64)op2;
93
23.4M
  } else {
94
9.40M
    if ((*qop1 - qop2) > 31)
95
19.4k
      op1 = 0;
96
9.39M
    else
97
9.39M
      op1 = op1 >> (*qop1 - qop2);
98
9.40M
    *qop1 = qop2;
99
9.40M
    tempresult = (WORD64)op1 + (WORD64)op2;
100
9.40M
  }
101
32.8M
  if (tempresult > (WORD32)0x7fffffff || tempresult < (WORD32)0x80000000) {
102
6.75M
    tempresult = tempresult >> 1;
103
6.75M
    *qop1 -= 1;
104
6.75M
  }
105
32.8M
  return (WORD32)tempresult;
106
35.4M
}
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
49.1M
                                                         WORD16 qop2) {
79
49.1M
  WORD64 tempresult;
80
49.1M
  if (0 == op2) {
81
13.6M
    return op1;
82
13.6M
  }
83
35.4M
  if (0 == op1) {
84
2.58M
    *qop1 = qop2;
85
2.58M
    return op2;
86
2.58M
  }
87
32.8M
  if (*qop1 < qop2) {
88
23.4M
    if ((qop2 - *qop1) > 31)
89
81.9k
      op2 = 0;
90
23.3M
    else
91
23.3M
      op2 = op2 >> (qop2 - *qop1);
92
23.4M
    tempresult = (WORD64)op1 + (WORD64)op2;
93
23.4M
  } else {
94
9.40M
    if ((*qop1 - qop2) > 31)
95
19.4k
      op1 = 0;
96
9.39M
    else
97
9.39M
      op1 = op1 >> (*qop1 - qop2);
98
9.40M
    *qop1 = qop2;
99
9.40M
    tempresult = (WORD64)op1 + (WORD64)op2;
100
9.40M
  }
101
32.8M
  if (tempresult > (WORD32)0x7fffffff || tempresult < (WORD32)0x80000000) {
102
6.75M
    tempresult = tempresult >> 1;
103
6.75M
    *qop1 -= 1;
104
6.75M
  }
105
32.8M
  return (WORD32)tempresult;
106
35.4M
}
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
155M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
155M
  WORD64 temp_result;
110
111
155M
  if (a == 0 || b == 0) {
112
76.4M
    if (b == 0) {
113
74.1M
      return a;
114
74.1M
    } else {
115
2.25M
      *q_a = q_b;
116
2.25M
      return b;
117
2.25M
    }
118
76.4M
  }
119
79.0M
  if (*q_a > q_b) {
120
3.85M
    if (((*q_a) - q_b) > 31) {
121
7.09k
      a = 0;
122
7.09k
      *q_a = q_b;
123
3.84M
    } else {
124
3.84M
      a = (a >> ((*q_a) - q_b));
125
3.84M
      *q_a = q_b;
126
3.84M
    }
127
75.2M
  } else {
128
75.2M
    if ((q_b - (*q_a)) > 31) {
129
222k
      b = 0;
130
74.9M
    } else {
131
74.9M
      b = (b >> (q_b - (*q_a)));
132
74.9M
      q_b = *q_a;
133
74.9M
    }
134
75.2M
  }
135
79.0M
  temp_result = (WORD64)a + (WORD64)b;
136
79.0M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
4.63M
    temp_result = temp_result >> 1;
138
4.63M
    *q_a -= 1;
139
4.63M
  }
140
141
79.0M
  return (WORD32)temp_result;
142
155M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_add32
ixheaacd_mps_decorr.c:ixheaacd_mps_add32
Line
Count
Source
108
74.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
74.4M
  WORD64 temp_result;
110
111
74.4M
  if (a == 0 || b == 0) {
112
18.0M
    if (b == 0) {
113
17.4M
      return a;
114
17.4M
    } else {
115
560k
      *q_a = q_b;
116
560k
      return b;
117
560k
    }
118
18.0M
  }
119
56.4M
  if (*q_a > q_b) {
120
2.19M
    if (((*q_a) - q_b) > 31) {
121
2.11k
      a = 0;
122
2.11k
      *q_a = q_b;
123
2.18M
    } else {
124
2.18M
      a = (a >> ((*q_a) - q_b));
125
2.18M
      *q_a = q_b;
126
2.18M
    }
127
54.3M
  } else {
128
54.3M
    if ((q_b - (*q_a)) > 31) {
129
218k
      b = 0;
130
54.0M
    } else {
131
54.0M
      b = (b >> (q_b - (*q_a)));
132
54.0M
      q_b = *q_a;
133
54.0M
    }
134
54.3M
  }
135
56.4M
  temp_result = (WORD64)a + (WORD64)b;
136
56.4M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
1.89M
    temp_result = temp_result >> 1;
138
1.89M
    *q_a -= 1;
139
1.89M
  }
140
141
56.4M
  return (WORD32)temp_result;
142
74.4M
}
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
118k
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
118k
  WORD64 temp_result;
110
111
118k
  if (a == 0 || b == 0) {
112
73.0k
    if (b == 0) {
113
188
      return a;
114
72.8k
    } else {
115
72.8k
      *q_a = q_b;
116
72.8k
      return b;
117
72.8k
    }
118
73.0k
  }
119
45.7k
  if (*q_a > q_b) {
120
10.0k
    if (((*q_a) - q_b) > 31) {
121
218
      a = 0;
122
218
      *q_a = q_b;
123
9.81k
    } else {
124
9.81k
      a = (a >> ((*q_a) - q_b));
125
9.81k
      *q_a = q_b;
126
9.81k
    }
127
35.7k
  } else {
128
35.7k
    if ((q_b - (*q_a)) > 31) {
129
2
      b = 0;
130
35.7k
    } else {
131
35.7k
      b = (b >> (q_b - (*q_a)));
132
35.7k
      q_b = *q_a;
133
35.7k
    }
134
35.7k
  }
135
45.7k
  temp_result = (WORD64)a + (WORD64)b;
136
45.7k
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
55
    temp_result = temp_result >> 1;
138
55
    *q_a -= 1;
139
55
  }
140
141
45.7k
  return (WORD32)temp_result;
142
118k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_add32
Line
Count
Source
108
80.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
80.8M
  WORD64 temp_result;
110
111
80.8M
  if (a == 0 || b == 0) {
112
58.3M
    if (b == 0) {
113
56.7M
      return a;
114
56.7M
    } else {
115
1.61M
      *q_a = q_b;
116
1.61M
      return b;
117
1.61M
    }
118
58.3M
  }
119
22.5M
  if (*q_a > q_b) {
120
1.65M
    if (((*q_a) - q_b) > 31) {
121
4.75k
      a = 0;
122
4.75k
      *q_a = q_b;
123
1.64M
    } else {
124
1.64M
      a = (a >> ((*q_a) - q_b));
125
1.64M
      *q_a = q_b;
126
1.64M
    }
127
20.8M
  } else {
128
20.8M
    if ((q_b - (*q_a)) > 31) {
129
4.01k
      b = 0;
130
20.8M
    } else {
131
20.8M
      b = (b >> (q_b - (*q_a)));
132
20.8M
      q_b = *q_a;
133
20.8M
    }
134
20.8M
  }
135
22.5M
  temp_result = (WORD64)a + (WORD64)b;
136
22.5M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
2.74M
    temp_result = temp_result >> 1;
138
2.74M
    *q_a -= 1;
139
2.74M
  }
140
141
22.5M
  return (WORD32)temp_result;
142
80.8M
}
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
2.21k
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
2.21k
  WORD64 temp_result;
110
111
2.21k
  if (a == 0 || b == 0) {
112
1.32k
    if (b == 0) {
113
0
      return a;
114
1.32k
    } else {
115
1.32k
      *q_a = q_b;
116
1.32k
      return b;
117
1.32k
    }
118
1.32k
  }
119
894
  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
894
  } else {
128
894
    if ((q_b - (*q_a)) > 31) {
129
0
      b = 0;
130
894
    } else {
131
894
      b = (b >> (q_b - (*q_a)));
132
894
      q_b = *q_a;
133
894
    }
134
894
  }
135
894
  temp_result = (WORD64)a + (WORD64)b;
136
894
  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
894
  return (WORD32)temp_result;
142
2.21k
}
143
144
100M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
100M
  WORD64 temp_result;
146
100M
  WORD32 temp;
147
148
100M
  if (a == 0 || b == 0) {
149
78.7M
    temp_result = 0;
150
78.7M
    *q_a = 15;
151
78.7M
    return (WORD32)temp_result;
152
78.7M
  }
153
154
22.0M
  *q_a = *q_a + q_b;
155
156
22.0M
  temp_result = (WORD64)a * (WORD64)b;
157
22.0M
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
22.0M
  if (0 != temp) {
159
8.26M
    *q_a -= temp;
160
8.26M
    temp_result = temp_result >> temp;
161
8.26M
  }
162
163
22.0M
  return (WORD32)temp_result;
164
100M
}
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
100M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
100M
  WORD64 temp_result;
146
100M
  WORD32 temp;
147
148
100M
  if (a == 0 || b == 0) {
149
78.7M
    temp_result = 0;
150
78.7M
    *q_a = 15;
151
78.7M
    return (WORD32)temp_result;
152
78.7M
  }
153
154
22.0M
  *q_a = *q_a + q_b;
155
156
22.0M
  temp_result = (WORD64)a * (WORD64)b;
157
22.0M
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
22.0M
  if (0 != temp) {
159
8.26M
    *q_a -= temp;
160
8.26M
    temp_result = temp_result >> temp;
161
8.26M
  }
162
163
22.0M
  return (WORD32)temp_result;
164
100M
}
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
4.74k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
4.74k
  WORD64 temp_result;
146
4.74k
  WORD32 temp;
147
148
4.74k
  if (a == 0 || b == 0) {
149
2.98k
    temp_result = 0;
150
2.98k
    *q_a = 15;
151
2.98k
    return (WORD32)temp_result;
152
2.98k
  }
153
154
1.76k
  *q_a = *q_a + q_b;
155
156
1.76k
  temp_result = (WORD64)a * (WORD64)b;
157
1.76k
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
1.76k
  if (0 != temp) {
159
0
    *q_a -= temp;
160
0
    temp_result = temp_result >> temp;
161
0
  }
162
163
1.76k
  return (WORD32)temp_result;
164
4.74k
}
165
166
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x32(WORD32 a, WORD32 b, WORD16 *q_a,
167
1.69M
                                                     WORD16 q_b) {
168
1.69M
  WORD64 temp_result;
169
1.69M
  if (a == 0 || b == 0) {
170
471k
    temp_result = 0;
171
471k
    *q_a = 15;
172
471k
    return (WORD32)temp_result;
173
471k
  }
174
1.22M
  *q_a = *q_a + q_b;
175
176
1.22M
  temp_result = (WORD64)a * (WORD64)b;
177
31.0M
  while (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
178
29.8M
    temp_result = temp_result >> 1;
179
29.8M
    *q_a -= 1;
180
29.8M
  }
181
182
1.22M
  return (WORD32)temp_result;
183
1.69M
}
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.69M
                                                     WORD16 q_b) {
168
1.69M
  WORD64 temp_result;
169
1.69M
  if (a == 0 || b == 0) {
170
471k
    temp_result = 0;
171
471k
    *q_a = 15;
172
471k
    return (WORD32)temp_result;
173
471k
  }
174
1.22M
  *q_a = *q_a + q_b;
175
176
1.22M
  temp_result = (WORD64)a * (WORD64)b;
177
31.0M
  while (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
178
29.8M
    temp_result = temp_result >> 1;
179
29.8M
    *q_a -= 1;
180
29.8M
  }
181
182
1.22M
  return (WORD32)temp_result;
183
1.69M
}
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
68.5M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
68.5M
  WORD32 result;
187
68.5M
  WORD64 temp_result;
188
189
68.5M
  temp_result = (WORD64)a * (WORD64)b;
190
68.5M
  result = (WORD32)(temp_result >> n);
191
192
68.5M
  return (result);
193
68.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
68.2M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
68.2M
  WORD32 result;
187
68.2M
  WORD64 temp_result;
188
189
68.2M
  temp_result = (WORD64)a * (WORD64)b;
190
68.2M
  result = (WORD32)(temp_result >> n);
191
192
68.2M
  return (result);
193
68.2M
}
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
297k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
297k
  WORD32 result;
187
297k
  WORD64 temp_result;
188
189
297k
  temp_result = (WORD64)a * (WORD64)b;
190
297k
  result = (WORD32)(temp_result >> n);
191
192
297k
  return (result);
193
297k
}
194
195
2.23G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
2.23G
  WORD32 result;
197
2.23G
  WORD64 temp_result;
198
199
2.23G
  temp_result = (WORD64)a * (WORD64)b;
200
2.23G
  result = (WORD32)(temp_result >> 30);
201
202
2.23G
  return (result);
203
2.23G
}
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.89M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
3.89M
  WORD32 result;
197
3.89M
  WORD64 temp_result;
198
199
3.89M
  temp_result = (WORD64)a * (WORD64)b;
200
3.89M
  result = (WORD32)(temp_result >> 30);
201
202
3.89M
  return (result);
203
3.89M
}
ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
2.23G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
2.23G
  WORD32 result;
197
2.23G
  WORD64 temp_result;
198
199
2.23G
  temp_result = (WORD64)a * (WORD64)b;
200
2.23G
  result = (WORD32)(temp_result >> 30);
201
202
2.23G
  return (result);
203
2.23G
}
ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
1.40M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
1.40M
  WORD32 result;
197
1.40M
  WORD64 temp_result;
198
199
1.40M
  temp_result = (WORD64)a * (WORD64)b;
200
1.40M
  result = (WORD32)(temp_result >> 30);
201
202
1.40M
  return (result);
203
1.40M
}
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
401k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
401k
  WORD32 result;
197
401k
  WORD64 temp_result;
198
199
401k
  temp_result = (WORD64)a * (WORD64)b;
200
401k
  result = (WORD32)(temp_result >> 30);
201
202
401k
  return (result);
203
401k
}
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
19.1k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
19.1k
  WORD32 result;
197
19.1k
  WORD64 temp_result;
198
199
19.1k
  temp_result = (WORD64)a * (WORD64)b;
200
19.1k
  result = (WORD32)(temp_result >> 30);
201
202
19.1k
  return (result);
203
19.1k
}
ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
15.0k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
15.0k
  WORD32 result;
197
15.0k
  WORD64 temp_result;
198
199
15.0k
  temp_result = (WORD64)a * (WORD64)b;
200
15.0k
  result = (WORD32)(temp_result >> 30);
201
202
15.0k
  return (result);
203
15.0k
}
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
110k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
110k
  WORD32 result;
197
110k
  WORD64 temp_result;
198
199
110k
  temp_result = (WORD64)a * (WORD64)b;
200
110k
  result = (WORD32)(temp_result >> 30);
201
202
110k
  return (result);
203
110k
}
204
205
59.4k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_16(WORD32 a, WORD32 b) {
206
59.4k
  WORD32 result;
207
59.4k
  WORD64 temp_result;
208
209
59.4k
  temp_result = (WORD64)a * (WORD64)b;
210
59.4k
  result = (WORD32)(temp_result >> 16);
211
59.4k
  return (result);
212
59.4k
}
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
59.4k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_16(WORD32 a, WORD32 b) {
206
59.4k
  WORD32 result;
207
59.4k
  WORD64 temp_result;
208
209
59.4k
  temp_result = (WORD64)a * (WORD64)b;
210
59.4k
  result = (WORD32)(temp_result >> 16);
211
59.4k
  return (result);
212
59.4k
}
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.12G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
3.12G
  WORD32 result;
216
3.12G
  WORD64 temp_result;
217
3.12G
  temp_result = (WORD64)a * (WORD64)b;
218
3.12G
  result = (WORD32)(temp_result >> 16);
219
3.12G
  return (result);
220
3.12G
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32x16_shr_16
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32x16_shr_16
Line
Count
Source
214
3.06G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
3.06G
  WORD32 result;
216
3.06G
  WORD64 temp_result;
217
3.06G
  temp_result = (WORD64)a * (WORD64)b;
218
3.06G
  result = (WORD32)(temp_result >> 16);
219
3.06G
  return (result);
220
3.06G
}
ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32x16_shr_16
Line
Count
Source
214
62.0M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
62.0M
  WORD32 result;
216
62.0M
  WORD64 temp_result;
217
62.0M
  temp_result = (WORD64)a * (WORD64)b;
218
62.0M
  result = (WORD32)(temp_result >> 16);
219
62.0M
  return (result);
220
62.0M
}
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.26G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
2.26G
  WORD32 result;
224
2.26G
  WORD64 temp_result;
225
2.26G
  temp_result = (WORD64)a * (WORD64)b;
226
2.26G
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
2.26G
  return (result);
229
2.26G
}
ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
132M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
132M
  WORD32 result;
224
132M
  WORD64 temp_result;
225
132M
  temp_result = (WORD64)a * (WORD64)b;
226
132M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
132M
  return (result);
229
132M
}
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
152M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
152M
  WORD32 result;
224
152M
  WORD64 temp_result;
225
152M
  temp_result = (WORD64)a * (WORD64)b;
226
152M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
152M
  return (result);
229
152M
}
ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
156M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
156M
  WORD32 result;
224
156M
  WORD64 temp_result;
225
156M
  temp_result = (WORD64)a * (WORD64)b;
226
156M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
156M
  return (result);
229
156M
}
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
6.13M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
6.13M
  WORD32 result;
224
6.13M
  WORD64 temp_result;
225
6.13M
  temp_result = (WORD64)a * (WORD64)b;
226
6.13M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
6.13M
  return (result);
229
6.13M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
15.3M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
15.3M
  WORD32 result;
224
15.3M
  WORD64 temp_result;
225
15.3M
  temp_result = (WORD64)a * (WORD64)b;
226
15.3M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
15.3M
  return (result);
229
15.3M
}
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
969M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
969M
  WORD32 result;
224
969M
  WORD64 temp_result;
225
969M
  temp_result = (WORD64)a * (WORD64)b;
226
969M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
969M
  return (result);
229
969M
}
ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
817M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
817M
  WORD32 result;
224
817M
  WORD64 temp_result;
225
817M
  temp_result = (WORD64)a * (WORD64)b;
226
817M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
817M
  return (result);
229
817M
}
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.41M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
1.41M
  WORD32 result;
224
1.41M
  WORD64 temp_result;
225
1.41M
  temp_result = (WORD64)a * (WORD64)b;
226
1.41M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
1.41M
  return (result);
229
1.41M
}
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
210k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
210k
  WORD32 result;
224
210k
  WORD64 temp_result;
225
210k
  temp_result = (WORD64)a * (WORD64)b;
226
210k
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
210k
  return (result);
229
210k
}
ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
1.14M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
1.14M
  WORD32 result;
224
1.14M
  WORD64 temp_result;
225
1.14M
  temp_result = (WORD64)a * (WORD64)b;
226
1.14M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
1.14M
  return (result);
229
1.14M
}
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
8.06M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
8.06M
  WORD32 result;
224
8.06M
  WORD64 temp_result;
225
8.06M
  temp_result = (WORD64)a * (WORD64)b;
226
8.06M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
8.06M
  return (result);
229
8.06M
}
230
231
143M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_14(WORD32 a, WORD32 b) {
232
143M
  WORD32 result;
233
143M
  WORD64 temp_result;
234
235
143M
  temp_result = (WORD64)a * (WORD64)b;
236
143M
  result = (WORD32)(temp_result >> 16);
237
143M
  result = result << 2;
238
239
143M
  return (result);
240
143M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_14
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_14
Line
Count
Source
231
143M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_14(WORD32 a, WORD32 b) {
232
143M
  WORD32 result;
233
143M
  WORD64 temp_result;
234
235
143M
  temp_result = (WORD64)a * (WORD64)b;
236
143M
  result = (WORD32)(temp_result >> 16);
237
143M
  result = result << 2;
238
239
143M
  return (result);
240
143M
}
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
39.3M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
39.3M
  WORD32 quotient;
244
39.3M
  UWORD32 mantissa_nr, mantissa_dr;
245
39.3M
  LOOPINDEX i;
246
39.3M
  WORD q_nr, q_dr;
247
248
39.3M
  quotient = 0;
249
250
39.3M
  if (0 == b) {
251
5.28M
    *q_format = 0;
252
5.28M
    return (a);
253
5.28M
  }
254
255
34.0M
  quotient = 0;
256
257
34.0M
  q_nr = ixheaac_norm32(a);
258
34.0M
  mantissa_nr = (UWORD32)a << (q_nr);
259
34.0M
  q_dr = ixheaac_norm32(b);
260
34.0M
  mantissa_dr = (UWORD32)b << (q_dr);
261
34.0M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
1.09G
  for (i = 0; i < 31; i++) {
264
1.05G
    quotient <<= 1;
265
266
1.05G
    if (mantissa_nr >= mantissa_dr) {
267
492M
      mantissa_nr -= mantissa_dr;
268
492M
      quotient += 1;
269
492M
    }
270
1.05G
    mantissa_nr <<= 1;
271
1.05G
  }
272
273
34.0M
  if ((a ^ b) < 0) {
274
390k
    return -(quotient);
275
390k
  }
276
277
33.7M
  return quotient;
278
34.0M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_div_32
ixheaacd_mps_decorr.c:ixheaacd_mps_div_32
Line
Count
Source
242
20.5M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
20.5M
  WORD32 quotient;
244
20.5M
  UWORD32 mantissa_nr, mantissa_dr;
245
20.5M
  LOOPINDEX i;
246
20.5M
  WORD q_nr, q_dr;
247
248
20.5M
  quotient = 0;
249
250
20.5M
  if (0 == b) {
251
1.53M
    *q_format = 0;
252
1.53M
    return (a);
253
1.53M
  }
254
255
19.0M
  quotient = 0;
256
257
19.0M
  q_nr = ixheaac_norm32(a);
258
19.0M
  mantissa_nr = (UWORD32)a << (q_nr);
259
19.0M
  q_dr = ixheaac_norm32(b);
260
19.0M
  mantissa_dr = (UWORD32)b << (q_dr);
261
19.0M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
609M
  for (i = 0; i < 31; i++) {
264
590M
    quotient <<= 1;
265
266
590M
    if (mantissa_nr >= mantissa_dr) {
267
296M
      mantissa_nr -= mantissa_dr;
268
296M
      quotient += 1;
269
296M
    }
270
590M
    mantissa_nr <<= 1;
271
590M
  }
272
273
19.0M
  if ((a ^ b) < 0) {
274
0
    return -(quotient);
275
0
  }
276
277
19.0M
  return quotient;
278
19.0M
}
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
15.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
15.9M
  WORD32 quotient;
244
15.9M
  UWORD32 mantissa_nr, mantissa_dr;
245
15.9M
  LOOPINDEX i;
246
15.9M
  WORD q_nr, q_dr;
247
248
15.9M
  quotient = 0;
249
250
15.9M
  if (0 == b) {
251
3.64M
    *q_format = 0;
252
3.64M
    return (a);
253
3.64M
  }
254
255
12.3M
  quotient = 0;
256
257
12.3M
  q_nr = ixheaac_norm32(a);
258
12.3M
  mantissa_nr = (UWORD32)a << (q_nr);
259
12.3M
  q_dr = ixheaac_norm32(b);
260
12.3M
  mantissa_dr = (UWORD32)b << (q_dr);
261
12.3M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
393M
  for (i = 0; i < 31; i++) {
264
381M
    quotient <<= 1;
265
266
381M
    if (mantissa_nr >= mantissa_dr) {
267
177M
      mantissa_nr -= mantissa_dr;
268
177M
      quotient += 1;
269
177M
    }
270
381M
    mantissa_nr <<= 1;
271
381M
  }
272
273
12.3M
  if ((a ^ b) < 0) {
274
390k
    return -(quotient);
275
390k
  }
276
277
11.9M
  return quotient;
278
12.3M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_div_32
Line
Count
Source
242
1.87M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
1.87M
  WORD32 quotient;
244
1.87M
  UWORD32 mantissa_nr, mantissa_dr;
245
1.87M
  LOOPINDEX i;
246
1.87M
  WORD q_nr, q_dr;
247
248
1.87M
  quotient = 0;
249
250
1.87M
  if (0 == b) {
251
0
    *q_format = 0;
252
0
    return (a);
253
0
  }
254
255
1.87M
  quotient = 0;
256
257
1.87M
  q_nr = ixheaac_norm32(a);
258
1.87M
  mantissa_nr = (UWORD32)a << (q_nr);
259
1.87M
  q_dr = ixheaac_norm32(b);
260
1.87M
  mantissa_dr = (UWORD32)b << (q_dr);
261
1.87M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
60.0M
  for (i = 0; i < 31; i++) {
264
58.1M
    quotient <<= 1;
265
266
58.1M
    if (mantissa_nr >= mantissa_dr) {
267
10.2M
      mantissa_nr -= mantissa_dr;
268
10.2M
      quotient += 1;
269
10.2M
    }
270
58.1M
    mantissa_nr <<= 1;
271
58.1M
  }
272
273
1.87M
  if ((a ^ b) < 0) {
274
0
    return -(quotient);
275
0
  }
276
277
1.87M
  return quotient;
278
1.87M
}
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
965k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
965k
  WORD32 quotient;
244
965k
  UWORD32 mantissa_nr, mantissa_dr;
245
965k
  LOOPINDEX i;
246
965k
  WORD q_nr, q_dr;
247
248
965k
  quotient = 0;
249
250
965k
  if (0 == b) {
251
107k
    *q_format = 0;
252
107k
    return (a);
253
107k
  }
254
255
858k
  quotient = 0;
256
257
858k
  q_nr = ixheaac_norm32(a);
258
858k
  mantissa_nr = (UWORD32)a << (q_nr);
259
858k
  q_dr = ixheaac_norm32(b);
260
858k
  mantissa_dr = (UWORD32)b << (q_dr);
261
858k
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
27.4M
  for (i = 0; i < 31; i++) {
264
26.6M
    quotient <<= 1;
265
266
26.6M
    if (mantissa_nr >= mantissa_dr) {
267
8.93M
      mantissa_nr -= mantissa_dr;
268
8.93M
      quotient += 1;
269
8.93M
    }
270
26.6M
    mantissa_nr <<= 1;
271
26.6M
  }
272
273
858k
  if ((a ^ b) < 0) {
274
335
    return -(quotient);
275
335
  }
276
277
858k
  return quotient;
278
858k
}
279
280
2.91M
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
2.91M
  WORD64 result;
282
2.91M
  if (qtemp == n)
283
1.11M
    return temp;
284
1.80M
  else if (qtemp > n)
285
1.50M
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
295k
  else {
287
295k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
295k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
295k
      temp = (WORD32)result;
292
295k
  }
293
1.80M
  return temp;
294
2.91M
}
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
726k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
726k
  WORD64 result;
282
726k
  if (qtemp == n)
283
158
    return temp;
284
726k
  else if (qtemp > n)
285
679k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
46.7k
  else {
287
46.7k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
46.7k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
46.7k
      temp = (WORD32)result;
292
46.7k
  }
293
726k
  return temp;
294
726k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_convert_to_qn
Line
Count
Source
280
1.25M
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
1.25M
  WORD64 result;
282
1.25M
  if (qtemp == n)
283
1.10M
    return temp;
284
144k
  else if (qtemp > n)
285
0
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
144k
  else {
287
144k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
144k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
144k
      temp = (WORD32)result;
292
144k
  }
293
144k
  return temp;
294
1.25M
}
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
938k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
938k
  WORD64 result;
282
938k
  if (qtemp == n)
283
5.37k
    return temp;
284
932k
  else if (qtemp > n)
285
827k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
105k
  else {
287
105k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
105k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
105k
      temp = (WORD32)result;
292
105k
  }
293
932k
  return temp;
294
938k
}
295
296
303k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div32_in_q15(WORD32 num, WORD32 den) {
297
303k
  WORD32 quotient;
298
303k
  WORD16 q_quotient;
299
300
303k
  quotient = ixheaacd_mps_div_32(num, den, &q_quotient);
301
303k
  quotient = ixheaacd_mps_convert_to_qn(quotient, q_quotient, 15);
302
303k
  return quotient;
303
303k
}
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
303k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div32_in_q15(WORD32 num, WORD32 den) {
297
303k
  WORD32 quotient;
298
303k
  WORD16 q_quotient;
299
300
303k
  quotient = ixheaacd_mps_div_32(num, den, &q_quotient);
301
303k
  quotient = ixheaacd_mps_convert_to_qn(quotient, q_quotient, 15);
302
303k
  return quotient;
303
303k
}
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
60.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_comp(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
367
60.9M
  if (a == 0 || b == 0) {
368
16.6M
    if (a == 0) {
369
15.0M
      if (b < 0)
370
0
        return 1;
371
15.0M
      else
372
15.0M
        return 0;
373
15.0M
    } else if (b == 0) {
374
1.57M
      if (a > 0)
375
1.57M
        return 1;
376
0
      else
377
0
        return 0;
378
1.57M
    }
379
16.6M
  }
380
381
44.3M
  if (*q_a > q_b) {
382
27.9M
    a = (a >> ((*q_a) - q_b));
383
27.9M
  } else {
384
16.3M
    b = (b >> (q_b - (*q_a)));
385
16.3M
  }
386
387
44.3M
  if (a > b)
388
19.0M
    return 1;
389
25.2M
  else
390
25.2M
    return 0;
391
44.3M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_comp
ixheaacd_mps_decorr.c:ixheaacd_mps_comp
Line
Count
Source
366
60.9M
static PLATFORM_INLINE WORD32 ixheaacd_mps_comp(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
367
60.9M
  if (a == 0 || b == 0) {
368
16.6M
    if (a == 0) {
369
15.0M
      if (b < 0)
370
0
        return 1;
371
15.0M
      else
372
15.0M
        return 0;
373
15.0M
    } else if (b == 0) {
374
1.57M
      if (a > 0)
375
1.57M
        return 1;
376
0
      else
377
0
        return 0;
378
1.57M
    }
379
16.6M
  }
380
381
44.3M
  if (*q_a > q_b) {
382
27.9M
    a = (a >> ((*q_a) - q_b));
383
27.9M
  } else {
384
16.3M
    b = (b >> (q_b - (*q_a)));
385
16.3M
  }
386
387
44.3M
  if (a > b)
388
19.0M
    return 1;
389
25.2M
  else
390
25.2M
    return 0;
391
44.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 */