Coverage Report

Created: 2024-05-21 06:41

/src/libjxl/lib/jxl/base/bits.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) the JPEG XL Project Authors. All rights reserved.
2
//
3
// Use of this source code is governed by a BSD-style
4
// license that can be found in the LICENSE file.
5
6
#ifndef LIB_JXL_BASE_BITS_H_
7
#define LIB_JXL_BASE_BITS_H_
8
9
// Specialized instructions for processing register-sized bit arrays.
10
11
#include "lib/jxl/base/compiler_specific.h"
12
#include "lib/jxl/base/status.h"
13
14
#if JXL_COMPILER_MSVC
15
#include <intrin.h>
16
#endif
17
18
#include <stddef.h>
19
#include <stdint.h>
20
21
namespace jxl {
22
23
// Empty struct used as a size tag type.
24
template <size_t N>
25
struct SizeTag {};
26
27
template <typename T>
28
0
constexpr bool IsSigned() {
29
0
  // TODO(eustas): remove dupes
30
0
  return static_cast<T>(0) > static_cast<T>(-1);
31
0
}
Unexecuted instantiation: bool jxl::IsSigned<unsigned int>()
Unexecuted instantiation: bool jxl::IsSigned<unsigned long>()
32
33
// Undefined results for x == 0.
34
static JXL_INLINE JXL_MAYBE_UNUSED size_t
35
20.8M
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
20.8M
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
20.8M
  return static_cast<size_t>(__builtin_clz(x));
43
20.8M
#endif
44
20.8M
}
Unexecuted instantiation: djxl_fuzzer.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: decode.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: entropy_coder.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: fields.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: frame_header.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: headers.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: icc_codec.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: image_metadata.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: loop_filter.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
encoding.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
20.2M
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
20.2M
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
20.2M
  return static_cast<size_t>(__builtin_clz(x));
43
20.2M
#endif
44
20.2M
}
Unexecuted instantiation: modular_image.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: transform.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: quant_weights.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: quantizer.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: decode_to_jpeg.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_jpeg_data.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
dec_jpeg_data_writer.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
2.96k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
2.96k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
2.96k
  return static_cast<size_t>(__builtin_clz(x));
43
2.96k
#endif
44
2.96k
}
Unexecuted instantiation: jpeg_data.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: color_encoding_internal.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
dec_ans.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
78.3k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
78.3k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
78.3k
  return static_cast<size_t>(__builtin_clz(x));
43
78.3k
#endif
44
78.3k
}
Unexecuted instantiation: dec_context_map.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
dec_frame.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
2.57k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
2.57k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
2.57k
  return static_cast<size_t>(__builtin_clz(x));
43
2.57k
#endif
44
2.57k
}
Unexecuted instantiation: dec_group.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_huffman.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
dec_modular.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
38.0k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
38.0k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
38.0k
  return static_cast<size_t>(__builtin_clz(x));
43
38.0k
#endif
44
38.0k
}
Unexecuted instantiation: dec_patch_dictionary.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_xyb.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: epf.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_ma.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
palette.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
377k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
377k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
377k
  return static_cast<size_t>(__builtin_clz(x));
43
377k
#endif
44
377k
}
Unexecuted instantiation: rct.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: squeeze.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: passes_state.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: render_pipeline.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: simple_render_pipeline.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_upsampling.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: splines.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: toc.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: ac_strategy.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: blending.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: chroma_from_luma.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
coeff_order.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
58.2k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
58.2k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
58.2k
  return static_cast<size_t>(__builtin_clz(x));
43
58.2k
#endif
44
58.2k
}
Unexecuted instantiation: compressed_dc.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
dec_cache.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Line
Count
Source
35
55.2k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
36
55.2k
  JXL_DASSERT(x != 0);
37
#if JXL_COMPILER_MSVC
38
  unsigned long index;
39
  _BitScanReverse(&index, x);
40
  return 31 - index;
41
#else
42
55.2k
  return static_cast<size_t>(__builtin_clz(x));
43
55.2k
#endif
44
55.2k
}
Unexecuted instantiation: low_memory_render_pipeline.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_blending.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_chroma_upsampling.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_cms.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_epf.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_from_linear.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_gaborish.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_noise.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_patches.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_splines.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_spot.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_to_linear.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_tone_mapping.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_write.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_xyb.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_ycbcr.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: image_bundle.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
45
static JXL_INLINE JXL_MAYBE_UNUSED size_t
46
84.2M
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
84.2M
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
84.2M
  return static_cast<size_t>(__builtin_clzll(x));
68
84.2M
#endif
69
84.2M
}
Unexecuted instantiation: djxl_fuzzer.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: decode.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: entropy_coder.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: fields.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: frame_header.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: headers.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: icc_codec.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: image_metadata.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: loop_filter.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
encoding.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
81.4M
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
81.4M
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
81.4M
  return static_cast<size_t>(__builtin_clzll(x));
68
81.4M
#endif
69
81.4M
}
Unexecuted instantiation: modular_image.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: transform.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: quant_weights.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: quantizer.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: decode_to_jpeg.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_jpeg_data.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_jpeg_data_writer.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: jpeg_data.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: color_encoding_internal.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
dec_ans.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
782k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
782k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
782k
  return static_cast<size_t>(__builtin_clzll(x));
68
782k
#endif
69
782k
}
Unexecuted instantiation: dec_context_map.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
dec_frame.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
2.65k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
2.65k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
2.65k
  return static_cast<size_t>(__builtin_clzll(x));
68
2.65k
#endif
69
2.65k
}
dec_group.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
10.9k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
10.9k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
10.9k
  return static_cast<size_t>(__builtin_clzll(x));
68
10.9k
#endif
69
10.9k
}
dec_huffman.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
21.5k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
21.5k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
21.5k
  return static_cast<size_t>(__builtin_clzll(x));
68
21.5k
#endif
69
21.5k
}
dec_modular.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
42.5k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
42.5k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
42.5k
  return static_cast<size_t>(__builtin_clzll(x));
68
42.5k
#endif
69
42.5k
}
Unexecuted instantiation: dec_patch_dictionary.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_xyb.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: epf.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_ma.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
palette.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
1.50M
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
1.50M
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
1.50M
  return static_cast<size_t>(__builtin_clzll(x));
68
1.50M
#endif
69
1.50M
}
Unexecuted instantiation: rct.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: squeeze.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: passes_state.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: render_pipeline.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: simple_render_pipeline.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_upsampling.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
splines.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
44.3k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
44.3k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
44.3k
  return static_cast<size_t>(__builtin_clzll(x));
68
44.3k
#endif
69
44.3k
}
Unexecuted instantiation: toc.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
ac_strategy.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
7.33k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
7.33k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
7.33k
  return static_cast<size_t>(__builtin_clzll(x));
68
7.33k
#endif
69
7.33k
}
Unexecuted instantiation: blending.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: chroma_from_luma.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
coeff_order.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
17.0k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
17.0k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
17.0k
  return static_cast<size_t>(__builtin_clzll(x));
68
17.0k
#endif
69
17.0k
}
Unexecuted instantiation: compressed_dc.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_cache.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
low_memory_render_pipeline.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
46
418k
Num0BitsAboveMS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
47
418k
  JXL_DASSERT(x != 0);
48
#if JXL_COMPILER_MSVC
49
#if JXL_ARCH_X64
50
  unsigned long index;
51
  _BitScanReverse64(&index, x);
52
  return 63 - index;
53
#else   // JXL_ARCH_X64
54
  // _BitScanReverse64 not available
55
  uint32_t msb = static_cast<uint32_t>(x >> 32u);
56
  unsigned long index;
57
  if (msb == 0) {
58
    uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
59
    _BitScanReverse(&index, lsb);
60
    return 63 - index;
61
  } else {
62
    _BitScanReverse(&index, msb);
63
    return 31 - index;
64
  }
65
#endif  // JXL_ARCH_X64
66
#else
67
418k
  return static_cast<size_t>(__builtin_clzll(x));
68
418k
#endif
69
418k
}
Unexecuted instantiation: stage_blending.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_chroma_upsampling.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_cms.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_epf.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_from_linear.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_gaborish.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_noise.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_patches.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_splines.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_spot.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_to_linear.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_tone_mapping.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_write.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_xyb.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_ycbcr.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: image_bundle.cc:jxl::Num0BitsAboveMS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
70
template <typename T>
71
static JXL_INLINE JXL_MAYBE_UNUSED size_t
72
105M
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
105M
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
105M
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
105M
}
Unexecuted instantiation: decode.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: decode.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: fields.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: icc_codec.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
encoding.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
81.4M
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
81.4M
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
81.4M
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
81.4M
}
encoding.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
20.2M
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
20.2M
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
20.2M
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
20.2M
}
Unexecuted instantiation: modular_image.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: modular_image.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: transform.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: transform.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: quant_weights.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: quant_weights.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
dec_jpeg_data_writer.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
2.96k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
2.96k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
2.96k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
2.96k
}
dec_ans.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
78.3k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
78.3k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
78.3k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
78.3k
}
dec_ans.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
782k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
782k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
782k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
782k
}
Unexecuted instantiation: dec_context_map.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
dec_frame.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
2.65k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
2.65k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
2.65k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
2.65k
}
dec_frame.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
2.57k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
2.57k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
2.57k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
2.57k
}
dec_group.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
10.9k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
10.9k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
10.9k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
10.9k
}
Unexecuted instantiation: dec_group.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
dec_huffman.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
21.5k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
21.5k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
21.5k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
21.5k
}
dec_modular.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
42.5k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
42.5k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
42.5k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
42.5k
}
dec_modular.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
38.0k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
38.0k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
38.0k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
38.0k
}
Unexecuted instantiation: dec_patch_dictionary.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: epf.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: dec_ma.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
palette.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
1.50M
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
1.50M
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
1.50M
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
1.50M
}
palette.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
377k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
377k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
377k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
377k
}
Unexecuted instantiation: rct.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: rct.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: squeeze.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: squeeze.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: simple_render_pipeline.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
splines.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
44.3k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
44.3k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
44.3k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
44.3k
}
Unexecuted instantiation: splines.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
ac_strategy.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
7.33k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
7.33k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
7.33k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
7.33k
}
coeff_order.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
58.2k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
58.2k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
58.2k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
58.2k
}
coeff_order.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
17.0k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
17.0k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
17.0k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
17.0k
}
dec_cache.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Line
Count
Source
72
55.2k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
55.2k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
55.2k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
55.2k
}
low_memory_render_pipeline.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned long>(unsigned long)
Line
Count
Source
72
418k
Num0BitsAboveMS1Bit_Nonzero(const T x) {
73
418k
  static_assert(!IsSigned<T>(), "Num0BitsAboveMS1Bit_Nonzero: use unsigned");
74
418k
  return Num0BitsAboveMS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
75
418k
}
Unexecuted instantiation: stage_blending.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: stage_epf.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: stage_write.cc:unsigned long jxl::Num0BitsAboveMS1Bit_Nonzero<unsigned int>(unsigned int)
76
77
// Undefined results for x == 0.
78
static JXL_INLINE JXL_MAYBE_UNUSED size_t
79
0
Num0BitsBelowLS1Bit_Nonzero(SizeTag<4> /* tag */, const uint32_t x) {
80
0
  JXL_DASSERT(x != 0);
81
0
#if JXL_COMPILER_MSVC
82
0
  unsigned long index;
83
0
  _BitScanForward(&index, x);
84
0
  return index;
85
0
#else
86
0
  return static_cast<size_t>(__builtin_ctz(x));
87
0
#endif
88
0
}
Unexecuted instantiation: djxl_fuzzer.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: decode.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: entropy_coder.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: fields.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: frame_header.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: headers.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: icc_codec.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: image_metadata.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: loop_filter.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: encoding.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: modular_image.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: transform.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: quant_weights.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: quantizer.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: decode_to_jpeg.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_jpeg_data.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_jpeg_data_writer.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: jpeg_data.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: color_encoding_internal.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_ans.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_context_map.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_frame.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_group.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_huffman.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_modular.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_patch_dictionary.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_xyb.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: epf.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_ma.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: palette.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: rct.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: squeeze.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: passes_state.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: render_pipeline.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: simple_render_pipeline.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_upsampling.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: splines.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: toc.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: ac_strategy.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: blending.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: chroma_from_luma.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: coeff_order.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: compressed_dc.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: dec_cache.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: low_memory_render_pipeline.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_blending.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_chroma_upsampling.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_cms.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_epf.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_from_linear.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_gaborish.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_noise.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_patches.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_splines.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_spot.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_to_linear.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_tone_mapping.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_write.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_xyb.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: stage_ycbcr.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
Unexecuted instantiation: image_bundle.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<4ul>, unsigned int)
89
static JXL_INLINE JXL_MAYBE_UNUSED size_t
90
367k
Num0BitsBelowLS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
91
367k
  JXL_DASSERT(x != 0);
92
#if JXL_COMPILER_MSVC
93
#if JXL_ARCH_X64
94
  unsigned long index;
95
  _BitScanForward64(&index, x);
96
  return index;
97
#else   // JXL_ARCH_64
98
  // _BitScanForward64 not available
99
  uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
100
  unsigned long index;
101
  if (lsb == 0) {
102
    uint32_t msb = static_cast<uint32_t>(x >> 32u);
103
    _BitScanForward(&index, msb);
104
    return 32 + index;
105
  } else {
106
    _BitScanForward(&index, lsb);
107
    return index;
108
  }
109
#endif  // JXL_ARCH_X64
110
#else
111
367k
  return static_cast<size_t>(__builtin_ctzll(x));
112
367k
#endif
113
367k
}
Unexecuted instantiation: djxl_fuzzer.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: decode.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: entropy_coder.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
fields.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Line
Count
Source
90
367k
Num0BitsBelowLS1Bit_Nonzero(SizeTag<8> /* tag */, const uint64_t x) {
91
367k
  JXL_DASSERT(x != 0);
92
#if JXL_COMPILER_MSVC
93
#if JXL_ARCH_X64
94
  unsigned long index;
95
  _BitScanForward64(&index, x);
96
  return index;
97
#else   // JXL_ARCH_64
98
  // _BitScanForward64 not available
99
  uint32_t lsb = static_cast<uint32_t>(x & 0xFFFFFFFF);
100
  unsigned long index;
101
  if (lsb == 0) {
102
    uint32_t msb = static_cast<uint32_t>(x >> 32u);
103
    _BitScanForward(&index, msb);
104
    return 32 + index;
105
  } else {
106
    _BitScanForward(&index, lsb);
107
    return index;
108
  }
109
#endif  // JXL_ARCH_X64
110
#else
111
367k
  return static_cast<size_t>(__builtin_ctzll(x));
112
367k
#endif
113
367k
}
Unexecuted instantiation: frame_header.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: headers.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: icc_codec.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: image_metadata.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: loop_filter.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: encoding.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: modular_image.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: transform.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: quant_weights.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: quantizer.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: decode_to_jpeg.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_jpeg_data.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_jpeg_data_writer.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: jpeg_data.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: color_encoding_internal.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_ans.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_context_map.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_frame.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_group.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_huffman.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_modular.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_patch_dictionary.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_xyb.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: epf.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_ma.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: palette.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: rct.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: squeeze.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: passes_state.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: render_pipeline.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: simple_render_pipeline.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_upsampling.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: splines.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: toc.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: ac_strategy.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: blending.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: chroma_from_luma.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: coeff_order.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: compressed_dc.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: dec_cache.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: low_memory_render_pipeline.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_blending.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_chroma_upsampling.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_cms.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_epf.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_from_linear.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_gaborish.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_noise.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_patches.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_splines.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_spot.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_to_linear.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_tone_mapping.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_write.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_xyb.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: stage_ycbcr.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
Unexecuted instantiation: image_bundle.cc:jxl::Num0BitsBelowLS1Bit_Nonzero(jxl::SizeTag<8ul>, unsigned long)
114
template <typename T>
115
367k
static JXL_INLINE JXL_MAYBE_UNUSED size_t Num0BitsBelowLS1Bit_Nonzero(T x) {
116
367k
  static_assert(!IsSigned<T>(), "Num0BitsBelowLS1Bit_Nonzero: use unsigned");
117
367k
  return Num0BitsBelowLS1Bit_Nonzero(SizeTag<sizeof(T)>(), x);
118
367k
}
119
120
// Returns bit width for x == 0.
121
template <typename T>
122
0
static JXL_INLINE JXL_MAYBE_UNUSED size_t Num0BitsAboveMS1Bit(const T x) {
123
0
  return (x == 0) ? sizeof(T) * 8 : Num0BitsAboveMS1Bit_Nonzero(x);
124
0
}
125
126
// Returns bit width for x == 0.
127
template <typename T>
128
static JXL_INLINE JXL_MAYBE_UNUSED size_t Num0BitsBelowLS1Bit(const T x) {
129
  return (x == 0) ? sizeof(T) * 8 : Num0BitsBelowLS1Bit_Nonzero(x);
130
}
131
132
// Returns base-2 logarithm, rounded down.
133
template <typename T>
134
105M
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
105M
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
105M
}
Unexecuted instantiation: decode.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: decode.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: icc_codec.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
encoding.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
81.3M
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
81.3M
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
81.3M
}
encoding.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
20.1M
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
20.1M
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
20.1M
}
Unexecuted instantiation: modular_image.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: modular_image.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: transform.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: transform.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: quant_weights.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: quant_weights.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
dec_jpeg_data_writer.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
2.96k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
2.96k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
2.96k
}
dec_ans.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
78.3k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
78.3k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
78.3k
}
dec_ans.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
782k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
782k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
782k
}
Unexecuted instantiation: dec_context_map.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
dec_frame.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
2.65k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
2.65k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
2.65k
}
dec_frame.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
2.57k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
2.57k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
2.57k
}
dec_group.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
10.9k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
10.9k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
10.9k
}
Unexecuted instantiation: dec_group.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
dec_huffman.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
21.5k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
21.5k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
21.5k
}
dec_modular.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
42.5k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
42.5k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
42.5k
}
dec_modular.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
38.0k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
38.0k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
38.0k
}
Unexecuted instantiation: dec_patch_dictionary.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: epf.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: dec_ma.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
palette.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
1.50M
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
1.50M
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
1.50M
}
palette.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
377k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
377k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
377k
}
Unexecuted instantiation: rct.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: rct.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: squeeze.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Unexecuted instantiation: squeeze.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: simple_render_pipeline.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
splines.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
44.3k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
44.3k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
44.3k
}
Unexecuted instantiation: splines.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
ac_strategy.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
7.33k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
7.33k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
7.33k
}
coeff_order.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
58.2k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
58.2k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
58.2k
}
coeff_order.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
17.0k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
17.0k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
17.0k
}
dec_cache.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
134
55.2k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
55.2k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
55.2k
}
low_memory_render_pipeline.cc:unsigned long jxl::FloorLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
134
418k
static JXL_INLINE JXL_MAYBE_UNUSED size_t FloorLog2Nonzero(const T x) {
135
418k
  return (sizeof(T) * 8 - 1) ^ Num0BitsAboveMS1Bit_Nonzero(x);
136
418k
}
Unexecuted instantiation: stage_blending.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: stage_epf.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
Unexecuted instantiation: stage_write.cc:unsigned long jxl::FloorLog2Nonzero<unsigned int>(unsigned int)
137
138
// Returns base-2 logarithm, rounded up.
139
template <typename T>
140
1.42M
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
1.42M
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
1.42M
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
511k
  return floor_log2 + 1;
144
1.42M
}
dec_ans.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
782k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
782k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
782k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
324k
  return floor_log2 + 1;
144
782k
}
dec_frame.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
2.65k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
2.65k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
2.65k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
623
  return floor_log2 + 1;
144
2.65k
}
dec_frame.cc:unsigned long jxl::CeilLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
140
2.57k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
2.57k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
2.57k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
33
  return floor_log2 + 1;
144
2.57k
}
dec_group.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
10.9k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
10.9k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
10.9k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
6.64k
  return floor_log2 + 1;
144
10.9k
}
dec_modular.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
42.5k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
42.5k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
42.5k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
2.70k
  return floor_log2 + 1;
144
42.5k
}
dec_modular.cc:unsigned long jxl::CeilLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
140
38.0k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
38.0k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
38.0k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
0
  return floor_log2 + 1;
144
38.0k
}
Unexecuted instantiation: simple_render_pipeline.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
splines.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
44.3k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
44.3k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
44.3k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
3.98k
  return floor_log2 + 1;
144
44.3k
}
ac_strategy.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
7.33k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
7.33k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
7.33k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
0
  return floor_log2 + 1;
144
7.33k
}
coeff_order.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
17.0k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
17.0k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
17.0k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
2.68k
  return floor_log2 + 1;
144
17.0k
}
dec_cache.cc:unsigned long jxl::CeilLog2Nonzero<unsigned int>(unsigned int)
Line
Count
Source
140
55.2k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
55.2k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
55.2k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
0
  return floor_log2 + 1;
144
55.2k
}
low_memory_render_pipeline.cc:unsigned long jxl::CeilLog2Nonzero<unsigned long>(unsigned long)
Line
Count
Source
140
418k
static JXL_INLINE JXL_MAYBE_UNUSED size_t CeilLog2Nonzero(const T x) {
141
418k
  const size_t floor_log2 = FloorLog2Nonzero(x);
142
418k
  if ((x & (x - 1)) == 0) return floor_log2;  // power of two
143
170k
  return floor_log2 + 1;
144
418k
}
145
146
}  // namespace jxl
147
148
#endif  // LIB_JXL_BASE_BITS_H_