Coverage Report

Created: 2026-02-14 07:09

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/transpose-inl.h
Line
Count
Source
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
// Block transpose for DCT/IDCT
7
8
#include "lib/jxl/base/compiler_specific.h"
9
10
#if defined(LIB_JXL_TRANSPOSE_INL_H_) == defined(HWY_TARGET_TOGGLE)
11
#ifdef LIB_JXL_TRANSPOSE_INL_H_
12
#undef LIB_JXL_TRANSPOSE_INL_H_
13
#else
14
#define LIB_JXL_TRANSPOSE_INL_H_
15
#endif
16
17
#include <stddef.h>
18
19
#include <hwy/highway.h>
20
#include <type_traits>
21
22
#include "lib/jxl/base/status.h"
23
#include "lib/jxl/dct_block-inl.h"
24
25
HWY_BEFORE_NAMESPACE();
26
namespace jxl {
27
namespace HWY_NAMESPACE {
28
namespace {
29
30
#ifndef JXL_INLINE_TRANSPOSE
31
// Workaround for issue #42 - (excessive?) inlining causes invalid codegen.
32
#if defined(__arm__)
33
#define JXL_INLINE_TRANSPOSE HWY_NOINLINE
34
#else
35
#define JXL_INLINE_TRANSPOSE HWY_INLINE
36
#endif
37
#endif  // JXL_INLINE_TRANSPOSE
38
39
// Simple wrapper that ensures that a function will not be inlined.
40
template <typename T, typename... Args>
41
233k
JXL_NOINLINE void NoInlineWrapper(const T& f, const Args&... args) {
42
233k
  return f(args...);
43
233k
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, float* restrict>(void ( const&)(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, float* restrict const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (*)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, unsigned long>(void (* const&)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false> const&, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, unsigned long const&)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, float* restrict>(void ( const&)(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, float* restrict const&)
Line
Count
Source
41
232k
JXL_NOINLINE void NoInlineWrapper(const T& f, const Args&... args) {
42
232k
  return f(args...);
43
232k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (*)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, unsigned long>(void (* const&)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false> const&, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, unsigned long const&)
Line
Count
Source
41
504
JXL_NOINLINE void NoInlineWrapper(const T& f, const Args&... args) {
42
504
  return f(args...);
43
504
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, float* restrict>(void ( const&)(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, float* restrict const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (*)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, unsigned long>(void (* const&)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false> const&, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, unsigned long const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, float* restrict>(void ( const&)(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, float* restrict const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (*)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, unsigned long>(void (* const&)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false> const&, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, unsigned long const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, float* restrict>(void ( const&)(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, float*), jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, float* restrict const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::NoInlineWrapper<void (*)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo, unsigned long, unsigned long>(void (* const&)(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long), jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false> const&, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long const&, unsigned long const&)
44
45
template <bool enabled>
46
struct TransposeSimdTag {};
47
48
// TODO(veluca): it's not super useful to have this in the SIMD namespace.
49
template <size_t ROWS_or_0, size_t COLS_or_0, class From, class To>
50
JXL_INLINE_TRANSPOSE void GenericTransposeBlock(
51
    TransposeSimdTag<false> /* tag */, const From& from, const To& to,
52
257k
    size_t ROWSp, size_t COLSp) {
53
257k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
257k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
1.97M
  for (size_t n = 0; n < ROWS; ++n) {
56
17.2M
    for (size_t m = 0; m < COLS; ++m) {
57
15.5M
      to.Write(from.Read(n, m), m, n);
58
15.5M
    }
59
1.71M
  }
60
257k
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<32ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 32ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<0ul, 0ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
10.2k
    size_t ROWSp, size_t COLSp) {
53
10.2k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
10.2k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
51.2k
  for (size_t n = 0; n < ROWS; ++n) {
56
369k
    for (size_t m = 0; m < COLS; ++m) {
57
328k
      to.Write(from.Read(n, m), m, n);
58
328k
    }
59
41.0k
  }
60
10.2k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
8.51k
    size_t ROWSp, size_t COLSp) {
53
8.51k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
8.51k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
76.5k
  for (size_t n = 0; n < ROWS; ++n) {
56
340k
    for (size_t m = 0; m < COLS; ++m) {
57
272k
      to.Write(from.Read(n, m), m, n);
58
272k
    }
59
68.0k
  }
60
8.51k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
7.31k
    size_t ROWSp, size_t COLSp) {
53
7.31k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
7.31k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
36.5k
  for (size_t n = 0; n < ROWS; ++n) {
56
146k
    for (size_t m = 0; m < COLS; ++m) {
57
117k
      to.Write(from.Read(n, m), m, n);
58
117k
    }
59
29.2k
  }
60
7.31k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
807
    size_t ROWSp, size_t COLSp) {
53
807
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
807
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
13.7k
  for (size_t n = 0; n < ROWS; ++n) {
56
219k
    for (size_t m = 0; m < COLS; ++m) {
57
206k
      to.Write(from.Read(n, m), m, n);
58
206k
    }
59
12.9k
  }
60
807
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
53.1k
    size_t ROWSp, size_t COLSp) {
53
53.1k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
53.1k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
477k
  for (size_t n = 0; n < ROWS; ++n) {
56
6.97M
    for (size_t m = 0; m < COLS; ++m) {
57
6.55M
      to.Write(from.Read(n, m), m, n);
58
6.55M
    }
59
423k
  }
60
53.1k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
52.7k
    size_t ROWSp, size_t COLSp) {
53
52.7k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
52.7k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
889k
  for (size_t n = 0; n < ROWS; ++n) {
56
7.32M
    for (size_t m = 0; m < COLS; ++m) {
57
6.48M
      to.Write(from.Read(n, m), m, n);
58
6.48M
    }
59
836k
  }
60
52.7k
}
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 32ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<32ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<0ul, 0ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
504
    size_t ROWSp, size_t COLSp) {
53
504
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
504
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
11.7k
  for (size_t n = 0; n < ROWS; ++n) {
56
318k
    for (size_t m = 0; m < COLS; ++m) {
57
307k
      to.Write(from.Read(n, m), m, n);
58
307k
    }
59
11.2k
  }
60
504
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
16.7k
    size_t ROWSp, size_t COLSp) {
53
16.7k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
16.7k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
150k
  for (size_t n = 0; n < ROWS; ++n) {
56
1.20M
    for (size_t m = 0; m < COLS; ++m) {
57
1.07M
      to.Write(from.Read(n, m), m, n);
58
1.07M
    }
59
134k
  }
60
16.7k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
53.2k
    size_t ROWSp, size_t COLSp) {
53
53.2k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
53.2k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
159k
  for (size_t n = 0; n < ROWS; ++n) {
56
212k
    for (size_t m = 0; m < COLS; ++m) {
57
106k
      to.Write(from.Read(n, m), m, n);
58
106k
    }
59
106k
  }
60
53.2k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
52.8k
    size_t ROWSp, size_t COLSp) {
53
52.8k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
52.8k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
105k
  for (size_t n = 0; n < ROWS; ++n) {
56
158k
    for (size_t m = 0; m < COLS; ++m) {
57
105k
      to.Write(from.Read(n, m), m, n);
58
105k
    }
59
52.8k
  }
60
52.8k
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
807
    size_t ROWSp, size_t COLSp) {
53
807
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
807
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
2.42k
  for (size_t n = 0; n < ROWS; ++n) {
56
4.84k
    for (size_t m = 0; m < COLS; ++m) {
57
3.22k
      to.Write(from.Read(n, m), m, n);
58
3.22k
    }
59
1.61k
  }
60
807
}
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
306
    size_t ROWSp, size_t COLSp) {
53
306
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
306
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
1.53k
  for (size_t n = 0; n < ROWS; ++n) {
56
3.67k
    for (size_t m = 0; m < COLS; ++m) {
57
2.44k
      to.Write(from.Read(n, m), m, n);
58
2.44k
    }
59
1.22k
  }
60
306
}
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Line
Count
Source
52
102
    size_t ROWSp, size_t COLSp) {
53
102
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
102
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
306
  for (size_t n = 0; n < ROWS; ++n) {
56
1.02k
    for (size_t m = 0; m < COLS; ++m) {
57
816
      to.Write(from.Read(n, m), m, n);
58
816
    }
59
204
  }
60
102
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<32ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 32ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<0ul, 0ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<32ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 32ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<0ul, 0ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<16ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 16ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<32ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 32ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<0ul, 0ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<8ul, 8ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<1ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 1ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<2ul, 4ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::GenericTransposeBlock<4ul, 2ul, jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::TransposeSimdTag<false>, jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&, unsigned long, unsigned long)
61
62
// TODO(veluca): AVX3?
63
#if HWY_CAP_GE256
64
constexpr bool TransposeUseSimd(size_t ROWS, size_t COLS) {
65
  return ROWS % 8 == 0 && COLS % 8 == 0;
66
}
67
68
template <size_t ROWS_or_0, size_t COLS_or_0, class From, class To>
69
JXL_INLINE_TRANSPOSE void GenericTransposeBlock(
70
    TransposeSimdTag<true> /* tag */, const From& from, const To& to,
71
    size_t ROWSp, size_t COLSp) {
72
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
73
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
74
  JXL_DASSERT(Lanes(BlockDesc<8>()) == 8);
75
  static_assert(ROWS_or_0 % 8 == 0, "Invalid number of rows");
76
  static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
77
  for (size_t n = 0; n < ROWS; n += 8) {
78
    for (size_t m = 0; m < COLS; m += 8) {
79
      const BlockDesc<8> d;
80
      auto i0 = from.LoadPart(d, n + 0, m + 0);
81
      auto i1 = from.LoadPart(d, n + 1, m + 0);
82
      auto i2 = from.LoadPart(d, n + 2, m + 0);
83
      auto i3 = from.LoadPart(d, n + 3, m + 0);
84
      auto i4 = from.LoadPart(d, n + 4, m + 0);
85
      auto i5 = from.LoadPart(d, n + 5, m + 0);
86
      auto i6 = from.LoadPart(d, n + 6, m + 0);
87
      auto i7 = from.LoadPart(d, n + 7, m + 0);
88
      // Surprisingly, this straightforward implementation (24 cycles on port5)
89
      // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
90
      const auto q0 = InterleaveLower(d, i0, i2);
91
      const auto q1 = InterleaveLower(d, i1, i3);
92
      const auto q2 = InterleaveUpper(d, i0, i2);
93
      const auto q3 = InterleaveUpper(d, i1, i3);
94
      const auto q4 = InterleaveLower(d, i4, i6);
95
      const auto q5 = InterleaveLower(d, i5, i7);
96
      const auto q6 = InterleaveUpper(d, i4, i6);
97
      const auto q7 = InterleaveUpper(d, i5, i7);
98
99
      const auto r0 = InterleaveLower(d, q0, q1);
100
      const auto r1 = InterleaveUpper(d, q0, q1);
101
      const auto r2 = InterleaveLower(d, q2, q3);
102
      const auto r3 = InterleaveUpper(d, q2, q3);
103
      const auto r4 = InterleaveLower(d, q4, q5);
104
      const auto r5 = InterleaveUpper(d, q4, q5);
105
      const auto r6 = InterleaveLower(d, q6, q7);
106
      const auto r7 = InterleaveUpper(d, q6, q7);
107
108
      i0 = ConcatLowerLower(d, r4, r0);
109
      i1 = ConcatLowerLower(d, r5, r1);
110
      i2 = ConcatLowerLower(d, r6, r2);
111
      i3 = ConcatLowerLower(d, r7, r3);
112
      i4 = ConcatUpperUpper(d, r4, r0);
113
      i5 = ConcatUpperUpper(d, r5, r1);
114
      i6 = ConcatUpperUpper(d, r6, r2);
115
      i7 = ConcatUpperUpper(d, r7, r3);
116
      to.StorePart(d, i0, m + 0, n + 0);
117
      to.StorePart(d, i1, m + 1, n + 0);
118
      to.StorePart(d, i2, m + 2, n + 0);
119
      to.StorePart(d, i3, m + 3, n + 0);
120
      to.StorePart(d, i4, m + 4, n + 0);
121
      to.StorePart(d, i5, m + 5, n + 0);
122
      to.StorePart(d, i6, m + 6, n + 0);
123
      to.StorePart(d, i7, m + 7, n + 0);
124
    }
125
  }
126
}
127
#elif HWY_TARGET != HWY_SCALAR
128
constexpr bool TransposeUseSimd(size_t ROWS, size_t COLS) {
129
  return ROWS % 4 == 0 && COLS % 4 == 0;
130
}
131
132
template <size_t ROWS_or_0, size_t COLS_or_0, class From, class To>
133
JXL_INLINE_TRANSPOSE void GenericTransposeBlock(
134
    TransposeSimdTag<true> /* tag */, const From& from, const To& to,
135
    size_t ROWSp, size_t COLSp) {
136
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
137
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
138
  JXL_DASSERT(Lanes(BlockDesc<4>()) == 4);
139
  static_assert(ROWS_or_0 % 4 == 0, "Invalid number of rows");
140
  static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
141
  for (size_t n = 0; n < ROWS; n += 4) {
142
    for (size_t m = 0; m < COLS; m += 4) {
143
      const BlockDesc<4> d;
144
      const auto p0 = from.LoadPart(d, n + 0, m + 0);
145
      const auto p1 = from.LoadPart(d, n + 1, m + 0);
146
      const auto p2 = from.LoadPart(d, n + 2, m + 0);
147
      const auto p3 = from.LoadPart(d, n + 3, m + 0);
148
149
      const auto q0 = InterleaveLower(d, p0, p2);
150
      const auto q1 = InterleaveLower(d, p1, p3);
151
      const auto q2 = InterleaveUpper(d, p0, p2);
152
      const auto q3 = InterleaveUpper(d, p1, p3);
153
154
      const auto r0 = InterleaveLower(d, q0, q1);
155
      const auto r1 = InterleaveUpper(d, q0, q1);
156
      const auto r2 = InterleaveLower(d, q2, q3);
157
      const auto r3 = InterleaveUpper(d, q2, q3);
158
159
      to.StorePart(d, r0, m + 0, n + 0);
160
      to.StorePart(d, r1, m + 1, n + 0);
161
      to.StorePart(d, r2, m + 2, n + 0);
162
      to.StorePart(d, r3, m + 3, n + 0);
163
    }
164
  }
165
}
166
#else
167
0
constexpr bool TransposeUseSimd(size_t ROWS, size_t COLS) { return false; }
Unexecuted instantiation: enc_group.cc:jxl::N_SCALAR::(anonymous namespace)::TransposeUseSimd(unsigned long, unsigned long)
Unexecuted instantiation: dec_group.cc:jxl::N_SCALAR::(anonymous namespace)::TransposeUseSimd(unsigned long, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SCALAR::(anonymous namespace)::TransposeUseSimd(unsigned long, unsigned long)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SCALAR::(anonymous namespace)::TransposeUseSimd(unsigned long, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SCALAR::(anonymous namespace)::TransposeUseSimd(unsigned long, unsigned long)
168
#endif
169
170
template <size_t N, size_t M, typename = void>
171
struct Transpose {
172
  template <typename From, typename To>
173
256k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
256k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
256k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
256k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
256k
  }
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
10.2k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
10.2k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
10.2k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
10.2k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
10.2k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
8.51k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
8.51k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
8.51k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
8.51k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
8.51k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
7.31k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
7.31k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
7.31k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
7.31k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
7.31k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
807
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
807
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
807
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
807
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
807
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
53.1k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
53.1k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
53.1k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
53.1k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
53.1k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
52.7k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
52.7k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
52.7k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
52.7k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
52.7k
  }
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
16.7k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
16.7k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
16.7k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
16.7k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
16.7k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
53.2k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
53.2k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
53.2k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
53.2k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
53.2k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
52.8k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
52.8k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
52.8k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
52.8k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
52.8k
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
807
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
807
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
807
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
807
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
807
  }
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
306
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
306
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
306
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
306
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
306
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
173
102
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
102
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
102
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
102
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
102
  }
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<8ul, 8ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<1ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 1ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<2ul, 4ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<4ul, 2ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
180
};
181
182
// Avoid inlining and unrolling transposes for large blocks.
183
template <size_t N, size_t M>
184
struct Transpose<
185
    N, M, typename std::enable_if<(N >= 8 && M >= 8 && N * M >= 512)>::type> {
186
  template <typename From, typename To>
187
504
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
504
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
504
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
504
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
504
                                const From&, const To&, size_t, size_t) =
194
504
        GenericTransposeBlock<0, 0, From, To>;
195
504
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
504
  }
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
187
306
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
306
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
306
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
306
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
306
                                const From&, const To&, size_t, size_t) =
194
306
        GenericTransposeBlock<0, 0, From, To>;
195
306
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
306
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
187
102
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
102
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
102
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
102
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
102
                                const From&, const To&, size_t, size_t) =
194
102
        GenericTransposeBlock<0, 0, From, To>;
195
102
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
102
  }
dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Line
Count
Source
187
96
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
96
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
96
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
96
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
96
                                const From&, const To&, size_t, size_t) =
194
96
        GenericTransposeBlock<0, 0, From, To>;
195
96
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
96
  }
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: dec_group.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 16ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<16ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 32ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<32ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 64ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<64ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<256ul, 128ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SCALAR::(anonymous namespace)::Transpose<128ul, 256ul, void>::Run<jxl::N_SCALAR::(anonymous namespace)::DCTFrom, jxl::N_SCALAR::(anonymous namespace)::DCTTo>(jxl::N_SCALAR::(anonymous namespace)::DCTFrom const&, jxl::N_SCALAR::(anonymous namespace)::DCTTo const&)
197
};
198
199
}  // namespace
200
// NOLINTNEXTLINE(google-readability-namespace-comments)
201
}  // namespace HWY_NAMESPACE
202
}  // namespace jxl
203
HWY_AFTER_NAMESPACE();
204
205
#endif  // LIB_JXL_TRANSPOSE_INL_H_