Coverage Report

Created: 2026-10-28 07:26

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/enc_transforms-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
#include "lib/jxl/base/compiler_specific.h"
7
#include "lib/jxl/frame_dimensions.h"
8
9
#if defined(LIB_JXL_ENC_TRANSFORMS_INL_H_) == defined(HWY_TARGET_TOGGLE)
10
#ifdef LIB_JXL_ENC_TRANSFORMS_INL_H_
11
#undef LIB_JXL_ENC_TRANSFORMS_INL_H_
12
#else
13
#define LIB_JXL_ENC_TRANSFORMS_INL_H_
14
#endif
15
16
#include <cstddef>
17
#include <cstdint>
18
#include <hwy/highway.h>
19
20
#include "lib/jxl/ac_strategy.h"
21
#include "lib/jxl/dct-inl.h"
22
#include "lib/jxl/dct_scales.h"
23
24
HWY_BEFORE_NAMESPACE();
25
namespace jxl {
26
27
enum class AcStrategyType : uint32_t;
28
29
namespace HWY_NAMESPACE {
30
namespace {
31
32
constexpr size_t kMaxBlocks = 32;
33
34
// Inverse of ReinterpretingDCT.
35
template <size_t DCT_ROWS, size_t DCT_COLS, size_t LF_ROWS, size_t LF_COLS,
36
          size_t ROWS, size_t COLS>
37
HWY_INLINE void ReinterpretingIDCT(const float* input,
38
                                   const size_t input_stride, float* output,
39
3.32M
                                   const size_t output_stride, float* scratch) {
40
3.32M
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
3.32M
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
3.32M
  float* block = scratch;
43
3.32M
  if (ROWS < COLS) {
44
3.04M
    for (size_t y = 0; y < LF_ROWS; y++) {
45
6.84M
      for (size_t x = 0; x < LF_COLS; x++) {
46
5.13M
        block[y * COLS + x] = input[y * input_stride + x] *
47
5.13M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
5.13M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
5.13M
      }
50
1.70M
    }
51
1.98M
  } else {
52
7.54M
    for (size_t y = 0; y < LF_COLS; y++) {
53
30.2M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
24.7M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
24.7M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
24.7M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
24.7M
      }
58
5.56M
    }
59
1.98M
  }
60
61
3.32M
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
3.32M
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
3.32M
                                  scratch_space);
64
3.32M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
313k
                                   const size_t output_stride, float* scratch) {
40
313k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
313k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
313k
  float* block = scratch;
43
313k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
313k
  } else {
52
627k
    for (size_t y = 0; y < LF_COLS; y++) {
53
941k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
627k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
627k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
627k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
627k
      }
58
313k
    }
59
313k
  }
60
61
313k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
313k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
313k
                                  scratch_space);
64
313k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
511k
                                   const size_t output_stride, float* scratch) {
40
511k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
511k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
511k
  float* block = scratch;
43
511k
  if (ROWS < COLS) {
44
1.02M
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.53M
      for (size_t x = 0; x < LF_COLS; x++) {
46
1.02M
        block[y * COLS + x] = input[y * input_stride + x] *
47
1.02M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
1.02M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
1.02M
      }
50
511k
    }
51
511k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
511k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
511k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
511k
                                  scratch_space);
64
511k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
187k
                                   const size_t output_stride, float* scratch) {
40
187k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
187k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
187k
  float* block = scratch;
43
187k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
187k
  } else {
52
563k
    for (size_t y = 0; y < LF_COLS; y++) {
53
1.12M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
750k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
750k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
750k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
750k
      }
58
375k
    }
59
187k
  }
60
61
187k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
187k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
187k
                                  scratch_space);
64
187k
}
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
93.6k
                                   const size_t output_stride, float* scratch) {
40
93.6k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
93.6k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
93.6k
  float* block = scratch;
43
93.6k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
93.6k
  } else {
52
280k
    for (size_t y = 0; y < LF_COLS; y++) {
53
936k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
749k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
749k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
749k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
749k
      }
58
187k
    }
59
93.6k
  }
60
61
93.6k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
93.6k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
93.6k
                                  scratch_space);
64
93.6k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
148k
                                   const size_t output_stride, float* scratch) {
40
148k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
148k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
148k
  float* block = scratch;
43
148k
  if (ROWS < COLS) {
44
444k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.48M
      for (size_t x = 0; x < LF_COLS; x++) {
46
1.18M
        block[y * COLS + x] = input[y * input_stride + x] *
47
1.18M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
1.18M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
1.18M
      }
50
296k
    }
51
148k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
148k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
148k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
148k
                                  scratch_space);
64
148k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
312k
                                   const size_t output_stride, float* scratch) {
40
312k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
312k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
312k
  float* block = scratch;
43
312k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
312k
  } else {
52
1.56M
    for (size_t y = 0; y < LF_COLS; y++) {
53
6.24M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.99M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.99M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.99M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.99M
      }
58
1.24M
    }
59
312k
  }
60
61
312k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
312k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
312k
                                  scratch_space);
64
312k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
10.0k
                                   const size_t output_stride, float* scratch) {
40
10.0k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
10.0k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
10.0k
  float* block = scratch;
43
10.0k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
10.0k
  } else {
52
50.3k
    for (size_t y = 0; y < LF_COLS; y++) {
53
362k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
322k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
322k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
322k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
322k
      }
58
40.2k
    }
59
10.0k
  }
60
61
10.0k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
10.0k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
10.0k
                                  scratch_space);
64
10.0k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
11.3k
                                   const size_t output_stride, float* scratch) {
40
11.3k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
11.3k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
11.3k
  float* block = scratch;
43
11.3k
  if (ROWS < COLS) {
44
56.6k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
407k
      for (size_t x = 0; x < LF_COLS; x++) {
46
362k
        block[y * COLS + x] = input[y * input_stride + x] *
47
362k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
362k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
362k
      }
50
45.3k
    }
51
11.3k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
11.3k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
11.3k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
11.3k
                                  scratch_space);
64
11.3k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
76.8k
                                   const size_t output_stride, float* scratch) {
40
76.8k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
76.8k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
76.8k
  float* block = scratch;
43
76.8k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
76.8k
  } else {
52
691k
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.53M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.91M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.91M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.91M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.91M
      }
58
614k
    }
59
76.8k
  }
60
61
76.8k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
76.8k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
76.8k
                                  scratch_space);
64
76.8k
}
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
313k
                                   const size_t output_stride, float* scratch) {
40
313k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
313k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
313k
  float* block = scratch;
43
313k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
313k
  } else {
52
627k
    for (size_t y = 0; y < LF_COLS; y++) {
53
941k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
627k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
627k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
627k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
627k
      }
58
313k
    }
59
313k
  }
60
61
313k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
313k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
313k
                                  scratch_space);
64
313k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
511k
                                   const size_t output_stride, float* scratch) {
40
511k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
511k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
511k
  float* block = scratch;
43
511k
  if (ROWS < COLS) {
44
1.02M
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.53M
      for (size_t x = 0; x < LF_COLS; x++) {
46
1.02M
        block[y * COLS + x] = input[y * input_stride + x] *
47
1.02M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
1.02M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
1.02M
      }
50
511k
    }
51
511k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
511k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
511k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
511k
                                  scratch_space);
64
511k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
187k
                                   const size_t output_stride, float* scratch) {
40
187k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
187k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
187k
  float* block = scratch;
43
187k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
187k
  } else {
52
563k
    for (size_t y = 0; y < LF_COLS; y++) {
53
1.12M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
750k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
750k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
750k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
750k
      }
58
375k
    }
59
187k
  }
60
61
187k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
187k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
187k
                                  scratch_space);
64
187k
}
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
93.6k
                                   const size_t output_stride, float* scratch) {
40
93.6k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
93.6k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
93.6k
  float* block = scratch;
43
93.6k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
93.6k
  } else {
52
280k
    for (size_t y = 0; y < LF_COLS; y++) {
53
936k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
749k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
749k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
749k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
749k
      }
58
187k
    }
59
93.6k
  }
60
61
93.6k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
93.6k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
93.6k
                                  scratch_space);
64
93.6k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
148k
                                   const size_t output_stride, float* scratch) {
40
148k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
148k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
148k
  float* block = scratch;
43
148k
  if (ROWS < COLS) {
44
444k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.48M
      for (size_t x = 0; x < LF_COLS; x++) {
46
1.18M
        block[y * COLS + x] = input[y * input_stride + x] *
47
1.18M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
1.18M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
1.18M
      }
50
296k
    }
51
148k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
148k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
148k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
148k
                                  scratch_space);
64
148k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
312k
                                   const size_t output_stride, float* scratch) {
40
312k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
312k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
312k
  float* block = scratch;
43
312k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
312k
  } else {
52
1.56M
    for (size_t y = 0; y < LF_COLS; y++) {
53
6.24M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.99M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.99M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.99M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.99M
      }
58
1.24M
    }
59
312k
  }
60
61
312k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
312k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
312k
                                  scratch_space);
64
312k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
10.0k
                                   const size_t output_stride, float* scratch) {
40
10.0k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
10.0k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
10.0k
  float* block = scratch;
43
10.0k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
10.0k
  } else {
52
50.3k
    for (size_t y = 0; y < LF_COLS; y++) {
53
362k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
322k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
322k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
322k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
322k
      }
58
40.2k
    }
59
10.0k
  }
60
61
10.0k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
10.0k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
10.0k
                                  scratch_space);
64
10.0k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
11.3k
                                   const size_t output_stride, float* scratch) {
40
11.3k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
11.3k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
11.3k
  float* block = scratch;
43
11.3k
  if (ROWS < COLS) {
44
56.6k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
407k
      for (size_t x = 0; x < LF_COLS; x++) {
46
362k
        block[y * COLS + x] = input[y * input_stride + x] *
47
362k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
362k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
362k
      }
50
45.3k
    }
51
11.3k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
11.3k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
11.3k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
11.3k
                                  scratch_space);
64
11.3k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
76.8k
                                   const size_t output_stride, float* scratch) {
40
76.8k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
76.8k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
76.8k
  float* block = scratch;
43
76.8k
  if (ROWS < COLS) {
44
0
    for (size_t y = 0; y < LF_ROWS; y++) {
45
0
      for (size_t x = 0; x < LF_COLS; x++) {
46
0
        block[y * COLS + x] = input[y * input_stride + x] *
47
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
0
      }
50
0
    }
51
76.8k
  } else {
52
691k
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.53M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.91M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.91M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.91M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.91M
      }
58
614k
    }
59
76.8k
  }
60
61
76.8k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
76.8k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
76.8k
                                  scratch_space);
64
76.8k
}
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingIDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*)
65
66
template <size_t S>
67
81.2M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
81.2M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
81.2M
  static_assert(S % 2 == 0, "S should be even");
70
81.2M
  float temp[kDCTBlockSize];
71
81.2M
  constexpr size_t num_2x2 = S / 2;
72
270M
  for (size_t y = 0; y < num_2x2; y++) {
73
758M
    for (size_t x = 0; x < num_2x2; x++) {
74
569M
      float c00 = block[y * 2 * stride + x * 2];
75
569M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
569M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
569M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
569M
      float r00 = c00 + c01 + c10 + c11;
79
569M
      float r01 = c00 + c01 - c10 - c11;
80
569M
      float r10 = c00 - c01 + c10 - c11;
81
569M
      float r11 = c00 - c01 - c10 + c11;
82
569M
      r00 *= 0.25f;
83
569M
      r01 *= 0.25f;
84
569M
      r10 *= 0.25f;
85
569M
      r11 *= 0.25f;
86
569M
      temp[y * kBlockDim + x] = r00;
87
569M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
569M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
569M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
569M
    }
91
189M
  }
92
460M
  for (size_t y = 0; y < S; y++) {
93
2.65G
    for (size_t x = 0; x < S; x++) {
94
2.27G
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
2.27G
    }
96
379M
  }
97
81.2M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.24M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.24M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.24M
  static_assert(S % 2 == 0, "S should be even");
70
1.24M
  float temp[kDCTBlockSize];
71
1.24M
  constexpr size_t num_2x2 = S / 2;
72
6.20M
  for (size_t y = 0; y < num_2x2; y++) {
73
24.8M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.8M
      float c00 = block[y * 2 * stride + x * 2];
75
19.8M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
19.8M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
19.8M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
19.8M
      float r00 = c00 + c01 + c10 + c11;
79
19.8M
      float r01 = c00 + c01 - c10 - c11;
80
19.8M
      float r10 = c00 - c01 + c10 - c11;
81
19.8M
      float r11 = c00 - c01 - c10 + c11;
82
19.8M
      r00 *= 0.25f;
83
19.8M
      r01 *= 0.25f;
84
19.8M
      r10 *= 0.25f;
85
19.8M
      r11 *= 0.25f;
86
19.8M
      temp[y * kBlockDim + x] = r00;
87
19.8M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
19.8M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
19.8M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
19.8M
    }
91
4.96M
  }
92
11.1M
  for (size_t y = 0; y < S; y++) {
93
89.3M
    for (size_t x = 0; x < S; x++) {
94
79.4M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
79.4M
    }
96
9.93M
  }
97
1.24M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.24M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.24M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.24M
  static_assert(S % 2 == 0, "S should be even");
70
1.24M
  float temp[kDCTBlockSize];
71
1.24M
  constexpr size_t num_2x2 = S / 2;
72
3.72M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.44M
    for (size_t x = 0; x < num_2x2; x++) {
74
4.96M
      float c00 = block[y * 2 * stride + x * 2];
75
4.96M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
4.96M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
4.96M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
4.96M
      float r00 = c00 + c01 + c10 + c11;
79
4.96M
      float r01 = c00 + c01 - c10 - c11;
80
4.96M
      float r10 = c00 - c01 + c10 - c11;
81
4.96M
      float r11 = c00 - c01 - c10 + c11;
82
4.96M
      r00 *= 0.25f;
83
4.96M
      r01 *= 0.25f;
84
4.96M
      r10 *= 0.25f;
85
4.96M
      r11 *= 0.25f;
86
4.96M
      temp[y * kBlockDim + x] = r00;
87
4.96M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
4.96M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
4.96M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
4.96M
    }
91
2.48M
  }
92
6.20M
  for (size_t y = 0; y < S; y++) {
93
24.8M
    for (size_t x = 0; x < S; x++) {
94
19.8M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
19.8M
    }
96
4.96M
  }
97
1.24M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.24M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.24M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.24M
  static_assert(S % 2 == 0, "S should be even");
70
1.24M
  float temp[kDCTBlockSize];
71
1.24M
  constexpr size_t num_2x2 = S / 2;
72
2.48M
  for (size_t y = 0; y < num_2x2; y++) {
73
2.48M
    for (size_t x = 0; x < num_2x2; x++) {
74
1.24M
      float c00 = block[y * 2 * stride + x * 2];
75
1.24M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
1.24M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
1.24M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
1.24M
      float r00 = c00 + c01 + c10 + c11;
79
1.24M
      float r01 = c00 + c01 - c10 - c11;
80
1.24M
      float r10 = c00 - c01 + c10 - c11;
81
1.24M
      float r11 = c00 - c01 - c10 + c11;
82
1.24M
      r00 *= 0.25f;
83
1.24M
      r01 *= 0.25f;
84
1.24M
      r10 *= 0.25f;
85
1.24M
      r11 *= 0.25f;
86
1.24M
      temp[y * kBlockDim + x] = r00;
87
1.24M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
1.24M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
1.24M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
1.24M
    }
91
1.24M
  }
92
3.72M
  for (size_t y = 0; y < S; y++) {
93
7.44M
    for (size_t x = 0; x < S; x++) {
94
4.96M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
4.96M
    }
96
2.48M
  }
97
1.24M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
24.6M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
24.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
24.6M
  static_assert(S % 2 == 0, "S should be even");
70
24.6M
  float temp[kDCTBlockSize];
71
24.6M
  constexpr size_t num_2x2 = S / 2;
72
123M
  for (size_t y = 0; y < num_2x2; y++) {
73
492M
    for (size_t x = 0; x < num_2x2; x++) {
74
393M
      float c00 = block[y * 2 * stride + x * 2];
75
393M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
393M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
393M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
393M
      float r00 = c00 + c01 + c10 + c11;
79
393M
      float r01 = c00 + c01 - c10 - c11;
80
393M
      float r10 = c00 - c01 + c10 - c11;
81
393M
      float r11 = c00 - c01 - c10 + c11;
82
393M
      r00 *= 0.25f;
83
393M
      r01 *= 0.25f;
84
393M
      r10 *= 0.25f;
85
393M
      r11 *= 0.25f;
86
393M
      temp[y * kBlockDim + x] = r00;
87
393M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
393M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
393M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
393M
    }
91
98.4M
  }
92
221M
  for (size_t y = 0; y < S; y++) {
93
1.77G
    for (size_t x = 0; x < S; x++) {
94
1.57G
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
1.57G
    }
96
196M
  }
97
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
24.6M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
24.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
24.6M
  static_assert(S % 2 == 0, "S should be even");
70
24.6M
  float temp[kDCTBlockSize];
71
24.6M
  constexpr size_t num_2x2 = S / 2;
72
73.8M
  for (size_t y = 0; y < num_2x2; y++) {
73
147M
    for (size_t x = 0; x < num_2x2; x++) {
74
98.4M
      float c00 = block[y * 2 * stride + x * 2];
75
98.4M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
98.4M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
98.4M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
98.4M
      float r00 = c00 + c01 + c10 + c11;
79
98.4M
      float r01 = c00 + c01 - c10 - c11;
80
98.4M
      float r10 = c00 - c01 + c10 - c11;
81
98.4M
      float r11 = c00 - c01 - c10 + c11;
82
98.4M
      r00 *= 0.25f;
83
98.4M
      r01 *= 0.25f;
84
98.4M
      r10 *= 0.25f;
85
98.4M
      r11 *= 0.25f;
86
98.4M
      temp[y * kBlockDim + x] = r00;
87
98.4M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
98.4M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
98.4M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
98.4M
    }
91
49.2M
  }
92
123M
  for (size_t y = 0; y < S; y++) {
93
492M
    for (size_t x = 0; x < S; x++) {
94
393M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
393M
    }
96
98.4M
  }
97
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
24.6M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
24.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
24.6M
  static_assert(S % 2 == 0, "S should be even");
70
24.6M
  float temp[kDCTBlockSize];
71
24.6M
  constexpr size_t num_2x2 = S / 2;
72
49.2M
  for (size_t y = 0; y < num_2x2; y++) {
73
49.2M
    for (size_t x = 0; x < num_2x2; x++) {
74
24.6M
      float c00 = block[y * 2 * stride + x * 2];
75
24.6M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
24.6M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
24.6M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
24.6M
      float r00 = c00 + c01 + c10 + c11;
79
24.6M
      float r01 = c00 + c01 - c10 - c11;
80
24.6M
      float r10 = c00 - c01 + c10 - c11;
81
24.6M
      float r11 = c00 - c01 - c10 + c11;
82
24.6M
      r00 *= 0.25f;
83
24.6M
      r01 *= 0.25f;
84
24.6M
      r10 *= 0.25f;
85
24.6M
      r11 *= 0.25f;
86
24.6M
      temp[y * kBlockDim + x] = r00;
87
24.6M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
24.6M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
24.6M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
24.6M
    }
91
24.6M
  }
92
73.8M
  for (size_t y = 0; y < S; y++) {
93
147M
    for (size_t x = 0; x < S; x++) {
94
98.4M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
98.4M
    }
96
49.2M
  }
97
24.6M
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.24M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.24M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.24M
  static_assert(S % 2 == 0, "S should be even");
70
1.24M
  float temp[kDCTBlockSize];
71
1.24M
  constexpr size_t num_2x2 = S / 2;
72
6.20M
  for (size_t y = 0; y < num_2x2; y++) {
73
24.8M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.8M
      float c00 = block[y * 2 * stride + x * 2];
75
19.8M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
19.8M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
19.8M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
19.8M
      float r00 = c00 + c01 + c10 + c11;
79
19.8M
      float r01 = c00 + c01 - c10 - c11;
80
19.8M
      float r10 = c00 - c01 + c10 - c11;
81
19.8M
      float r11 = c00 - c01 - c10 + c11;
82
19.8M
      r00 *= 0.25f;
83
19.8M
      r01 *= 0.25f;
84
19.8M
      r10 *= 0.25f;
85
19.8M
      r11 *= 0.25f;
86
19.8M
      temp[y * kBlockDim + x] = r00;
87
19.8M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
19.8M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
19.8M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
19.8M
    }
91
4.96M
  }
92
11.1M
  for (size_t y = 0; y < S; y++) {
93
89.3M
    for (size_t x = 0; x < S; x++) {
94
79.4M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
79.4M
    }
96
9.93M
  }
97
1.24M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.24M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.24M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.24M
  static_assert(S % 2 == 0, "S should be even");
70
1.24M
  float temp[kDCTBlockSize];
71
1.24M
  constexpr size_t num_2x2 = S / 2;
72
3.72M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.44M
    for (size_t x = 0; x < num_2x2; x++) {
74
4.96M
      float c00 = block[y * 2 * stride + x * 2];
75
4.96M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
4.96M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
4.96M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
4.96M
      float r00 = c00 + c01 + c10 + c11;
79
4.96M
      float r01 = c00 + c01 - c10 - c11;
80
4.96M
      float r10 = c00 - c01 + c10 - c11;
81
4.96M
      float r11 = c00 - c01 - c10 + c11;
82
4.96M
      r00 *= 0.25f;
83
4.96M
      r01 *= 0.25f;
84
4.96M
      r10 *= 0.25f;
85
4.96M
      r11 *= 0.25f;
86
4.96M
      temp[y * kBlockDim + x] = r00;
87
4.96M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
4.96M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
4.96M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
4.96M
    }
91
2.48M
  }
92
6.20M
  for (size_t y = 0; y < S; y++) {
93
24.8M
    for (size_t x = 0; x < S; x++) {
94
19.8M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
19.8M
    }
96
4.96M
  }
97
1.24M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.24M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.24M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.24M
  static_assert(S % 2 == 0, "S should be even");
70
1.24M
  float temp[kDCTBlockSize];
71
1.24M
  constexpr size_t num_2x2 = S / 2;
72
2.48M
  for (size_t y = 0; y < num_2x2; y++) {
73
2.48M
    for (size_t x = 0; x < num_2x2; x++) {
74
1.24M
      float c00 = block[y * 2 * stride + x * 2];
75
1.24M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
1.24M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
1.24M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
1.24M
      float r00 = c00 + c01 + c10 + c11;
79
1.24M
      float r01 = c00 + c01 - c10 - c11;
80
1.24M
      float r10 = c00 - c01 + c10 - c11;
81
1.24M
      float r11 = c00 - c01 - c10 + c11;
82
1.24M
      r00 *= 0.25f;
83
1.24M
      r01 *= 0.25f;
84
1.24M
      r10 *= 0.25f;
85
1.24M
      r11 *= 0.25f;
86
1.24M
      temp[y * kBlockDim + x] = r00;
87
1.24M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
1.24M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
1.24M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
1.24M
    }
91
1.24M
  }
92
3.72M
  for (size_t y = 0; y < S; y++) {
93
7.44M
    for (size_t x = 0; x < S; x++) {
94
4.96M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
4.96M
    }
96
2.48M
  }
97
1.24M
}
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
98
99
103M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
103M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
103M
      {
102
103M
          0.2500000000000000,
103
103M
          0.8769029297991420f,
104
103M
          0.0000000000000000,
105
103M
          0.0000000000000000,
106
103M
          0.0000000000000000,
107
103M
          -0.4105377591765233f,
108
103M
          0.0000000000000000,
109
103M
          0.0000000000000000,
110
103M
          0.0000000000000000,
111
103M
          0.0000000000000000,
112
103M
          0.0000000000000000,
113
103M
          0.0000000000000000,
114
103M
          0.0000000000000000,
115
103M
          0.0000000000000000,
116
103M
          0.0000000000000000,
117
103M
          0.0000000000000000,
118
103M
      },
119
103M
      {
120
103M
          0.2500000000000000,
121
103M
          0.2206518106944235f,
122
103M
          0.0000000000000000,
123
103M
          0.0000000000000000,
124
103M
          -0.7071067811865474f,
125
103M
          0.6235485373547691f,
126
103M
          0.0000000000000000,
127
103M
          0.0000000000000000,
128
103M
          0.0000000000000000,
129
103M
          0.0000000000000000,
130
103M
          0.0000000000000000,
131
103M
          0.0000000000000000,
132
103M
          0.0000000000000000,
133
103M
          0.0000000000000000,
134
103M
          0.0000000000000000,
135
103M
          0.0000000000000000,
136
103M
      },
137
103M
      {
138
103M
          0.2500000000000000,
139
103M
          -0.1014005039375376f,
140
103M
          0.4067007583026075f,
141
103M
          -0.2125574805828875f,
142
103M
          0.0000000000000000,
143
103M
          -0.0643507165794627f,
144
103M
          -0.4517556589999482f,
145
103M
          -0.3046847507248690f,
146
103M
          0.3017929516615495f,
147
103M
          0.4082482904638627f,
148
103M
          0.1747866975480809f,
149
103M
          -0.2110560104933578f,
150
103M
          -0.1426608480880726f,
151
103M
          -0.1381354035075859f,
152
103M
          -0.1743760259965107f,
153
103M
          0.1135498731499434f,
154
103M
      },
155
103M
      {
156
103M
          0.2500000000000000,
157
103M
          -0.1014005039375375f,
158
103M
          0.4444481661973445f,
159
103M
          0.3085497062849767f,
160
103M
          0.0000000000000000f,
161
103M
          -0.0643507165794627f,
162
103M
          0.1585450355184006f,
163
103M
          0.5112616136591823f,
164
103M
          0.2579236279634118f,
165
103M
          0.0000000000000000,
166
103M
          0.0812611176717539f,
167
103M
          0.1856718091610980f,
168
103M
          -0.3416446842253372f,
169
103M
          0.3302282550303788f,
170
103M
          0.0702790691196284f,
171
103M
          -0.0741750459581035f,
172
103M
      },
173
103M
      {
174
103M
          0.2500000000000000,
175
103M
          0.2206518106944236f,
176
103M
          0.0000000000000000,
177
103M
          0.0000000000000000,
178
103M
          0.7071067811865476f,
179
103M
          0.6235485373547694f,
180
103M
          0.0000000000000000,
181
103M
          0.0000000000000000,
182
103M
          0.0000000000000000,
183
103M
          0.0000000000000000,
184
103M
          0.0000000000000000,
185
103M
          0.0000000000000000,
186
103M
          0.0000000000000000,
187
103M
          0.0000000000000000,
188
103M
          0.0000000000000000,
189
103M
          0.0000000000000000,
190
103M
      },
191
103M
      {
192
103M
          0.2500000000000000,
193
103M
          -0.1014005039375378f,
194
103M
          0.0000000000000000,
195
103M
          0.4706702258572536f,
196
103M
          0.0000000000000000,
197
103M
          -0.0643507165794628f,
198
103M
          -0.0403851516082220f,
199
103M
          0.0000000000000000,
200
103M
          0.1627234014286620f,
201
103M
          0.0000000000000000,
202
103M
          0.0000000000000000,
203
103M
          0.0000000000000000,
204
103M
          0.7367497537172237f,
205
103M
          0.0875511500058708f,
206
103M
          -0.2921026642334881f,
207
103M
          0.1940289303259434f,
208
103M
      },
209
103M
      {
210
103M
          0.2500000000000000,
211
103M
          -0.1014005039375377f,
212
103M
          0.1957439937204294f,
213
103M
          -0.1621205195722993f,
214
103M
          0.0000000000000000,
215
103M
          -0.0643507165794628f,
216
103M
          0.0074182263792424f,
217
103M
          -0.2904801297289980f,
218
103M
          0.0952002265347504f,
219
103M
          0.0000000000000000,
220
103M
          -0.3675398009862027f,
221
103M
          0.4921585901373873f,
222
103M
          0.2462710772207515f,
223
103M
          -0.0794670660590957f,
224
103M
          0.3623817333531167f,
225
103M
          -0.4351904965232280f,
226
103M
      },
227
103M
      {
228
103M
          0.2500000000000000,
229
103M
          -0.1014005039375376f,
230
103M
          0.2929100136981264f,
231
103M
          0.0000000000000000,
232
103M
          0.0000000000000000,
233
103M
          -0.0643507165794627f,
234
103M
          0.3935103426921017f,
235
103M
          -0.0657870154914280f,
236
103M
          0.0000000000000000,
237
103M
          -0.4082482904638628f,
238
103M
          -0.3078822139579090f,
239
103M
          -0.3852501370925192f,
240
103M
          -0.0857401903551931f,
241
103M
          -0.4613374887461511f,
242
103M
          0.0000000000000000,
243
103M
          0.2191868483885747f,
244
103M
      },
245
103M
      {
246
103M
          0.2500000000000000,
247
103M
          -0.1014005039375376f,
248
103M
          -0.4067007583026072f,
249
103M
          -0.2125574805828705f,
250
103M
          0.0000000000000000,
251
103M
          -0.0643507165794627f,
252
103M
          -0.4517556589999464f,
253
103M
          0.3046847507248840f,
254
103M
          0.3017929516615503f,
255
103M
          -0.4082482904638635f,
256
103M
          -0.1747866975480813f,
257
103M
          0.2110560104933581f,
258
103M
          -0.1426608480880734f,
259
103M
          -0.1381354035075829f,
260
103M
          -0.1743760259965108f,
261
103M
          0.1135498731499426f,
262
103M
      },
263
103M
      {
264
103M
          0.2500000000000000,
265
103M
          -0.1014005039375377f,
266
103M
          -0.1957439937204287f,
267
103M
          -0.1621205195722833f,
268
103M
          0.0000000000000000,
269
103M
          -0.0643507165794628f,
270
103M
          0.0074182263792444f,
271
103M
          0.2904801297290076f,
272
103M
          0.0952002265347505f,
273
103M
          0.0000000000000000,
274
103M
          0.3675398009862011f,
275
103M
          -0.4921585901373891f,
276
103M
          0.2462710772207514f,
277
103M
          -0.0794670660591026f,
278
103M
          0.3623817333531165f,
279
103M
          -0.4351904965232251f,
280
103M
      },
281
103M
      {
282
103M
          0.2500000000000000,
283
103M
          -0.1014005039375375f,
284
103M
          0.0000000000000000,
285
103M
          -0.4706702258572528f,
286
103M
          0.0000000000000000,
287
103M
          -0.0643507165794627f,
288
103M
          0.1107416575309343f,
289
103M
          0.0000000000000000,
290
103M
          -0.1627234014286617f,
291
103M
          0.0000000000000000,
292
103M
          0.0000000000000000,
293
103M
          0.0000000000000000,
294
103M
          0.1488339922711357f,
295
103M
          0.4972464710953509f,
296
103M
          0.2921026642334879f,
297
103M
          0.5550443808910661f,
298
103M
      },
299
103M
      {
300
103M
          0.2500000000000000,
301
103M
          -0.1014005039375377f,
302
103M
          0.1137907446044809f,
303
103M
          -0.1464291867126764f,
304
103M
          0.0000000000000000,
305
103M
          -0.0643507165794628f,
306
103M
          0.0829816309488205f,
307
103M
          -0.2388977352334460f,
308
103M
          -0.3531238544981630f,
309
103M
          -0.4082482904638630f,
310
103M
          0.4826689115059883f,
311
103M
          0.1741941265991622f,
312
103M
          -0.0476868035022925f,
313
103M
          0.1253805944856366f,
314
103M
          -0.4326608024727445f,
315
103M
          -0.2546827712406646f,
316
103M
      },
317
103M
      {
318
103M
          0.2500000000000000,
319
103M
          -0.1014005039375377f,
320
103M
          -0.4444481661973438f,
321
103M
          0.3085497062849487f,
322
103M
          0.0000000000000000,
323
103M
          -0.0643507165794628f,
324
103M
          0.1585450355183970f,
325
103M
          -0.5112616136592012f,
326
103M
          0.2579236279634129f,
327
103M
          0.0000000000000000,
328
103M
          -0.0812611176717504f,
329
103M
          -0.1856718091610990f,
330
103M
          -0.3416446842253373f,
331
103M
          0.3302282550303805f,
332
103M
          0.0702790691196282f,
333
103M
          -0.0741750459581023f,
334
103M
      },
335
103M
      {
336
103M
          0.2500000000000000,
337
103M
          -0.1014005039375376f,
338
103M
          -0.2929100136981264f,
339
103M
          0.0000000000000000,
340
103M
          0.0000000000000000,
341
103M
          -0.0643507165794627f,
342
103M
          0.3935103426921022f,
343
103M
          0.0657870154914254f,
344
103M
          0.0000000000000000,
345
103M
          0.4082482904638634f,
346
103M
          0.3078822139579031f,
347
103M
          0.3852501370925211f,
348
103M
          -0.0857401903551927f,
349
103M
          -0.4613374887461554f,
350
103M
          0.0000000000000000,
351
103M
          0.2191868483885728f,
352
103M
      },
353
103M
      {
354
103M
          0.2500000000000000,
355
103M
          -0.1014005039375376f,
356
103M
          -0.1137907446044814f,
357
103M
          -0.1464291867126654f,
358
103M
          0.0000000000000000,
359
103M
          -0.0643507165794627f,
360
103M
          0.0829816309488214f,
361
103M
          0.2388977352334547f,
362
103M
          -0.3531238544981624f,
363
103M
          0.4082482904638630f,
364
103M
          -0.4826689115059858f,
365
103M
          -0.1741941265991621f,
366
103M
          -0.0476868035022928f,
367
103M
          0.1253805944856431f,
368
103M
          -0.4326608024727457f,
369
103M
          -0.2546827712406641f,
370
103M
      },
371
103M
      {
372
103M
          0.2500000000000000,
373
103M
          -0.1014005039375374f,
374
103M
          0.0000000000000000,
375
103M
          0.4251149611657548f,
376
103M
          0.0000000000000000,
377
103M
          -0.0643507165794626f,
378
103M
          -0.4517556589999480f,
379
103M
          0.0000000000000000,
380
103M
          -0.6035859033230976f,
381
103M
          0.0000000000000000,
382
103M
          0.0000000000000000,
383
103M
          0.0000000000000000,
384
103M
          -0.1426608480880724f,
385
103M
          -0.1381354035075845f,
386
103M
          0.3487520519930227f,
387
103M
          0.1135498731499429f,
388
103M
      },
389
103M
  };
390
391
103M
  const HWY_CAPPED(float, 16) d;
392
309M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
206M
    auto scalar = Zero(d);
394
3.50G
    for (size_t j = 0; j < 16; j++) {
395
3.29G
      auto px = Set(d, pixels[j]);
396
3.29G
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
3.29G
      scalar = MulAdd(px, basis, scalar);
398
3.29G
    }
399
206M
    Store(scalar, d, coeffs + i);
400
206M
  }
401
103M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
enc_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Line
Count
Source
99
2.29M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
2.29M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
2.29M
      {
102
2.29M
          0.2500000000000000,
103
2.29M
          0.8769029297991420f,
104
2.29M
          0.0000000000000000,
105
2.29M
          0.0000000000000000,
106
2.29M
          0.0000000000000000,
107
2.29M
          -0.4105377591765233f,
108
2.29M
          0.0000000000000000,
109
2.29M
          0.0000000000000000,
110
2.29M
          0.0000000000000000,
111
2.29M
          0.0000000000000000,
112
2.29M
          0.0000000000000000,
113
2.29M
          0.0000000000000000,
114
2.29M
          0.0000000000000000,
115
2.29M
          0.0000000000000000,
116
2.29M
          0.0000000000000000,
117
2.29M
          0.0000000000000000,
118
2.29M
      },
119
2.29M
      {
120
2.29M
          0.2500000000000000,
121
2.29M
          0.2206518106944235f,
122
2.29M
          0.0000000000000000,
123
2.29M
          0.0000000000000000,
124
2.29M
          -0.7071067811865474f,
125
2.29M
          0.6235485373547691f,
126
2.29M
          0.0000000000000000,
127
2.29M
          0.0000000000000000,
128
2.29M
          0.0000000000000000,
129
2.29M
          0.0000000000000000,
130
2.29M
          0.0000000000000000,
131
2.29M
          0.0000000000000000,
132
2.29M
          0.0000000000000000,
133
2.29M
          0.0000000000000000,
134
2.29M
          0.0000000000000000,
135
2.29M
          0.0000000000000000,
136
2.29M
      },
137
2.29M
      {
138
2.29M
          0.2500000000000000,
139
2.29M
          -0.1014005039375376f,
140
2.29M
          0.4067007583026075f,
141
2.29M
          -0.2125574805828875f,
142
2.29M
          0.0000000000000000,
143
2.29M
          -0.0643507165794627f,
144
2.29M
          -0.4517556589999482f,
145
2.29M
          -0.3046847507248690f,
146
2.29M
          0.3017929516615495f,
147
2.29M
          0.4082482904638627f,
148
2.29M
          0.1747866975480809f,
149
2.29M
          -0.2110560104933578f,
150
2.29M
          -0.1426608480880726f,
151
2.29M
          -0.1381354035075859f,
152
2.29M
          -0.1743760259965107f,
153
2.29M
          0.1135498731499434f,
154
2.29M
      },
155
2.29M
      {
156
2.29M
          0.2500000000000000,
157
2.29M
          -0.1014005039375375f,
158
2.29M
          0.4444481661973445f,
159
2.29M
          0.3085497062849767f,
160
2.29M
          0.0000000000000000f,
161
2.29M
          -0.0643507165794627f,
162
2.29M
          0.1585450355184006f,
163
2.29M
          0.5112616136591823f,
164
2.29M
          0.2579236279634118f,
165
2.29M
          0.0000000000000000,
166
2.29M
          0.0812611176717539f,
167
2.29M
          0.1856718091610980f,
168
2.29M
          -0.3416446842253372f,
169
2.29M
          0.3302282550303788f,
170
2.29M
          0.0702790691196284f,
171
2.29M
          -0.0741750459581035f,
172
2.29M
      },
173
2.29M
      {
174
2.29M
          0.2500000000000000,
175
2.29M
          0.2206518106944236f,
176
2.29M
          0.0000000000000000,
177
2.29M
          0.0000000000000000,
178
2.29M
          0.7071067811865476f,
179
2.29M
          0.6235485373547694f,
180
2.29M
          0.0000000000000000,
181
2.29M
          0.0000000000000000,
182
2.29M
          0.0000000000000000,
183
2.29M
          0.0000000000000000,
184
2.29M
          0.0000000000000000,
185
2.29M
          0.0000000000000000,
186
2.29M
          0.0000000000000000,
187
2.29M
          0.0000000000000000,
188
2.29M
          0.0000000000000000,
189
2.29M
          0.0000000000000000,
190
2.29M
      },
191
2.29M
      {
192
2.29M
          0.2500000000000000,
193
2.29M
          -0.1014005039375378f,
194
2.29M
          0.0000000000000000,
195
2.29M
          0.4706702258572536f,
196
2.29M
          0.0000000000000000,
197
2.29M
          -0.0643507165794628f,
198
2.29M
          -0.0403851516082220f,
199
2.29M
          0.0000000000000000,
200
2.29M
          0.1627234014286620f,
201
2.29M
          0.0000000000000000,
202
2.29M
          0.0000000000000000,
203
2.29M
          0.0000000000000000,
204
2.29M
          0.7367497537172237f,
205
2.29M
          0.0875511500058708f,
206
2.29M
          -0.2921026642334881f,
207
2.29M
          0.1940289303259434f,
208
2.29M
      },
209
2.29M
      {
210
2.29M
          0.2500000000000000,
211
2.29M
          -0.1014005039375377f,
212
2.29M
          0.1957439937204294f,
213
2.29M
          -0.1621205195722993f,
214
2.29M
          0.0000000000000000,
215
2.29M
          -0.0643507165794628f,
216
2.29M
          0.0074182263792424f,
217
2.29M
          -0.2904801297289980f,
218
2.29M
          0.0952002265347504f,
219
2.29M
          0.0000000000000000,
220
2.29M
          -0.3675398009862027f,
221
2.29M
          0.4921585901373873f,
222
2.29M
          0.2462710772207515f,
223
2.29M
          -0.0794670660590957f,
224
2.29M
          0.3623817333531167f,
225
2.29M
          -0.4351904965232280f,
226
2.29M
      },
227
2.29M
      {
228
2.29M
          0.2500000000000000,
229
2.29M
          -0.1014005039375376f,
230
2.29M
          0.2929100136981264f,
231
2.29M
          0.0000000000000000,
232
2.29M
          0.0000000000000000,
233
2.29M
          -0.0643507165794627f,
234
2.29M
          0.3935103426921017f,
235
2.29M
          -0.0657870154914280f,
236
2.29M
          0.0000000000000000,
237
2.29M
          -0.4082482904638628f,
238
2.29M
          -0.3078822139579090f,
239
2.29M
          -0.3852501370925192f,
240
2.29M
          -0.0857401903551931f,
241
2.29M
          -0.4613374887461511f,
242
2.29M
          0.0000000000000000,
243
2.29M
          0.2191868483885747f,
244
2.29M
      },
245
2.29M
      {
246
2.29M
          0.2500000000000000,
247
2.29M
          -0.1014005039375376f,
248
2.29M
          -0.4067007583026072f,
249
2.29M
          -0.2125574805828705f,
250
2.29M
          0.0000000000000000,
251
2.29M
          -0.0643507165794627f,
252
2.29M
          -0.4517556589999464f,
253
2.29M
          0.3046847507248840f,
254
2.29M
          0.3017929516615503f,
255
2.29M
          -0.4082482904638635f,
256
2.29M
          -0.1747866975480813f,
257
2.29M
          0.2110560104933581f,
258
2.29M
          -0.1426608480880734f,
259
2.29M
          -0.1381354035075829f,
260
2.29M
          -0.1743760259965108f,
261
2.29M
          0.1135498731499426f,
262
2.29M
      },
263
2.29M
      {
264
2.29M
          0.2500000000000000,
265
2.29M
          -0.1014005039375377f,
266
2.29M
          -0.1957439937204287f,
267
2.29M
          -0.1621205195722833f,
268
2.29M
          0.0000000000000000,
269
2.29M
          -0.0643507165794628f,
270
2.29M
          0.0074182263792444f,
271
2.29M
          0.2904801297290076f,
272
2.29M
          0.0952002265347505f,
273
2.29M
          0.0000000000000000,
274
2.29M
          0.3675398009862011f,
275
2.29M
          -0.4921585901373891f,
276
2.29M
          0.2462710772207514f,
277
2.29M
          -0.0794670660591026f,
278
2.29M
          0.3623817333531165f,
279
2.29M
          -0.4351904965232251f,
280
2.29M
      },
281
2.29M
      {
282
2.29M
          0.2500000000000000,
283
2.29M
          -0.1014005039375375f,
284
2.29M
          0.0000000000000000,
285
2.29M
          -0.4706702258572528f,
286
2.29M
          0.0000000000000000,
287
2.29M
          -0.0643507165794627f,
288
2.29M
          0.1107416575309343f,
289
2.29M
          0.0000000000000000,
290
2.29M
          -0.1627234014286617f,
291
2.29M
          0.0000000000000000,
292
2.29M
          0.0000000000000000,
293
2.29M
          0.0000000000000000,
294
2.29M
          0.1488339922711357f,
295
2.29M
          0.4972464710953509f,
296
2.29M
          0.2921026642334879f,
297
2.29M
          0.5550443808910661f,
298
2.29M
      },
299
2.29M
      {
300
2.29M
          0.2500000000000000,
301
2.29M
          -0.1014005039375377f,
302
2.29M
          0.1137907446044809f,
303
2.29M
          -0.1464291867126764f,
304
2.29M
          0.0000000000000000,
305
2.29M
          -0.0643507165794628f,
306
2.29M
          0.0829816309488205f,
307
2.29M
          -0.2388977352334460f,
308
2.29M
          -0.3531238544981630f,
309
2.29M
          -0.4082482904638630f,
310
2.29M
          0.4826689115059883f,
311
2.29M
          0.1741941265991622f,
312
2.29M
          -0.0476868035022925f,
313
2.29M
          0.1253805944856366f,
314
2.29M
          -0.4326608024727445f,
315
2.29M
          -0.2546827712406646f,
316
2.29M
      },
317
2.29M
      {
318
2.29M
          0.2500000000000000,
319
2.29M
          -0.1014005039375377f,
320
2.29M
          -0.4444481661973438f,
321
2.29M
          0.3085497062849487f,
322
2.29M
          0.0000000000000000,
323
2.29M
          -0.0643507165794628f,
324
2.29M
          0.1585450355183970f,
325
2.29M
          -0.5112616136592012f,
326
2.29M
          0.2579236279634129f,
327
2.29M
          0.0000000000000000,
328
2.29M
          -0.0812611176717504f,
329
2.29M
          -0.1856718091610990f,
330
2.29M
          -0.3416446842253373f,
331
2.29M
          0.3302282550303805f,
332
2.29M
          0.0702790691196282f,
333
2.29M
          -0.0741750459581023f,
334
2.29M
      },
335
2.29M
      {
336
2.29M
          0.2500000000000000,
337
2.29M
          -0.1014005039375376f,
338
2.29M
          -0.2929100136981264f,
339
2.29M
          0.0000000000000000,
340
2.29M
          0.0000000000000000,
341
2.29M
          -0.0643507165794627f,
342
2.29M
          0.3935103426921022f,
343
2.29M
          0.0657870154914254f,
344
2.29M
          0.0000000000000000,
345
2.29M
          0.4082482904638634f,
346
2.29M
          0.3078822139579031f,
347
2.29M
          0.3852501370925211f,
348
2.29M
          -0.0857401903551927f,
349
2.29M
          -0.4613374887461554f,
350
2.29M
          0.0000000000000000,
351
2.29M
          0.2191868483885728f,
352
2.29M
      },
353
2.29M
      {
354
2.29M
          0.2500000000000000,
355
2.29M
          -0.1014005039375376f,
356
2.29M
          -0.1137907446044814f,
357
2.29M
          -0.1464291867126654f,
358
2.29M
          0.0000000000000000,
359
2.29M
          -0.0643507165794627f,
360
2.29M
          0.0829816309488214f,
361
2.29M
          0.2388977352334547f,
362
2.29M
          -0.3531238544981624f,
363
2.29M
          0.4082482904638630f,
364
2.29M
          -0.4826689115059858f,
365
2.29M
          -0.1741941265991621f,
366
2.29M
          -0.0476868035022928f,
367
2.29M
          0.1253805944856431f,
368
2.29M
          -0.4326608024727457f,
369
2.29M
          -0.2546827712406641f,
370
2.29M
      },
371
2.29M
      {
372
2.29M
          0.2500000000000000,
373
2.29M
          -0.1014005039375374f,
374
2.29M
          0.0000000000000000,
375
2.29M
          0.4251149611657548f,
376
2.29M
          0.0000000000000000,
377
2.29M
          -0.0643507165794626f,
378
2.29M
          -0.4517556589999480f,
379
2.29M
          0.0000000000000000,
380
2.29M
          -0.6035859033230976f,
381
2.29M
          0.0000000000000000,
382
2.29M
          0.0000000000000000,
383
2.29M
          0.0000000000000000,
384
2.29M
          -0.1426608480880724f,
385
2.29M
          -0.1381354035075845f,
386
2.29M
          0.3487520519930227f,
387
2.29M
          0.1135498731499429f,
388
2.29M
      },
389
2.29M
  };
390
391
2.29M
  const HWY_CAPPED(float, 16) d;
392
6.88M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
4.59M
    auto scalar = Zero(d);
394
78.0M
    for (size_t j = 0; j < 16; j++) {
395
73.4M
      auto px = Set(d, pixels[j]);
396
73.4M
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
73.4M
      scalar = MulAdd(px, basis, scalar);
398
73.4M
    }
399
4.59M
    Store(scalar, d, coeffs + i);
400
4.59M
  }
401
2.29M
}
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Line
Count
Source
99
98.4M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
98.4M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
98.4M
      {
102
98.4M
          0.2500000000000000,
103
98.4M
          0.8769029297991420f,
104
98.4M
          0.0000000000000000,
105
98.4M
          0.0000000000000000,
106
98.4M
          0.0000000000000000,
107
98.4M
          -0.4105377591765233f,
108
98.4M
          0.0000000000000000,
109
98.4M
          0.0000000000000000,
110
98.4M
          0.0000000000000000,
111
98.4M
          0.0000000000000000,
112
98.4M
          0.0000000000000000,
113
98.4M
          0.0000000000000000,
114
98.4M
          0.0000000000000000,
115
98.4M
          0.0000000000000000,
116
98.4M
          0.0000000000000000,
117
98.4M
          0.0000000000000000,
118
98.4M
      },
119
98.4M
      {
120
98.4M
          0.2500000000000000,
121
98.4M
          0.2206518106944235f,
122
98.4M
          0.0000000000000000,
123
98.4M
          0.0000000000000000,
124
98.4M
          -0.7071067811865474f,
125
98.4M
          0.6235485373547691f,
126
98.4M
          0.0000000000000000,
127
98.4M
          0.0000000000000000,
128
98.4M
          0.0000000000000000,
129
98.4M
          0.0000000000000000,
130
98.4M
          0.0000000000000000,
131
98.4M
          0.0000000000000000,
132
98.4M
          0.0000000000000000,
133
98.4M
          0.0000000000000000,
134
98.4M
          0.0000000000000000,
135
98.4M
          0.0000000000000000,
136
98.4M
      },
137
98.4M
      {
138
98.4M
          0.2500000000000000,
139
98.4M
          -0.1014005039375376f,
140
98.4M
          0.4067007583026075f,
141
98.4M
          -0.2125574805828875f,
142
98.4M
          0.0000000000000000,
143
98.4M
          -0.0643507165794627f,
144
98.4M
          -0.4517556589999482f,
145
98.4M
          -0.3046847507248690f,
146
98.4M
          0.3017929516615495f,
147
98.4M
          0.4082482904638627f,
148
98.4M
          0.1747866975480809f,
149
98.4M
          -0.2110560104933578f,
150
98.4M
          -0.1426608480880726f,
151
98.4M
          -0.1381354035075859f,
152
98.4M
          -0.1743760259965107f,
153
98.4M
          0.1135498731499434f,
154
98.4M
      },
155
98.4M
      {
156
98.4M
          0.2500000000000000,
157
98.4M
          -0.1014005039375375f,
158
98.4M
          0.4444481661973445f,
159
98.4M
          0.3085497062849767f,
160
98.4M
          0.0000000000000000f,
161
98.4M
          -0.0643507165794627f,
162
98.4M
          0.1585450355184006f,
163
98.4M
          0.5112616136591823f,
164
98.4M
          0.2579236279634118f,
165
98.4M
          0.0000000000000000,
166
98.4M
          0.0812611176717539f,
167
98.4M
          0.1856718091610980f,
168
98.4M
          -0.3416446842253372f,
169
98.4M
          0.3302282550303788f,
170
98.4M
          0.0702790691196284f,
171
98.4M
          -0.0741750459581035f,
172
98.4M
      },
173
98.4M
      {
174
98.4M
          0.2500000000000000,
175
98.4M
          0.2206518106944236f,
176
98.4M
          0.0000000000000000,
177
98.4M
          0.0000000000000000,
178
98.4M
          0.7071067811865476f,
179
98.4M
          0.6235485373547694f,
180
98.4M
          0.0000000000000000,
181
98.4M
          0.0000000000000000,
182
98.4M
          0.0000000000000000,
183
98.4M
          0.0000000000000000,
184
98.4M
          0.0000000000000000,
185
98.4M
          0.0000000000000000,
186
98.4M
          0.0000000000000000,
187
98.4M
          0.0000000000000000,
188
98.4M
          0.0000000000000000,
189
98.4M
          0.0000000000000000,
190
98.4M
      },
191
98.4M
      {
192
98.4M
          0.2500000000000000,
193
98.4M
          -0.1014005039375378f,
194
98.4M
          0.0000000000000000,
195
98.4M
          0.4706702258572536f,
196
98.4M
          0.0000000000000000,
197
98.4M
          -0.0643507165794628f,
198
98.4M
          -0.0403851516082220f,
199
98.4M
          0.0000000000000000,
200
98.4M
          0.1627234014286620f,
201
98.4M
          0.0000000000000000,
202
98.4M
          0.0000000000000000,
203
98.4M
          0.0000000000000000,
204
98.4M
          0.7367497537172237f,
205
98.4M
          0.0875511500058708f,
206
98.4M
          -0.2921026642334881f,
207
98.4M
          0.1940289303259434f,
208
98.4M
      },
209
98.4M
      {
210
98.4M
          0.2500000000000000,
211
98.4M
          -0.1014005039375377f,
212
98.4M
          0.1957439937204294f,
213
98.4M
          -0.1621205195722993f,
214
98.4M
          0.0000000000000000,
215
98.4M
          -0.0643507165794628f,
216
98.4M
          0.0074182263792424f,
217
98.4M
          -0.2904801297289980f,
218
98.4M
          0.0952002265347504f,
219
98.4M
          0.0000000000000000,
220
98.4M
          -0.3675398009862027f,
221
98.4M
          0.4921585901373873f,
222
98.4M
          0.2462710772207515f,
223
98.4M
          -0.0794670660590957f,
224
98.4M
          0.3623817333531167f,
225
98.4M
          -0.4351904965232280f,
226
98.4M
      },
227
98.4M
      {
228
98.4M
          0.2500000000000000,
229
98.4M
          -0.1014005039375376f,
230
98.4M
          0.2929100136981264f,
231
98.4M
          0.0000000000000000,
232
98.4M
          0.0000000000000000,
233
98.4M
          -0.0643507165794627f,
234
98.4M
          0.3935103426921017f,
235
98.4M
          -0.0657870154914280f,
236
98.4M
          0.0000000000000000,
237
98.4M
          -0.4082482904638628f,
238
98.4M
          -0.3078822139579090f,
239
98.4M
          -0.3852501370925192f,
240
98.4M
          -0.0857401903551931f,
241
98.4M
          -0.4613374887461511f,
242
98.4M
          0.0000000000000000,
243
98.4M
          0.2191868483885747f,
244
98.4M
      },
245
98.4M
      {
246
98.4M
          0.2500000000000000,
247
98.4M
          -0.1014005039375376f,
248
98.4M
          -0.4067007583026072f,
249
98.4M
          -0.2125574805828705f,
250
98.4M
          0.0000000000000000,
251
98.4M
          -0.0643507165794627f,
252
98.4M
          -0.4517556589999464f,
253
98.4M
          0.3046847507248840f,
254
98.4M
          0.3017929516615503f,
255
98.4M
          -0.4082482904638635f,
256
98.4M
          -0.1747866975480813f,
257
98.4M
          0.2110560104933581f,
258
98.4M
          -0.1426608480880734f,
259
98.4M
          -0.1381354035075829f,
260
98.4M
          -0.1743760259965108f,
261
98.4M
          0.1135498731499426f,
262
98.4M
      },
263
98.4M
      {
264
98.4M
          0.2500000000000000,
265
98.4M
          -0.1014005039375377f,
266
98.4M
          -0.1957439937204287f,
267
98.4M
          -0.1621205195722833f,
268
98.4M
          0.0000000000000000,
269
98.4M
          -0.0643507165794628f,
270
98.4M
          0.0074182263792444f,
271
98.4M
          0.2904801297290076f,
272
98.4M
          0.0952002265347505f,
273
98.4M
          0.0000000000000000,
274
98.4M
          0.3675398009862011f,
275
98.4M
          -0.4921585901373891f,
276
98.4M
          0.2462710772207514f,
277
98.4M
          -0.0794670660591026f,
278
98.4M
          0.3623817333531165f,
279
98.4M
          -0.4351904965232251f,
280
98.4M
      },
281
98.4M
      {
282
98.4M
          0.2500000000000000,
283
98.4M
          -0.1014005039375375f,
284
98.4M
          0.0000000000000000,
285
98.4M
          -0.4706702258572528f,
286
98.4M
          0.0000000000000000,
287
98.4M
          -0.0643507165794627f,
288
98.4M
          0.1107416575309343f,
289
98.4M
          0.0000000000000000,
290
98.4M
          -0.1627234014286617f,
291
98.4M
          0.0000000000000000,
292
98.4M
          0.0000000000000000,
293
98.4M
          0.0000000000000000,
294
98.4M
          0.1488339922711357f,
295
98.4M
          0.4972464710953509f,
296
98.4M
          0.2921026642334879f,
297
98.4M
          0.5550443808910661f,
298
98.4M
      },
299
98.4M
      {
300
98.4M
          0.2500000000000000,
301
98.4M
          -0.1014005039375377f,
302
98.4M
          0.1137907446044809f,
303
98.4M
          -0.1464291867126764f,
304
98.4M
          0.0000000000000000,
305
98.4M
          -0.0643507165794628f,
306
98.4M
          0.0829816309488205f,
307
98.4M
          -0.2388977352334460f,
308
98.4M
          -0.3531238544981630f,
309
98.4M
          -0.4082482904638630f,
310
98.4M
          0.4826689115059883f,
311
98.4M
          0.1741941265991622f,
312
98.4M
          -0.0476868035022925f,
313
98.4M
          0.1253805944856366f,
314
98.4M
          -0.4326608024727445f,
315
98.4M
          -0.2546827712406646f,
316
98.4M
      },
317
98.4M
      {
318
98.4M
          0.2500000000000000,
319
98.4M
          -0.1014005039375377f,
320
98.4M
          -0.4444481661973438f,
321
98.4M
          0.3085497062849487f,
322
98.4M
          0.0000000000000000,
323
98.4M
          -0.0643507165794628f,
324
98.4M
          0.1585450355183970f,
325
98.4M
          -0.5112616136592012f,
326
98.4M
          0.2579236279634129f,
327
98.4M
          0.0000000000000000,
328
98.4M
          -0.0812611176717504f,
329
98.4M
          -0.1856718091610990f,
330
98.4M
          -0.3416446842253373f,
331
98.4M
          0.3302282550303805f,
332
98.4M
          0.0702790691196282f,
333
98.4M
          -0.0741750459581023f,
334
98.4M
      },
335
98.4M
      {
336
98.4M
          0.2500000000000000,
337
98.4M
          -0.1014005039375376f,
338
98.4M
          -0.2929100136981264f,
339
98.4M
          0.0000000000000000,
340
98.4M
          0.0000000000000000,
341
98.4M
          -0.0643507165794627f,
342
98.4M
          0.3935103426921022f,
343
98.4M
          0.0657870154914254f,
344
98.4M
          0.0000000000000000,
345
98.4M
          0.4082482904638634f,
346
98.4M
          0.3078822139579031f,
347
98.4M
          0.3852501370925211f,
348
98.4M
          -0.0857401903551927f,
349
98.4M
          -0.4613374887461554f,
350
98.4M
          0.0000000000000000,
351
98.4M
          0.2191868483885728f,
352
98.4M
      },
353
98.4M
      {
354
98.4M
          0.2500000000000000,
355
98.4M
          -0.1014005039375376f,
356
98.4M
          -0.1137907446044814f,
357
98.4M
          -0.1464291867126654f,
358
98.4M
          0.0000000000000000,
359
98.4M
          -0.0643507165794627f,
360
98.4M
          0.0829816309488214f,
361
98.4M
          0.2388977352334547f,
362
98.4M
          -0.3531238544981624f,
363
98.4M
          0.4082482904638630f,
364
98.4M
          -0.4826689115059858f,
365
98.4M
          -0.1741941265991621f,
366
98.4M
          -0.0476868035022928f,
367
98.4M
          0.1253805944856431f,
368
98.4M
          -0.4326608024727457f,
369
98.4M
          -0.2546827712406641f,
370
98.4M
      },
371
98.4M
      {
372
98.4M
          0.2500000000000000,
373
98.4M
          -0.1014005039375374f,
374
98.4M
          0.0000000000000000,
375
98.4M
          0.4251149611657548f,
376
98.4M
          0.0000000000000000,
377
98.4M
          -0.0643507165794626f,
378
98.4M
          -0.4517556589999480f,
379
98.4M
          0.0000000000000000,
380
98.4M
          -0.6035859033230976f,
381
98.4M
          0.0000000000000000,
382
98.4M
          0.0000000000000000,
383
98.4M
          0.0000000000000000,
384
98.4M
          -0.1426608480880724f,
385
98.4M
          -0.1381354035075845f,
386
98.4M
          0.3487520519930227f,
387
98.4M
          0.1135498731499429f,
388
98.4M
      },
389
98.4M
  };
390
391
98.4M
  const HWY_CAPPED(float, 16) d;
392
295M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
196M
    auto scalar = Zero(d);
394
3.34G
    for (size_t j = 0; j < 16; j++) {
395
3.15G
      auto px = Set(d, pixels[j]);
396
3.15G
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
3.15G
      scalar = MulAdd(px, basis, scalar);
398
3.15G
    }
399
196M
    Store(scalar, d, coeffs + i);
400
196M
  }
401
98.4M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Line
Count
Source
99
2.29M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
2.29M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
2.29M
      {
102
2.29M
          0.2500000000000000,
103
2.29M
          0.8769029297991420f,
104
2.29M
          0.0000000000000000,
105
2.29M
          0.0000000000000000,
106
2.29M
          0.0000000000000000,
107
2.29M
          -0.4105377591765233f,
108
2.29M
          0.0000000000000000,
109
2.29M
          0.0000000000000000,
110
2.29M
          0.0000000000000000,
111
2.29M
          0.0000000000000000,
112
2.29M
          0.0000000000000000,
113
2.29M
          0.0000000000000000,
114
2.29M
          0.0000000000000000,
115
2.29M
          0.0000000000000000,
116
2.29M
          0.0000000000000000,
117
2.29M
          0.0000000000000000,
118
2.29M
      },
119
2.29M
      {
120
2.29M
          0.2500000000000000,
121
2.29M
          0.2206518106944235f,
122
2.29M
          0.0000000000000000,
123
2.29M
          0.0000000000000000,
124
2.29M
          -0.7071067811865474f,
125
2.29M
          0.6235485373547691f,
126
2.29M
          0.0000000000000000,
127
2.29M
          0.0000000000000000,
128
2.29M
          0.0000000000000000,
129
2.29M
          0.0000000000000000,
130
2.29M
          0.0000000000000000,
131
2.29M
          0.0000000000000000,
132
2.29M
          0.0000000000000000,
133
2.29M
          0.0000000000000000,
134
2.29M
          0.0000000000000000,
135
2.29M
          0.0000000000000000,
136
2.29M
      },
137
2.29M
      {
138
2.29M
          0.2500000000000000,
139
2.29M
          -0.1014005039375376f,
140
2.29M
          0.4067007583026075f,
141
2.29M
          -0.2125574805828875f,
142
2.29M
          0.0000000000000000,
143
2.29M
          -0.0643507165794627f,
144
2.29M
          -0.4517556589999482f,
145
2.29M
          -0.3046847507248690f,
146
2.29M
          0.3017929516615495f,
147
2.29M
          0.4082482904638627f,
148
2.29M
          0.1747866975480809f,
149
2.29M
          -0.2110560104933578f,
150
2.29M
          -0.1426608480880726f,
151
2.29M
          -0.1381354035075859f,
152
2.29M
          -0.1743760259965107f,
153
2.29M
          0.1135498731499434f,
154
2.29M
      },
155
2.29M
      {
156
2.29M
          0.2500000000000000,
157
2.29M
          -0.1014005039375375f,
158
2.29M
          0.4444481661973445f,
159
2.29M
          0.3085497062849767f,
160
2.29M
          0.0000000000000000f,
161
2.29M
          -0.0643507165794627f,
162
2.29M
          0.1585450355184006f,
163
2.29M
          0.5112616136591823f,
164
2.29M
          0.2579236279634118f,
165
2.29M
          0.0000000000000000,
166
2.29M
          0.0812611176717539f,
167
2.29M
          0.1856718091610980f,
168
2.29M
          -0.3416446842253372f,
169
2.29M
          0.3302282550303788f,
170
2.29M
          0.0702790691196284f,
171
2.29M
          -0.0741750459581035f,
172
2.29M
      },
173
2.29M
      {
174
2.29M
          0.2500000000000000,
175
2.29M
          0.2206518106944236f,
176
2.29M
          0.0000000000000000,
177
2.29M
          0.0000000000000000,
178
2.29M
          0.7071067811865476f,
179
2.29M
          0.6235485373547694f,
180
2.29M
          0.0000000000000000,
181
2.29M
          0.0000000000000000,
182
2.29M
          0.0000000000000000,
183
2.29M
          0.0000000000000000,
184
2.29M
          0.0000000000000000,
185
2.29M
          0.0000000000000000,
186
2.29M
          0.0000000000000000,
187
2.29M
          0.0000000000000000,
188
2.29M
          0.0000000000000000,
189
2.29M
          0.0000000000000000,
190
2.29M
      },
191
2.29M
      {
192
2.29M
          0.2500000000000000,
193
2.29M
          -0.1014005039375378f,
194
2.29M
          0.0000000000000000,
195
2.29M
          0.4706702258572536f,
196
2.29M
          0.0000000000000000,
197
2.29M
          -0.0643507165794628f,
198
2.29M
          -0.0403851516082220f,
199
2.29M
          0.0000000000000000,
200
2.29M
          0.1627234014286620f,
201
2.29M
          0.0000000000000000,
202
2.29M
          0.0000000000000000,
203
2.29M
          0.0000000000000000,
204
2.29M
          0.7367497537172237f,
205
2.29M
          0.0875511500058708f,
206
2.29M
          -0.2921026642334881f,
207
2.29M
          0.1940289303259434f,
208
2.29M
      },
209
2.29M
      {
210
2.29M
          0.2500000000000000,
211
2.29M
          -0.1014005039375377f,
212
2.29M
          0.1957439937204294f,
213
2.29M
          -0.1621205195722993f,
214
2.29M
          0.0000000000000000,
215
2.29M
          -0.0643507165794628f,
216
2.29M
          0.0074182263792424f,
217
2.29M
          -0.2904801297289980f,
218
2.29M
          0.0952002265347504f,
219
2.29M
          0.0000000000000000,
220
2.29M
          -0.3675398009862027f,
221
2.29M
          0.4921585901373873f,
222
2.29M
          0.2462710772207515f,
223
2.29M
          -0.0794670660590957f,
224
2.29M
          0.3623817333531167f,
225
2.29M
          -0.4351904965232280f,
226
2.29M
      },
227
2.29M
      {
228
2.29M
          0.2500000000000000,
229
2.29M
          -0.1014005039375376f,
230
2.29M
          0.2929100136981264f,
231
2.29M
          0.0000000000000000,
232
2.29M
          0.0000000000000000,
233
2.29M
          -0.0643507165794627f,
234
2.29M
          0.3935103426921017f,
235
2.29M
          -0.0657870154914280f,
236
2.29M
          0.0000000000000000,
237
2.29M
          -0.4082482904638628f,
238
2.29M
          -0.3078822139579090f,
239
2.29M
          -0.3852501370925192f,
240
2.29M
          -0.0857401903551931f,
241
2.29M
          -0.4613374887461511f,
242
2.29M
          0.0000000000000000,
243
2.29M
          0.2191868483885747f,
244
2.29M
      },
245
2.29M
      {
246
2.29M
          0.2500000000000000,
247
2.29M
          -0.1014005039375376f,
248
2.29M
          -0.4067007583026072f,
249
2.29M
          -0.2125574805828705f,
250
2.29M
          0.0000000000000000,
251
2.29M
          -0.0643507165794627f,
252
2.29M
          -0.4517556589999464f,
253
2.29M
          0.3046847507248840f,
254
2.29M
          0.3017929516615503f,
255
2.29M
          -0.4082482904638635f,
256
2.29M
          -0.1747866975480813f,
257
2.29M
          0.2110560104933581f,
258
2.29M
          -0.1426608480880734f,
259
2.29M
          -0.1381354035075829f,
260
2.29M
          -0.1743760259965108f,
261
2.29M
          0.1135498731499426f,
262
2.29M
      },
263
2.29M
      {
264
2.29M
          0.2500000000000000,
265
2.29M
          -0.1014005039375377f,
266
2.29M
          -0.1957439937204287f,
267
2.29M
          -0.1621205195722833f,
268
2.29M
          0.0000000000000000,
269
2.29M
          -0.0643507165794628f,
270
2.29M
          0.0074182263792444f,
271
2.29M
          0.2904801297290076f,
272
2.29M
          0.0952002265347505f,
273
2.29M
          0.0000000000000000,
274
2.29M
          0.3675398009862011f,
275
2.29M
          -0.4921585901373891f,
276
2.29M
          0.2462710772207514f,
277
2.29M
          -0.0794670660591026f,
278
2.29M
          0.3623817333531165f,
279
2.29M
          -0.4351904965232251f,
280
2.29M
      },
281
2.29M
      {
282
2.29M
          0.2500000000000000,
283
2.29M
          -0.1014005039375375f,
284
2.29M
          0.0000000000000000,
285
2.29M
          -0.4706702258572528f,
286
2.29M
          0.0000000000000000,
287
2.29M
          -0.0643507165794627f,
288
2.29M
          0.1107416575309343f,
289
2.29M
          0.0000000000000000,
290
2.29M
          -0.1627234014286617f,
291
2.29M
          0.0000000000000000,
292
2.29M
          0.0000000000000000,
293
2.29M
          0.0000000000000000,
294
2.29M
          0.1488339922711357f,
295
2.29M
          0.4972464710953509f,
296
2.29M
          0.2921026642334879f,
297
2.29M
          0.5550443808910661f,
298
2.29M
      },
299
2.29M
      {
300
2.29M
          0.2500000000000000,
301
2.29M
          -0.1014005039375377f,
302
2.29M
          0.1137907446044809f,
303
2.29M
          -0.1464291867126764f,
304
2.29M
          0.0000000000000000,
305
2.29M
          -0.0643507165794628f,
306
2.29M
          0.0829816309488205f,
307
2.29M
          -0.2388977352334460f,
308
2.29M
          -0.3531238544981630f,
309
2.29M
          -0.4082482904638630f,
310
2.29M
          0.4826689115059883f,
311
2.29M
          0.1741941265991622f,
312
2.29M
          -0.0476868035022925f,
313
2.29M
          0.1253805944856366f,
314
2.29M
          -0.4326608024727445f,
315
2.29M
          -0.2546827712406646f,
316
2.29M
      },
317
2.29M
      {
318
2.29M
          0.2500000000000000,
319
2.29M
          -0.1014005039375377f,
320
2.29M
          -0.4444481661973438f,
321
2.29M
          0.3085497062849487f,
322
2.29M
          0.0000000000000000,
323
2.29M
          -0.0643507165794628f,
324
2.29M
          0.1585450355183970f,
325
2.29M
          -0.5112616136592012f,
326
2.29M
          0.2579236279634129f,
327
2.29M
          0.0000000000000000,
328
2.29M
          -0.0812611176717504f,
329
2.29M
          -0.1856718091610990f,
330
2.29M
          -0.3416446842253373f,
331
2.29M
          0.3302282550303805f,
332
2.29M
          0.0702790691196282f,
333
2.29M
          -0.0741750459581023f,
334
2.29M
      },
335
2.29M
      {
336
2.29M
          0.2500000000000000,
337
2.29M
          -0.1014005039375376f,
338
2.29M
          -0.2929100136981264f,
339
2.29M
          0.0000000000000000,
340
2.29M
          0.0000000000000000,
341
2.29M
          -0.0643507165794627f,
342
2.29M
          0.3935103426921022f,
343
2.29M
          0.0657870154914254f,
344
2.29M
          0.0000000000000000,
345
2.29M
          0.4082482904638634f,
346
2.29M
          0.3078822139579031f,
347
2.29M
          0.3852501370925211f,
348
2.29M
          -0.0857401903551927f,
349
2.29M
          -0.4613374887461554f,
350
2.29M
          0.0000000000000000,
351
2.29M
          0.2191868483885728f,
352
2.29M
      },
353
2.29M
      {
354
2.29M
          0.2500000000000000,
355
2.29M
          -0.1014005039375376f,
356
2.29M
          -0.1137907446044814f,
357
2.29M
          -0.1464291867126654f,
358
2.29M
          0.0000000000000000,
359
2.29M
          -0.0643507165794627f,
360
2.29M
          0.0829816309488214f,
361
2.29M
          0.2388977352334547f,
362
2.29M
          -0.3531238544981624f,
363
2.29M
          0.4082482904638630f,
364
2.29M
          -0.4826689115059858f,
365
2.29M
          -0.1741941265991621f,
366
2.29M
          -0.0476868035022928f,
367
2.29M
          0.1253805944856431f,
368
2.29M
          -0.4326608024727457f,
369
2.29M
          -0.2546827712406641f,
370
2.29M
      },
371
2.29M
      {
372
2.29M
          0.2500000000000000,
373
2.29M
          -0.1014005039375374f,
374
2.29M
          0.0000000000000000,
375
2.29M
          0.4251149611657548f,
376
2.29M
          0.0000000000000000,
377
2.29M
          -0.0643507165794626f,
378
2.29M
          -0.4517556589999480f,
379
2.29M
          0.0000000000000000,
380
2.29M
          -0.6035859033230976f,
381
2.29M
          0.0000000000000000,
382
2.29M
          0.0000000000000000,
383
2.29M
          0.0000000000000000,
384
2.29M
          -0.1426608480880724f,
385
2.29M
          -0.1381354035075845f,
386
2.29M
          0.3487520519930227f,
387
2.29M
          0.1135498731499429f,
388
2.29M
      },
389
2.29M
  };
390
391
2.29M
  const HWY_CAPPED(float, 16) d;
392
6.88M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
4.59M
    auto scalar = Zero(d);
394
78.0M
    for (size_t j = 0; j < 16; j++) {
395
73.4M
      auto px = Set(d, pixels[j]);
396
73.4M
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
73.4M
      scalar = MulAdd(px, basis, scalar);
398
73.4M
    }
399
4.59M
    Store(scalar, d, coeffs + i);
400
4.59M
  }
401
2.29M
}
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::AFVDCT4x4(float const*, float*)
402
403
// Coefficient layout:
404
//  - (even, even) positions hold AFV coefficients
405
//  - (odd, even) positions hold DCT4x4 coefficients
406
//  - (any, odd) positions hold DCT4x8 coefficients
407
template <size_t afv_kind>
408
void AFVTransformFromPixels(const float* JXL_RESTRICT pixels,
409
                            size_t pixels_stride,
410
103M
                            float* JXL_RESTRICT coefficients) {
411
103M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
103M
  size_t afv_x = afv_kind & 1;
413
103M
  size_t afv_y = afv_kind / 2;
414
103M
  HWY_ALIGN float block[4 * 8] = {};
415
515M
  for (size_t iy = 0; iy < 4; iy++) {
416
2.06G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.64G
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
1.64G
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
1.64G
    }
420
412M
  }
421
  // AFV coefficients in (even, even) positions.
422
103M
  HWY_ALIGN float coeff[4 * 4];
423
103M
  AFVDCT4x4(block, coeff);
424
515M
  for (size_t iy = 0; iy < 4; iy++) {
425
2.06G
    for (size_t ix = 0; ix < 4; ix++) {
426
1.64G
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
1.64G
    }
428
412M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
103M
  ComputeScaledDCT<4, 4>()(
431
103M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
103M
              pixels_stride),
433
103M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
515M
  for (size_t iy = 0; iy < 4; iy++) {
436
3.70G
    for (size_t ix = 0; ix < 8; ix++) {
437
3.29G
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
3.29G
    }
439
412M
  }
440
  // 4x8 DCT of the other half of the block.
441
103M
  ComputeScaledDCT<4, 8>()(
442
103M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
103M
      block, scratch_space);
444
515M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.70G
    for (size_t ix = 0; ix < 8; ix++) {
446
3.29G
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
3.29G
    }
448
412M
  }
449
103M
  float block00 = coefficients[0] * 0.25f;
450
103M
  float block01 = coefficients[1];
451
103M
  float block10 = coefficients[8];
452
103M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
103M
  coefficients[1] = (block00 - block01) * 0.5f;
454
103M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
103M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Line
Count
Source
410
393k
                            float* JXL_RESTRICT coefficients) {
411
393k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
393k
  size_t afv_x = afv_kind & 1;
413
393k
  size_t afv_y = afv_kind / 2;
414
393k
  HWY_ALIGN float block[4 * 8] = {};
415
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
416
7.87M
    for (size_t ix = 0; ix < 4; ix++) {
417
6.30M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
6.30M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
6.30M
    }
420
1.57M
  }
421
  // AFV coefficients in (even, even) positions.
422
393k
  HWY_ALIGN float coeff[4 * 4];
423
393k
  AFVDCT4x4(block, coeff);
424
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
425
7.87M
    for (size_t ix = 0; ix < 4; ix++) {
426
6.30M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
6.30M
    }
428
1.57M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
393k
  ComputeScaledDCT<4, 4>()(
431
393k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
393k
              pixels_stride),
433
393k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
436
14.1M
    for (size_t ix = 0; ix < 8; ix++) {
437
12.6M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
12.6M
    }
439
1.57M
  }
440
  // 4x8 DCT of the other half of the block.
441
393k
  ComputeScaledDCT<4, 8>()(
442
393k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
393k
      block, scratch_space);
444
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
445
14.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
12.6M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
12.6M
    }
448
1.57M
  }
449
393k
  float block00 = coefficients[0] * 0.25f;
450
393k
  float block01 = coefficients[1];
451
393k
  float block10 = coefficients[8];
452
393k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
393k
  coefficients[1] = (block00 - block01) * 0.5f;
454
393k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
393k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
1.19M
                            float* JXL_RESTRICT coefficients) {
411
1.19M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
1.19M
  size_t afv_x = afv_kind & 1;
413
1.19M
  size_t afv_y = afv_kind / 2;
414
1.19M
  HWY_ALIGN float block[4 * 8] = {};
415
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
416
23.8M
    for (size_t ix = 0; ix < 4; ix++) {
417
19.0M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
19.0M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
19.0M
    }
420
4.76M
  }
421
  // AFV coefficients in (even, even) positions.
422
1.19M
  HWY_ALIGN float coeff[4 * 4];
423
1.19M
  AFVDCT4x4(block, coeff);
424
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
425
23.8M
    for (size_t ix = 0; ix < 4; ix++) {
426
19.0M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
19.0M
    }
428
4.76M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
1.19M
  ComputeScaledDCT<4, 4>()(
431
1.19M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
1.19M
              pixels_stride),
433
1.19M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
436
42.9M
    for (size_t ix = 0; ix < 8; ix++) {
437
38.1M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
38.1M
    }
439
4.76M
  }
440
  // 4x8 DCT of the other half of the block.
441
1.19M
  ComputeScaledDCT<4, 8>()(
442
1.19M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
1.19M
      block, scratch_space);
444
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
445
42.9M
    for (size_t ix = 0; ix < 8; ix++) {
446
38.1M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
38.1M
    }
448
4.76M
  }
449
1.19M
  float block00 = coefficients[0] * 0.25f;
450
1.19M
  float block01 = coefficients[1];
451
1.19M
  float block10 = coefficients[8];
452
1.19M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
1.19M
  coefficients[1] = (block00 - block01) * 0.5f;
454
1.19M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
1.19M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
252k
                            float* JXL_RESTRICT coefficients) {
411
252k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
252k
  size_t afv_x = afv_kind & 1;
413
252k
  size_t afv_y = afv_kind / 2;
414
252k
  HWY_ALIGN float block[4 * 8] = {};
415
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
416
5.05M
    for (size_t ix = 0; ix < 4; ix++) {
417
4.04M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
4.04M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
4.04M
    }
420
1.01M
  }
421
  // AFV coefficients in (even, even) positions.
422
252k
  HWY_ALIGN float coeff[4 * 4];
423
252k
  AFVDCT4x4(block, coeff);
424
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
425
5.05M
    for (size_t ix = 0; ix < 4; ix++) {
426
4.04M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
4.04M
    }
428
1.01M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
252k
  ComputeScaledDCT<4, 4>()(
431
252k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
252k
              pixels_stride),
433
252k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
436
9.09M
    for (size_t ix = 0; ix < 8; ix++) {
437
8.08M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
8.08M
    }
439
1.01M
  }
440
  // 4x8 DCT of the other half of the block.
441
252k
  ComputeScaledDCT<4, 8>()(
442
252k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
252k
      block, scratch_space);
444
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
445
9.09M
    for (size_t ix = 0; ix < 8; ix++) {
446
8.08M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
8.08M
    }
448
1.01M
  }
449
252k
  float block00 = coefficients[0] * 0.25f;
450
252k
  float block01 = coefficients[1];
451
252k
  float block10 = coefficients[8];
452
252k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
252k
  coefficients[1] = (block00 - block01) * 0.5f;
454
252k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
252k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
457k
                            float* JXL_RESTRICT coefficients) {
411
457k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
457k
  size_t afv_x = afv_kind & 1;
413
457k
  size_t afv_y = afv_kind / 2;
414
457k
  HWY_ALIGN float block[4 * 8] = {};
415
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
416
9.15M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.32M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
7.32M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
7.32M
    }
420
1.83M
  }
421
  // AFV coefficients in (even, even) positions.
422
457k
  HWY_ALIGN float coeff[4 * 4];
423
457k
  AFVDCT4x4(block, coeff);
424
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
425
9.15M
    for (size_t ix = 0; ix < 4; ix++) {
426
7.32M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
7.32M
    }
428
1.83M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
457k
  ComputeScaledDCT<4, 4>()(
431
457k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
457k
              pixels_stride),
433
457k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
436
16.4M
    for (size_t ix = 0; ix < 8; ix++) {
437
14.6M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
14.6M
    }
439
1.83M
  }
440
  // 4x8 DCT of the other half of the block.
441
457k
  ComputeScaledDCT<4, 8>()(
442
457k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
457k
      block, scratch_space);
444
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
445
16.4M
    for (size_t ix = 0; ix < 8; ix++) {
446
14.6M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
14.6M
    }
448
1.83M
  }
449
457k
  float block00 = coefficients[0] * 0.25f;
450
457k
  float block01 = coefficients[1];
451
457k
  float block10 = coefficients[8];
452
457k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
457k
  coefficients[1] = (block00 - block01) * 0.5f;
454
457k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
457k
}
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Line
Count
Source
410
24.6M
                            float* JXL_RESTRICT coefficients) {
411
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
24.6M
  size_t afv_x = afv_kind & 1;
413
24.6M
  size_t afv_y = afv_kind / 2;
414
24.6M
  HWY_ALIGN float block[4 * 8] = {};
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
393M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
393M
    }
420
98.4M
  }
421
  // AFV coefficients in (even, even) positions.
422
24.6M
  HWY_ALIGN float coeff[4 * 4];
423
24.6M
  AFVDCT4x4(block, coeff);
424
123M
  for (size_t iy = 0; iy < 4; iy++) {
425
492M
    for (size_t ix = 0; ix < 4; ix++) {
426
393M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
393M
    }
428
98.4M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
24.6M
  ComputeScaledDCT<4, 4>()(
431
24.6M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
24.6M
              pixels_stride),
433
24.6M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
123M
  for (size_t iy = 0; iy < 4; iy++) {
436
886M
    for (size_t ix = 0; ix < 8; ix++) {
437
787M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
787M
    }
439
98.4M
  }
440
  // 4x8 DCT of the other half of the block.
441
24.6M
  ComputeScaledDCT<4, 8>()(
442
24.6M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
24.6M
      block, scratch_space);
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
787M
    }
448
98.4M
  }
449
24.6M
  float block00 = coefficients[0] * 0.25f;
450
24.6M
  float block01 = coefficients[1];
451
24.6M
  float block10 = coefficients[8];
452
24.6M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
24.6M
  coefficients[1] = (block00 - block01) * 0.5f;
454
24.6M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
24.6M
                            float* JXL_RESTRICT coefficients) {
411
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
24.6M
  size_t afv_x = afv_kind & 1;
413
24.6M
  size_t afv_y = afv_kind / 2;
414
24.6M
  HWY_ALIGN float block[4 * 8] = {};
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
393M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
393M
    }
420
98.4M
  }
421
  // AFV coefficients in (even, even) positions.
422
24.6M
  HWY_ALIGN float coeff[4 * 4];
423
24.6M
  AFVDCT4x4(block, coeff);
424
123M
  for (size_t iy = 0; iy < 4; iy++) {
425
492M
    for (size_t ix = 0; ix < 4; ix++) {
426
393M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
393M
    }
428
98.4M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
24.6M
  ComputeScaledDCT<4, 4>()(
431
24.6M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
24.6M
              pixels_stride),
433
24.6M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
123M
  for (size_t iy = 0; iy < 4; iy++) {
436
886M
    for (size_t ix = 0; ix < 8; ix++) {
437
787M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
787M
    }
439
98.4M
  }
440
  // 4x8 DCT of the other half of the block.
441
24.6M
  ComputeScaledDCT<4, 8>()(
442
24.6M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
24.6M
      block, scratch_space);
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
787M
    }
448
98.4M
  }
449
24.6M
  float block00 = coefficients[0] * 0.25f;
450
24.6M
  float block01 = coefficients[1];
451
24.6M
  float block10 = coefficients[8];
452
24.6M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
24.6M
  coefficients[1] = (block00 - block01) * 0.5f;
454
24.6M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
24.6M
                            float* JXL_RESTRICT coefficients) {
411
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
24.6M
  size_t afv_x = afv_kind & 1;
413
24.6M
  size_t afv_y = afv_kind / 2;
414
24.6M
  HWY_ALIGN float block[4 * 8] = {};
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
393M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
393M
    }
420
98.4M
  }
421
  // AFV coefficients in (even, even) positions.
422
24.6M
  HWY_ALIGN float coeff[4 * 4];
423
24.6M
  AFVDCT4x4(block, coeff);
424
123M
  for (size_t iy = 0; iy < 4; iy++) {
425
492M
    for (size_t ix = 0; ix < 4; ix++) {
426
393M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
393M
    }
428
98.4M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
24.6M
  ComputeScaledDCT<4, 4>()(
431
24.6M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
24.6M
              pixels_stride),
433
24.6M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
123M
  for (size_t iy = 0; iy < 4; iy++) {
436
886M
    for (size_t ix = 0; ix < 8; ix++) {
437
787M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
787M
    }
439
98.4M
  }
440
  // 4x8 DCT of the other half of the block.
441
24.6M
  ComputeScaledDCT<4, 8>()(
442
24.6M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
24.6M
      block, scratch_space);
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
787M
    }
448
98.4M
  }
449
24.6M
  float block00 = coefficients[0] * 0.25f;
450
24.6M
  float block01 = coefficients[1];
451
24.6M
  float block10 = coefficients[8];
452
24.6M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
24.6M
  coefficients[1] = (block00 - block01) * 0.5f;
454
24.6M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
24.6M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
24.6M
                            float* JXL_RESTRICT coefficients) {
411
24.6M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
24.6M
  size_t afv_x = afv_kind & 1;
413
24.6M
  size_t afv_y = afv_kind / 2;
414
24.6M
  HWY_ALIGN float block[4 * 8] = {};
415
123M
  for (size_t iy = 0; iy < 4; iy++) {
416
492M
    for (size_t ix = 0; ix < 4; ix++) {
417
393M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
393M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
393M
    }
420
98.4M
  }
421
  // AFV coefficients in (even, even) positions.
422
24.6M
  HWY_ALIGN float coeff[4 * 4];
423
24.6M
  AFVDCT4x4(block, coeff);
424
123M
  for (size_t iy = 0; iy < 4; iy++) {
425
492M
    for (size_t ix = 0; ix < 4; ix++) {
426
393M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
393M
    }
428
98.4M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
24.6M
  ComputeScaledDCT<4, 4>()(
431
24.6M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
24.6M
              pixels_stride),
433
24.6M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
123M
  for (size_t iy = 0; iy < 4; iy++) {
436
886M
    for (size_t ix = 0; ix < 8; ix++) {
437
787M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
787M
    }
439
98.4M
  }
440
  // 4x8 DCT of the other half of the block.
441
24.6M
  ComputeScaledDCT<4, 8>()(
442
24.6M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
24.6M
      block, scratch_space);
444
123M
  for (size_t iy = 0; iy < 4; iy++) {
445
886M
    for (size_t ix = 0; ix < 8; ix++) {
446
787M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
787M
    }
448
98.4M
  }
449
24.6M
  float block00 = coefficients[0] * 0.25f;
450
24.6M
  float block01 = coefficients[1];
451
24.6M
  float block10 = coefficients[8];
452
24.6M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
24.6M
  coefficients[1] = (block00 - block01) * 0.5f;
454
24.6M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
24.6M
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Line
Count
Source
410
393k
                            float* JXL_RESTRICT coefficients) {
411
393k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
393k
  size_t afv_x = afv_kind & 1;
413
393k
  size_t afv_y = afv_kind / 2;
414
393k
  HWY_ALIGN float block[4 * 8] = {};
415
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
416
7.87M
    for (size_t ix = 0; ix < 4; ix++) {
417
6.30M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
6.30M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
6.30M
    }
420
1.57M
  }
421
  // AFV coefficients in (even, even) positions.
422
393k
  HWY_ALIGN float coeff[4 * 4];
423
393k
  AFVDCT4x4(block, coeff);
424
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
425
7.87M
    for (size_t ix = 0; ix < 4; ix++) {
426
6.30M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
6.30M
    }
428
1.57M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
393k
  ComputeScaledDCT<4, 4>()(
431
393k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
393k
              pixels_stride),
433
393k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
436
14.1M
    for (size_t ix = 0; ix < 8; ix++) {
437
12.6M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
12.6M
    }
439
1.57M
  }
440
  // 4x8 DCT of the other half of the block.
441
393k
  ComputeScaledDCT<4, 8>()(
442
393k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
393k
      block, scratch_space);
444
1.96M
  for (size_t iy = 0; iy < 4; iy++) {
445
14.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
12.6M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
12.6M
    }
448
1.57M
  }
449
393k
  float block00 = coefficients[0] * 0.25f;
450
393k
  float block01 = coefficients[1];
451
393k
  float block10 = coefficients[8];
452
393k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
393k
  coefficients[1] = (block00 - block01) * 0.5f;
454
393k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
393k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
1.19M
                            float* JXL_RESTRICT coefficients) {
411
1.19M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
1.19M
  size_t afv_x = afv_kind & 1;
413
1.19M
  size_t afv_y = afv_kind / 2;
414
1.19M
  HWY_ALIGN float block[4 * 8] = {};
415
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
416
23.8M
    for (size_t ix = 0; ix < 4; ix++) {
417
19.0M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
19.0M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
19.0M
    }
420
4.76M
  }
421
  // AFV coefficients in (even, even) positions.
422
1.19M
  HWY_ALIGN float coeff[4 * 4];
423
1.19M
  AFVDCT4x4(block, coeff);
424
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
425
23.8M
    for (size_t ix = 0; ix < 4; ix++) {
426
19.0M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
19.0M
    }
428
4.76M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
1.19M
  ComputeScaledDCT<4, 4>()(
431
1.19M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
1.19M
              pixels_stride),
433
1.19M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
436
42.9M
    for (size_t ix = 0; ix < 8; ix++) {
437
38.1M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
38.1M
    }
439
4.76M
  }
440
  // 4x8 DCT of the other half of the block.
441
1.19M
  ComputeScaledDCT<4, 8>()(
442
1.19M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
1.19M
      block, scratch_space);
444
5.95M
  for (size_t iy = 0; iy < 4; iy++) {
445
42.9M
    for (size_t ix = 0; ix < 8; ix++) {
446
38.1M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
38.1M
    }
448
4.76M
  }
449
1.19M
  float block00 = coefficients[0] * 0.25f;
450
1.19M
  float block01 = coefficients[1];
451
1.19M
  float block10 = coefficients[8];
452
1.19M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
1.19M
  coefficients[1] = (block00 - block01) * 0.5f;
454
1.19M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
1.19M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
252k
                            float* JXL_RESTRICT coefficients) {
411
252k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
252k
  size_t afv_x = afv_kind & 1;
413
252k
  size_t afv_y = afv_kind / 2;
414
252k
  HWY_ALIGN float block[4 * 8] = {};
415
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
416
5.05M
    for (size_t ix = 0; ix < 4; ix++) {
417
4.04M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
4.04M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
4.04M
    }
420
1.01M
  }
421
  // AFV coefficients in (even, even) positions.
422
252k
  HWY_ALIGN float coeff[4 * 4];
423
252k
  AFVDCT4x4(block, coeff);
424
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
425
5.05M
    for (size_t ix = 0; ix < 4; ix++) {
426
4.04M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
4.04M
    }
428
1.01M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
252k
  ComputeScaledDCT<4, 4>()(
431
252k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
252k
              pixels_stride),
433
252k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
436
9.09M
    for (size_t ix = 0; ix < 8; ix++) {
437
8.08M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
8.08M
    }
439
1.01M
  }
440
  // 4x8 DCT of the other half of the block.
441
252k
  ComputeScaledDCT<4, 8>()(
442
252k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
252k
      block, scratch_space);
444
1.26M
  for (size_t iy = 0; iy < 4; iy++) {
445
9.09M
    for (size_t ix = 0; ix < 8; ix++) {
446
8.08M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
8.08M
    }
448
1.01M
  }
449
252k
  float block00 = coefficients[0] * 0.25f;
450
252k
  float block01 = coefficients[1];
451
252k
  float block10 = coefficients[8];
452
252k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
252k
  coefficients[1] = (block00 - block01) * 0.5f;
454
252k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
252k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
457k
                            float* JXL_RESTRICT coefficients) {
411
457k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
457k
  size_t afv_x = afv_kind & 1;
413
457k
  size_t afv_y = afv_kind / 2;
414
457k
  HWY_ALIGN float block[4 * 8] = {};
415
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
416
9.15M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.32M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
7.32M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
7.32M
    }
420
1.83M
  }
421
  // AFV coefficients in (even, even) positions.
422
457k
  HWY_ALIGN float coeff[4 * 4];
423
457k
  AFVDCT4x4(block, coeff);
424
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
425
9.15M
    for (size_t ix = 0; ix < 4; ix++) {
426
7.32M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
7.32M
    }
428
1.83M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
457k
  ComputeScaledDCT<4, 4>()(
431
457k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
457k
              pixels_stride),
433
457k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
436
16.4M
    for (size_t ix = 0; ix < 8; ix++) {
437
14.6M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
14.6M
    }
439
1.83M
  }
440
  // 4x8 DCT of the other half of the block.
441
457k
  ComputeScaledDCT<4, 8>()(
442
457k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
457k
      block, scratch_space);
444
2.28M
  for (size_t iy = 0; iy < 4; iy++) {
445
16.4M
    for (size_t ix = 0; ix < 8; ix++) {
446
14.6M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
14.6M
    }
448
1.83M
  }
449
457k
  float block00 = coefficients[0] * 0.25f;
450
457k
  float block01 = coefficients[1];
451
457k
  float block10 = coefficients[8];
452
457k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
457k
  coefficients[1] = (block00 - block01) * 0.5f;
454
457k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
457k
}
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<0ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
456
457
HWY_MAYBE_UNUSED void TransformFromPixels(const AcStrategyType strategy,
458
                                          const float* JXL_RESTRICT pixels,
459
                                          size_t pixels_stride,
460
                                          float* JXL_RESTRICT coefficients,
461
354M
                                          float* JXL_RESTRICT scratch_space) {
462
354M
  using Type = AcStrategyType;
463
354M
  switch (strategy) {
464
26.9M
    case Type::IDENTITY: {
465
80.9M
      for (size_t y = 0; y < 2; y++) {
466
161M
        for (size_t x = 0; x < 2; x++) {
467
107M
          float block_dc = 0;
468
539M
          for (size_t iy = 0; iy < 4; iy++) {
469
2.15G
            for (size_t ix = 0; ix < 4; ix++) {
470
1.72G
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
1.72G
            }
472
431M
          }
473
107M
          block_dc *= 1.0f / 16;
474
539M
          for (size_t iy = 0; iy < 4; iy++) {
475
2.15G
            for (size_t ix = 0; ix < 4; ix++) {
476
1.72G
              if (ix == 1 && iy == 1) continue;
477
1.61G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
1.61G
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
1.61G
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
1.61G
            }
481
431M
          }
482
107M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
107M
          coefficients[y * 8 + x] = block_dc;
484
107M
        }
485
53.9M
      }
486
26.9M
      float block00 = coefficients[0];
487
26.9M
      float block01 = coefficients[1];
488
26.9M
      float block10 = coefficients[8];
489
26.9M
      float block11 = coefficients[9];
490
26.9M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
26.9M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
26.9M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
26.9M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
26.9M
      break;
495
0
    }
496
25.6M
    case Type::DCT8X4: {
497
77.0M
      for (size_t x = 0; x < 2; x++) {
498
51.3M
        HWY_ALIGN float block[4 * 8];
499
51.3M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
51.3M
                                 scratch_space);
501
256M
        for (size_t iy = 0; iy < 4; iy++) {
502
1.84G
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
1.64G
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
1.64G
          }
506
205M
        }
507
51.3M
      }
508
25.6M
      float block0 = coefficients[0];
509
25.6M
      float block1 = coefficients[8];
510
25.6M
      coefficients[0] = (block0 + block1) * 0.5f;
511
25.6M
      coefficients[8] = (block0 - block1) * 0.5f;
512
25.6M
      break;
513
0
    }
514
25.4M
    case Type::DCT4X8: {
515
76.2M
      for (size_t y = 0; y < 2; y++) {
516
50.8M
        HWY_ALIGN float block[4 * 8];
517
50.8M
        ComputeScaledDCT<4, 8>()(
518
50.8M
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
50.8M
            scratch_space);
520
254M
        for (size_t iy = 0; iy < 4; iy++) {
521
1.82G
          for (size_t ix = 0; ix < 8; ix++) {
522
1.62G
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
1.62G
          }
524
203M
        }
525
50.8M
      }
526
25.4M
      float block0 = coefficients[0];
527
25.4M
      float block1 = coefficients[8];
528
25.4M
      coefficients[0] = (block0 + block1) * 0.5f;
529
25.4M
      coefficients[8] = (block0 - block1) * 0.5f;
530
25.4M
      break;
531
0
    }
532
24.6M
    case Type::DCT4X4: {
533
73.8M
      for (size_t y = 0; y < 2; y++) {
534
147M
        for (size_t x = 0; x < 2; x++) {
535
98.4M
          HWY_ALIGN float block[4 * 4];
536
98.4M
          ComputeScaledDCT<4, 4>()(
537
98.4M
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
98.4M
              block, scratch_space);
539
492M
          for (size_t iy = 0; iy < 4; iy++) {
540
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
541
1.57G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] = block[iy * 4 + ix];
542
1.57G
            }
543
393M
          }
544
98.4M
        }
545
49.2M
      }
546
24.6M
      float block00 = coefficients[0];
547
24.6M
      float block01 = coefficients[1];
548
24.6M
      float block10 = coefficients[8];
549
24.6M
      float block11 = coefficients[9];
550
24.6M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
24.6M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
24.6M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
24.6M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
24.6M
      break;
555
0
    }
556
27.0M
    case Type::DCT2X2: {
557
27.0M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
27.0M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
27.0M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
27.0M
      break;
561
0
    }
562
10.3M
    case Type::DCT16X16: {
563
10.3M
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
10.3M
                                 scratch_space);
565
10.3M
      break;
566
0
    }
567
20.2M
    case Type::DCT16X8: {
568
20.2M
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
20.2M
                                scratch_space);
570
20.2M
      break;
571
0
    }
572
20.7M
    case Type::DCT8X16: {
573
20.7M
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
20.7M
                                scratch_space);
575
20.7M
      break;
576
0
    }
577
0
    case Type::DCT32X8: {
578
0
      ComputeScaledDCT<32, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
579
0
                                scratch_space);
580
0
      break;
581
0
    }
582
0
    case Type::DCT8X32: {
583
0
      ComputeScaledDCT<8, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
584
0
                                scratch_space);
585
0
      break;
586
0
    }
587
4.00M
    case Type::DCT32X16: {
588
4.00M
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
4.00M
                                 scratch_space);
590
4.00M
      break;
591
0
    }
592
4.16M
    case Type::DCT16X32: {
593
4.16M
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
4.16M
                                 scratch_space);
595
4.16M
      break;
596
0
    }
597
2.57M
    case Type::DCT32X32: {
598
2.57M
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
2.57M
                                 scratch_space);
600
2.57M
      break;
601
0
    }
602
57.2M
    case Type::DCT: {
603
57.2M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
57.2M
                               scratch_space);
605
57.2M
      break;
606
0
    }
607
25.4M
    case Type::AFV0: {
608
25.4M
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
25.4M
      break;
610
0
    }
611
26.9M
    case Type::AFV1: {
612
26.9M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
26.9M
      break;
614
0
    }
615
25.1M
    case Type::AFV2: {
616
25.1M
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
25.1M
      break;
618
0
    }
619
25.5M
    case Type::AFV3: {
620
25.5M
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
25.5M
      break;
622
0
    }
623
493k
    case Type::DCT64X64: {
624
493k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
493k
                                 scratch_space);
626
493k
      break;
627
0
    }
628
1.26M
    case Type::DCT64X32: {
629
1.26M
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
1.26M
                                 scratch_space);
631
1.26M
      break;
632
0
    }
633
835k
    case Type::DCT32X64: {
634
835k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
835k
                                 scratch_space);
636
835k
      break;
637
0
    }
638
0
    case Type::DCT128X128: {
639
0
      ComputeScaledDCT<128, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
640
0
                                   scratch_space);
641
0
      break;
642
0
    }
643
0
    case Type::DCT128X64: {
644
0
      ComputeScaledDCT<128, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
645
0
                                  scratch_space);
646
0
      break;
647
0
    }
648
0
    case Type::DCT64X128: {
649
0
      ComputeScaledDCT<64, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
650
0
                                  scratch_space);
651
0
      break;
652
0
    }
653
0
    case Type::DCT256X256: {
654
0
      ComputeScaledDCT<256, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
655
0
                                   scratch_space);
656
0
      break;
657
0
    }
658
0
    case Type::DCT256X128: {
659
0
      ComputeScaledDCT<256, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT128X256: {
664
0
      ComputeScaledDCT<128, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
354M
  }
669
354M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
enc_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
461
11.3M
                                          float* JXL_RESTRICT scratch_space) {
462
11.3M
  using Type = AcStrategyType;
463
11.3M
  switch (strategy) {
464
1.18M
    case Type::IDENTITY: {
465
3.56M
      for (size_t y = 0; y < 2; y++) {
466
7.13M
        for (size_t x = 0; x < 2; x++) {
467
4.75M
          float block_dc = 0;
468
23.7M
          for (size_t iy = 0; iy < 4; iy++) {
469
95.1M
            for (size_t ix = 0; ix < 4; ix++) {
470
76.1M
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
76.1M
            }
472
19.0M
          }
473
4.75M
          block_dc *= 1.0f / 16;
474
23.7M
          for (size_t iy = 0; iy < 4; iy++) {
475
95.1M
            for (size_t ix = 0; ix < 4; ix++) {
476
76.1M
              if (ix == 1 && iy == 1) continue;
477
71.3M
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
71.3M
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
71.3M
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
71.3M
            }
481
19.0M
          }
482
4.75M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
4.75M
          coefficients[y * 8 + x] = block_dc;
484
4.75M
        }
485
2.37M
      }
486
1.18M
      float block00 = coefficients[0];
487
1.18M
      float block01 = coefficients[1];
488
1.18M
      float block10 = coefficients[8];
489
1.18M
      float block11 = coefficients[9];
490
1.18M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
1.18M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
1.18M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
1.18M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
1.18M
      break;
495
0
    }
496
534k
    case Type::DCT8X4: {
497
1.60M
      for (size_t x = 0; x < 2; x++) {
498
1.06M
        HWY_ALIGN float block[4 * 8];
499
1.06M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
1.06M
                                 scratch_space);
501
5.34M
        for (size_t iy = 0; iy < 4; iy++) {
502
38.4M
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
34.1M
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
34.1M
          }
506
4.27M
        }
507
1.06M
      }
508
534k
      float block0 = coefficients[0];
509
534k
      float block1 = coefficients[8];
510
534k
      coefficients[0] = (block0 + block1) * 0.5f;
511
534k
      coefficients[8] = (block0 - block1) * 0.5f;
512
534k
      break;
513
0
    }
514
400k
    case Type::DCT4X8: {
515
1.20M
      for (size_t y = 0; y < 2; y++) {
516
801k
        HWY_ALIGN float block[4 * 8];
517
801k
        ComputeScaledDCT<4, 8>()(
518
801k
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
801k
            scratch_space);
520
4.00M
        for (size_t iy = 0; iy < 4; iy++) {
521
28.8M
          for (size_t ix = 0; ix < 8; ix++) {
522
25.6M
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
25.6M
          }
524
3.20M
        }
525
801k
      }
526
400k
      float block0 = coefficients[0];
527
400k
      float block1 = coefficients[8];
528
400k
      coefficients[0] = (block0 + block1) * 0.5f;
529
400k
      coefficients[8] = (block0 - block1) * 0.5f;
530
400k
      break;
531
0
    }
532
2.35k
    case Type::DCT4X4: {
533
7.05k
      for (size_t y = 0; y < 2; y++) {
534
14.1k
        for (size_t x = 0; x < 2; x++) {
535
9.40k
          HWY_ALIGN float block[4 * 4];
536
9.40k
          ComputeScaledDCT<4, 4>()(
537
9.40k
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
9.40k
              block, scratch_space);
539
47.0k
          for (size_t iy = 0; iy < 4; iy++) {
540
188k
            for (size_t ix = 0; ix < 4; ix++) {
541
150k
              coefficients[(y + iy * 2) * 8 + x + ix * 2] = block[iy * 4 + ix];
542
150k
            }
543
37.6k
          }
544
9.40k
        }
545
4.70k
      }
546
2.35k
      float block00 = coefficients[0];
547
2.35k
      float block01 = coefficients[1];
548
2.35k
      float block10 = coefficients[8];
549
2.35k
      float block11 = coefficients[9];
550
2.35k
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
2.35k
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
2.35k
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
2.35k
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
2.35k
      break;
555
0
    }
556
1.24M
    case Type::DCT2X2: {
557
1.24M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
1.24M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
1.24M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
1.24M
      break;
561
0
    }
562
187k
    case Type::DCT16X16: {
563
187k
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
187k
                                 scratch_space);
565
187k
      break;
566
0
    }
567
313k
    case Type::DCT16X8: {
568
313k
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
313k
                                scratch_space);
570
313k
      break;
571
0
    }
572
511k
    case Type::DCT8X16: {
573
511k
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
511k
                                scratch_space);
575
511k
      break;
576
0
    }
577
0
    case Type::DCT32X8: {
578
0
      ComputeScaledDCT<32, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
579
0
                                scratch_space);
580
0
      break;
581
0
    }
582
0
    case Type::DCT8X32: {
583
0
      ComputeScaledDCT<8, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
584
0
                                scratch_space);
585
0
      break;
586
0
    }
587
93.6k
    case Type::DCT32X16: {
588
93.6k
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
93.6k
                                 scratch_space);
590
93.6k
      break;
591
0
    }
592
148k
    case Type::DCT16X32: {
593
148k
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
148k
                                 scratch_space);
595
148k
      break;
596
0
    }
597
312k
    case Type::DCT32X32: {
598
312k
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
312k
                                 scratch_space);
600
312k
      break;
601
0
    }
602
4.01M
    case Type::DCT: {
603
4.01M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
4.01M
                               scratch_space);
605
4.01M
      break;
606
0
    }
607
393k
    case Type::AFV0: {
608
393k
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
393k
      break;
610
0
    }
611
1.19M
    case Type::AFV1: {
612
1.19M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
1.19M
      break;
614
0
    }
615
252k
    case Type::AFV2: {
616
252k
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
252k
      break;
618
0
    }
619
457k
    case Type::AFV3: {
620
457k
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
457k
      break;
622
0
    }
623
76.8k
    case Type::DCT64X64: {
624
76.8k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
76.8k
                                 scratch_space);
626
76.8k
      break;
627
0
    }
628
10.0k
    case Type::DCT64X32: {
629
10.0k
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
10.0k
                                 scratch_space);
631
10.0k
      break;
632
0
    }
633
11.3k
    case Type::DCT32X64: {
634
11.3k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
11.3k
                                 scratch_space);
636
11.3k
      break;
637
0
    }
638
0
    case Type::DCT128X128: {
639
0
      ComputeScaledDCT<128, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
640
0
                                   scratch_space);
641
0
      break;
642
0
    }
643
0
    case Type::DCT128X64: {
644
0
      ComputeScaledDCT<128, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
645
0
                                  scratch_space);
646
0
      break;
647
0
    }
648
0
    case Type::DCT64X128: {
649
0
      ComputeScaledDCT<64, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
650
0
                                  scratch_space);
651
0
      break;
652
0
    }
653
0
    case Type::DCT256X256: {
654
0
      ComputeScaledDCT<256, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
655
0
                                   scratch_space);
656
0
      break;
657
0
    }
658
0
    case Type::DCT256X128: {
659
0
      ComputeScaledDCT<256, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT128X256: {
664
0
      ComputeScaledDCT<128, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
11.3M
  }
669
11.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
461
307M
                                          float* JXL_RESTRICT scratch_space) {
462
307M
  using Type = AcStrategyType;
463
307M
  switch (strategy) {
464
24.6M
    case Type::IDENTITY: {
465
73.8M
      for (size_t y = 0; y < 2; y++) {
466
147M
        for (size_t x = 0; x < 2; x++) {
467
98.4M
          float block_dc = 0;
468
492M
          for (size_t iy = 0; iy < 4; iy++) {
469
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
470
1.57G
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
1.57G
            }
472
393M
          }
473
98.4M
          block_dc *= 1.0f / 16;
474
492M
          for (size_t iy = 0; iy < 4; iy++) {
475
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
476
1.57G
              if (ix == 1 && iy == 1) continue;
477
1.47G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
1.47G
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
1.47G
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
1.47G
            }
481
393M
          }
482
98.4M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
98.4M
          coefficients[y * 8 + x] = block_dc;
484
98.4M
        }
485
49.2M
      }
486
24.6M
      float block00 = coefficients[0];
487
24.6M
      float block01 = coefficients[1];
488
24.6M
      float block10 = coefficients[8];
489
24.6M
      float block11 = coefficients[9];
490
24.6M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
24.6M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
24.6M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
24.6M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
24.6M
      break;
495
0
    }
496
24.6M
    case Type::DCT8X4: {
497
73.8M
      for (size_t x = 0; x < 2; x++) {
498
49.2M
        HWY_ALIGN float block[4 * 8];
499
49.2M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
49.2M
                                 scratch_space);
501
246M
        for (size_t iy = 0; iy < 4; iy++) {
502
1.77G
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
1.57G
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
1.57G
          }
506
196M
        }
507
49.2M
      }
508
24.6M
      float block0 = coefficients[0];
509
24.6M
      float block1 = coefficients[8];
510
24.6M
      coefficients[0] = (block0 + block1) * 0.5f;
511
24.6M
      coefficients[8] = (block0 - block1) * 0.5f;
512
24.6M
      break;
513
0
    }
514
24.6M
    case Type::DCT4X8: {
515
73.8M
      for (size_t y = 0; y < 2; y++) {
516
49.2M
        HWY_ALIGN float block[4 * 8];
517
49.2M
        ComputeScaledDCT<4, 8>()(
518
49.2M
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
49.2M
            scratch_space);
520
246M
        for (size_t iy = 0; iy < 4; iy++) {
521
1.77G
          for (size_t ix = 0; ix < 8; ix++) {
522
1.57G
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
1.57G
          }
524
196M
        }
525
49.2M
      }
526
24.6M
      float block0 = coefficients[0];
527
24.6M
      float block1 = coefficients[8];
528
24.6M
      coefficients[0] = (block0 + block1) * 0.5f;
529
24.6M
      coefficients[8] = (block0 - block1) * 0.5f;
530
24.6M
      break;
531
0
    }
532
24.6M
    case Type::DCT4X4: {
533
73.8M
      for (size_t y = 0; y < 2; y++) {
534
147M
        for (size_t x = 0; x < 2; x++) {
535
98.4M
          HWY_ALIGN float block[4 * 4];
536
98.4M
          ComputeScaledDCT<4, 4>()(
537
98.4M
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
98.4M
              block, scratch_space);
539
492M
          for (size_t iy = 0; iy < 4; iy++) {
540
1.96G
            for (size_t ix = 0; ix < 4; ix++) {
541
1.57G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] = block[iy * 4 + ix];
542
1.57G
            }
543
393M
          }
544
98.4M
        }
545
49.2M
      }
546
24.6M
      float block00 = coefficients[0];
547
24.6M
      float block01 = coefficients[1];
548
24.6M
      float block10 = coefficients[8];
549
24.6M
      float block11 = coefficients[9];
550
24.6M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
24.6M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
24.6M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
24.6M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
24.6M
      break;
555
0
    }
556
24.6M
    case Type::DCT2X2: {
557
24.6M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
24.6M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
24.6M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
24.6M
      break;
561
0
    }
562
9.99M
    case Type::DCT16X16: {
563
9.99M
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
9.99M
                                 scratch_space);
565
9.99M
      break;
566
0
    }
567
19.6M
    case Type::DCT16X8: {
568
19.6M
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
19.6M
                                scratch_space);
570
19.6M
      break;
571
0
    }
572
19.7M
    case Type::DCT8X16: {
573
19.7M
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
19.7M
                                scratch_space);
575
19.7M
      break;
576
0
    }
577
0
    case Type::DCT32X8: {
578
0
      ComputeScaledDCT<32, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
579
0
                                scratch_space);
580
0
      break;
581
0
    }
582
0
    case Type::DCT8X32: {
583
0
      ComputeScaledDCT<8, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
584
0
                                scratch_space);
585
0
      break;
586
0
    }
587
3.81M
    case Type::DCT32X16: {
588
3.81M
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
3.81M
                                 scratch_space);
590
3.81M
      break;
591
0
    }
592
3.87M
    case Type::DCT16X32: {
593
3.87M
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
3.87M
                                 scratch_space);
595
3.87M
      break;
596
0
    }
597
1.95M
    case Type::DCT32X32: {
598
1.95M
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
1.95M
                                 scratch_space);
600
1.95M
      break;
601
0
    }
602
24.6M
    case Type::DCT: {
603
24.6M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
24.6M
                               scratch_space);
605
24.6M
      break;
606
0
    }
607
24.6M
    case Type::AFV0: {
608
24.6M
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
24.6M
      break;
610
0
    }
611
24.6M
    case Type::AFV1: {
612
24.6M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
24.6M
      break;
614
0
    }
615
24.6M
    case Type::AFV2: {
616
24.6M
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
24.6M
      break;
618
0
    }
619
24.6M
    case Type::AFV3: {
620
24.6M
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
24.6M
      break;
622
0
    }
623
339k
    case Type::DCT64X64: {
624
339k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
339k
                                 scratch_space);
626
339k
      break;
627
0
    }
628
1.24M
    case Type::DCT64X32: {
629
1.24M
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
1.24M
                                 scratch_space);
631
1.24M
      break;
632
0
    }
633
813k
    case Type::DCT32X64: {
634
813k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
813k
                                 scratch_space);
636
813k
      break;
637
0
    }
638
0
    case Type::DCT128X128: {
639
0
      ComputeScaledDCT<128, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
640
0
                                   scratch_space);
641
0
      break;
642
0
    }
643
0
    case Type::DCT128X64: {
644
0
      ComputeScaledDCT<128, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
645
0
                                  scratch_space);
646
0
      break;
647
0
    }
648
0
    case Type::DCT64X128: {
649
0
      ComputeScaledDCT<64, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
650
0
                                  scratch_space);
651
0
      break;
652
0
    }
653
0
    case Type::DCT256X256: {
654
0
      ComputeScaledDCT<256, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
655
0
                                   scratch_space);
656
0
      break;
657
0
    }
658
0
    case Type::DCT256X128: {
659
0
      ComputeScaledDCT<256, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT128X256: {
664
0
      ComputeScaledDCT<128, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
307M
  }
669
307M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
461
35.9M
                                          float* JXL_RESTRICT scratch_space) {
462
35.9M
  using Type = AcStrategyType;
463
35.9M
  switch (strategy) {
464
1.18M
    case Type::IDENTITY: {
465
3.56M
      for (size_t y = 0; y < 2; y++) {
466
7.13M
        for (size_t x = 0; x < 2; x++) {
467
4.75M
          float block_dc = 0;
468
23.7M
          for (size_t iy = 0; iy < 4; iy++) {
469
95.1M
            for (size_t ix = 0; ix < 4; ix++) {
470
76.1M
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
76.1M
            }
472
19.0M
          }
473
4.75M
          block_dc *= 1.0f / 16;
474
23.7M
          for (size_t iy = 0; iy < 4; iy++) {
475
95.1M
            for (size_t ix = 0; ix < 4; ix++) {
476
76.1M
              if (ix == 1 && iy == 1) continue;
477
71.3M
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
71.3M
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
71.3M
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
71.3M
            }
481
19.0M
          }
482
4.75M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
4.75M
          coefficients[y * 8 + x] = block_dc;
484
4.75M
        }
485
2.37M
      }
486
1.18M
      float block00 = coefficients[0];
487
1.18M
      float block01 = coefficients[1];
488
1.18M
      float block10 = coefficients[8];
489
1.18M
      float block11 = coefficients[9];
490
1.18M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
1.18M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
1.18M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
1.18M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
1.18M
      break;
495
0
    }
496
534k
    case Type::DCT8X4: {
497
1.60M
      for (size_t x = 0; x < 2; x++) {
498
1.06M
        HWY_ALIGN float block[4 * 8];
499
1.06M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
1.06M
                                 scratch_space);
501
5.34M
        for (size_t iy = 0; iy < 4; iy++) {
502
38.4M
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
34.1M
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
34.1M
          }
506
4.27M
        }
507
1.06M
      }
508
534k
      float block0 = coefficients[0];
509
534k
      float block1 = coefficients[8];
510
534k
      coefficients[0] = (block0 + block1) * 0.5f;
511
534k
      coefficients[8] = (block0 - block1) * 0.5f;
512
534k
      break;
513
0
    }
514
400k
    case Type::DCT4X8: {
515
1.20M
      for (size_t y = 0; y < 2; y++) {
516
801k
        HWY_ALIGN float block[4 * 8];
517
801k
        ComputeScaledDCT<4, 8>()(
518
801k
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
801k
            scratch_space);
520
4.00M
        for (size_t iy = 0; iy < 4; iy++) {
521
28.8M
          for (size_t ix = 0; ix < 8; ix++) {
522
25.6M
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
25.6M
          }
524
3.20M
        }
525
801k
      }
526
400k
      float block0 = coefficients[0];
527
400k
      float block1 = coefficients[8];
528
400k
      coefficients[0] = (block0 + block1) * 0.5f;
529
400k
      coefficients[8] = (block0 - block1) * 0.5f;
530
400k
      break;
531
0
    }
532
2.35k
    case Type::DCT4X4: {
533
7.05k
      for (size_t y = 0; y < 2; y++) {
534
14.1k
        for (size_t x = 0; x < 2; x++) {
535
9.40k
          HWY_ALIGN float block[4 * 4];
536
9.40k
          ComputeScaledDCT<4, 4>()(
537
9.40k
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
9.40k
              block, scratch_space);
539
47.0k
          for (size_t iy = 0; iy < 4; iy++) {
540
188k
            for (size_t ix = 0; ix < 4; ix++) {
541
150k
              coefficients[(y + iy * 2) * 8 + x + ix * 2] = block[iy * 4 + ix];
542
150k
            }
543
37.6k
          }
544
9.40k
        }
545
4.70k
      }
546
2.35k
      float block00 = coefficients[0];
547
2.35k
      float block01 = coefficients[1];
548
2.35k
      float block10 = coefficients[8];
549
2.35k
      float block11 = coefficients[9];
550
2.35k
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
2.35k
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
2.35k
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
2.35k
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
2.35k
      break;
555
0
    }
556
1.24M
    case Type::DCT2X2: {
557
1.24M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
1.24M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
1.24M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
1.24M
      break;
561
0
    }
562
187k
    case Type::DCT16X16: {
563
187k
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
187k
                                 scratch_space);
565
187k
      break;
566
0
    }
567
313k
    case Type::DCT16X8: {
568
313k
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
313k
                                scratch_space);
570
313k
      break;
571
0
    }
572
511k
    case Type::DCT8X16: {
573
511k
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
511k
                                scratch_space);
575
511k
      break;
576
0
    }
577
0
    case Type::DCT32X8: {
578
0
      ComputeScaledDCT<32, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
579
0
                                scratch_space);
580
0
      break;
581
0
    }
582
0
    case Type::DCT8X32: {
583
0
      ComputeScaledDCT<8, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
584
0
                                scratch_space);
585
0
      break;
586
0
    }
587
93.6k
    case Type::DCT32X16: {
588
93.6k
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
93.6k
                                 scratch_space);
590
93.6k
      break;
591
0
    }
592
148k
    case Type::DCT16X32: {
593
148k
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
148k
                                 scratch_space);
595
148k
      break;
596
0
    }
597
312k
    case Type::DCT32X32: {
598
312k
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
312k
                                 scratch_space);
600
312k
      break;
601
0
    }
602
28.6M
    case Type::DCT: {
603
28.6M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
28.6M
                               scratch_space);
605
28.6M
      break;
606
0
    }
607
393k
    case Type::AFV0: {
608
393k
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
393k
      break;
610
0
    }
611
1.19M
    case Type::AFV1: {
612
1.19M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
1.19M
      break;
614
0
    }
615
252k
    case Type::AFV2: {
616
252k
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
252k
      break;
618
0
    }
619
457k
    case Type::AFV3: {
620
457k
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
457k
      break;
622
0
    }
623
76.8k
    case Type::DCT64X64: {
624
76.8k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
76.8k
                                 scratch_space);
626
76.8k
      break;
627
0
    }
628
10.0k
    case Type::DCT64X32: {
629
10.0k
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
10.0k
                                 scratch_space);
631
10.0k
      break;
632
0
    }
633
11.3k
    case Type::DCT32X64: {
634
11.3k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
11.3k
                                 scratch_space);
636
11.3k
      break;
637
0
    }
638
0
    case Type::DCT128X128: {
639
0
      ComputeScaledDCT<128, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
640
0
                                   scratch_space);
641
0
      break;
642
0
    }
643
0
    case Type::DCT128X64: {
644
0
      ComputeScaledDCT<128, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
645
0
                                  scratch_space);
646
0
      break;
647
0
    }
648
0
    case Type::DCT64X128: {
649
0
      ComputeScaledDCT<64, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
650
0
                                  scratch_space);
651
0
      break;
652
0
    }
653
0
    case Type::DCT256X256: {
654
0
      ComputeScaledDCT<256, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
655
0
                                   scratch_space);
656
0
      break;
657
0
    }
658
0
    case Type::DCT256X128: {
659
0
      ComputeScaledDCT<256, 128>()(DCTFrom(pixels, pixels_stride), coefficients,
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT128X256: {
664
0
      ComputeScaledDCT<128, 256>()(DCTFrom(pixels, pixels_stride), coefficients,
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
35.9M
  }
669
35.9M
}
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::TransformFromPixels(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
670
671
// `scratch_space` should be at least 4 * kMaxBlocks * kMaxBlocks elements.
672
HWY_MAYBE_UNUSED void DCFromLowestFrequencies(const AcStrategyType strategy,
673
                                              const float* block, float* dc,
674
                                              size_t dc_stride,
675
47.3M
                                              float* scratch_space) {
676
47.3M
  using Type = AcStrategyType;
677
47.3M
  switch (strategy) {
678
627k
    case Type::DCT16X8: {
679
627k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
627k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
627k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
627k
      break;
683
0
    }
684
1.02M
    case Type::DCT8X16: {
685
1.02M
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
686
1.02M
                         /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
687
1.02M
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
688
1.02M
      break;
689
0
    }
690
375k
    case Type::DCT16X16: {
691
375k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
375k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
375k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
375k
      break;
695
0
    }
696
0
    case Type::DCT32X8: {
697
0
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
698
0
                         /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
699
0
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
700
0
      break;
701
0
    }
702
0
    case Type::DCT8X32: {
703
0
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
704
0
                         /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
705
0
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
706
0
      break;
707
0
    }
708
187k
    case Type::DCT32X16: {
709
187k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
187k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
187k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
187k
      break;
713
0
    }
714
296k
    case Type::DCT16X32: {
715
296k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
296k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
296k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
296k
      break;
719
0
    }
720
624k
    case Type::DCT32X32: {
721
624k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
624k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
624k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
624k
      break;
725
0
    }
726
20.1k
    case Type::DCT64X32: {
727
20.1k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
20.1k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
20.1k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
20.1k
      break;
731
0
    }
732
22.6k
    case Type::DCT32X64: {
733
22.6k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
22.6k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
22.6k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
22.6k
      break;
737
0
    }
738
153k
    case Type::DCT64X64: {
739
153k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
153k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
153k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
153k
      break;
743
0
    }
744
0
    case Type::DCT128X64: {
745
0
      ReinterpretingIDCT<
746
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
747
0
          /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
748
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
749
0
      break;
750
0
    }
751
0
    case Type::DCT64X128: {
752
0
      ReinterpretingIDCT<
753
0
          /*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
754
0
          /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
755
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
756
0
      break;
757
0
    }
758
0
    case Type::DCT128X128: {
759
0
      ReinterpretingIDCT<
760
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
761
0
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
762
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
763
0
      break;
764
0
    }
765
0
    case Type::DCT256X128: {
766
0
      ReinterpretingIDCT<
767
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
768
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
769
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
770
0
      break;
771
0
    }
772
0
    case Type::DCT128X256: {
773
0
      ReinterpretingIDCT<
774
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
775
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
776
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
777
0
      break;
778
0
    }
779
0
    case Type::DCT256X256: {
780
0
      ReinterpretingIDCT<
781
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
782
0
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
783
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
784
0
      break;
785
0
    }
786
32.6M
    case Type::DCT:
787
35.1M
    case Type::DCT2X2:
788
35.1M
    case Type::DCT4X4:
789
35.9M
    case Type::DCT4X8:
790
37.0M
    case Type::DCT8X4:
791
37.7M
    case Type::AFV0:
792
40.1M
    case Type::AFV1:
793
40.6M
    case Type::AFV2:
794
41.6M
    case Type::AFV3:
795
43.9M
    case Type::IDENTITY:
796
43.9M
      dc[0] = block[0];
797
43.9M
      break;
798
47.3M
  }
799
47.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
enc_group.cc:jxl::N_AVX2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Line
Count
Source
675
11.3M
                                              float* scratch_space) {
676
11.3M
  using Type = AcStrategyType;
677
11.3M
  switch (strategy) {
678
313k
    case Type::DCT16X8: {
679
313k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
313k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
313k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
313k
      break;
683
0
    }
684
511k
    case Type::DCT8X16: {
685
511k
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
686
511k
                         /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
687
511k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
688
511k
      break;
689
0
    }
690
187k
    case Type::DCT16X16: {
691
187k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
187k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
187k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
187k
      break;
695
0
    }
696
0
    case Type::DCT32X8: {
697
0
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
698
0
                         /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
699
0
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
700
0
      break;
701
0
    }
702
0
    case Type::DCT8X32: {
703
0
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
704
0
                         /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
705
0
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
706
0
      break;
707
0
    }
708
93.6k
    case Type::DCT32X16: {
709
93.6k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
93.6k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
93.6k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
93.6k
      break;
713
0
    }
714
148k
    case Type::DCT16X32: {
715
148k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
148k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
148k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
148k
      break;
719
0
    }
720
312k
    case Type::DCT32X32: {
721
312k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
312k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
312k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
312k
      break;
725
0
    }
726
10.0k
    case Type::DCT64X32: {
727
10.0k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
10.0k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
10.0k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
10.0k
      break;
731
0
    }
732
11.3k
    case Type::DCT32X64: {
733
11.3k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
11.3k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
11.3k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
11.3k
      break;
737
0
    }
738
76.8k
    case Type::DCT64X64: {
739
76.8k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
76.8k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
76.8k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
76.8k
      break;
743
0
    }
744
0
    case Type::DCT128X64: {
745
0
      ReinterpretingIDCT<
746
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
747
0
          /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
748
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
749
0
      break;
750
0
    }
751
0
    case Type::DCT64X128: {
752
0
      ReinterpretingIDCT<
753
0
          /*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
754
0
          /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
755
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
756
0
      break;
757
0
    }
758
0
    case Type::DCT128X128: {
759
0
      ReinterpretingIDCT<
760
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
761
0
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
762
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
763
0
      break;
764
0
    }
765
0
    case Type::DCT256X128: {
766
0
      ReinterpretingIDCT<
767
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
768
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
769
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
770
0
      break;
771
0
    }
772
0
    case Type::DCT128X256: {
773
0
      ReinterpretingIDCT<
774
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
775
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
776
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
777
0
      break;
778
0
    }
779
0
    case Type::DCT256X256: {
780
0
      ReinterpretingIDCT<
781
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
782
0
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
783
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
784
0
      break;
785
0
    }
786
4.01M
    case Type::DCT:
787
5.25M
    case Type::DCT2X2:
788
5.26M
    case Type::DCT4X4:
789
5.66M
    case Type::DCT4X8:
790
6.19M
    case Type::DCT8X4:
791
6.59M
    case Type::AFV0:
792
7.78M
    case Type::AFV1:
793
8.03M
    case Type::AFV2:
794
8.49M
    case Type::AFV3:
795
9.68M
    case Type::IDENTITY:
796
9.68M
      dc[0] = block[0];
797
9.68M
      break;
798
11.3M
  }
799
11.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_AVX3_SPR::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::N_SSE2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Line
Count
Source
675
35.9M
                                              float* scratch_space) {
676
35.9M
  using Type = AcStrategyType;
677
35.9M
  switch (strategy) {
678
313k
    case Type::DCT16X8: {
679
313k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
313k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
313k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
313k
      break;
683
0
    }
684
511k
    case Type::DCT8X16: {
685
511k
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
686
511k
                         /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
687
511k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
688
511k
      break;
689
0
    }
690
187k
    case Type::DCT16X16: {
691
187k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
187k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
187k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
187k
      break;
695
0
    }
696
0
    case Type::DCT32X8: {
697
0
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
698
0
                         /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
699
0
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
700
0
      break;
701
0
    }
702
0
    case Type::DCT8X32: {
703
0
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
704
0
                         /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
705
0
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
706
0
      break;
707
0
    }
708
93.6k
    case Type::DCT32X16: {
709
93.6k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
93.6k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
93.6k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
93.6k
      break;
713
0
    }
714
148k
    case Type::DCT16X32: {
715
148k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
148k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
148k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
148k
      break;
719
0
    }
720
312k
    case Type::DCT32X32: {
721
312k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
312k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
312k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
312k
      break;
725
0
    }
726
10.0k
    case Type::DCT64X32: {
727
10.0k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
10.0k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
10.0k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
10.0k
      break;
731
0
    }
732
11.3k
    case Type::DCT32X64: {
733
11.3k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
11.3k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
11.3k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
11.3k
      break;
737
0
    }
738
76.8k
    case Type::DCT64X64: {
739
76.8k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
76.8k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
76.8k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
76.8k
      break;
743
0
    }
744
0
    case Type::DCT128X64: {
745
0
      ReinterpretingIDCT<
746
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
747
0
          /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
748
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
749
0
      break;
750
0
    }
751
0
    case Type::DCT64X128: {
752
0
      ReinterpretingIDCT<
753
0
          /*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
754
0
          /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
755
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
756
0
      break;
757
0
    }
758
0
    case Type::DCT128X128: {
759
0
      ReinterpretingIDCT<
760
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
761
0
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
762
0
          block, 16 * kBlockDim, dc, dc_stride, scratch_space);
763
0
      break;
764
0
    }
765
0
    case Type::DCT256X128: {
766
0
      ReinterpretingIDCT<
767
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
768
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
769
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
770
0
      break;
771
0
    }
772
0
    case Type::DCT128X256: {
773
0
      ReinterpretingIDCT<
774
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
775
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
776
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
777
0
      break;
778
0
    }
779
0
    case Type::DCT256X256: {
780
0
      ReinterpretingIDCT<
781
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
782
0
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
783
0
          block, 32 * kBlockDim, dc, dc_stride, scratch_space);
784
0
      break;
785
0
    }
786
28.6M
    case Type::DCT:
787
29.8M
    case Type::DCT2X2:
788
29.8M
    case Type::DCT4X4:
789
30.2M
    case Type::DCT4X8:
790
30.8M
    case Type::DCT8X4:
791
31.2M
    case Type::AFV0:
792
32.3M
    case Type::AFV1:
793
32.6M
    case Type::AFV2:
794
33.1M
    case Type::AFV3:
795
34.2M
    case Type::IDENTITY:
796
34.2M
      dc[0] = block[0];
797
34.2M
      break;
798
35.9M
  }
799
35.9M
}
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::DCFromLowestFrequencies(jxl::AcStrategyType, float const*, float*, unsigned long, float*)
800
801
}  // namespace
802
// NOLINTNEXTLINE(google-readability-namespace-comments)
803
}  // namespace HWY_NAMESPACE
804
}  // namespace jxl
805
HWY_AFTER_NAMESPACE();
806
807
#endif  // LIB_JXL_ENC_TRANSFORMS_INL_H_