/src/avm/avm_ports/bitops.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2021, Alliance for Open Media. All rights reserved |
3 | | * |
4 | | * This source code is subject to the terms of the BSD 3-Clause Clear License |
5 | | * and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear |
6 | | * License was not distributed with this source code in the LICENSE file, you |
7 | | * can obtain it at aomedia.org/license/software-license/bsd-3-c-c/. If the |
8 | | * Alliance for Open Media Patent License 1.0 was not distributed with this |
9 | | * source code in the PATENTS file, you can obtain it at |
10 | | * aomedia.org/license/patent-license/. |
11 | | */ |
12 | | |
13 | | #ifndef AVM_AVM_PORTS_BITOPS_H_ |
14 | | #define AVM_AVM_PORTS_BITOPS_H_ |
15 | | |
16 | | #include <assert.h> |
17 | | #include <stdint.h> |
18 | | #include <stdlib.h> |
19 | | |
20 | | #include "avm_ports/msvc.h" |
21 | | #include "config/avm_config.h" |
22 | | |
23 | | #ifdef _MSC_VER |
24 | | #if defined(_M_X64) || defined(_M_IX86) |
25 | | #include <intrin.h> |
26 | | #define USE_MSC_INTRINSICS |
27 | | #endif |
28 | | #endif |
29 | | |
30 | | #ifdef __cplusplus |
31 | | extern "C" { |
32 | | #endif |
33 | | |
34 | | // get_msb: |
35 | | // Returns (int)floor(log2(n)). n must be > 0. |
36 | | // These versions of get_msb() are only valid when n != 0 because all |
37 | | // of the optimized versions are undefined when n == 0: |
38 | | // https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html |
39 | | |
40 | | // use GNU builtins where available. |
41 | | #if defined(__GNUC__) && \ |
42 | | ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ >= 4) |
43 | 89.5M | static INLINE int get_msb(unsigned int n) { |
44 | 89.5M | assert(n != 0); |
45 | 89.5M | return 31 ^ __builtin_clz(n); |
46 | 89.5M | } Line | Count | Source | 43 | 30.0M | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 30.0M | return 31 ^ __builtin_clz(n); | 46 | 30.0M | } |
Unexecuted instantiation: annexF.c:get_msb Line | Count | Source | 43 | 137k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 137k | return 31 ^ __builtin_clz(n); | 46 | 137k | } |
Line | Count | Source | 43 | 73.9k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 73.9k | return 31 ^ __builtin_clz(n); | 46 | 73.9k | } |
Unexecuted instantiation: decoder.c:get_msb Unexecuted instantiation: decodetxb.c:get_msb Line | Count | Source | 43 | 30.2k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 30.2k | return 31 ^ __builtin_clz(n); | 46 | 30.2k | } |
Unexecuted instantiation: obu_fgm.c:get_msb Line | Count | Source | 43 | 1.56k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 1.56k | return 31 ^ __builtin_clz(n); | 46 | 1.56k | } |
Unexecuted instantiation: obu_ci.c:get_msb Unexecuted instantiation: obu_atlas.c:get_msb Unexecuted instantiation: obu_lcr.c:get_msb Unexecuted instantiation: obu_ops.c:get_msb Unexecuted instantiation: obu_buf.c:get_msb Unexecuted instantiation: avm_dsp_rtcd.c:get_msb Unexecuted instantiation: av2_rtcd.c:get_msb bitreader_buffer.c:get_msb Line | Count | Source | 43 | 77.7k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 77.7k | return 31 ^ __builtin_clz(n); | 46 | 77.7k | } |
Unexecuted instantiation: blend_a64_hmask.c:get_msb Unexecuted instantiation: blend_a64_mask.c:get_msb Unexecuted instantiation: blend_a64_vmask.c:get_msb Unexecuted instantiation: loopfilter.c:get_msb binary_codes_reader.c:get_msb Line | Count | Source | 43 | 9.18k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 9.18k | return 31 ^ __builtin_clz(n); | 46 | 9.18k | } |
Unexecuted instantiation: bitreader.c:get_msb Unexecuted instantiation: entdec.c:get_msb Unexecuted instantiation: avm_convolve_copy_sse2.c:get_msb Unexecuted instantiation: avm_asm_stubs.c:get_msb Unexecuted instantiation: highbd_convolve_sse2.c:get_msb Unexecuted instantiation: highbd_convolve_ssse3.c:get_msb Unexecuted instantiation: blend_a64_hmask_sse4.c:get_msb Unexecuted instantiation: blend_a64_mask_sse4.c:get_msb Unexecuted instantiation: blend_a64_vmask_sse4.c:get_msb Unexecuted instantiation: loopfilter_sse4.c:get_msb Unexecuted instantiation: avm_convolve_copy_avx2.c:get_msb Unexecuted instantiation: highbd_convolve_avx2.c:get_msb Unexecuted instantiation: intrapred_avx2.c:get_msb Unexecuted instantiation: blend_a64_mask_avx2.c:get_msb Line | Count | Source | 43 | 52.0M | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 52.0M | return 31 ^ __builtin_clz(n); | 46 | 52.0M | } |
Unexecuted instantiation: annexA.c:get_msb Unexecuted instantiation: alloccommon.c:get_msb Unexecuted instantiation: av2_loopfilter.c:get_msb Unexecuted instantiation: av2_txfm.c:get_msb Unexecuted instantiation: blockd.c:get_msb Unexecuted instantiation: cdef.c:get_msb Unexecuted instantiation: gdf.c:get_msb Unexecuted instantiation: gdf_block.c:get_msb Line | Count | Source | 43 | 371k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 371k | return 31 ^ __builtin_clz(n); | 46 | 371k | } |
Line | Count | Source | 43 | 844k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 844k | return 31 ^ __builtin_clz(n); | 46 | 844k | } |
Unexecuted instantiation: convolve.c:get_msb Unexecuted instantiation: entropy.c:get_msb Unexecuted instantiation: entropymode.c:get_msb Unexecuted instantiation: entropymv.c:get_msb Unexecuted instantiation: idct.c:get_msb Unexecuted instantiation: level.c:get_msb Unexecuted instantiation: mvref_common.c:get_msb Unexecuted instantiation: predefined_qm.c:get_msb Unexecuted instantiation: pred_common.c:get_msb Unexecuted instantiation: quant_common.c:get_msb Line | Count | Source | 43 | 27.3k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 27.3k | return 31 ^ __builtin_clz(n); | 46 | 27.3k | } |
Line | Count | Source | 43 | 55.7k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 55.7k | return 31 ^ __builtin_clz(n); | 46 | 55.7k | } |
Unexecuted instantiation: restoration.c:get_msb Unexecuted instantiation: scale.c:get_msb Unexecuted instantiation: scan.c:get_msb Unexecuted instantiation: seg_common.c:get_msb Unexecuted instantiation: thread_common.c:get_msb Unexecuted instantiation: tile_common.c:get_msb Unexecuted instantiation: timing.c:get_msb Unexecuted instantiation: tip.c:get_msb Unexecuted instantiation: txb_common.c:get_msb Unexecuted instantiation: warped_motion.c:get_msb Unexecuted instantiation: hr_coding.c:get_msb Unexecuted instantiation: intra_matrix.c:get_msb Unexecuted instantiation: intra_dip.cc:get_msb(unsigned int) Unexecuted instantiation: ccso.c:get_msb Unexecuted instantiation: bru.c:get_msb Unexecuted instantiation: obu_qm.c:get_msb Unexecuted instantiation: cdef_block_sse2.c:get_msb Unexecuted instantiation: cfl_sse2.c:get_msb Unexecuted instantiation: cdef_block_ssse3.c:get_msb Unexecuted instantiation: cfl_ssse3.c:get_msb Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_msb Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_msb Unexecuted instantiation: reconinter_ssse3.c:get_msb Unexecuted instantiation: cdef_block_sse4.c:get_msb Unexecuted instantiation: av2_convolve_horiz_rs_sse4.c:get_msb Unexecuted instantiation: av2_convolve_scale_sse4.c:get_msb Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_msb Unexecuted instantiation: highbd_inv_txfm_sse4.c:get_msb Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_msb Unexecuted instantiation: highbd_warp_plane_sse4.c:get_msb Unexecuted instantiation: intra_edge_sse4.c:get_msb Unexecuted instantiation: optflow_refine_sse4.c:get_msb Unexecuted instantiation: reconinter_sse4.c:get_msb cdef_block_avx2.c:get_msb Line | Count | Source | 43 | 4.59M | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 4.59M | return 31 ^ __builtin_clz(n); | 46 | 4.59M | } |
Unexecuted instantiation: affine_optflow_refine_avx2.c:get_msb Unexecuted instantiation: bawp_avx2.c:get_msb Line | Count | Source | 43 | 513k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 513k | return 31 ^ __builtin_clz(n); | 46 | 513k | } |
Unexecuted instantiation: highbd_ccso_avx2.c:get_msb Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_msb Unexecuted instantiation: highbd_inv_txfm_avx2.c:get_msb Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_msb Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_msb Unexecuted instantiation: highbd_warp_affine_avx2.c:get_msb Unexecuted instantiation: reconinter_avx2.c:get_msb Unexecuted instantiation: gdf_block_avx2.c:get_msb Unexecuted instantiation: avm_convolve.c:get_msb Unexecuted instantiation: bitwriter_buffer.c:get_msb Unexecuted instantiation: entcode.c:get_msb Line | Count | Source | 43 | 253k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 253k | return 31 ^ __builtin_clz(n); | 46 | 253k | } |
Unexecuted instantiation: sad.c:get_msb highbd_intrapred_sse2.c:get_msb Line | Count | Source | 43 | 483k | static INLINE int get_msb(unsigned int n) { | 44 | | assert(n != 0); | 45 | 483k | return 31 ^ __builtin_clz(n); | 46 | 483k | } |
Unexecuted instantiation: av2_inv_txfm2d.c:get_msb |
47 | | #elif defined(USE_MSC_INTRINSICS) |
48 | | #pragma intrinsic(_BitScanReverse) |
49 | | |
50 | | static INLINE int get_msb(unsigned int n) { |
51 | | unsigned long first_set_bit; |
52 | | assert(n != 0); |
53 | | _BitScanReverse(&first_set_bit, n); |
54 | | return first_set_bit; |
55 | | } |
56 | | #undef USE_MSC_INTRINSICS |
57 | | #else |
58 | | static INLINE int get_msb(unsigned int n) { |
59 | | int log = 0; |
60 | | unsigned int value = n; |
61 | | int i; |
62 | | |
63 | | assert(n != 0); |
64 | | |
65 | | for (i = 4; i >= 0; --i) { |
66 | | const int shift = (1 << i); |
67 | | const unsigned int x = value >> shift; |
68 | | if (x != 0) { |
69 | | value = x; |
70 | | log += shift; |
71 | | } |
72 | | } |
73 | | return log; |
74 | | } |
75 | | #endif |
76 | | |
77 | 0 | static INLINE int get_msb_signed(int32_t n) { |
78 | 0 | return n == 0 ? 0 : get_msb((unsigned int)abs(n)); |
79 | 0 | } Unexecuted instantiation: av2_dx_iface.c:get_msb_signed Unexecuted instantiation: annexF.c:get_msb_signed Unexecuted instantiation: decodeframe.c:get_msb_signed Unexecuted instantiation: decodemv.c:get_msb_signed Unexecuted instantiation: decoder.c:get_msb_signed Unexecuted instantiation: decodetxb.c:get_msb_signed Unexecuted instantiation: detokenize.c:get_msb_signed Unexecuted instantiation: obu_fgm.c:get_msb_signed Unexecuted instantiation: obu.c:get_msb_signed Unexecuted instantiation: obu_ci.c:get_msb_signed Unexecuted instantiation: obu_atlas.c:get_msb_signed Unexecuted instantiation: obu_lcr.c:get_msb_signed Unexecuted instantiation: obu_ops.c:get_msb_signed Unexecuted instantiation: obu_buf.c:get_msb_signed Unexecuted instantiation: avm_dsp_rtcd.c:get_msb_signed Unexecuted instantiation: av2_rtcd.c:get_msb_signed Unexecuted instantiation: bitreader_buffer.c:get_msb_signed Unexecuted instantiation: blend_a64_hmask.c:get_msb_signed Unexecuted instantiation: blend_a64_mask.c:get_msb_signed Unexecuted instantiation: blend_a64_vmask.c:get_msb_signed Unexecuted instantiation: loopfilter.c:get_msb_signed Unexecuted instantiation: binary_codes_reader.c:get_msb_signed Unexecuted instantiation: bitreader.c:get_msb_signed Unexecuted instantiation: entdec.c:get_msb_signed Unexecuted instantiation: avm_convolve_copy_sse2.c:get_msb_signed Unexecuted instantiation: avm_asm_stubs.c:get_msb_signed Unexecuted instantiation: highbd_convolve_sse2.c:get_msb_signed Unexecuted instantiation: highbd_convolve_ssse3.c:get_msb_signed Unexecuted instantiation: blend_a64_hmask_sse4.c:get_msb_signed Unexecuted instantiation: blend_a64_mask_sse4.c:get_msb_signed Unexecuted instantiation: blend_a64_vmask_sse4.c:get_msb_signed Unexecuted instantiation: loopfilter_sse4.c:get_msb_signed Unexecuted instantiation: avm_convolve_copy_avx2.c:get_msb_signed Unexecuted instantiation: highbd_convolve_avx2.c:get_msb_signed Unexecuted instantiation: intrapred_avx2.c:get_msb_signed Unexecuted instantiation: blend_a64_mask_avx2.c:get_msb_signed Unexecuted instantiation: entdec_avx2.c:get_msb_signed Unexecuted instantiation: annexA.c:get_msb_signed Unexecuted instantiation: alloccommon.c:get_msb_signed Unexecuted instantiation: av2_loopfilter.c:get_msb_signed Unexecuted instantiation: av2_txfm.c:get_msb_signed Unexecuted instantiation: blockd.c:get_msb_signed Unexecuted instantiation: cdef.c:get_msb_signed Unexecuted instantiation: gdf.c:get_msb_signed Unexecuted instantiation: gdf_block.c:get_msb_signed Unexecuted instantiation: cdef_block.c:get_msb_signed Unexecuted instantiation: cfl.c:get_msb_signed Unexecuted instantiation: convolve.c:get_msb_signed Unexecuted instantiation: entropy.c:get_msb_signed Unexecuted instantiation: entropymode.c:get_msb_signed Unexecuted instantiation: entropymv.c:get_msb_signed Unexecuted instantiation: idct.c:get_msb_signed Unexecuted instantiation: level.c:get_msb_signed Unexecuted instantiation: mvref_common.c:get_msb_signed Unexecuted instantiation: predefined_qm.c:get_msb_signed Unexecuted instantiation: pred_common.c:get_msb_signed Unexecuted instantiation: quant_common.c:get_msb_signed Unexecuted instantiation: reconinter.c:get_msb_signed Unexecuted instantiation: reconintra.c:get_msb_signed Unexecuted instantiation: restoration.c:get_msb_signed Unexecuted instantiation: scale.c:get_msb_signed Unexecuted instantiation: scan.c:get_msb_signed Unexecuted instantiation: seg_common.c:get_msb_signed Unexecuted instantiation: thread_common.c:get_msb_signed Unexecuted instantiation: tile_common.c:get_msb_signed Unexecuted instantiation: timing.c:get_msb_signed Unexecuted instantiation: tip.c:get_msb_signed Unexecuted instantiation: txb_common.c:get_msb_signed Unexecuted instantiation: warped_motion.c:get_msb_signed Unexecuted instantiation: hr_coding.c:get_msb_signed Unexecuted instantiation: intra_matrix.c:get_msb_signed Unexecuted instantiation: intra_dip.cc:get_msb_signed(int) Unexecuted instantiation: ccso.c:get_msb_signed Unexecuted instantiation: bru.c:get_msb_signed Unexecuted instantiation: obu_qm.c:get_msb_signed Unexecuted instantiation: cdef_block_sse2.c:get_msb_signed Unexecuted instantiation: cfl_sse2.c:get_msb_signed Unexecuted instantiation: cdef_block_ssse3.c:get_msb_signed Unexecuted instantiation: cfl_ssse3.c:get_msb_signed Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_msb_signed Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_msb_signed Unexecuted instantiation: reconinter_ssse3.c:get_msb_signed Unexecuted instantiation: cdef_block_sse4.c:get_msb_signed Unexecuted instantiation: av2_convolve_horiz_rs_sse4.c:get_msb_signed Unexecuted instantiation: av2_convolve_scale_sse4.c:get_msb_signed Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_msb_signed Unexecuted instantiation: highbd_inv_txfm_sse4.c:get_msb_signed Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_msb_signed Unexecuted instantiation: highbd_warp_plane_sse4.c:get_msb_signed Unexecuted instantiation: intra_edge_sse4.c:get_msb_signed Unexecuted instantiation: optflow_refine_sse4.c:get_msb_signed Unexecuted instantiation: reconinter_sse4.c:get_msb_signed Unexecuted instantiation: cdef_block_avx2.c:get_msb_signed Unexecuted instantiation: affine_optflow_refine_avx2.c:get_msb_signed Unexecuted instantiation: bawp_avx2.c:get_msb_signed Unexecuted instantiation: cfl_avx2.c:get_msb_signed Unexecuted instantiation: highbd_ccso_avx2.c:get_msb_signed Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_msb_signed Unexecuted instantiation: highbd_inv_txfm_avx2.c:get_msb_signed Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_msb_signed Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_msb_signed Unexecuted instantiation: highbd_warp_affine_avx2.c:get_msb_signed Unexecuted instantiation: reconinter_avx2.c:get_msb_signed Unexecuted instantiation: gdf_block_avx2.c:get_msb_signed Unexecuted instantiation: avm_convolve.c:get_msb_signed Unexecuted instantiation: bitwriter_buffer.c:get_msb_signed Unexecuted instantiation: entcode.c:get_msb_signed Unexecuted instantiation: intrapred.c:get_msb_signed Unexecuted instantiation: sad.c:get_msb_signed Unexecuted instantiation: highbd_intrapred_sse2.c:get_msb_signed Unexecuted instantiation: av2_inv_txfm2d.c:get_msb_signed |
80 | | |
81 | 0 | static INLINE int get_msb_signed_64(int64_t n) { |
82 | 0 | uint64_t n_abs = (uint64_t)llabs(n); |
83 | 0 | unsigned int high32 = n_abs >> 32; |
84 | 0 | unsigned int low32 = n_abs & 0x00000000ffffffffULL; |
85 | 0 | if (high32 != 0) return 32 + get_msb(high32); |
86 | 0 | return low32 == 0 ? 0 : get_msb((unsigned int)low32); |
87 | 0 | } Unexecuted instantiation: av2_dx_iface.c:get_msb_signed_64 Unexecuted instantiation: annexF.c:get_msb_signed_64 Unexecuted instantiation: decodeframe.c:get_msb_signed_64 Unexecuted instantiation: decodemv.c:get_msb_signed_64 Unexecuted instantiation: decoder.c:get_msb_signed_64 Unexecuted instantiation: decodetxb.c:get_msb_signed_64 Unexecuted instantiation: detokenize.c:get_msb_signed_64 Unexecuted instantiation: obu_fgm.c:get_msb_signed_64 Unexecuted instantiation: obu.c:get_msb_signed_64 Unexecuted instantiation: obu_ci.c:get_msb_signed_64 Unexecuted instantiation: obu_atlas.c:get_msb_signed_64 Unexecuted instantiation: obu_lcr.c:get_msb_signed_64 Unexecuted instantiation: obu_ops.c:get_msb_signed_64 Unexecuted instantiation: obu_buf.c:get_msb_signed_64 Unexecuted instantiation: avm_dsp_rtcd.c:get_msb_signed_64 Unexecuted instantiation: av2_rtcd.c:get_msb_signed_64 Unexecuted instantiation: bitreader_buffer.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_hmask.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_mask.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_vmask.c:get_msb_signed_64 Unexecuted instantiation: loopfilter.c:get_msb_signed_64 Unexecuted instantiation: binary_codes_reader.c:get_msb_signed_64 Unexecuted instantiation: bitreader.c:get_msb_signed_64 Unexecuted instantiation: entdec.c:get_msb_signed_64 Unexecuted instantiation: avm_convolve_copy_sse2.c:get_msb_signed_64 Unexecuted instantiation: avm_asm_stubs.c:get_msb_signed_64 Unexecuted instantiation: highbd_convolve_sse2.c:get_msb_signed_64 Unexecuted instantiation: highbd_convolve_ssse3.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_hmask_sse4.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_mask_sse4.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_vmask_sse4.c:get_msb_signed_64 Unexecuted instantiation: loopfilter_sse4.c:get_msb_signed_64 Unexecuted instantiation: avm_convolve_copy_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_convolve_avx2.c:get_msb_signed_64 Unexecuted instantiation: intrapred_avx2.c:get_msb_signed_64 Unexecuted instantiation: blend_a64_mask_avx2.c:get_msb_signed_64 Unexecuted instantiation: entdec_avx2.c:get_msb_signed_64 Unexecuted instantiation: annexA.c:get_msb_signed_64 Unexecuted instantiation: alloccommon.c:get_msb_signed_64 Unexecuted instantiation: av2_loopfilter.c:get_msb_signed_64 Unexecuted instantiation: av2_txfm.c:get_msb_signed_64 Unexecuted instantiation: blockd.c:get_msb_signed_64 Unexecuted instantiation: cdef.c:get_msb_signed_64 Unexecuted instantiation: gdf.c:get_msb_signed_64 Unexecuted instantiation: gdf_block.c:get_msb_signed_64 Unexecuted instantiation: cdef_block.c:get_msb_signed_64 Unexecuted instantiation: cfl.c:get_msb_signed_64 Unexecuted instantiation: convolve.c:get_msb_signed_64 Unexecuted instantiation: entropy.c:get_msb_signed_64 Unexecuted instantiation: entropymode.c:get_msb_signed_64 Unexecuted instantiation: entropymv.c:get_msb_signed_64 Unexecuted instantiation: idct.c:get_msb_signed_64 Unexecuted instantiation: level.c:get_msb_signed_64 Unexecuted instantiation: mvref_common.c:get_msb_signed_64 Unexecuted instantiation: predefined_qm.c:get_msb_signed_64 Unexecuted instantiation: pred_common.c:get_msb_signed_64 Unexecuted instantiation: quant_common.c:get_msb_signed_64 Unexecuted instantiation: reconinter.c:get_msb_signed_64 Unexecuted instantiation: reconintra.c:get_msb_signed_64 Unexecuted instantiation: restoration.c:get_msb_signed_64 Unexecuted instantiation: scale.c:get_msb_signed_64 Unexecuted instantiation: scan.c:get_msb_signed_64 Unexecuted instantiation: seg_common.c:get_msb_signed_64 Unexecuted instantiation: thread_common.c:get_msb_signed_64 Unexecuted instantiation: tile_common.c:get_msb_signed_64 Unexecuted instantiation: timing.c:get_msb_signed_64 Unexecuted instantiation: tip.c:get_msb_signed_64 Unexecuted instantiation: txb_common.c:get_msb_signed_64 Unexecuted instantiation: warped_motion.c:get_msb_signed_64 Unexecuted instantiation: hr_coding.c:get_msb_signed_64 Unexecuted instantiation: intra_matrix.c:get_msb_signed_64 Unexecuted instantiation: intra_dip.cc:get_msb_signed_64(long) Unexecuted instantiation: ccso.c:get_msb_signed_64 Unexecuted instantiation: bru.c:get_msb_signed_64 Unexecuted instantiation: obu_qm.c:get_msb_signed_64 Unexecuted instantiation: cdef_block_sse2.c:get_msb_signed_64 Unexecuted instantiation: cfl_sse2.c:get_msb_signed_64 Unexecuted instantiation: cdef_block_ssse3.c:get_msb_signed_64 Unexecuted instantiation: cfl_ssse3.c:get_msb_signed_64 Unexecuted instantiation: highbd_convolve_2d_ssse3.c:get_msb_signed_64 Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:get_msb_signed_64 Unexecuted instantiation: reconinter_ssse3.c:get_msb_signed_64 Unexecuted instantiation: cdef_block_sse4.c:get_msb_signed_64 Unexecuted instantiation: av2_convolve_horiz_rs_sse4.c:get_msb_signed_64 Unexecuted instantiation: av2_convolve_scale_sse4.c:get_msb_signed_64 Unexecuted instantiation: highbd_convolve_2d_sse4.c:get_msb_signed_64 Unexecuted instantiation: highbd_inv_txfm_sse4.c:get_msb_signed_64 Unexecuted instantiation: highbd_jnt_convolve_sse4.c:get_msb_signed_64 Unexecuted instantiation: highbd_warp_plane_sse4.c:get_msb_signed_64 Unexecuted instantiation: intra_edge_sse4.c:get_msb_signed_64 Unexecuted instantiation: optflow_refine_sse4.c:get_msb_signed_64 Unexecuted instantiation: reconinter_sse4.c:get_msb_signed_64 Unexecuted instantiation: cdef_block_avx2.c:get_msb_signed_64 Unexecuted instantiation: affine_optflow_refine_avx2.c:get_msb_signed_64 Unexecuted instantiation: bawp_avx2.c:get_msb_signed_64 Unexecuted instantiation: cfl_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_ccso_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_convolve_2d_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_inv_txfm_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:get_msb_signed_64 Unexecuted instantiation: highbd_warp_affine_avx2.c:get_msb_signed_64 Unexecuted instantiation: reconinter_avx2.c:get_msb_signed_64 Unexecuted instantiation: gdf_block_avx2.c:get_msb_signed_64 Unexecuted instantiation: avm_convolve.c:get_msb_signed_64 Unexecuted instantiation: bitwriter_buffer.c:get_msb_signed_64 Unexecuted instantiation: entcode.c:get_msb_signed_64 Unexecuted instantiation: intrapred.c:get_msb_signed_64 Unexecuted instantiation: sad.c:get_msb_signed_64 Unexecuted instantiation: highbd_intrapred_sse2.c:get_msb_signed_64 Unexecuted instantiation: av2_inv_txfm2d.c:get_msb_signed_64 |
88 | | |
89 | | // Returns (int)ceil(log2(n)). |
90 | 676k | static inline int avm_ceil_log2(int n) { |
91 | 676k | if (n < 2) return 0; |
92 | 603k | return get_msb(n - 1) + 1; |
93 | 676k | } av2_dx_iface.c:avm_ceil_log2 Line | Count | Source | 90 | 11.1k | static inline int avm_ceil_log2(int n) { | 91 | 11.1k | if (n < 2) return 0; | 92 | 11.1k | return get_msb(n - 1) + 1; | 93 | 11.1k | } |
Unexecuted instantiation: annexF.c:avm_ceil_log2 decodeframe.c:avm_ceil_log2 Line | Count | Source | 90 | 10.8k | static inline int avm_ceil_log2(int n) { | 91 | 10.8k | if (n < 2) return 0; | 92 | 3.07k | return get_msb(n - 1) + 1; | 93 | 10.8k | } |
Line | Count | Source | 90 | 139k | static inline int avm_ceil_log2(int n) { | 91 | 139k | if (n < 2) return 0; | 92 | 73.8k | return get_msb(n - 1) + 1; | 93 | 139k | } |
Unexecuted instantiation: decoder.c:avm_ceil_log2 Unexecuted instantiation: decodetxb.c:avm_ceil_log2 Unexecuted instantiation: detokenize.c:avm_ceil_log2 Unexecuted instantiation: obu_fgm.c:avm_ceil_log2 Line | Count | Source | 90 | 1.56k | static inline int avm_ceil_log2(int n) { | 91 | 1.56k | if (n < 2) return 0; | 92 | 1.56k | return get_msb(n - 1) + 1; | 93 | 1.56k | } |
Unexecuted instantiation: obu_ci.c:avm_ceil_log2 Unexecuted instantiation: obu_atlas.c:avm_ceil_log2 Unexecuted instantiation: obu_lcr.c:avm_ceil_log2 Unexecuted instantiation: obu_ops.c:avm_ceil_log2 Unexecuted instantiation: obu_buf.c:avm_ceil_log2 Unexecuted instantiation: avm_dsp_rtcd.c:avm_ceil_log2 Unexecuted instantiation: av2_rtcd.c:avm_ceil_log2 Unexecuted instantiation: bitreader_buffer.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_hmask.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_mask.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_vmask.c:avm_ceil_log2 Unexecuted instantiation: loopfilter.c:avm_ceil_log2 Unexecuted instantiation: binary_codes_reader.c:avm_ceil_log2 Unexecuted instantiation: bitreader.c:avm_ceil_log2 Unexecuted instantiation: entdec.c:avm_ceil_log2 Unexecuted instantiation: avm_convolve_copy_sse2.c:avm_ceil_log2 Unexecuted instantiation: avm_asm_stubs.c:avm_ceil_log2 Unexecuted instantiation: highbd_convolve_sse2.c:avm_ceil_log2 Unexecuted instantiation: highbd_convolve_ssse3.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_hmask_sse4.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_mask_sse4.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_vmask_sse4.c:avm_ceil_log2 Unexecuted instantiation: loopfilter_sse4.c:avm_ceil_log2 Unexecuted instantiation: avm_convolve_copy_avx2.c:avm_ceil_log2 Unexecuted instantiation: highbd_convolve_avx2.c:avm_ceil_log2 Unexecuted instantiation: intrapred_avx2.c:avm_ceil_log2 Unexecuted instantiation: blend_a64_mask_avx2.c:avm_ceil_log2 Unexecuted instantiation: entdec_avx2.c:avm_ceil_log2 Unexecuted instantiation: annexA.c:avm_ceil_log2 Unexecuted instantiation: alloccommon.c:avm_ceil_log2 Unexecuted instantiation: av2_loopfilter.c:avm_ceil_log2 Unexecuted instantiation: av2_txfm.c:avm_ceil_log2 Unexecuted instantiation: blockd.c:avm_ceil_log2 Unexecuted instantiation: cdef.c:avm_ceil_log2 Unexecuted instantiation: gdf.c:avm_ceil_log2 Unexecuted instantiation: gdf_block.c:avm_ceil_log2 Unexecuted instantiation: cdef_block.c:avm_ceil_log2 Unexecuted instantiation: cfl.c:avm_ceil_log2 Unexecuted instantiation: convolve.c:avm_ceil_log2 Unexecuted instantiation: entropy.c:avm_ceil_log2 Unexecuted instantiation: entropymode.c:avm_ceil_log2 Unexecuted instantiation: entropymv.c:avm_ceil_log2 Unexecuted instantiation: idct.c:avm_ceil_log2 Unexecuted instantiation: level.c:avm_ceil_log2 Unexecuted instantiation: mvref_common.c:avm_ceil_log2 Unexecuted instantiation: predefined_qm.c:avm_ceil_log2 Unexecuted instantiation: pred_common.c:avm_ceil_log2 Unexecuted instantiation: quant_common.c:avm_ceil_log2 Unexecuted instantiation: reconinter.c:avm_ceil_log2 Unexecuted instantiation: reconintra.c:avm_ceil_log2 Unexecuted instantiation: restoration.c:avm_ceil_log2 Unexecuted instantiation: scale.c:avm_ceil_log2 Unexecuted instantiation: scan.c:avm_ceil_log2 Unexecuted instantiation: seg_common.c:avm_ceil_log2 Unexecuted instantiation: thread_common.c:avm_ceil_log2 Unexecuted instantiation: tile_common.c:avm_ceil_log2 Unexecuted instantiation: timing.c:avm_ceil_log2 Unexecuted instantiation: tip.c:avm_ceil_log2 Unexecuted instantiation: txb_common.c:avm_ceil_log2 Unexecuted instantiation: warped_motion.c:avm_ceil_log2 Unexecuted instantiation: hr_coding.c:avm_ceil_log2 Unexecuted instantiation: intra_matrix.c:avm_ceil_log2 Unexecuted instantiation: intra_dip.cc:avm_ceil_log2(int) Unexecuted instantiation: ccso.c:avm_ceil_log2 Unexecuted instantiation: bru.c:avm_ceil_log2 Unexecuted instantiation: obu_qm.c:avm_ceil_log2 Unexecuted instantiation: cdef_block_sse2.c:avm_ceil_log2 Unexecuted instantiation: cfl_sse2.c:avm_ceil_log2 Unexecuted instantiation: cdef_block_ssse3.c:avm_ceil_log2 Unexecuted instantiation: cfl_ssse3.c:avm_ceil_log2 Unexecuted instantiation: highbd_convolve_2d_ssse3.c:avm_ceil_log2 Unexecuted instantiation: highbd_wiener_convolve_ssse3.c:avm_ceil_log2 Unexecuted instantiation: reconinter_ssse3.c:avm_ceil_log2 Unexecuted instantiation: cdef_block_sse4.c:avm_ceil_log2 Unexecuted instantiation: av2_convolve_horiz_rs_sse4.c:avm_ceil_log2 Unexecuted instantiation: av2_convolve_scale_sse4.c:avm_ceil_log2 Unexecuted instantiation: highbd_convolve_2d_sse4.c:avm_ceil_log2 Unexecuted instantiation: highbd_inv_txfm_sse4.c:avm_ceil_log2 Unexecuted instantiation: highbd_jnt_convolve_sse4.c:avm_ceil_log2 Unexecuted instantiation: highbd_warp_plane_sse4.c:avm_ceil_log2 Unexecuted instantiation: intra_edge_sse4.c:avm_ceil_log2 Unexecuted instantiation: optflow_refine_sse4.c:avm_ceil_log2 Unexecuted instantiation: reconinter_sse4.c:avm_ceil_log2 Unexecuted instantiation: cdef_block_avx2.c:avm_ceil_log2 Unexecuted instantiation: affine_optflow_refine_avx2.c:avm_ceil_log2 Unexecuted instantiation: bawp_avx2.c:avm_ceil_log2 Line | Count | Source | 90 | 513k | static inline int avm_ceil_log2(int n) { | 91 | 513k | if (n < 2) return 0; | 92 | 513k | return get_msb(n - 1) + 1; | 93 | 513k | } |
Unexecuted instantiation: highbd_ccso_avx2.c:avm_ceil_log2 Unexecuted instantiation: highbd_convolve_2d_avx2.c:avm_ceil_log2 Unexecuted instantiation: highbd_inv_txfm_avx2.c:avm_ceil_log2 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:avm_ceil_log2 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:avm_ceil_log2 Unexecuted instantiation: highbd_warp_affine_avx2.c:avm_ceil_log2 Unexecuted instantiation: reconinter_avx2.c:avm_ceil_log2 Unexecuted instantiation: gdf_block_avx2.c:avm_ceil_log2 Unexecuted instantiation: avm_convolve.c:avm_ceil_log2 Unexecuted instantiation: bitwriter_buffer.c:avm_ceil_log2 Unexecuted instantiation: entcode.c:avm_ceil_log2 Unexecuted instantiation: intrapred.c:avm_ceil_log2 Unexecuted instantiation: sad.c:avm_ceil_log2 Unexecuted instantiation: highbd_intrapred_sse2.c:avm_ceil_log2 Unexecuted instantiation: av2_inv_txfm2d.c:avm_ceil_log2 |
94 | | |
95 | | #ifdef __cplusplus |
96 | | } // extern "C" |
97 | | #endif |
98 | | |
99 | | #endif // AVM_AVM_PORTS_BITOPS_H_ |