Coverage Report

Created: 2026-04-12 06:52

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
4.68M
#define INV_SQRT_2_Q31 (1518500250)
25
11.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
69.3M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
69.3M
  WORD32 temp_1, temp_2;
36
69.3M
  temp_1 = (WORD32)(a >> 32);
37
69.3M
  temp_2 = ixheaac_norm32(temp_1);
38
69.3M
  if (temp_2 < 31) {
39
45.7M
    return (32 - temp_2);
40
45.7M
  } else {
41
23.5M
    temp_2 = (WORD32)(a);
42
23.5M
    if ((temp_1 ^ temp_2) < 0) {
43
575k
      return 1;
44
22.9M
    } else {
45
22.9M
      return 0;
46
22.9M
    }
47
23.5M
  }
48
69.3M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_get_rshift_bits
ixheaacd_mps_decorr.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
46.6M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
46.6M
  WORD32 temp_1, temp_2;
36
46.6M
  temp_1 = (WORD32)(a >> 32);
37
46.6M
  temp_2 = ixheaac_norm32(temp_1);
38
46.6M
  if (temp_2 < 31) {
39
35.1M
    return (32 - temp_2);
40
35.1M
  } else {
41
11.4M
    temp_2 = (WORD32)(a);
42
11.4M
    if ((temp_1 ^ temp_2) < 0) {
43
92.4k
      return 1;
44
11.3M
    } else {
45
11.3M
      return 0;
46
11.3M
    }
47
11.4M
  }
48
46.6M
}
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
10.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
10.8M
  WORD32 temp_1, temp_2;
36
10.8M
  temp_1 = (WORD32)(a >> 32);
37
10.8M
  temp_2 = ixheaac_norm32(temp_1);
38
10.8M
  if (temp_2 < 31) {
39
7.62M
    return (32 - temp_2);
40
7.62M
  } else {
41
3.18M
    temp_2 = (WORD32)(a);
42
3.18M
    if ((temp_1 ^ temp_2) < 0) {
43
23.6k
      return 1;
44
3.16M
    } else {
45
3.16M
      return 0;
46
3.16M
    }
47
3.18M
  }
48
10.8M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_get_rshift_bits
Line
Count
Source
34
11.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
11.8M
  WORD32 temp_1, temp_2;
36
11.8M
  temp_1 = (WORD32)(a >> 32);
37
11.8M
  temp_2 = ixheaac_norm32(temp_1);
38
11.8M
  if (temp_2 < 31) {
39
2.96M
    return (32 - temp_2);
40
8.88M
  } else {
41
8.88M
    temp_2 = (WORD32)(a);
42
8.88M
    if ((temp_1 ^ temp_2) < 0) {
43
459k
      return 1;
44
8.42M
    } else {
45
8.42M
      return 0;
46
8.42M
    }
47
8.88M
  }
48
11.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
885
static PLATFORM_INLINE WORD32 ixheaacd_mps_get_rshift_bits(WORD64 a) {
35
885
  WORD32 temp_1, temp_2;
36
885
  temp_1 = (WORD32)(a >> 32);
37
885
  temp_2 = ixheaac_norm32(temp_1);
38
885
  if (temp_2 < 31) {
39
0
    return (32 - temp_2);
40
885
  } else {
41
885
    temp_2 = (WORD32)(a);
42
885
    if ((temp_1 ^ temp_2) < 0) {
43
0
      return 1;
44
885
    } else {
45
885
      return 0;
46
885
    }
47
885
  }
48
885
}
49
50
57.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
57.4M
  WORD32 x;
52
57.4M
  x = ixheaacd_mps_get_rshift_bits(a);
53
57.4M
  *qfac = 20 - x;
54
57.4M
  return (WORD32)((WORD64)a >> x);
55
57.4M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_narrow
ixheaacd_mps_decorr.c:ixheaacd_mps_narrow
Line
Count
Source
50
46.6M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
46.6M
  WORD32 x;
52
46.6M
  x = ixheaacd_mps_get_rshift_bits(a);
53
46.6M
  *qfac = 20 - x;
54
46.6M
  return (WORD32)((WORD64)a >> x);
55
46.6M
}
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
10.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_narrow(WORD64 a, WORD16 *qfac) {
51
10.8M
  WORD32 x;
52
10.8M
  x = ixheaacd_mps_get_rshift_bits(a);
53
10.8M
  *qfac = 20 - x;
54
10.8M
  return (WORD32)((WORD64)a >> x);
55
10.8M
}
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
11.6M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
11.6M
  WORD32 index, answer, temp;
59
11.6M
  WORD k;
60
61
11.6M
  if (num == 0) return 0;
62
63
11.3M
  k = ixheaac_norm32(num);
64
11.3M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
11.3M
  *q += k;
66
11.3M
  index = temp & 0x1FF;
67
11.3M
  answer = sqrt_tab[index];
68
11.3M
  if (*q & 1) {
69
4.68M
    *q -= 1;
70
4.68M
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
4.68M
  }
72
11.3M
  *q = *q >> 1;
73
11.3M
  *q += Q_SQRT_TAB;
74
11.3M
  return answer;
75
11.6M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_sqrt
ixheaacd_mps_decorr.c:ixheaacd_mps_sqrt
Line
Count
Source
57
10.0M
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
10.0M
  WORD32 index, answer, temp;
59
10.0M
  WORD k;
60
61
10.0M
  if (num == 0) return 0;
62
63
10.0M
  k = ixheaac_norm32(num);
64
10.0M
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
10.0M
  *q += k;
66
10.0M
  index = temp & 0x1FF;
67
10.0M
  answer = sqrt_tab[index];
68
10.0M
  if (*q & 1) {
69
4.04M
    *q -= 1;
70
4.04M
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
4.04M
  }
72
10.0M
  *q = *q >> 1;
73
10.0M
  *q += Q_SQRT_TAB;
74
10.0M
  return answer;
75
10.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
444k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
444k
  WORD32 index, answer, temp;
59
444k
  WORD k;
60
61
444k
  if (num == 0) return 0;
62
63
374k
  k = ixheaac_norm32(num);
64
374k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
374k
  *q += k;
66
374k
  index = temp & 0x1FF;
67
374k
  answer = sqrt_tab[index];
68
374k
  if (*q & 1) {
69
195k
    *q -= 1;
70
195k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
195k
  }
72
374k
  *q = *q >> 1;
73
374k
  *q += Q_SQRT_TAB;
74
374k
  return answer;
75
444k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_sqrt
Line
Count
Source
57
742k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
742k
  WORD32 index, answer, temp;
59
742k
  WORD k;
60
61
742k
  if (num == 0) return 0;
62
63
599k
  k = ixheaac_norm32(num);
64
599k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
599k
  *q += k;
66
599k
  index = temp & 0x1FF;
67
599k
  answer = sqrt_tab[index];
68
599k
  if (*q & 1) {
69
294k
    *q -= 1;
70
294k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
294k
  }
72
599k
  *q = *q >> 1;
73
599k
  *q += Q_SQRT_TAB;
74
599k
  return answer;
75
742k
}
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
405k
static PLATFORM_INLINE WORD32 ixheaacd_mps_sqrt(WORD32 num, WORD16 *q, const WORD32 *sqrt_tab) {
58
405k
  WORD32 index, answer, temp;
59
405k
  WORD k;
60
61
405k
  if (num == 0) return 0;
62
63
376k
  k = ixheaac_norm32(num);
64
376k
  temp = ixheaac_shr32(ixheaac_shl32(num, k), 21);
65
376k
  *q += k;
66
376k
  index = temp & 0x1FF;
67
376k
  answer = sqrt_tab[index];
68
376k
  if (*q & 1) {
69
144k
    *q -= 1;
70
144k
    answer = ixheaac_mult32_shl(answer, INV_SQRT_2_Q31);
71
144k
  }
72
376k
  *q = *q >> 1;
73
376k
  *q += Q_SQRT_TAB;
74
376k
  return answer;
75
405k
}
76
77
static PLATFORM_INLINE WORD32 ixheaacd_mps_reshape_add32(WORD32 op1, WORD32 op2, WORD16 *qop1,
78
34.5M
                                                         WORD16 qop2) {
79
34.5M
  WORD64 tempresult;
80
34.5M
  if (0 == op2) {
81
8.88M
    return op1;
82
8.88M
  }
83
25.6M
  if (0 == op1) {
84
1.84M
    *qop1 = qop2;
85
1.84M
    return op2;
86
1.84M
  }
87
23.8M
  if (*qop1 < qop2) {
88
16.9M
    if ((qop2 - *qop1) > 31)
89
54.6k
      op2 = 0;
90
16.9M
    else
91
16.9M
      op2 = op2 >> (qop2 - *qop1);
92
16.9M
    tempresult = (WORD64)op1 + (WORD64)op2;
93
16.9M
  } else {
94
6.84M
    if ((*qop1 - qop2) > 31)
95
13.4k
      op1 = 0;
96
6.83M
    else
97
6.83M
      op1 = op1 >> (*qop1 - qop2);
98
6.84M
    *qop1 = qop2;
99
6.84M
    tempresult = (WORD64)op1 + (WORD64)op2;
100
6.84M
  }
101
23.8M
  if (tempresult > (WORD32)0x7fffffff || tempresult < (WORD32)0x80000000) {
102
4.89M
    tempresult = tempresult >> 1;
103
4.89M
    *qop1 -= 1;
104
4.89M
  }
105
23.8M
  return (WORD32)tempresult;
106
25.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
34.5M
                                                         WORD16 qop2) {
79
34.5M
  WORD64 tempresult;
80
34.5M
  if (0 == op2) {
81
8.88M
    return op1;
82
8.88M
  }
83
25.6M
  if (0 == op1) {
84
1.84M
    *qop1 = qop2;
85
1.84M
    return op2;
86
1.84M
  }
87
23.8M
  if (*qop1 < qop2) {
88
16.9M
    if ((qop2 - *qop1) > 31)
89
54.6k
      op2 = 0;
90
16.9M
    else
91
16.9M
      op2 = op2 >> (qop2 - *qop1);
92
16.9M
    tempresult = (WORD64)op1 + (WORD64)op2;
93
16.9M
  } else {
94
6.84M
    if ((*qop1 - qop2) > 31)
95
13.4k
      op1 = 0;
96
6.83M
    else
97
6.83M
      op1 = op1 >> (*qop1 - qop2);
98
6.84M
    *qop1 = qop2;
99
6.84M
    tempresult = (WORD64)op1 + (WORD64)op2;
100
6.84M
  }
101
23.8M
  if (tempresult > (WORD32)0x7fffffff || tempresult < (WORD32)0x80000000) {
102
4.89M
    tempresult = tempresult >> 1;
103
4.89M
    *qop1 -= 1;
104
4.89M
  }
105
23.8M
  return (WORD32)tempresult;
106
25.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
95.2M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
95.2M
  WORD64 temp_result;
110
111
95.2M
  if (a == 0 || b == 0) {
112
46.7M
    if (b == 0) {
113
45.3M
      return a;
114
45.3M
    } else {
115
1.34M
      *q_a = q_b;
116
1.34M
      return b;
117
1.34M
    }
118
46.7M
  }
119
48.4M
  if (*q_a > q_b) {
120
2.04M
    if (((*q_a) - q_b) > 31) {
121
4.13k
      a = 0;
122
4.13k
      *q_a = q_b;
123
2.04M
    } else {
124
2.04M
      a = (a >> ((*q_a) - q_b));
125
2.04M
      *q_a = q_b;
126
2.04M
    }
127
46.4M
  } else {
128
46.4M
    if ((q_b - (*q_a)) > 31) {
129
127k
      b = 0;
130
46.3M
    } else {
131
46.3M
      b = (b >> (q_b - (*q_a)));
132
46.3M
      q_b = *q_a;
133
46.3M
    }
134
46.4M
  }
135
48.4M
  temp_result = (WORD64)a + (WORD64)b;
136
48.4M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
2.31M
    temp_result = temp_result >> 1;
138
2.31M
    *q_a -= 1;
139
2.31M
  }
140
141
48.4M
  return (WORD32)temp_result;
142
95.2M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_add32
ixheaacd_mps_decorr.c:ixheaacd_mps_add32
Line
Count
Source
108
46.6M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
46.6M
  WORD64 temp_result;
110
111
46.6M
  if (a == 0 || b == 0) {
112
10.6M
    if (b == 0) {
113
10.3M
      return a;
114
10.3M
    } else {
115
324k
      *q_a = q_b;
116
324k
      return b;
117
324k
    }
118
10.6M
  }
119
36.0M
  if (*q_a > q_b) {
120
1.27M
    if (((*q_a) - q_b) > 31) {
121
1.46k
      a = 0;
122
1.46k
      *q_a = q_b;
123
1.27M
    } else {
124
1.27M
      a = (a >> ((*q_a) - q_b));
125
1.27M
      *q_a = q_b;
126
1.27M
    }
127
34.7M
  } else {
128
34.7M
    if ((q_b - (*q_a)) > 31) {
129
125k
      b = 0;
130
34.6M
    } else {
131
34.6M
      b = (b >> (q_b - (*q_a)));
132
34.6M
      q_b = *q_a;
133
34.6M
    }
134
34.7M
  }
135
36.0M
  temp_result = (WORD64)a + (WORD64)b;
136
36.0M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
1.10M
    temp_result = temp_result >> 1;
138
1.10M
    *q_a -= 1;
139
1.10M
  }
140
141
36.0M
  return (WORD32)temp_result;
142
46.6M
}
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
54.8k
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
54.8k
  WORD64 temp_result;
110
111
54.8k
  if (a == 0 || b == 0) {
112
33.5k
    if (b == 0) {
113
29
      return a;
114
33.4k
    } else {
115
33.4k
      *q_a = q_b;
116
33.4k
      return b;
117
33.4k
    }
118
33.5k
  }
119
21.2k
  if (*q_a > q_b) {
120
6.14k
    if (((*q_a) - q_b) > 31) {
121
269
      a = 0;
122
269
      *q_a = q_b;
123
5.87k
    } else {
124
5.87k
      a = (a >> ((*q_a) - q_b));
125
5.87k
      *q_a = q_b;
126
5.87k
    }
127
15.1k
  } else {
128
15.1k
    if ((q_b - (*q_a)) > 31) {
129
0
      b = 0;
130
15.1k
    } else {
131
15.1k
      b = (b >> (q_b - (*q_a)));
132
15.1k
      q_b = *q_a;
133
15.1k
    }
134
15.1k
  }
135
21.2k
  temp_result = (WORD64)a + (WORD64)b;
136
21.2k
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
37
    temp_result = temp_result >> 1;
138
37
    *q_a -= 1;
139
37
  }
140
141
21.2k
  return (WORD32)temp_result;
142
54.8k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_add32
Line
Count
Source
108
48.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
48.4M
  WORD64 temp_result;
110
111
48.4M
  if (a == 0 || b == 0) {
112
36.0M
    if (b == 0) {
113
35.0M
      return a;
114
35.0M
    } else {
115
988k
      *q_a = q_b;
116
988k
      return b;
117
988k
    }
118
36.0M
  }
119
12.4M
  if (*q_a > q_b) {
120
769k
    if (((*q_a) - q_b) > 31) {
121
2.40k
      a = 0;
122
2.40k
      *q_a = q_b;
123
767k
    } else {
124
767k
      a = (a >> ((*q_a) - q_b));
125
767k
      *q_a = q_b;
126
767k
    }
127
11.6M
  } else {
128
11.6M
    if ((q_b - (*q_a)) > 31) {
129
2.31k
      b = 0;
130
11.6M
    } else {
131
11.6M
      b = (b >> (q_b - (*q_a)));
132
11.6M
      q_b = *q_a;
133
11.6M
    }
134
11.6M
  }
135
12.4M
  temp_result = (WORD64)a + (WORD64)b;
136
12.4M
  if (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
137
1.21M
    temp_result = temp_result >> 1;
138
1.21M
    *q_a -= 1;
139
1.21M
  }
140
141
12.4M
  return (WORD32)temp_result;
142
48.4M
}
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.26k
static PLATFORM_INLINE WORD32 ixheaacd_mps_add32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
109
1.26k
  WORD64 temp_result;
110
111
1.26k
  if (a == 0 || b == 0) {
112
778
    if (b == 0) {
113
0
      return a;
114
778
    } else {
115
778
      *q_a = q_b;
116
778
      return b;
117
778
    }
118
778
  }
119
490
  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
490
  } else {
128
490
    if ((q_b - (*q_a)) > 31) {
129
0
      b = 0;
130
490
    } else {
131
490
      b = (b >> (q_b - (*q_a)));
132
490
      q_b = *q_a;
133
490
    }
134
490
  }
135
490
  temp_result = (WORD64)a + (WORD64)b;
136
490
  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
490
  return (WORD32)temp_result;
142
1.26k
}
143
144
60.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
60.4M
  WORD64 temp_result;
146
60.4M
  WORD32 temp;
147
148
60.4M
  if (a == 0 || b == 0) {
149
48.5M
    temp_result = 0;
150
48.5M
    *q_a = 15;
151
48.5M
    return (WORD32)temp_result;
152
48.5M
  }
153
154
11.8M
  *q_a = *q_a + q_b;
155
156
11.8M
  temp_result = (WORD64)a * (WORD64)b;
157
11.8M
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
11.8M
  if (0 != temp) {
159
3.42M
    *q_a -= temp;
160
3.42M
    temp_result = temp_result >> temp;
161
3.42M
  }
162
163
11.8M
  return (WORD32)temp_result;
164
60.4M
}
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
60.4M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
60.4M
  WORD64 temp_result;
146
60.4M
  WORD32 temp;
147
148
60.4M
  if (a == 0 || b == 0) {
149
48.5M
    temp_result = 0;
150
48.5M
    *q_a = 15;
151
48.5M
    return (WORD32)temp_result;
152
48.5M
  }
153
154
11.8M
  *q_a = *q_a + q_b;
155
156
11.8M
  temp_result = (WORD64)a * (WORD64)b;
157
11.8M
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
11.8M
  if (0 != temp) {
159
3.42M
    *q_a -= temp;
160
3.42M
    temp_result = temp_result >> temp;
161
3.42M
  }
162
163
11.8M
  return (WORD32)temp_result;
164
60.4M
}
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
2.48k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
145
2.48k
  WORD64 temp_result;
146
2.48k
  WORD32 temp;
147
148
2.48k
  if (a == 0 || b == 0) {
149
1.60k
    temp_result = 0;
150
1.60k
    *q_a = 15;
151
1.60k
    return (WORD32)temp_result;
152
1.60k
  }
153
154
885
  *q_a = *q_a + q_b;
155
156
885
  temp_result = (WORD64)a * (WORD64)b;
157
885
  temp = ixheaacd_mps_get_rshift_bits(temp_result);
158
885
  if (0 != temp) {
159
0
    *q_a -= temp;
160
0
    temp_result = temp_result >> temp;
161
0
  }
162
163
885
  return (WORD32)temp_result;
164
2.48k
}
165
166
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x32(WORD32 a, WORD32 b, WORD16 *q_a,
167
1.19M
                                                     WORD16 q_b) {
168
1.19M
  WORD64 temp_result;
169
1.19M
  if (a == 0 || b == 0) {
170
306k
    temp_result = 0;
171
306k
    *q_a = 15;
172
306k
    return (WORD32)temp_result;
173
306k
  }
174
885k
  *q_a = *q_a + q_b;
175
176
885k
  temp_result = (WORD64)a * (WORD64)b;
177
22.5M
  while (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
178
21.6M
    temp_result = temp_result >> 1;
179
21.6M
    *q_a -= 1;
180
21.6M
  }
181
182
885k
  return (WORD32)temp_result;
183
1.19M
}
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.19M
                                                     WORD16 q_b) {
168
1.19M
  WORD64 temp_result;
169
1.19M
  if (a == 0 || b == 0) {
170
306k
    temp_result = 0;
171
306k
    *q_a = 15;
172
306k
    return (WORD32)temp_result;
173
306k
  }
174
885k
  *q_a = *q_a + q_b;
175
176
885k
  temp_result = (WORD64)a * (WORD64)b;
177
22.5M
  while (temp_result > (WORD32)0x7fffffff || temp_result < (WORD32)0x80000000) {
178
21.6M
    temp_result = temp_result >> 1;
179
21.6M
    *q_a -= 1;
180
21.6M
  }
181
182
885k
  return (WORD32)temp_result;
183
1.19M
}
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
43.0M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
43.0M
  WORD32 result;
187
43.0M
  WORD64 temp_result;
188
189
43.0M
  temp_result = (WORD64)a * (WORD64)b;
190
43.0M
  result = (WORD32)(temp_result >> n);
191
192
43.0M
  return (result);
193
43.0M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_n
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_n
Line
Count
Source
185
42.8M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
42.8M
  WORD32 result;
187
42.8M
  WORD64 temp_result;
188
189
42.8M
  temp_result = (WORD64)a * (WORD64)b;
190
42.8M
  result = (WORD32)(temp_result >> n);
191
192
42.8M
  return (result);
193
42.8M
}
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
148k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_n(WORD32 a, WORD32 b, WORD16 n) {
186
148k
  WORD32 result;
187
148k
  WORD64 temp_result;
188
189
148k
  temp_result = (WORD64)a * (WORD64)b;
190
148k
  result = (WORD32)(temp_result >> n);
191
192
148k
  return (result);
193
148k
}
194
195
1.55G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
1.55G
  WORD32 result;
197
1.55G
  WORD64 temp_result;
198
199
1.55G
  temp_result = (WORD64)a * (WORD64)b;
200
1.55G
  result = (WORD32)(temp_result >> 30);
201
202
1.55G
  return (result);
203
1.55G
}
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
2.32M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
2.32M
  WORD32 result;
197
2.32M
  WORD64 temp_result;
198
199
2.32M
  temp_result = (WORD64)a * (WORD64)b;
200
2.32M
  result = (WORD32)(temp_result >> 30);
201
202
2.32M
  return (result);
203
2.32M
}
ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
1.55G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
1.55G
  WORD32 result;
197
1.55G
  WORD64 temp_result;
198
199
1.55G
  temp_result = (WORD64)a * (WORD64)b;
200
1.55G
  result = (WORD32)(temp_result >> 30);
201
202
1.55G
  return (result);
203
1.55G
}
ixheaacd_mps_process.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
1.08M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
1.08M
  WORD32 result;
197
1.08M
  WORD64 temp_result;
198
199
1.08M
  temp_result = (WORD64)a * (WORD64)b;
200
1.08M
  result = (WORD32)(temp_result >> 30);
201
202
1.08M
  return (result);
203
1.08M
}
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
149k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
149k
  WORD32 result;
197
149k
  WORD64 temp_result;
198
199
149k
  temp_result = (WORD64)a * (WORD64)b;
200
149k
  result = (WORD32)(temp_result >> 30);
201
202
149k
  return (result);
203
149k
}
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
16.5k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
16.5k
  WORD32 result;
197
16.5k
  WORD64 temp_result;
198
199
16.5k
  temp_result = (WORD64)a * (WORD64)b;
200
16.5k
  result = (WORD32)(temp_result >> 30);
201
202
16.5k
  return (result);
203
16.5k
}
ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_30
Line
Count
Source
195
11.0k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
11.0k
  WORD32 result;
197
11.0k
  WORD64 temp_result;
198
199
11.0k
  temp_result = (WORD64)a * (WORD64)b;
200
11.0k
  result = (WORD32)(temp_result >> 30);
201
202
11.0k
  return (result);
203
11.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
50.9k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_30(WORD32 a, WORD32 b) {
196
50.9k
  WORD32 result;
197
50.9k
  WORD64 temp_result;
198
199
50.9k
  temp_result = (WORD64)a * (WORD64)b;
200
50.9k
  result = (WORD32)(temp_result >> 30);
201
202
50.9k
  return (result);
203
50.9k
}
204
205
27.4k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_16(WORD32 a, WORD32 b) {
206
27.4k
  WORD32 result;
207
27.4k
  WORD64 temp_result;
208
209
27.4k
  temp_result = (WORD64)a * (WORD64)b;
210
27.4k
  result = (WORD32)(temp_result >> 16);
211
27.4k
  return (result);
212
27.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
27.4k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_16(WORD32 a, WORD32 b) {
206
27.4k
  WORD32 result;
207
27.4k
  WORD64 temp_result;
208
209
27.4k
  temp_result = (WORD64)a * (WORD64)b;
210
27.4k
  result = (WORD32)(temp_result >> 16);
211
27.4k
  return (result);
212
27.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
2.02G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
2.02G
  WORD32 result;
216
2.02G
  WORD64 temp_result;
217
2.02G
  temp_result = (WORD64)a * (WORD64)b;
218
2.02G
  result = (WORD32)(temp_result >> 16);
219
2.02G
  return (result);
220
2.02G
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32x16_shr_16
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32x16_shr_16
Line
Count
Source
214
1.97G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
1.97G
  WORD32 result;
216
1.97G
  WORD64 temp_result;
217
1.97G
  temp_result = (WORD64)a * (WORD64)b;
218
1.97G
  result = (WORD32)(temp_result >> 16);
219
1.97G
  return (result);
220
1.97G
}
ixheaacd_mps_hybrid_filt.c:ixheaacd_mps_mult32x16_shr_16
Line
Count
Source
214
40.3M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32x16_shr_16(WORD32 a, WORD32 b) {
215
40.3M
  WORD32 result;
216
40.3M
  WORD64 temp_result;
217
40.3M
  temp_result = (WORD64)a * (WORD64)b;
218
40.3M
  result = (WORD32)(temp_result >> 16);
219
40.3M
  return (result);
220
40.3M
}
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
1.53G
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
1.53G
  WORD32 result;
224
1.53G
  WORD64 temp_result;
225
1.53G
  temp_result = (WORD64)a * (WORD64)b;
226
1.53G
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
1.53G
  return (result);
229
1.53G
}
ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
96.3M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
96.3M
  WORD32 result;
224
96.3M
  WORD64 temp_result;
225
96.3M
  temp_result = (WORD64)a * (WORD64)b;
226
96.3M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
96.3M
  return (result);
229
96.3M
}
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
91.0M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
91.0M
  WORD32 result;
224
91.0M
  WORD64 temp_result;
225
91.0M
  temp_result = (WORD64)a * (WORD64)b;
226
91.0M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
91.0M
  return (result);
229
91.0M
}
ixheaacd_mps_polyphase.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
109M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
109M
  WORD32 result;
224
109M
  WORD64 temp_result;
225
109M
  temp_result = (WORD64)a * (WORD64)b;
226
109M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
109M
  return (result);
229
109M
}
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
2.76M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
2.76M
  WORD32 result;
224
2.76M
  WORD64 temp_result;
225
2.76M
  temp_result = (WORD64)a * (WORD64)b;
226
2.76M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
2.76M
  return (result);
229
2.76M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
8.23M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
8.23M
  WORD32 result;
224
8.23M
  WORD64 temp_result;
225
8.23M
  temp_result = (WORD64)a * (WORD64)b;
226
8.23M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
8.23M
  return (result);
229
8.23M
}
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
663M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
663M
  WORD32 result;
224
663M
  WORD64 temp_result;
225
663M
  temp_result = (WORD64)a * (WORD64)b;
226
663M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
663M
  return (result);
229
663M
}
ixheaacd_mps_apply_m2.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
556M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
556M
  WORD32 result;
224
556M
  WORD64 temp_result;
225
556M
  temp_result = (WORD64)a * (WORD64)b;
226
556M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
556M
  return (result);
229
556M
}
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
693k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
693k
  WORD32 result;
224
693k
  WORD64 temp_result;
225
693k
  temp_result = (WORD64)a * (WORD64)b;
226
693k
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
693k
  return (result);
229
693k
}
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
145k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
145k
  WORD32 result;
224
145k
  WORD64 temp_result;
225
145k
  temp_result = (WORD64)a * (WORD64)b;
226
145k
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
145k
  return (result);
229
145k
}
ixheaacd_mps_calc_m1m2_tree_727x.c:ixheaacd_mps_mult32_shr_15
Line
Count
Source
222
751k
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
751k
  WORD32 result;
224
751k
  WORD64 temp_result;
225
751k
  temp_result = (WORD64)a * (WORD64)b;
226
751k
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
751k
  return (result);
229
751k
}
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
4.69M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_15(WORD32 a, WORD32 b) {
223
4.69M
  WORD32 result;
224
4.69M
  WORD64 temp_result;
225
4.69M
  temp_result = (WORD64)a * (WORD64)b;
226
4.69M
  result = (WORD32)ixheaac_sat64_32(temp_result >> 15);
227
228
4.69M
  return (result);
229
4.69M
}
230
231
96.2M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_14(WORD32 a, WORD32 b) {
232
96.2M
  WORD32 result;
233
96.2M
  WORD64 temp_result;
234
235
96.2M
  temp_result = (WORD64)a * (WORD64)b;
236
96.2M
  result = (WORD32)(temp_result >> 16);
237
96.2M
  result = result << 2;
238
239
96.2M
  return (result);
240
96.2M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_mult32_shr_14
ixheaacd_mps_decorr.c:ixheaacd_mps_mult32_shr_14
Line
Count
Source
231
96.2M
static PLATFORM_INLINE WORD32 ixheaacd_mps_mult32_shr_14(WORD32 a, WORD32 b) {
232
96.2M
  WORD32 result;
233
96.2M
  WORD64 temp_result;
234
235
96.2M
  temp_result = (WORD64)a * (WORD64)b;
236
96.2M
  result = (WORD32)(temp_result >> 16);
237
96.2M
  result = result << 2;
238
239
96.2M
  return (result);
240
96.2M
}
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
25.6M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
25.6M
  WORD32 quotient;
244
25.6M
  UWORD32 mantissa_nr, mantissa_dr;
245
25.6M
  LOOPINDEX i;
246
25.6M
  WORD q_nr, q_dr;
247
248
25.6M
  quotient = 0;
249
250
25.6M
  if (0 == b) {
251
3.43M
    *q_format = 0;
252
3.43M
    return (a);
253
3.43M
  }
254
255
22.1M
  quotient = 0;
256
257
22.1M
  q_nr = ixheaac_norm32(a);
258
22.1M
  mantissa_nr = (UWORD32)a << (q_nr);
259
22.1M
  q_dr = ixheaac_norm32(b);
260
22.1M
  mantissa_dr = (UWORD32)b << (q_dr);
261
22.1M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
710M
  for (i = 0; i < 31; i++) {
264
688M
    quotient <<= 1;
265
266
688M
    if (mantissa_nr >= mantissa_dr) {
267
323M
      mantissa_nr -= mantissa_dr;
268
323M
      quotient += 1;
269
323M
    }
270
688M
    mantissa_nr <<= 1;
271
688M
  }
272
273
22.1M
  if ((a ^ b) < 0) {
274
293k
    return -(quotient);
275
293k
  }
276
277
21.9M
  return quotient;
278
22.1M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_div_32
ixheaacd_mps_decorr.c:ixheaacd_mps_div_32
Line
Count
Source
242
12.7M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
12.7M
  WORD32 quotient;
244
12.7M
  UWORD32 mantissa_nr, mantissa_dr;
245
12.7M
  LOOPINDEX i;
246
12.7M
  WORD q_nr, q_dr;
247
248
12.7M
  quotient = 0;
249
250
12.7M
  if (0 == b) {
251
893k
    *q_format = 0;
252
893k
    return (a);
253
893k
  }
254
255
11.8M
  quotient = 0;
256
257
11.8M
  q_nr = ixheaac_norm32(a);
258
11.8M
  mantissa_nr = (UWORD32)a << (q_nr);
259
11.8M
  q_dr = ixheaac_norm32(b);
260
11.8M
  mantissa_dr = (UWORD32)b << (q_dr);
261
11.8M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
378M
  for (i = 0; i < 31; i++) {
264
367M
    quotient <<= 1;
265
266
367M
    if (mantissa_nr >= mantissa_dr) {
267
184M
      mantissa_nr -= mantissa_dr;
268
184M
      quotient += 1;
269
184M
    }
270
367M
    mantissa_nr <<= 1;
271
367M
  }
272
273
11.8M
  if ((a ^ b) < 0) {
274
0
    return -(quotient);
275
0
  }
276
277
11.8M
  return quotient;
278
11.8M
}
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
11.1M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
11.1M
  WORD32 quotient;
244
11.1M
  UWORD32 mantissa_nr, mantissa_dr;
245
11.1M
  LOOPINDEX i;
246
11.1M
  WORD q_nr, q_dr;
247
248
11.1M
  quotient = 0;
249
250
11.1M
  if (0 == b) {
251
2.47M
    *q_format = 0;
252
2.47M
    return (a);
253
2.47M
  }
254
255
8.71M
  quotient = 0;
256
257
8.71M
  q_nr = ixheaac_norm32(a);
258
8.71M
  mantissa_nr = (UWORD32)a << (q_nr);
259
8.71M
  q_dr = ixheaac_norm32(b);
260
8.71M
  mantissa_dr = (UWORD32)b << (q_dr);
261
8.71M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
278M
  for (i = 0; i < 31; i++) {
264
270M
    quotient <<= 1;
265
266
270M
    if (mantissa_nr >= mantissa_dr) {
267
127M
      mantissa_nr -= mantissa_dr;
268
127M
      quotient += 1;
269
127M
    }
270
270M
    mantissa_nr <<= 1;
271
270M
  }
272
273
8.71M
  if ((a ^ b) < 0) {
274
293k
    return -(quotient);
275
293k
  }
276
277
8.41M
  return quotient;
278
8.71M
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_div_32
Line
Count
Source
242
1.10M
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
1.10M
  WORD32 quotient;
244
1.10M
  UWORD32 mantissa_nr, mantissa_dr;
245
1.10M
  LOOPINDEX i;
246
1.10M
  WORD q_nr, q_dr;
247
248
1.10M
  quotient = 0;
249
250
1.10M
  if (0 == b) {
251
0
    *q_format = 0;
252
0
    return (a);
253
0
  }
254
255
1.10M
  quotient = 0;
256
257
1.10M
  q_nr = ixheaac_norm32(a);
258
1.10M
  mantissa_nr = (UWORD32)a << (q_nr);
259
1.10M
  q_dr = ixheaac_norm32(b);
260
1.10M
  mantissa_dr = (UWORD32)b << (q_dr);
261
1.10M
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
35.4M
  for (i = 0; i < 31; i++) {
264
34.3M
    quotient <<= 1;
265
266
34.3M
    if (mantissa_nr >= mantissa_dr) {
267
5.44M
      mantissa_nr -= mantissa_dr;
268
5.44M
      quotient += 1;
269
5.44M
    }
270
34.3M
    mantissa_nr <<= 1;
271
34.3M
  }
272
273
1.10M
  if ((a ^ b) < 0) {
274
0
    return -(quotient);
275
0
  }
276
277
1.10M
  return quotient;
278
1.10M
}
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
595k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div_32(WORD32 a, WORD32 b, WORD16 *q_format) {
243
595k
  WORD32 quotient;
244
595k
  UWORD32 mantissa_nr, mantissa_dr;
245
595k
  LOOPINDEX i;
246
595k
  WORD q_nr, q_dr;
247
248
595k
  quotient = 0;
249
250
595k
  if (0 == b) {
251
61.7k
    *q_format = 0;
252
61.7k
    return (a);
253
61.7k
  }
254
255
533k
  quotient = 0;
256
257
533k
  q_nr = ixheaac_norm32(a);
258
533k
  mantissa_nr = (UWORD32)a << (q_nr);
259
533k
  q_dr = ixheaac_norm32(b);
260
533k
  mantissa_dr = (UWORD32)b << (q_dr);
261
533k
  *q_format = (WORD)(30 + q_nr - q_dr);
262
263
17.0M
  for (i = 0; i < 31; i++) {
264
16.5M
    quotient <<= 1;
265
266
16.5M
    if (mantissa_nr >= mantissa_dr) {
267
5.52M
      mantissa_nr -= mantissa_dr;
268
5.52M
      quotient += 1;
269
5.52M
    }
270
16.5M
    mantissa_nr <<= 1;
271
16.5M
  }
272
273
533k
  if ((a ^ b) < 0) {
274
148
    return -(quotient);
275
148
  }
276
277
533k
  return quotient;
278
533k
}
279
280
1.81M
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
1.81M
  WORD64 result;
282
1.81M
  if (qtemp == n)
283
676k
    return temp;
284
1.13M
  else if (qtemp > n)
285
979k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
159k
  else {
287
159k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
159k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
159k
      temp = (WORD32)result;
292
159k
  }
293
1.13M
  return temp;
294
1.81M
}
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
472k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
472k
  WORD64 result;
282
472k
  if (qtemp == n)
283
26
    return temp;
284
472k
  else if (qtemp > n)
285
448k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
23.1k
  else {
287
23.1k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
23.1k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
23.1k
      temp = (WORD32)result;
292
23.1k
  }
293
472k
  return temp;
294
472k
}
ixheaacd_mps_temp_process.c:ixheaacd_mps_convert_to_qn
Line
Count
Source
280
749k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
749k
  WORD64 result;
282
749k
  if (qtemp == n)
283
673k
    return temp;
284
76.5k
  else if (qtemp > n)
285
0
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
76.5k
  else {
287
76.5k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
76.5k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
76.5k
      temp = (WORD32)result;
292
76.5k
  }
293
76.5k
  return temp;
294
749k
}
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
594k
static WORD32 ixheaacd_mps_convert_to_qn(WORD32 temp, WORD16 qtemp, WORD16 n) {
281
594k
  WORD64 result;
282
594k
  if (qtemp == n)
283
2.98k
    return temp;
284
591k
  else if (qtemp > n)
285
530k
    temp = (WORD32)((WORD64)temp >> (qtemp - n));
286
60.3k
  else {
287
60.3k
    result = (WORD32)((WORD64)temp << (n - qtemp));
288
60.3k
    if (result > (WORD32)0x7fffffff || result < (WORD32)0x80000000) {
289
0
      return 0;
290
0
    } else
291
60.3k
      temp = (WORD32)result;
292
60.3k
  }
293
591k
  return temp;
294
594k
}
295
296
184k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div32_in_q15(WORD32 num, WORD32 den) {
297
184k
  WORD32 quotient;
298
184k
  WORD16 q_quotient;
299
300
184k
  quotient = ixheaacd_mps_div_32(num, den, &q_quotient);
301
184k
  quotient = ixheaacd_mps_convert_to_qn(quotient, q_quotient, 15);
302
184k
  return quotient;
303
184k
}
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
184k
static PLATFORM_INLINE WORD32 ixheaacd_mps_div32_in_q15(WORD32 num, WORD32 den) {
297
184k
  WORD32 quotient;
298
184k
  WORD16 q_quotient;
299
300
184k
  quotient = ixheaacd_mps_div_32(num, den, &q_quotient);
301
184k
  quotient = ixheaacd_mps_convert_to_qn(quotient, q_quotient, 15);
302
184k
  return quotient;
303
184k
}
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
38.1M
static PLATFORM_INLINE WORD32 ixheaacd_mps_comp(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
367
38.1M
  if (a == 0 || b == 0) {
368
9.76M
    if (a == 0) {
369
8.83M
      if (b < 0)
370
0
        return 1;
371
8.83M
      else
372
8.83M
        return 0;
373
8.83M
    } else if (b == 0) {
374
922k
      if (a > 0)
375
922k
        return 1;
376
0
      else
377
0
        return 0;
378
922k
    }
379
9.76M
  }
380
381
28.4M
  if (*q_a > q_b) {
382
18.3M
    a = (a >> ((*q_a) - q_b));
383
18.3M
  } else {
384
10.1M
    b = (b >> (q_b - (*q_a)));
385
10.1M
  }
386
387
28.4M
  if (a > b)
388
11.8M
    return 1;
389
16.5M
  else
390
16.5M
    return 0;
391
28.4M
}
Unexecuted instantiation: ixheaacd_mps_dec.c:ixheaacd_mps_comp
ixheaacd_mps_decorr.c:ixheaacd_mps_comp
Line
Count
Source
366
38.1M
static PLATFORM_INLINE WORD32 ixheaacd_mps_comp(WORD32 a, WORD32 b, WORD16 *q_a, WORD16 q_b) {
367
38.1M
  if (a == 0 || b == 0) {
368
9.76M
    if (a == 0) {
369
8.83M
      if (b < 0)
370
0
        return 1;
371
8.83M
      else
372
8.83M
        return 0;
373
8.83M
    } else if (b == 0) {
374
922k
      if (a > 0)
375
922k
        return 1;
376
0
      else
377
0
        return 0;
378
922k
    }
379
9.76M
  }
380
381
28.4M
  if (*q_a > q_b) {
382
18.3M
    a = (a >> ((*q_a) - q_b));
383
18.3M
  } else {
384
10.1M
    b = (b >> (q_b - (*q_a)));
385
10.1M
  }
386
387
28.4M
  if (a > b)
388
11.8M
    return 1;
389
16.5M
  else
390
16.5M
    return 0;
391
28.4M
}
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 */