Coverage Report

Created: 2026-07-25 07:03

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
237k
JXL_NOINLINE void NoInlineWrapper(const T& f, const Args&... args) {
42
237k
  return f(args...);
43
237k
}
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
237k
JXL_NOINLINE void NoInlineWrapper(const T& f, const Args&... args) {
42
237k
  return f(args...);
43
237k
}
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
597
JXL_NOINLINE void NoInlineWrapper(const T& f, const Args&... args) {
42
597
  return f(args...);
43
597
}
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
265k
    size_t ROWSp, size_t COLSp) {
53
265k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
265k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
1.96M
  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.69M
  }
60
265k
}
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.9k
    size_t ROWSp, size_t COLSp) {
53
10.9k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
10.9k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
54.7k
  for (size_t n = 0; n < ROWS; ++n) {
56
394k
    for (size_t m = 0; m < COLS; ++m) {
57
350k
      to.Write(from.Read(n, m), m, n);
58
350k
    }
59
43.7k
  }
60
10.9k
}
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.88k
    size_t ROWSp, size_t COLSp) {
53
8.88k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
8.88k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
80.0k
  for (size_t n = 0; n < ROWS; ++n) {
56
355k
    for (size_t m = 0; m < COLS; ++m) {
57
284k
      to.Write(from.Read(n, m), m, n);
58
284k
    }
59
71.1k
  }
60
8.88k
}
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.43k
    size_t ROWSp, size_t COLSp) {
53
7.43k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
7.43k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
37.1k
  for (size_t n = 0; n < ROWS; ++n) {
56
148k
    for (size_t m = 0; m < COLS; ++m) {
57
118k
      to.Write(from.Read(n, m), m, n);
58
118k
    }
59
29.7k
  }
60
7.43k
}
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
930
    size_t ROWSp, size_t COLSp) {
53
930
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
930
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
15.8k
  for (size_t n = 0; n < ROWS; ++n) {
56
252k
    for (size_t m = 0; m < COLS; ++m) {
57
238k
      to.Write(from.Read(n, m), m, n);
58
238k
    }
59
14.8k
  }
60
930
}
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
55.2k
    size_t ROWSp, size_t COLSp) {
53
55.2k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
55.2k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
470k
  for (size_t n = 0; n < ROWS; ++n) {
56
6.89M
    for (size_t m = 0; m < COLS; ++m) {
57
6.48M
      to.Write(from.Read(n, m), m, n);
58
6.48M
    }
59
414k
  }
60
55.2k
}
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
54.6k
    size_t ROWSp, size_t COLSp) {
53
54.6k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
54.6k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
864k
  for (size_t n = 0; n < ROWS; ++n) {
56
7.23M
    for (size_t m = 0; m < COLS; ++m) {
57
6.42M
      to.Write(from.Read(n, m), m, n);
58
6.42M
    }
59
810k
  }
60
54.6k
}
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
597
    size_t ROWSp, size_t COLSp) {
53
597
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
597
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
13.9k
  for (size_t n = 0; n < ROWS; ++n) {
56
377k
    for (size_t m = 0; m < COLS; ++m) {
57
364k
      to.Write(from.Read(n, m), m, n);
58
364k
    }
59
13.3k
  }
60
597
}
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.2k
    size_t ROWSp, size_t COLSp) {
53
16.2k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
16.2k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
146k
  for (size_t n = 0; n < ROWS; ++n) {
56
1.17M
    for (size_t m = 0; m < COLS; ++m) {
57
1.04M
      to.Write(from.Read(n, m), m, n);
58
1.04M
    }
59
130k
  }
60
16.2k
}
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
54.7k
    size_t ROWSp, size_t COLSp) {
53
54.7k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
54.7k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
164k
  for (size_t n = 0; n < ROWS; ++n) {
56
218k
    for (size_t m = 0; m < COLS; ++m) {
57
109k
      to.Write(from.Read(n, m), m, n);
58
109k
    }
59
109k
  }
60
54.7k
}
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
54.5k
    size_t ROWSp, size_t COLSp) {
53
54.5k
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
54.5k
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
109k
  for (size_t n = 0; n < ROWS; ++n) {
56
163k
    for (size_t m = 0; m < COLS; ++m) {
57
109k
      to.Write(from.Read(n, m), m, n);
58
109k
    }
59
54.5k
  }
60
54.5k
}
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
930
    size_t ROWSp, size_t COLSp) {
53
930
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
930
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
2.79k
  for (size_t n = 0; n < ROWS; ++n) {
56
5.58k
    for (size_t m = 0; m < COLS; ++m) {
57
3.72k
      to.Write(from.Read(n, m), m, n);
58
3.72k
    }
59
1.86k
  }
60
930
}
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
360
    size_t ROWSp, size_t COLSp) {
53
360
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
360
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
1.80k
  for (size_t n = 0; n < ROWS; ++n) {
56
4.32k
    for (size_t m = 0; m < COLS; ++m) {
57
2.88k
      to.Write(from.Read(n, m), m, n);
58
2.88k
    }
59
1.44k
  }
60
360
}
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
123
    size_t ROWSp, size_t COLSp) {
53
123
  size_t ROWS = ROWS_or_0 == 0 ? ROWSp : ROWS_or_0;
54
123
  size_t COLS = COLS_or_0 == 0 ? COLSp : COLS_or_0;
55
369
  for (size_t n = 0; n < ROWS; ++n) {
56
1.23k
    for (size_t m = 0; m < COLS; ++m) {
57
984
      to.Write(from.Read(n, m), m, n);
58
984
    }
59
246
  }
60
123
}
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
265k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
265k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
265k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
265k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
265k
  }
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.9k
  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.9k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
10.9k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
10.9k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
10.9k
  }
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.88k
  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.88k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
8.88k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
8.88k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
8.88k
  }
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.43k
  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.43k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
7.43k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
7.43k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
7.43k
  }
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
930
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
930
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
930
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
930
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
930
  }
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
55.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
55.2k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
55.2k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
55.2k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
55.2k
  }
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
54.6k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
54.6k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
54.6k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
54.6k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
54.6k
  }
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.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
16.2k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
16.2k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
16.2k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
16.2k
  }
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
54.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
54.7k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
54.7k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
54.7k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
54.7k
  }
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
54.5k
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
54.5k
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
54.5k
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
54.5k
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
54.5k
  }
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
930
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
930
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
930
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
930
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
930
  }
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
360
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
360
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
360
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
360
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
360
  }
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
123
  static void Run(const From& from, const To& to) {
174
    // This does not guarantee anything, just saves from the most stupid
175
    // mistakes.
176
123
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
177
123
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
178
123
    GenericTransposeBlock<N, M>(tag, from, to, N, M);
179
123
  }
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
597
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
597
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
597
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
597
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
597
                                const From&, const To&, size_t, size_t) =
194
597
        GenericTransposeBlock<0, 0, From, To>;
195
597
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
597
  }
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
360
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
360
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
360
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
360
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
360
                                const From&, const To&, size_t, size_t) =
194
360
        GenericTransposeBlock<0, 0, From, To>;
195
360
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
360
  }
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
123
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
123
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
123
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
123
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
123
                                const From&, const To&, size_t, size_t) =
194
123
        GenericTransposeBlock<0, 0, From, To>;
195
123
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
123
  }
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
114
  static void Run(const From& from, const To& to) {
188
    // This does not guarantee anything, just saves from the most stupid
189
    // mistakes.
190
114
    JXL_DASSERT(from.Address(0, 0) != to.Address(0, 0));
191
114
    TransposeSimdTag<TransposeUseSimd(N, M)> tag;
192
114
    constexpr void (*transpose)(TransposeSimdTag<TransposeUseSimd(N, M)>,
193
114
                                const From&, const To&, size_t, size_t) =
194
114
        GenericTransposeBlock<0, 0, From, To>;
195
114
    NoInlineWrapper(transpose, tag, from, to, N, M);
196
114
  }
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_