Coverage Report

Created: 2026-09-14 07:37

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.10M
                                   const size_t output_stride, float* scratch) {
40
3.10M
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
3.10M
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
3.10M
  float* block = scratch;
43
3.10M
  if (ROWS < COLS) {
44
2.87M
    for (size_t y = 0; y < LF_ROWS; y++) {
45
6.48M
      for (size_t x = 0; x < LF_COLS; x++) {
46
4.87M
        block[y * COLS + x] = input[y * input_stride + x] *
47
4.87M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
4.87M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
4.87M
      }
50
1.61M
    }
51
1.83M
  } else {
52
6.96M
    for (size_t y = 0; y < LF_COLS; y++) {
53
27.8M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
22.6M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
22.6M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
22.6M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
22.6M
      }
58
5.12M
    }
59
1.83M
  }
60
61
3.10M
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
3.10M
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
3.10M
                                  scratch_space);
64
3.10M
}
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
291k
                                   const size_t output_stride, float* scratch) {
40
291k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
291k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
291k
  float* block = scratch;
43
291k
  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
291k
  } else {
52
583k
    for (size_t y = 0; y < LF_COLS; y++) {
53
875k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
583k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
583k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
583k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
583k
      }
58
291k
    }
59
291k
  }
60
61
291k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
291k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
291k
                                  scratch_space);
64
291k
}
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
481k
                                   const size_t output_stride, float* scratch) {
40
481k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
481k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
481k
  float* block = scratch;
43
481k
  if (ROWS < COLS) {
44
963k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.44M
      for (size_t x = 0; x < LF_COLS; x++) {
46
963k
        block[y * COLS + x] = input[y * input_stride + x] *
47
963k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
963k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
963k
      }
50
481k
    }
51
481k
  } 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
481k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
481k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
481k
                                  scratch_space);
64
481k
}
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
176k
                                   const size_t output_stride, float* scratch) {
40
176k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
176k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
176k
  float* block = scratch;
43
176k
  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
176k
  } else {
52
528k
    for (size_t y = 0; y < LF_COLS; y++) {
53
1.05M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
704k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
704k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
704k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
704k
      }
58
352k
    }
59
176k
  }
60
61
176k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
176k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
176k
                                  scratch_space);
64
176k
}
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
84.7k
                                   const size_t output_stride, float* scratch) {
40
84.7k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
84.7k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
84.7k
  float* block = scratch;
43
84.7k
  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
84.7k
  } else {
52
254k
    for (size_t y = 0; y < LF_COLS; y++) {
53
847k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
678k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
678k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
678k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
678k
      }
58
169k
    }
59
84.7k
  }
60
61
84.7k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
84.7k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
84.7k
                                  scratch_space);
64
84.7k
}
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
140k
                                   const size_t output_stride, float* scratch) {
40
140k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
140k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
140k
  float* block = scratch;
43
140k
  if (ROWS < COLS) {
44
421k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.40M
      for (size_t x = 0; x < LF_COLS; x++) {
46
1.12M
        block[y * COLS + x] = input[y * input_stride + x] *
47
1.12M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
1.12M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
1.12M
      }
50
281k
    }
51
140k
  } 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
140k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
140k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
140k
                                  scratch_space);
64
140k
}
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
287k
                                   const size_t output_stride, float* scratch) {
40
287k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
287k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
287k
  float* block = scratch;
43
287k
  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
287k
  } else {
52
1.43M
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.74M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.59M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.59M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.59M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.59M
      }
58
1.14M
    }
59
287k
  }
60
61
287k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
287k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
287k
                                  scratch_space);
64
287k
}
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
8.91k
                                   const size_t output_stride, float* scratch) {
40
8.91k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
8.91k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
8.91k
  float* block = scratch;
43
8.91k
  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
8.91k
  } else {
52
44.5k
    for (size_t y = 0; y < LF_COLS; y++) {
53
321k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
285k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
285k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
285k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
285k
      }
58
35.6k
    }
59
8.91k
  }
60
61
8.91k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
8.91k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
8.91k
                                  scratch_space);
64
8.91k
}
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
10.9k
                                   const size_t output_stride, float* scratch) {
40
10.9k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
10.9k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
10.9k
  float* block = scratch;
43
10.9k
  if (ROWS < COLS) {
44
54.8k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
395k
      for (size_t x = 0; x < LF_COLS; x++) {
46
351k
        block[y * COLS + x] = input[y * input_stride + x] *
47
351k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
351k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
351k
      }
50
43.9k
    }
51
10.9k
  } 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
10.9k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
10.9k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
10.9k
                                  scratch_space);
64
10.9k
}
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
70.2k
                                   const size_t output_stride, float* scratch) {
40
70.2k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
70.2k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
70.2k
  float* block = scratch;
43
70.2k
  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
70.2k
  } else {
52
632k
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.06M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.49M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.49M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.49M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.49M
      }
58
562k
    }
59
70.2k
  }
60
61
70.2k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
70.2k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
70.2k
                                  scratch_space);
64
70.2k
}
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
291k
                                   const size_t output_stride, float* scratch) {
40
291k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
291k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
291k
  float* block = scratch;
43
291k
  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
291k
  } else {
52
583k
    for (size_t y = 0; y < LF_COLS; y++) {
53
875k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
583k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
583k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
583k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
583k
      }
58
291k
    }
59
291k
  }
60
61
291k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
291k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
291k
                                  scratch_space);
64
291k
}
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
481k
                                   const size_t output_stride, float* scratch) {
40
481k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
481k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
481k
  float* block = scratch;
43
481k
  if (ROWS < COLS) {
44
963k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.44M
      for (size_t x = 0; x < LF_COLS; x++) {
46
963k
        block[y * COLS + x] = input[y * input_stride + x] *
47
963k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
963k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
963k
      }
50
481k
    }
51
481k
  } 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
481k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
481k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
481k
                                  scratch_space);
64
481k
}
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
176k
                                   const size_t output_stride, float* scratch) {
40
176k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
176k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
176k
  float* block = scratch;
43
176k
  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
176k
  } else {
52
528k
    for (size_t y = 0; y < LF_COLS; y++) {
53
1.05M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
704k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
704k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
704k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
704k
      }
58
352k
    }
59
176k
  }
60
61
176k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
176k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
176k
                                  scratch_space);
64
176k
}
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
84.7k
                                   const size_t output_stride, float* scratch) {
40
84.7k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
84.7k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
84.7k
  float* block = scratch;
43
84.7k
  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
84.7k
  } else {
52
254k
    for (size_t y = 0; y < LF_COLS; y++) {
53
847k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
678k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
678k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
678k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
678k
      }
58
169k
    }
59
84.7k
  }
60
61
84.7k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
84.7k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
84.7k
                                  scratch_space);
64
84.7k
}
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
140k
                                   const size_t output_stride, float* scratch) {
40
140k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
140k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
140k
  float* block = scratch;
43
140k
  if (ROWS < COLS) {
44
421k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
1.40M
      for (size_t x = 0; x < LF_COLS; x++) {
46
1.12M
        block[y * COLS + x] = input[y * input_stride + x] *
47
1.12M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
1.12M
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
1.12M
      }
50
281k
    }
51
140k
  } 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
140k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
140k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
140k
                                  scratch_space);
64
140k
}
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
287k
                                   const size_t output_stride, float* scratch) {
40
287k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
287k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
287k
  float* block = scratch;
43
287k
  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
287k
  } else {
52
1.43M
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.74M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.59M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.59M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.59M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.59M
      }
58
1.14M
    }
59
287k
  }
60
61
287k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
287k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
287k
                                  scratch_space);
64
287k
}
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
8.91k
                                   const size_t output_stride, float* scratch) {
40
8.91k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
8.91k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
8.91k
  float* block = scratch;
43
8.91k
  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
8.91k
  } else {
52
44.5k
    for (size_t y = 0; y < LF_COLS; y++) {
53
321k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
285k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
285k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
285k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
285k
      }
58
35.6k
    }
59
8.91k
  }
60
61
8.91k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
8.91k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
8.91k
                                  scratch_space);
64
8.91k
}
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
10.9k
                                   const size_t output_stride, float* scratch) {
40
10.9k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
10.9k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
10.9k
  float* block = scratch;
43
10.9k
  if (ROWS < COLS) {
44
54.8k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
395k
      for (size_t x = 0; x < LF_COLS; x++) {
46
351k
        block[y * COLS + x] = input[y * input_stride + x] *
47
351k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
351k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
351k
      }
50
43.9k
    }
51
10.9k
  } 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
10.9k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
10.9k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
10.9k
                                  scratch_space);
64
10.9k
}
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
70.2k
                                   const size_t output_stride, float* scratch) {
40
70.2k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
70.2k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
70.2k
  float* block = scratch;
43
70.2k
  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
70.2k
  } else {
52
632k
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.06M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.49M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.49M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.49M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.49M
      }
58
562k
    }
59
70.2k
  }
60
61
70.2k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
70.2k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
70.2k
                                  scratch_space);
64
70.2k
}
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
76.1M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
76.1M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
76.1M
  static_assert(S % 2 == 0, "S should be even");
70
76.1M
  float temp[kDCTBlockSize];
71
76.1M
  constexpr size_t num_2x2 = S / 2;
72
253M
  for (size_t y = 0; y < num_2x2; y++) {
73
711M
    for (size_t x = 0; x < num_2x2; x++) {
74
533M
      float c00 = block[y * 2 * stride + x * 2];
75
533M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
533M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
533M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
533M
      float r00 = c00 + c01 + c10 + c11;
79
533M
      float r01 = c00 + c01 - c10 - c11;
80
533M
      float r10 = c00 - c01 + c10 - c11;
81
533M
      float r11 = c00 - c01 - c10 + c11;
82
533M
      r00 *= 0.25f;
83
533M
      r01 *= 0.25f;
84
533M
      r10 *= 0.25f;
85
533M
      r11 *= 0.25f;
86
533M
      temp[y * kBlockDim + x] = r00;
87
533M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
533M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
533M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
533M
    }
91
177M
  }
92
431M
  for (size_t y = 0; y < S; y++) {
93
2.48G
    for (size_t x = 0; x < S; x++) {
94
2.13G
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
2.13G
    }
96
355M
  }
97
76.1M
}
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.20M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.20M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.20M
  static_assert(S % 2 == 0, "S should be even");
70
1.20M
  float temp[kDCTBlockSize];
71
1.20M
  constexpr size_t num_2x2 = S / 2;
72
6.01M
  for (size_t y = 0; y < num_2x2; y++) {
73
24.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.2M
      float c00 = block[y * 2 * stride + x * 2];
75
19.2M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
19.2M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
19.2M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
19.2M
      float r00 = c00 + c01 + c10 + c11;
79
19.2M
      float r01 = c00 + c01 - c10 - c11;
80
19.2M
      float r10 = c00 - c01 + c10 - c11;
81
19.2M
      float r11 = c00 - c01 - c10 + c11;
82
19.2M
      r00 *= 0.25f;
83
19.2M
      r01 *= 0.25f;
84
19.2M
      r10 *= 0.25f;
85
19.2M
      r11 *= 0.25f;
86
19.2M
      temp[y * kBlockDim + x] = r00;
87
19.2M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
19.2M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
19.2M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
19.2M
    }
91
4.81M
  }
92
10.8M
  for (size_t y = 0; y < S; y++) {
93
86.6M
    for (size_t x = 0; x < S; x++) {
94
77.0M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
77.0M
    }
96
9.62M
  }
97
1.20M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.20M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.20M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.20M
  static_assert(S % 2 == 0, "S should be even");
70
1.20M
  float temp[kDCTBlockSize];
71
1.20M
  constexpr size_t num_2x2 = S / 2;
72
3.61M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.22M
    for (size_t x = 0; x < num_2x2; x++) {
74
4.81M
      float c00 = block[y * 2 * stride + x * 2];
75
4.81M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
4.81M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
4.81M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
4.81M
      float r00 = c00 + c01 + c10 + c11;
79
4.81M
      float r01 = c00 + c01 - c10 - c11;
80
4.81M
      float r10 = c00 - c01 + c10 - c11;
81
4.81M
      float r11 = c00 - c01 - c10 + c11;
82
4.81M
      r00 *= 0.25f;
83
4.81M
      r01 *= 0.25f;
84
4.81M
      r10 *= 0.25f;
85
4.81M
      r11 *= 0.25f;
86
4.81M
      temp[y * kBlockDim + x] = r00;
87
4.81M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
4.81M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
4.81M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
4.81M
    }
91
2.40M
  }
92
6.01M
  for (size_t y = 0; y < S; y++) {
93
24.0M
    for (size_t x = 0; x < S; x++) {
94
19.2M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
19.2M
    }
96
4.81M
  }
97
1.20M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.20M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.20M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.20M
  static_assert(S % 2 == 0, "S should be even");
70
1.20M
  float temp[kDCTBlockSize];
71
1.20M
  constexpr size_t num_2x2 = S / 2;
72
2.40M
  for (size_t y = 0; y < num_2x2; y++) {
73
2.40M
    for (size_t x = 0; x < num_2x2; x++) {
74
1.20M
      float c00 = block[y * 2 * stride + x * 2];
75
1.20M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
1.20M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
1.20M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
1.20M
      float r00 = c00 + c01 + c10 + c11;
79
1.20M
      float r01 = c00 + c01 - c10 - c11;
80
1.20M
      float r10 = c00 - c01 + c10 - c11;
81
1.20M
      float r11 = c00 - c01 - c10 + c11;
82
1.20M
      r00 *= 0.25f;
83
1.20M
      r01 *= 0.25f;
84
1.20M
      r10 *= 0.25f;
85
1.20M
      r11 *= 0.25f;
86
1.20M
      temp[y * kBlockDim + x] = r00;
87
1.20M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
1.20M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
1.20M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
1.20M
    }
91
1.20M
  }
92
3.61M
  for (size_t y = 0; y < S; y++) {
93
7.22M
    for (size_t x = 0; x < S; x++) {
94
4.81M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
4.81M
    }
96
2.40M
  }
97
1.20M
}
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
22.9M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
22.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
22.9M
  static_assert(S % 2 == 0, "S should be even");
70
22.9M
  float temp[kDCTBlockSize];
71
22.9M
  constexpr size_t num_2x2 = S / 2;
72
114M
  for (size_t y = 0; y < num_2x2; y++) {
73
459M
    for (size_t x = 0; x < num_2x2; x++) {
74
367M
      float c00 = block[y * 2 * stride + x * 2];
75
367M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
367M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
367M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
367M
      float r00 = c00 + c01 + c10 + c11;
79
367M
      float r01 = c00 + c01 - c10 - c11;
80
367M
      float r10 = c00 - c01 + c10 - c11;
81
367M
      float r11 = c00 - c01 - c10 + c11;
82
367M
      r00 *= 0.25f;
83
367M
      r01 *= 0.25f;
84
367M
      r10 *= 0.25f;
85
367M
      r11 *= 0.25f;
86
367M
      temp[y * kBlockDim + x] = r00;
87
367M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
367M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
367M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
367M
    }
91
91.9M
  }
92
206M
  for (size_t y = 0; y < S; y++) {
93
1.65G
    for (size_t x = 0; x < S; x++) {
94
1.47G
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
1.47G
    }
96
183M
  }
97
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
22.9M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
22.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
22.9M
  static_assert(S % 2 == 0, "S should be even");
70
22.9M
  float temp[kDCTBlockSize];
71
22.9M
  constexpr size_t num_2x2 = S / 2;
72
68.9M
  for (size_t y = 0; y < num_2x2; y++) {
73
137M
    for (size_t x = 0; x < num_2x2; x++) {
74
91.9M
      float c00 = block[y * 2 * stride + x * 2];
75
91.9M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
91.9M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
91.9M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
91.9M
      float r00 = c00 + c01 + c10 + c11;
79
91.9M
      float r01 = c00 + c01 - c10 - c11;
80
91.9M
      float r10 = c00 - c01 + c10 - c11;
81
91.9M
      float r11 = c00 - c01 - c10 + c11;
82
91.9M
      r00 *= 0.25f;
83
91.9M
      r01 *= 0.25f;
84
91.9M
      r10 *= 0.25f;
85
91.9M
      r11 *= 0.25f;
86
91.9M
      temp[y * kBlockDim + x] = r00;
87
91.9M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
91.9M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
91.9M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
91.9M
    }
91
45.9M
  }
92
114M
  for (size_t y = 0; y < S; y++) {
93
459M
    for (size_t x = 0; x < S; x++) {
94
367M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
367M
    }
96
91.9M
  }
97
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
22.9M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
22.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
22.9M
  static_assert(S % 2 == 0, "S should be even");
70
22.9M
  float temp[kDCTBlockSize];
71
22.9M
  constexpr size_t num_2x2 = S / 2;
72
45.9M
  for (size_t y = 0; y < num_2x2; y++) {
73
45.9M
    for (size_t x = 0; x < num_2x2; x++) {
74
22.9M
      float c00 = block[y * 2 * stride + x * 2];
75
22.9M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
22.9M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
22.9M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
22.9M
      float r00 = c00 + c01 + c10 + c11;
79
22.9M
      float r01 = c00 + c01 - c10 - c11;
80
22.9M
      float r10 = c00 - c01 + c10 - c11;
81
22.9M
      float r11 = c00 - c01 - c10 + c11;
82
22.9M
      r00 *= 0.25f;
83
22.9M
      r01 *= 0.25f;
84
22.9M
      r10 *= 0.25f;
85
22.9M
      r11 *= 0.25f;
86
22.9M
      temp[y * kBlockDim + x] = r00;
87
22.9M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
22.9M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
22.9M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
22.9M
    }
91
22.9M
  }
92
68.9M
  for (size_t y = 0; y < S; y++) {
93
137M
    for (size_t x = 0; x < S; x++) {
94
91.9M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
91.9M
    }
96
45.9M
  }
97
22.9M
}
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.20M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.20M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.20M
  static_assert(S % 2 == 0, "S should be even");
70
1.20M
  float temp[kDCTBlockSize];
71
1.20M
  constexpr size_t num_2x2 = S / 2;
72
6.01M
  for (size_t y = 0; y < num_2x2; y++) {
73
24.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.2M
      float c00 = block[y * 2 * stride + x * 2];
75
19.2M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
19.2M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
19.2M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
19.2M
      float r00 = c00 + c01 + c10 + c11;
79
19.2M
      float r01 = c00 + c01 - c10 - c11;
80
19.2M
      float r10 = c00 - c01 + c10 - c11;
81
19.2M
      float r11 = c00 - c01 - c10 + c11;
82
19.2M
      r00 *= 0.25f;
83
19.2M
      r01 *= 0.25f;
84
19.2M
      r10 *= 0.25f;
85
19.2M
      r11 *= 0.25f;
86
19.2M
      temp[y * kBlockDim + x] = r00;
87
19.2M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
19.2M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
19.2M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
19.2M
    }
91
4.81M
  }
92
10.8M
  for (size_t y = 0; y < S; y++) {
93
86.6M
    for (size_t x = 0; x < S; x++) {
94
77.0M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
77.0M
    }
96
9.62M
  }
97
1.20M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.20M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.20M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.20M
  static_assert(S % 2 == 0, "S should be even");
70
1.20M
  float temp[kDCTBlockSize];
71
1.20M
  constexpr size_t num_2x2 = S / 2;
72
3.61M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.22M
    for (size_t x = 0; x < num_2x2; x++) {
74
4.81M
      float c00 = block[y * 2 * stride + x * 2];
75
4.81M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
4.81M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
4.81M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
4.81M
      float r00 = c00 + c01 + c10 + c11;
79
4.81M
      float r01 = c00 + c01 - c10 - c11;
80
4.81M
      float r10 = c00 - c01 + c10 - c11;
81
4.81M
      float r11 = c00 - c01 - c10 + c11;
82
4.81M
      r00 *= 0.25f;
83
4.81M
      r01 *= 0.25f;
84
4.81M
      r10 *= 0.25f;
85
4.81M
      r11 *= 0.25f;
86
4.81M
      temp[y * kBlockDim + x] = r00;
87
4.81M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
4.81M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
4.81M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
4.81M
    }
91
2.40M
  }
92
6.01M
  for (size_t y = 0; y < S; y++) {
93
24.0M
    for (size_t x = 0; x < S; x++) {
94
19.2M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
19.2M
    }
96
4.81M
  }
97
1.20M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.20M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.20M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.20M
  static_assert(S % 2 == 0, "S should be even");
70
1.20M
  float temp[kDCTBlockSize];
71
1.20M
  constexpr size_t num_2x2 = S / 2;
72
2.40M
  for (size_t y = 0; y < num_2x2; y++) {
73
2.40M
    for (size_t x = 0; x < num_2x2; x++) {
74
1.20M
      float c00 = block[y * 2 * stride + x * 2];
75
1.20M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
1.20M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
1.20M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
1.20M
      float r00 = c00 + c01 + c10 + c11;
79
1.20M
      float r01 = c00 + c01 - c10 - c11;
80
1.20M
      float r10 = c00 - c01 + c10 - c11;
81
1.20M
      float r11 = c00 - c01 - c10 + c11;
82
1.20M
      r00 *= 0.25f;
83
1.20M
      r01 *= 0.25f;
84
1.20M
      r10 *= 0.25f;
85
1.20M
      r11 *= 0.25f;
86
1.20M
      temp[y * kBlockDim + x] = r00;
87
1.20M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
1.20M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
1.20M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
1.20M
    }
91
1.20M
  }
92
3.61M
  for (size_t y = 0; y < S; y++) {
93
7.22M
    for (size_t x = 0; x < S; x++) {
94
4.81M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
4.81M
    }
96
2.40M
  }
97
1.20M
}
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
96.3M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
96.3M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
96.3M
      {
102
96.3M
          0.2500000000000000,
103
96.3M
          0.8769029297991420f,
104
96.3M
          0.0000000000000000,
105
96.3M
          0.0000000000000000,
106
96.3M
          0.0000000000000000,
107
96.3M
          -0.4105377591765233f,
108
96.3M
          0.0000000000000000,
109
96.3M
          0.0000000000000000,
110
96.3M
          0.0000000000000000,
111
96.3M
          0.0000000000000000,
112
96.3M
          0.0000000000000000,
113
96.3M
          0.0000000000000000,
114
96.3M
          0.0000000000000000,
115
96.3M
          0.0000000000000000,
116
96.3M
          0.0000000000000000,
117
96.3M
          0.0000000000000000,
118
96.3M
      },
119
96.3M
      {
120
96.3M
          0.2500000000000000,
121
96.3M
          0.2206518106944235f,
122
96.3M
          0.0000000000000000,
123
96.3M
          0.0000000000000000,
124
96.3M
          -0.7071067811865474f,
125
96.3M
          0.6235485373547691f,
126
96.3M
          0.0000000000000000,
127
96.3M
          0.0000000000000000,
128
96.3M
          0.0000000000000000,
129
96.3M
          0.0000000000000000,
130
96.3M
          0.0000000000000000,
131
96.3M
          0.0000000000000000,
132
96.3M
          0.0000000000000000,
133
96.3M
          0.0000000000000000,
134
96.3M
          0.0000000000000000,
135
96.3M
          0.0000000000000000,
136
96.3M
      },
137
96.3M
      {
138
96.3M
          0.2500000000000000,
139
96.3M
          -0.1014005039375376f,
140
96.3M
          0.4067007583026075f,
141
96.3M
          -0.2125574805828875f,
142
96.3M
          0.0000000000000000,
143
96.3M
          -0.0643507165794627f,
144
96.3M
          -0.4517556589999482f,
145
96.3M
          -0.3046847507248690f,
146
96.3M
          0.3017929516615495f,
147
96.3M
          0.4082482904638627f,
148
96.3M
          0.1747866975480809f,
149
96.3M
          -0.2110560104933578f,
150
96.3M
          -0.1426608480880726f,
151
96.3M
          -0.1381354035075859f,
152
96.3M
          -0.1743760259965107f,
153
96.3M
          0.1135498731499434f,
154
96.3M
      },
155
96.3M
      {
156
96.3M
          0.2500000000000000,
157
96.3M
          -0.1014005039375375f,
158
96.3M
          0.4444481661973445f,
159
96.3M
          0.3085497062849767f,
160
96.3M
          0.0000000000000000f,
161
96.3M
          -0.0643507165794627f,
162
96.3M
          0.1585450355184006f,
163
96.3M
          0.5112616136591823f,
164
96.3M
          0.2579236279634118f,
165
96.3M
          0.0000000000000000,
166
96.3M
          0.0812611176717539f,
167
96.3M
          0.1856718091610980f,
168
96.3M
          -0.3416446842253372f,
169
96.3M
          0.3302282550303788f,
170
96.3M
          0.0702790691196284f,
171
96.3M
          -0.0741750459581035f,
172
96.3M
      },
173
96.3M
      {
174
96.3M
          0.2500000000000000,
175
96.3M
          0.2206518106944236f,
176
96.3M
          0.0000000000000000,
177
96.3M
          0.0000000000000000,
178
96.3M
          0.7071067811865476f,
179
96.3M
          0.6235485373547694f,
180
96.3M
          0.0000000000000000,
181
96.3M
          0.0000000000000000,
182
96.3M
          0.0000000000000000,
183
96.3M
          0.0000000000000000,
184
96.3M
          0.0000000000000000,
185
96.3M
          0.0000000000000000,
186
96.3M
          0.0000000000000000,
187
96.3M
          0.0000000000000000,
188
96.3M
          0.0000000000000000,
189
96.3M
          0.0000000000000000,
190
96.3M
      },
191
96.3M
      {
192
96.3M
          0.2500000000000000,
193
96.3M
          -0.1014005039375378f,
194
96.3M
          0.0000000000000000,
195
96.3M
          0.4706702258572536f,
196
96.3M
          0.0000000000000000,
197
96.3M
          -0.0643507165794628f,
198
96.3M
          -0.0403851516082220f,
199
96.3M
          0.0000000000000000,
200
96.3M
          0.1627234014286620f,
201
96.3M
          0.0000000000000000,
202
96.3M
          0.0000000000000000,
203
96.3M
          0.0000000000000000,
204
96.3M
          0.7367497537172237f,
205
96.3M
          0.0875511500058708f,
206
96.3M
          -0.2921026642334881f,
207
96.3M
          0.1940289303259434f,
208
96.3M
      },
209
96.3M
      {
210
96.3M
          0.2500000000000000,
211
96.3M
          -0.1014005039375377f,
212
96.3M
          0.1957439937204294f,
213
96.3M
          -0.1621205195722993f,
214
96.3M
          0.0000000000000000,
215
96.3M
          -0.0643507165794628f,
216
96.3M
          0.0074182263792424f,
217
96.3M
          -0.2904801297289980f,
218
96.3M
          0.0952002265347504f,
219
96.3M
          0.0000000000000000,
220
96.3M
          -0.3675398009862027f,
221
96.3M
          0.4921585901373873f,
222
96.3M
          0.2462710772207515f,
223
96.3M
          -0.0794670660590957f,
224
96.3M
          0.3623817333531167f,
225
96.3M
          -0.4351904965232280f,
226
96.3M
      },
227
96.3M
      {
228
96.3M
          0.2500000000000000,
229
96.3M
          -0.1014005039375376f,
230
96.3M
          0.2929100136981264f,
231
96.3M
          0.0000000000000000,
232
96.3M
          0.0000000000000000,
233
96.3M
          -0.0643507165794627f,
234
96.3M
          0.3935103426921017f,
235
96.3M
          -0.0657870154914280f,
236
96.3M
          0.0000000000000000,
237
96.3M
          -0.4082482904638628f,
238
96.3M
          -0.3078822139579090f,
239
96.3M
          -0.3852501370925192f,
240
96.3M
          -0.0857401903551931f,
241
96.3M
          -0.4613374887461511f,
242
96.3M
          0.0000000000000000,
243
96.3M
          0.2191868483885747f,
244
96.3M
      },
245
96.3M
      {
246
96.3M
          0.2500000000000000,
247
96.3M
          -0.1014005039375376f,
248
96.3M
          -0.4067007583026072f,
249
96.3M
          -0.2125574805828705f,
250
96.3M
          0.0000000000000000,
251
96.3M
          -0.0643507165794627f,
252
96.3M
          -0.4517556589999464f,
253
96.3M
          0.3046847507248840f,
254
96.3M
          0.3017929516615503f,
255
96.3M
          -0.4082482904638635f,
256
96.3M
          -0.1747866975480813f,
257
96.3M
          0.2110560104933581f,
258
96.3M
          -0.1426608480880734f,
259
96.3M
          -0.1381354035075829f,
260
96.3M
          -0.1743760259965108f,
261
96.3M
          0.1135498731499426f,
262
96.3M
      },
263
96.3M
      {
264
96.3M
          0.2500000000000000,
265
96.3M
          -0.1014005039375377f,
266
96.3M
          -0.1957439937204287f,
267
96.3M
          -0.1621205195722833f,
268
96.3M
          0.0000000000000000,
269
96.3M
          -0.0643507165794628f,
270
96.3M
          0.0074182263792444f,
271
96.3M
          0.2904801297290076f,
272
96.3M
          0.0952002265347505f,
273
96.3M
          0.0000000000000000,
274
96.3M
          0.3675398009862011f,
275
96.3M
          -0.4921585901373891f,
276
96.3M
          0.2462710772207514f,
277
96.3M
          -0.0794670660591026f,
278
96.3M
          0.3623817333531165f,
279
96.3M
          -0.4351904965232251f,
280
96.3M
      },
281
96.3M
      {
282
96.3M
          0.2500000000000000,
283
96.3M
          -0.1014005039375375f,
284
96.3M
          0.0000000000000000,
285
96.3M
          -0.4706702258572528f,
286
96.3M
          0.0000000000000000,
287
96.3M
          -0.0643507165794627f,
288
96.3M
          0.1107416575309343f,
289
96.3M
          0.0000000000000000,
290
96.3M
          -0.1627234014286617f,
291
96.3M
          0.0000000000000000,
292
96.3M
          0.0000000000000000,
293
96.3M
          0.0000000000000000,
294
96.3M
          0.1488339922711357f,
295
96.3M
          0.4972464710953509f,
296
96.3M
          0.2921026642334879f,
297
96.3M
          0.5550443808910661f,
298
96.3M
      },
299
96.3M
      {
300
96.3M
          0.2500000000000000,
301
96.3M
          -0.1014005039375377f,
302
96.3M
          0.1137907446044809f,
303
96.3M
          -0.1464291867126764f,
304
96.3M
          0.0000000000000000,
305
96.3M
          -0.0643507165794628f,
306
96.3M
          0.0829816309488205f,
307
96.3M
          -0.2388977352334460f,
308
96.3M
          -0.3531238544981630f,
309
96.3M
          -0.4082482904638630f,
310
96.3M
          0.4826689115059883f,
311
96.3M
          0.1741941265991622f,
312
96.3M
          -0.0476868035022925f,
313
96.3M
          0.1253805944856366f,
314
96.3M
          -0.4326608024727445f,
315
96.3M
          -0.2546827712406646f,
316
96.3M
      },
317
96.3M
      {
318
96.3M
          0.2500000000000000,
319
96.3M
          -0.1014005039375377f,
320
96.3M
          -0.4444481661973438f,
321
96.3M
          0.3085497062849487f,
322
96.3M
          0.0000000000000000,
323
96.3M
          -0.0643507165794628f,
324
96.3M
          0.1585450355183970f,
325
96.3M
          -0.5112616136592012f,
326
96.3M
          0.2579236279634129f,
327
96.3M
          0.0000000000000000,
328
96.3M
          -0.0812611176717504f,
329
96.3M
          -0.1856718091610990f,
330
96.3M
          -0.3416446842253373f,
331
96.3M
          0.3302282550303805f,
332
96.3M
          0.0702790691196282f,
333
96.3M
          -0.0741750459581023f,
334
96.3M
      },
335
96.3M
      {
336
96.3M
          0.2500000000000000,
337
96.3M
          -0.1014005039375376f,
338
96.3M
          -0.2929100136981264f,
339
96.3M
          0.0000000000000000,
340
96.3M
          0.0000000000000000,
341
96.3M
          -0.0643507165794627f,
342
96.3M
          0.3935103426921022f,
343
96.3M
          0.0657870154914254f,
344
96.3M
          0.0000000000000000,
345
96.3M
          0.4082482904638634f,
346
96.3M
          0.3078822139579031f,
347
96.3M
          0.3852501370925211f,
348
96.3M
          -0.0857401903551927f,
349
96.3M
          -0.4613374887461554f,
350
96.3M
          0.0000000000000000,
351
96.3M
          0.2191868483885728f,
352
96.3M
      },
353
96.3M
      {
354
96.3M
          0.2500000000000000,
355
96.3M
          -0.1014005039375376f,
356
96.3M
          -0.1137907446044814f,
357
96.3M
          -0.1464291867126654f,
358
96.3M
          0.0000000000000000,
359
96.3M
          -0.0643507165794627f,
360
96.3M
          0.0829816309488214f,
361
96.3M
          0.2388977352334547f,
362
96.3M
          -0.3531238544981624f,
363
96.3M
          0.4082482904638630f,
364
96.3M
          -0.4826689115059858f,
365
96.3M
          -0.1741941265991621f,
366
96.3M
          -0.0476868035022928f,
367
96.3M
          0.1253805944856431f,
368
96.3M
          -0.4326608024727457f,
369
96.3M
          -0.2546827712406641f,
370
96.3M
      },
371
96.3M
      {
372
96.3M
          0.2500000000000000,
373
96.3M
          -0.1014005039375374f,
374
96.3M
          0.0000000000000000,
375
96.3M
          0.4251149611657548f,
376
96.3M
          0.0000000000000000,
377
96.3M
          -0.0643507165794626f,
378
96.3M
          -0.4517556589999480f,
379
96.3M
          0.0000000000000000,
380
96.3M
          -0.6035859033230976f,
381
96.3M
          0.0000000000000000,
382
96.3M
          0.0000000000000000,
383
96.3M
          0.0000000000000000,
384
96.3M
          -0.1426608480880724f,
385
96.3M
          -0.1381354035075845f,
386
96.3M
          0.3487520519930227f,
387
96.3M
          0.1135498731499429f,
388
96.3M
      },
389
96.3M
  };
390
391
96.3M
  const HWY_CAPPED(float, 16) d;
392
289M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
192M
    auto scalar = Zero(d);
394
3.27G
    for (size_t j = 0; j < 16; j++) {
395
3.08G
      auto px = Set(d, pixels[j]);
396
3.08G
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
3.08G
      scalar = MulAdd(px, basis, scalar);
398
3.08G
    }
399
192M
    Store(scalar, d, coeffs + i);
400
192M
  }
401
96.3M
}
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.20M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
2.20M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
2.20M
      {
102
2.20M
          0.2500000000000000,
103
2.20M
          0.8769029297991420f,
104
2.20M
          0.0000000000000000,
105
2.20M
          0.0000000000000000,
106
2.20M
          0.0000000000000000,
107
2.20M
          -0.4105377591765233f,
108
2.20M
          0.0000000000000000,
109
2.20M
          0.0000000000000000,
110
2.20M
          0.0000000000000000,
111
2.20M
          0.0000000000000000,
112
2.20M
          0.0000000000000000,
113
2.20M
          0.0000000000000000,
114
2.20M
          0.0000000000000000,
115
2.20M
          0.0000000000000000,
116
2.20M
          0.0000000000000000,
117
2.20M
          0.0000000000000000,
118
2.20M
      },
119
2.20M
      {
120
2.20M
          0.2500000000000000,
121
2.20M
          0.2206518106944235f,
122
2.20M
          0.0000000000000000,
123
2.20M
          0.0000000000000000,
124
2.20M
          -0.7071067811865474f,
125
2.20M
          0.6235485373547691f,
126
2.20M
          0.0000000000000000,
127
2.20M
          0.0000000000000000,
128
2.20M
          0.0000000000000000,
129
2.20M
          0.0000000000000000,
130
2.20M
          0.0000000000000000,
131
2.20M
          0.0000000000000000,
132
2.20M
          0.0000000000000000,
133
2.20M
          0.0000000000000000,
134
2.20M
          0.0000000000000000,
135
2.20M
          0.0000000000000000,
136
2.20M
      },
137
2.20M
      {
138
2.20M
          0.2500000000000000,
139
2.20M
          -0.1014005039375376f,
140
2.20M
          0.4067007583026075f,
141
2.20M
          -0.2125574805828875f,
142
2.20M
          0.0000000000000000,
143
2.20M
          -0.0643507165794627f,
144
2.20M
          -0.4517556589999482f,
145
2.20M
          -0.3046847507248690f,
146
2.20M
          0.3017929516615495f,
147
2.20M
          0.4082482904638627f,
148
2.20M
          0.1747866975480809f,
149
2.20M
          -0.2110560104933578f,
150
2.20M
          -0.1426608480880726f,
151
2.20M
          -0.1381354035075859f,
152
2.20M
          -0.1743760259965107f,
153
2.20M
          0.1135498731499434f,
154
2.20M
      },
155
2.20M
      {
156
2.20M
          0.2500000000000000,
157
2.20M
          -0.1014005039375375f,
158
2.20M
          0.4444481661973445f,
159
2.20M
          0.3085497062849767f,
160
2.20M
          0.0000000000000000f,
161
2.20M
          -0.0643507165794627f,
162
2.20M
          0.1585450355184006f,
163
2.20M
          0.5112616136591823f,
164
2.20M
          0.2579236279634118f,
165
2.20M
          0.0000000000000000,
166
2.20M
          0.0812611176717539f,
167
2.20M
          0.1856718091610980f,
168
2.20M
          -0.3416446842253372f,
169
2.20M
          0.3302282550303788f,
170
2.20M
          0.0702790691196284f,
171
2.20M
          -0.0741750459581035f,
172
2.20M
      },
173
2.20M
      {
174
2.20M
          0.2500000000000000,
175
2.20M
          0.2206518106944236f,
176
2.20M
          0.0000000000000000,
177
2.20M
          0.0000000000000000,
178
2.20M
          0.7071067811865476f,
179
2.20M
          0.6235485373547694f,
180
2.20M
          0.0000000000000000,
181
2.20M
          0.0000000000000000,
182
2.20M
          0.0000000000000000,
183
2.20M
          0.0000000000000000,
184
2.20M
          0.0000000000000000,
185
2.20M
          0.0000000000000000,
186
2.20M
          0.0000000000000000,
187
2.20M
          0.0000000000000000,
188
2.20M
          0.0000000000000000,
189
2.20M
          0.0000000000000000,
190
2.20M
      },
191
2.20M
      {
192
2.20M
          0.2500000000000000,
193
2.20M
          -0.1014005039375378f,
194
2.20M
          0.0000000000000000,
195
2.20M
          0.4706702258572536f,
196
2.20M
          0.0000000000000000,
197
2.20M
          -0.0643507165794628f,
198
2.20M
          -0.0403851516082220f,
199
2.20M
          0.0000000000000000,
200
2.20M
          0.1627234014286620f,
201
2.20M
          0.0000000000000000,
202
2.20M
          0.0000000000000000,
203
2.20M
          0.0000000000000000,
204
2.20M
          0.7367497537172237f,
205
2.20M
          0.0875511500058708f,
206
2.20M
          -0.2921026642334881f,
207
2.20M
          0.1940289303259434f,
208
2.20M
      },
209
2.20M
      {
210
2.20M
          0.2500000000000000,
211
2.20M
          -0.1014005039375377f,
212
2.20M
          0.1957439937204294f,
213
2.20M
          -0.1621205195722993f,
214
2.20M
          0.0000000000000000,
215
2.20M
          -0.0643507165794628f,
216
2.20M
          0.0074182263792424f,
217
2.20M
          -0.2904801297289980f,
218
2.20M
          0.0952002265347504f,
219
2.20M
          0.0000000000000000,
220
2.20M
          -0.3675398009862027f,
221
2.20M
          0.4921585901373873f,
222
2.20M
          0.2462710772207515f,
223
2.20M
          -0.0794670660590957f,
224
2.20M
          0.3623817333531167f,
225
2.20M
          -0.4351904965232280f,
226
2.20M
      },
227
2.20M
      {
228
2.20M
          0.2500000000000000,
229
2.20M
          -0.1014005039375376f,
230
2.20M
          0.2929100136981264f,
231
2.20M
          0.0000000000000000,
232
2.20M
          0.0000000000000000,
233
2.20M
          -0.0643507165794627f,
234
2.20M
          0.3935103426921017f,
235
2.20M
          -0.0657870154914280f,
236
2.20M
          0.0000000000000000,
237
2.20M
          -0.4082482904638628f,
238
2.20M
          -0.3078822139579090f,
239
2.20M
          -0.3852501370925192f,
240
2.20M
          -0.0857401903551931f,
241
2.20M
          -0.4613374887461511f,
242
2.20M
          0.0000000000000000,
243
2.20M
          0.2191868483885747f,
244
2.20M
      },
245
2.20M
      {
246
2.20M
          0.2500000000000000,
247
2.20M
          -0.1014005039375376f,
248
2.20M
          -0.4067007583026072f,
249
2.20M
          -0.2125574805828705f,
250
2.20M
          0.0000000000000000,
251
2.20M
          -0.0643507165794627f,
252
2.20M
          -0.4517556589999464f,
253
2.20M
          0.3046847507248840f,
254
2.20M
          0.3017929516615503f,
255
2.20M
          -0.4082482904638635f,
256
2.20M
          -0.1747866975480813f,
257
2.20M
          0.2110560104933581f,
258
2.20M
          -0.1426608480880734f,
259
2.20M
          -0.1381354035075829f,
260
2.20M
          -0.1743760259965108f,
261
2.20M
          0.1135498731499426f,
262
2.20M
      },
263
2.20M
      {
264
2.20M
          0.2500000000000000,
265
2.20M
          -0.1014005039375377f,
266
2.20M
          -0.1957439937204287f,
267
2.20M
          -0.1621205195722833f,
268
2.20M
          0.0000000000000000,
269
2.20M
          -0.0643507165794628f,
270
2.20M
          0.0074182263792444f,
271
2.20M
          0.2904801297290076f,
272
2.20M
          0.0952002265347505f,
273
2.20M
          0.0000000000000000,
274
2.20M
          0.3675398009862011f,
275
2.20M
          -0.4921585901373891f,
276
2.20M
          0.2462710772207514f,
277
2.20M
          -0.0794670660591026f,
278
2.20M
          0.3623817333531165f,
279
2.20M
          -0.4351904965232251f,
280
2.20M
      },
281
2.20M
      {
282
2.20M
          0.2500000000000000,
283
2.20M
          -0.1014005039375375f,
284
2.20M
          0.0000000000000000,
285
2.20M
          -0.4706702258572528f,
286
2.20M
          0.0000000000000000,
287
2.20M
          -0.0643507165794627f,
288
2.20M
          0.1107416575309343f,
289
2.20M
          0.0000000000000000,
290
2.20M
          -0.1627234014286617f,
291
2.20M
          0.0000000000000000,
292
2.20M
          0.0000000000000000,
293
2.20M
          0.0000000000000000,
294
2.20M
          0.1488339922711357f,
295
2.20M
          0.4972464710953509f,
296
2.20M
          0.2921026642334879f,
297
2.20M
          0.5550443808910661f,
298
2.20M
      },
299
2.20M
      {
300
2.20M
          0.2500000000000000,
301
2.20M
          -0.1014005039375377f,
302
2.20M
          0.1137907446044809f,
303
2.20M
          -0.1464291867126764f,
304
2.20M
          0.0000000000000000,
305
2.20M
          -0.0643507165794628f,
306
2.20M
          0.0829816309488205f,
307
2.20M
          -0.2388977352334460f,
308
2.20M
          -0.3531238544981630f,
309
2.20M
          -0.4082482904638630f,
310
2.20M
          0.4826689115059883f,
311
2.20M
          0.1741941265991622f,
312
2.20M
          -0.0476868035022925f,
313
2.20M
          0.1253805944856366f,
314
2.20M
          -0.4326608024727445f,
315
2.20M
          -0.2546827712406646f,
316
2.20M
      },
317
2.20M
      {
318
2.20M
          0.2500000000000000,
319
2.20M
          -0.1014005039375377f,
320
2.20M
          -0.4444481661973438f,
321
2.20M
          0.3085497062849487f,
322
2.20M
          0.0000000000000000,
323
2.20M
          -0.0643507165794628f,
324
2.20M
          0.1585450355183970f,
325
2.20M
          -0.5112616136592012f,
326
2.20M
          0.2579236279634129f,
327
2.20M
          0.0000000000000000,
328
2.20M
          -0.0812611176717504f,
329
2.20M
          -0.1856718091610990f,
330
2.20M
          -0.3416446842253373f,
331
2.20M
          0.3302282550303805f,
332
2.20M
          0.0702790691196282f,
333
2.20M
          -0.0741750459581023f,
334
2.20M
      },
335
2.20M
      {
336
2.20M
          0.2500000000000000,
337
2.20M
          -0.1014005039375376f,
338
2.20M
          -0.2929100136981264f,
339
2.20M
          0.0000000000000000,
340
2.20M
          0.0000000000000000,
341
2.20M
          -0.0643507165794627f,
342
2.20M
          0.3935103426921022f,
343
2.20M
          0.0657870154914254f,
344
2.20M
          0.0000000000000000,
345
2.20M
          0.4082482904638634f,
346
2.20M
          0.3078822139579031f,
347
2.20M
          0.3852501370925211f,
348
2.20M
          -0.0857401903551927f,
349
2.20M
          -0.4613374887461554f,
350
2.20M
          0.0000000000000000,
351
2.20M
          0.2191868483885728f,
352
2.20M
      },
353
2.20M
      {
354
2.20M
          0.2500000000000000,
355
2.20M
          -0.1014005039375376f,
356
2.20M
          -0.1137907446044814f,
357
2.20M
          -0.1464291867126654f,
358
2.20M
          0.0000000000000000,
359
2.20M
          -0.0643507165794627f,
360
2.20M
          0.0829816309488214f,
361
2.20M
          0.2388977352334547f,
362
2.20M
          -0.3531238544981624f,
363
2.20M
          0.4082482904638630f,
364
2.20M
          -0.4826689115059858f,
365
2.20M
          -0.1741941265991621f,
366
2.20M
          -0.0476868035022928f,
367
2.20M
          0.1253805944856431f,
368
2.20M
          -0.4326608024727457f,
369
2.20M
          -0.2546827712406641f,
370
2.20M
      },
371
2.20M
      {
372
2.20M
          0.2500000000000000,
373
2.20M
          -0.1014005039375374f,
374
2.20M
          0.0000000000000000,
375
2.20M
          0.4251149611657548f,
376
2.20M
          0.0000000000000000,
377
2.20M
          -0.0643507165794626f,
378
2.20M
          -0.4517556589999480f,
379
2.20M
          0.0000000000000000,
380
2.20M
          -0.6035859033230976f,
381
2.20M
          0.0000000000000000,
382
2.20M
          0.0000000000000000,
383
2.20M
          0.0000000000000000,
384
2.20M
          -0.1426608480880724f,
385
2.20M
          -0.1381354035075845f,
386
2.20M
          0.3487520519930227f,
387
2.20M
          0.1135498731499429f,
388
2.20M
      },
389
2.20M
  };
390
391
2.20M
  const HWY_CAPPED(float, 16) d;
392
6.60M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
4.40M
    auto scalar = Zero(d);
394
74.8M
    for (size_t j = 0; j < 16; j++) {
395
70.4M
      auto px = Set(d, pixels[j]);
396
70.4M
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
70.4M
      scalar = MulAdd(px, basis, scalar);
398
70.4M
    }
399
4.40M
    Store(scalar, d, coeffs + i);
400
4.40M
  }
401
2.20M
}
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
91.9M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
91.9M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
91.9M
      {
102
91.9M
          0.2500000000000000,
103
91.9M
          0.8769029297991420f,
104
91.9M
          0.0000000000000000,
105
91.9M
          0.0000000000000000,
106
91.9M
          0.0000000000000000,
107
91.9M
          -0.4105377591765233f,
108
91.9M
          0.0000000000000000,
109
91.9M
          0.0000000000000000,
110
91.9M
          0.0000000000000000,
111
91.9M
          0.0000000000000000,
112
91.9M
          0.0000000000000000,
113
91.9M
          0.0000000000000000,
114
91.9M
          0.0000000000000000,
115
91.9M
          0.0000000000000000,
116
91.9M
          0.0000000000000000,
117
91.9M
          0.0000000000000000,
118
91.9M
      },
119
91.9M
      {
120
91.9M
          0.2500000000000000,
121
91.9M
          0.2206518106944235f,
122
91.9M
          0.0000000000000000,
123
91.9M
          0.0000000000000000,
124
91.9M
          -0.7071067811865474f,
125
91.9M
          0.6235485373547691f,
126
91.9M
          0.0000000000000000,
127
91.9M
          0.0000000000000000,
128
91.9M
          0.0000000000000000,
129
91.9M
          0.0000000000000000,
130
91.9M
          0.0000000000000000,
131
91.9M
          0.0000000000000000,
132
91.9M
          0.0000000000000000,
133
91.9M
          0.0000000000000000,
134
91.9M
          0.0000000000000000,
135
91.9M
          0.0000000000000000,
136
91.9M
      },
137
91.9M
      {
138
91.9M
          0.2500000000000000,
139
91.9M
          -0.1014005039375376f,
140
91.9M
          0.4067007583026075f,
141
91.9M
          -0.2125574805828875f,
142
91.9M
          0.0000000000000000,
143
91.9M
          -0.0643507165794627f,
144
91.9M
          -0.4517556589999482f,
145
91.9M
          -0.3046847507248690f,
146
91.9M
          0.3017929516615495f,
147
91.9M
          0.4082482904638627f,
148
91.9M
          0.1747866975480809f,
149
91.9M
          -0.2110560104933578f,
150
91.9M
          -0.1426608480880726f,
151
91.9M
          -0.1381354035075859f,
152
91.9M
          -0.1743760259965107f,
153
91.9M
          0.1135498731499434f,
154
91.9M
      },
155
91.9M
      {
156
91.9M
          0.2500000000000000,
157
91.9M
          -0.1014005039375375f,
158
91.9M
          0.4444481661973445f,
159
91.9M
          0.3085497062849767f,
160
91.9M
          0.0000000000000000f,
161
91.9M
          -0.0643507165794627f,
162
91.9M
          0.1585450355184006f,
163
91.9M
          0.5112616136591823f,
164
91.9M
          0.2579236279634118f,
165
91.9M
          0.0000000000000000,
166
91.9M
          0.0812611176717539f,
167
91.9M
          0.1856718091610980f,
168
91.9M
          -0.3416446842253372f,
169
91.9M
          0.3302282550303788f,
170
91.9M
          0.0702790691196284f,
171
91.9M
          -0.0741750459581035f,
172
91.9M
      },
173
91.9M
      {
174
91.9M
          0.2500000000000000,
175
91.9M
          0.2206518106944236f,
176
91.9M
          0.0000000000000000,
177
91.9M
          0.0000000000000000,
178
91.9M
          0.7071067811865476f,
179
91.9M
          0.6235485373547694f,
180
91.9M
          0.0000000000000000,
181
91.9M
          0.0000000000000000,
182
91.9M
          0.0000000000000000,
183
91.9M
          0.0000000000000000,
184
91.9M
          0.0000000000000000,
185
91.9M
          0.0000000000000000,
186
91.9M
          0.0000000000000000,
187
91.9M
          0.0000000000000000,
188
91.9M
          0.0000000000000000,
189
91.9M
          0.0000000000000000,
190
91.9M
      },
191
91.9M
      {
192
91.9M
          0.2500000000000000,
193
91.9M
          -0.1014005039375378f,
194
91.9M
          0.0000000000000000,
195
91.9M
          0.4706702258572536f,
196
91.9M
          0.0000000000000000,
197
91.9M
          -0.0643507165794628f,
198
91.9M
          -0.0403851516082220f,
199
91.9M
          0.0000000000000000,
200
91.9M
          0.1627234014286620f,
201
91.9M
          0.0000000000000000,
202
91.9M
          0.0000000000000000,
203
91.9M
          0.0000000000000000,
204
91.9M
          0.7367497537172237f,
205
91.9M
          0.0875511500058708f,
206
91.9M
          -0.2921026642334881f,
207
91.9M
          0.1940289303259434f,
208
91.9M
      },
209
91.9M
      {
210
91.9M
          0.2500000000000000,
211
91.9M
          -0.1014005039375377f,
212
91.9M
          0.1957439937204294f,
213
91.9M
          -0.1621205195722993f,
214
91.9M
          0.0000000000000000,
215
91.9M
          -0.0643507165794628f,
216
91.9M
          0.0074182263792424f,
217
91.9M
          -0.2904801297289980f,
218
91.9M
          0.0952002265347504f,
219
91.9M
          0.0000000000000000,
220
91.9M
          -0.3675398009862027f,
221
91.9M
          0.4921585901373873f,
222
91.9M
          0.2462710772207515f,
223
91.9M
          -0.0794670660590957f,
224
91.9M
          0.3623817333531167f,
225
91.9M
          -0.4351904965232280f,
226
91.9M
      },
227
91.9M
      {
228
91.9M
          0.2500000000000000,
229
91.9M
          -0.1014005039375376f,
230
91.9M
          0.2929100136981264f,
231
91.9M
          0.0000000000000000,
232
91.9M
          0.0000000000000000,
233
91.9M
          -0.0643507165794627f,
234
91.9M
          0.3935103426921017f,
235
91.9M
          -0.0657870154914280f,
236
91.9M
          0.0000000000000000,
237
91.9M
          -0.4082482904638628f,
238
91.9M
          -0.3078822139579090f,
239
91.9M
          -0.3852501370925192f,
240
91.9M
          -0.0857401903551931f,
241
91.9M
          -0.4613374887461511f,
242
91.9M
          0.0000000000000000,
243
91.9M
          0.2191868483885747f,
244
91.9M
      },
245
91.9M
      {
246
91.9M
          0.2500000000000000,
247
91.9M
          -0.1014005039375376f,
248
91.9M
          -0.4067007583026072f,
249
91.9M
          -0.2125574805828705f,
250
91.9M
          0.0000000000000000,
251
91.9M
          -0.0643507165794627f,
252
91.9M
          -0.4517556589999464f,
253
91.9M
          0.3046847507248840f,
254
91.9M
          0.3017929516615503f,
255
91.9M
          -0.4082482904638635f,
256
91.9M
          -0.1747866975480813f,
257
91.9M
          0.2110560104933581f,
258
91.9M
          -0.1426608480880734f,
259
91.9M
          -0.1381354035075829f,
260
91.9M
          -0.1743760259965108f,
261
91.9M
          0.1135498731499426f,
262
91.9M
      },
263
91.9M
      {
264
91.9M
          0.2500000000000000,
265
91.9M
          -0.1014005039375377f,
266
91.9M
          -0.1957439937204287f,
267
91.9M
          -0.1621205195722833f,
268
91.9M
          0.0000000000000000,
269
91.9M
          -0.0643507165794628f,
270
91.9M
          0.0074182263792444f,
271
91.9M
          0.2904801297290076f,
272
91.9M
          0.0952002265347505f,
273
91.9M
          0.0000000000000000,
274
91.9M
          0.3675398009862011f,
275
91.9M
          -0.4921585901373891f,
276
91.9M
          0.2462710772207514f,
277
91.9M
          -0.0794670660591026f,
278
91.9M
          0.3623817333531165f,
279
91.9M
          -0.4351904965232251f,
280
91.9M
      },
281
91.9M
      {
282
91.9M
          0.2500000000000000,
283
91.9M
          -0.1014005039375375f,
284
91.9M
          0.0000000000000000,
285
91.9M
          -0.4706702258572528f,
286
91.9M
          0.0000000000000000,
287
91.9M
          -0.0643507165794627f,
288
91.9M
          0.1107416575309343f,
289
91.9M
          0.0000000000000000,
290
91.9M
          -0.1627234014286617f,
291
91.9M
          0.0000000000000000,
292
91.9M
          0.0000000000000000,
293
91.9M
          0.0000000000000000,
294
91.9M
          0.1488339922711357f,
295
91.9M
          0.4972464710953509f,
296
91.9M
          0.2921026642334879f,
297
91.9M
          0.5550443808910661f,
298
91.9M
      },
299
91.9M
      {
300
91.9M
          0.2500000000000000,
301
91.9M
          -0.1014005039375377f,
302
91.9M
          0.1137907446044809f,
303
91.9M
          -0.1464291867126764f,
304
91.9M
          0.0000000000000000,
305
91.9M
          -0.0643507165794628f,
306
91.9M
          0.0829816309488205f,
307
91.9M
          -0.2388977352334460f,
308
91.9M
          -0.3531238544981630f,
309
91.9M
          -0.4082482904638630f,
310
91.9M
          0.4826689115059883f,
311
91.9M
          0.1741941265991622f,
312
91.9M
          -0.0476868035022925f,
313
91.9M
          0.1253805944856366f,
314
91.9M
          -0.4326608024727445f,
315
91.9M
          -0.2546827712406646f,
316
91.9M
      },
317
91.9M
      {
318
91.9M
          0.2500000000000000,
319
91.9M
          -0.1014005039375377f,
320
91.9M
          -0.4444481661973438f,
321
91.9M
          0.3085497062849487f,
322
91.9M
          0.0000000000000000,
323
91.9M
          -0.0643507165794628f,
324
91.9M
          0.1585450355183970f,
325
91.9M
          -0.5112616136592012f,
326
91.9M
          0.2579236279634129f,
327
91.9M
          0.0000000000000000,
328
91.9M
          -0.0812611176717504f,
329
91.9M
          -0.1856718091610990f,
330
91.9M
          -0.3416446842253373f,
331
91.9M
          0.3302282550303805f,
332
91.9M
          0.0702790691196282f,
333
91.9M
          -0.0741750459581023f,
334
91.9M
      },
335
91.9M
      {
336
91.9M
          0.2500000000000000,
337
91.9M
          -0.1014005039375376f,
338
91.9M
          -0.2929100136981264f,
339
91.9M
          0.0000000000000000,
340
91.9M
          0.0000000000000000,
341
91.9M
          -0.0643507165794627f,
342
91.9M
          0.3935103426921022f,
343
91.9M
          0.0657870154914254f,
344
91.9M
          0.0000000000000000,
345
91.9M
          0.4082482904638634f,
346
91.9M
          0.3078822139579031f,
347
91.9M
          0.3852501370925211f,
348
91.9M
          -0.0857401903551927f,
349
91.9M
          -0.4613374887461554f,
350
91.9M
          0.0000000000000000,
351
91.9M
          0.2191868483885728f,
352
91.9M
      },
353
91.9M
      {
354
91.9M
          0.2500000000000000,
355
91.9M
          -0.1014005039375376f,
356
91.9M
          -0.1137907446044814f,
357
91.9M
          -0.1464291867126654f,
358
91.9M
          0.0000000000000000,
359
91.9M
          -0.0643507165794627f,
360
91.9M
          0.0829816309488214f,
361
91.9M
          0.2388977352334547f,
362
91.9M
          -0.3531238544981624f,
363
91.9M
          0.4082482904638630f,
364
91.9M
          -0.4826689115059858f,
365
91.9M
          -0.1741941265991621f,
366
91.9M
          -0.0476868035022928f,
367
91.9M
          0.1253805944856431f,
368
91.9M
          -0.4326608024727457f,
369
91.9M
          -0.2546827712406641f,
370
91.9M
      },
371
91.9M
      {
372
91.9M
          0.2500000000000000,
373
91.9M
          -0.1014005039375374f,
374
91.9M
          0.0000000000000000,
375
91.9M
          0.4251149611657548f,
376
91.9M
          0.0000000000000000,
377
91.9M
          -0.0643507165794626f,
378
91.9M
          -0.4517556589999480f,
379
91.9M
          0.0000000000000000,
380
91.9M
          -0.6035859033230976f,
381
91.9M
          0.0000000000000000,
382
91.9M
          0.0000000000000000,
383
91.9M
          0.0000000000000000,
384
91.9M
          -0.1426608480880724f,
385
91.9M
          -0.1381354035075845f,
386
91.9M
          0.3487520519930227f,
387
91.9M
          0.1135498731499429f,
388
91.9M
      },
389
91.9M
  };
390
391
91.9M
  const HWY_CAPPED(float, 16) d;
392
275M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
183M
    auto scalar = Zero(d);
394
3.12G
    for (size_t j = 0; j < 16; j++) {
395
2.94G
      auto px = Set(d, pixels[j]);
396
2.94G
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
2.94G
      scalar = MulAdd(px, basis, scalar);
398
2.94G
    }
399
183M
    Store(scalar, d, coeffs + i);
400
183M
  }
401
91.9M
}
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.20M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
2.20M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
2.20M
      {
102
2.20M
          0.2500000000000000,
103
2.20M
          0.8769029297991420f,
104
2.20M
          0.0000000000000000,
105
2.20M
          0.0000000000000000,
106
2.20M
          0.0000000000000000,
107
2.20M
          -0.4105377591765233f,
108
2.20M
          0.0000000000000000,
109
2.20M
          0.0000000000000000,
110
2.20M
          0.0000000000000000,
111
2.20M
          0.0000000000000000,
112
2.20M
          0.0000000000000000,
113
2.20M
          0.0000000000000000,
114
2.20M
          0.0000000000000000,
115
2.20M
          0.0000000000000000,
116
2.20M
          0.0000000000000000,
117
2.20M
          0.0000000000000000,
118
2.20M
      },
119
2.20M
      {
120
2.20M
          0.2500000000000000,
121
2.20M
          0.2206518106944235f,
122
2.20M
          0.0000000000000000,
123
2.20M
          0.0000000000000000,
124
2.20M
          -0.7071067811865474f,
125
2.20M
          0.6235485373547691f,
126
2.20M
          0.0000000000000000,
127
2.20M
          0.0000000000000000,
128
2.20M
          0.0000000000000000,
129
2.20M
          0.0000000000000000,
130
2.20M
          0.0000000000000000,
131
2.20M
          0.0000000000000000,
132
2.20M
          0.0000000000000000,
133
2.20M
          0.0000000000000000,
134
2.20M
          0.0000000000000000,
135
2.20M
          0.0000000000000000,
136
2.20M
      },
137
2.20M
      {
138
2.20M
          0.2500000000000000,
139
2.20M
          -0.1014005039375376f,
140
2.20M
          0.4067007583026075f,
141
2.20M
          -0.2125574805828875f,
142
2.20M
          0.0000000000000000,
143
2.20M
          -0.0643507165794627f,
144
2.20M
          -0.4517556589999482f,
145
2.20M
          -0.3046847507248690f,
146
2.20M
          0.3017929516615495f,
147
2.20M
          0.4082482904638627f,
148
2.20M
          0.1747866975480809f,
149
2.20M
          -0.2110560104933578f,
150
2.20M
          -0.1426608480880726f,
151
2.20M
          -0.1381354035075859f,
152
2.20M
          -0.1743760259965107f,
153
2.20M
          0.1135498731499434f,
154
2.20M
      },
155
2.20M
      {
156
2.20M
          0.2500000000000000,
157
2.20M
          -0.1014005039375375f,
158
2.20M
          0.4444481661973445f,
159
2.20M
          0.3085497062849767f,
160
2.20M
          0.0000000000000000f,
161
2.20M
          -0.0643507165794627f,
162
2.20M
          0.1585450355184006f,
163
2.20M
          0.5112616136591823f,
164
2.20M
          0.2579236279634118f,
165
2.20M
          0.0000000000000000,
166
2.20M
          0.0812611176717539f,
167
2.20M
          0.1856718091610980f,
168
2.20M
          -0.3416446842253372f,
169
2.20M
          0.3302282550303788f,
170
2.20M
          0.0702790691196284f,
171
2.20M
          -0.0741750459581035f,
172
2.20M
      },
173
2.20M
      {
174
2.20M
          0.2500000000000000,
175
2.20M
          0.2206518106944236f,
176
2.20M
          0.0000000000000000,
177
2.20M
          0.0000000000000000,
178
2.20M
          0.7071067811865476f,
179
2.20M
          0.6235485373547694f,
180
2.20M
          0.0000000000000000,
181
2.20M
          0.0000000000000000,
182
2.20M
          0.0000000000000000,
183
2.20M
          0.0000000000000000,
184
2.20M
          0.0000000000000000,
185
2.20M
          0.0000000000000000,
186
2.20M
          0.0000000000000000,
187
2.20M
          0.0000000000000000,
188
2.20M
          0.0000000000000000,
189
2.20M
          0.0000000000000000,
190
2.20M
      },
191
2.20M
      {
192
2.20M
          0.2500000000000000,
193
2.20M
          -0.1014005039375378f,
194
2.20M
          0.0000000000000000,
195
2.20M
          0.4706702258572536f,
196
2.20M
          0.0000000000000000,
197
2.20M
          -0.0643507165794628f,
198
2.20M
          -0.0403851516082220f,
199
2.20M
          0.0000000000000000,
200
2.20M
          0.1627234014286620f,
201
2.20M
          0.0000000000000000,
202
2.20M
          0.0000000000000000,
203
2.20M
          0.0000000000000000,
204
2.20M
          0.7367497537172237f,
205
2.20M
          0.0875511500058708f,
206
2.20M
          -0.2921026642334881f,
207
2.20M
          0.1940289303259434f,
208
2.20M
      },
209
2.20M
      {
210
2.20M
          0.2500000000000000,
211
2.20M
          -0.1014005039375377f,
212
2.20M
          0.1957439937204294f,
213
2.20M
          -0.1621205195722993f,
214
2.20M
          0.0000000000000000,
215
2.20M
          -0.0643507165794628f,
216
2.20M
          0.0074182263792424f,
217
2.20M
          -0.2904801297289980f,
218
2.20M
          0.0952002265347504f,
219
2.20M
          0.0000000000000000,
220
2.20M
          -0.3675398009862027f,
221
2.20M
          0.4921585901373873f,
222
2.20M
          0.2462710772207515f,
223
2.20M
          -0.0794670660590957f,
224
2.20M
          0.3623817333531167f,
225
2.20M
          -0.4351904965232280f,
226
2.20M
      },
227
2.20M
      {
228
2.20M
          0.2500000000000000,
229
2.20M
          -0.1014005039375376f,
230
2.20M
          0.2929100136981264f,
231
2.20M
          0.0000000000000000,
232
2.20M
          0.0000000000000000,
233
2.20M
          -0.0643507165794627f,
234
2.20M
          0.3935103426921017f,
235
2.20M
          -0.0657870154914280f,
236
2.20M
          0.0000000000000000,
237
2.20M
          -0.4082482904638628f,
238
2.20M
          -0.3078822139579090f,
239
2.20M
          -0.3852501370925192f,
240
2.20M
          -0.0857401903551931f,
241
2.20M
          -0.4613374887461511f,
242
2.20M
          0.0000000000000000,
243
2.20M
          0.2191868483885747f,
244
2.20M
      },
245
2.20M
      {
246
2.20M
          0.2500000000000000,
247
2.20M
          -0.1014005039375376f,
248
2.20M
          -0.4067007583026072f,
249
2.20M
          -0.2125574805828705f,
250
2.20M
          0.0000000000000000,
251
2.20M
          -0.0643507165794627f,
252
2.20M
          -0.4517556589999464f,
253
2.20M
          0.3046847507248840f,
254
2.20M
          0.3017929516615503f,
255
2.20M
          -0.4082482904638635f,
256
2.20M
          -0.1747866975480813f,
257
2.20M
          0.2110560104933581f,
258
2.20M
          -0.1426608480880734f,
259
2.20M
          -0.1381354035075829f,
260
2.20M
          -0.1743760259965108f,
261
2.20M
          0.1135498731499426f,
262
2.20M
      },
263
2.20M
      {
264
2.20M
          0.2500000000000000,
265
2.20M
          -0.1014005039375377f,
266
2.20M
          -0.1957439937204287f,
267
2.20M
          -0.1621205195722833f,
268
2.20M
          0.0000000000000000,
269
2.20M
          -0.0643507165794628f,
270
2.20M
          0.0074182263792444f,
271
2.20M
          0.2904801297290076f,
272
2.20M
          0.0952002265347505f,
273
2.20M
          0.0000000000000000,
274
2.20M
          0.3675398009862011f,
275
2.20M
          -0.4921585901373891f,
276
2.20M
          0.2462710772207514f,
277
2.20M
          -0.0794670660591026f,
278
2.20M
          0.3623817333531165f,
279
2.20M
          -0.4351904965232251f,
280
2.20M
      },
281
2.20M
      {
282
2.20M
          0.2500000000000000,
283
2.20M
          -0.1014005039375375f,
284
2.20M
          0.0000000000000000,
285
2.20M
          -0.4706702258572528f,
286
2.20M
          0.0000000000000000,
287
2.20M
          -0.0643507165794627f,
288
2.20M
          0.1107416575309343f,
289
2.20M
          0.0000000000000000,
290
2.20M
          -0.1627234014286617f,
291
2.20M
          0.0000000000000000,
292
2.20M
          0.0000000000000000,
293
2.20M
          0.0000000000000000,
294
2.20M
          0.1488339922711357f,
295
2.20M
          0.4972464710953509f,
296
2.20M
          0.2921026642334879f,
297
2.20M
          0.5550443808910661f,
298
2.20M
      },
299
2.20M
      {
300
2.20M
          0.2500000000000000,
301
2.20M
          -0.1014005039375377f,
302
2.20M
          0.1137907446044809f,
303
2.20M
          -0.1464291867126764f,
304
2.20M
          0.0000000000000000,
305
2.20M
          -0.0643507165794628f,
306
2.20M
          0.0829816309488205f,
307
2.20M
          -0.2388977352334460f,
308
2.20M
          -0.3531238544981630f,
309
2.20M
          -0.4082482904638630f,
310
2.20M
          0.4826689115059883f,
311
2.20M
          0.1741941265991622f,
312
2.20M
          -0.0476868035022925f,
313
2.20M
          0.1253805944856366f,
314
2.20M
          -0.4326608024727445f,
315
2.20M
          -0.2546827712406646f,
316
2.20M
      },
317
2.20M
      {
318
2.20M
          0.2500000000000000,
319
2.20M
          -0.1014005039375377f,
320
2.20M
          -0.4444481661973438f,
321
2.20M
          0.3085497062849487f,
322
2.20M
          0.0000000000000000,
323
2.20M
          -0.0643507165794628f,
324
2.20M
          0.1585450355183970f,
325
2.20M
          -0.5112616136592012f,
326
2.20M
          0.2579236279634129f,
327
2.20M
          0.0000000000000000,
328
2.20M
          -0.0812611176717504f,
329
2.20M
          -0.1856718091610990f,
330
2.20M
          -0.3416446842253373f,
331
2.20M
          0.3302282550303805f,
332
2.20M
          0.0702790691196282f,
333
2.20M
          -0.0741750459581023f,
334
2.20M
      },
335
2.20M
      {
336
2.20M
          0.2500000000000000,
337
2.20M
          -0.1014005039375376f,
338
2.20M
          -0.2929100136981264f,
339
2.20M
          0.0000000000000000,
340
2.20M
          0.0000000000000000,
341
2.20M
          -0.0643507165794627f,
342
2.20M
          0.3935103426921022f,
343
2.20M
          0.0657870154914254f,
344
2.20M
          0.0000000000000000,
345
2.20M
          0.4082482904638634f,
346
2.20M
          0.3078822139579031f,
347
2.20M
          0.3852501370925211f,
348
2.20M
          -0.0857401903551927f,
349
2.20M
          -0.4613374887461554f,
350
2.20M
          0.0000000000000000,
351
2.20M
          0.2191868483885728f,
352
2.20M
      },
353
2.20M
      {
354
2.20M
          0.2500000000000000,
355
2.20M
          -0.1014005039375376f,
356
2.20M
          -0.1137907446044814f,
357
2.20M
          -0.1464291867126654f,
358
2.20M
          0.0000000000000000,
359
2.20M
          -0.0643507165794627f,
360
2.20M
          0.0829816309488214f,
361
2.20M
          0.2388977352334547f,
362
2.20M
          -0.3531238544981624f,
363
2.20M
          0.4082482904638630f,
364
2.20M
          -0.4826689115059858f,
365
2.20M
          -0.1741941265991621f,
366
2.20M
          -0.0476868035022928f,
367
2.20M
          0.1253805944856431f,
368
2.20M
          -0.4326608024727457f,
369
2.20M
          -0.2546827712406641f,
370
2.20M
      },
371
2.20M
      {
372
2.20M
          0.2500000000000000,
373
2.20M
          -0.1014005039375374f,
374
2.20M
          0.0000000000000000,
375
2.20M
          0.4251149611657548f,
376
2.20M
          0.0000000000000000,
377
2.20M
          -0.0643507165794626f,
378
2.20M
          -0.4517556589999480f,
379
2.20M
          0.0000000000000000,
380
2.20M
          -0.6035859033230976f,
381
2.20M
          0.0000000000000000,
382
2.20M
          0.0000000000000000,
383
2.20M
          0.0000000000000000,
384
2.20M
          -0.1426608480880724f,
385
2.20M
          -0.1381354035075845f,
386
2.20M
          0.3487520519930227f,
387
2.20M
          0.1135498731499429f,
388
2.20M
      },
389
2.20M
  };
390
391
2.20M
  const HWY_CAPPED(float, 16) d;
392
6.60M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
4.40M
    auto scalar = Zero(d);
394
74.8M
    for (size_t j = 0; j < 16; j++) {
395
70.4M
      auto px = Set(d, pixels[j]);
396
70.4M
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
70.4M
      scalar = MulAdd(px, basis, scalar);
398
70.4M
    }
399
4.40M
    Store(scalar, d, coeffs + i);
400
4.40M
  }
401
2.20M
}
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
96.3M
                            float* JXL_RESTRICT coefficients) {
411
96.3M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
96.3M
  size_t afv_x = afv_kind & 1;
413
96.3M
  size_t afv_y = afv_kind / 2;
414
96.3M
  HWY_ALIGN float block[4 * 8] = {};
415
481M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.92G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.54G
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
1.54G
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
1.54G
    }
420
385M
  }
421
  // AFV coefficients in (even, even) positions.
422
96.3M
  HWY_ALIGN float coeff[4 * 4];
423
96.3M
  AFVDCT4x4(block, coeff);
424
481M
  for (size_t iy = 0; iy < 4; iy++) {
425
1.92G
    for (size_t ix = 0; ix < 4; ix++) {
426
1.54G
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
1.54G
    }
428
385M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
96.3M
  ComputeScaledDCT<4, 4>()(
431
96.3M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
96.3M
              pixels_stride),
433
96.3M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
481M
  for (size_t iy = 0; iy < 4; iy++) {
436
3.46G
    for (size_t ix = 0; ix < 8; ix++) {
437
3.08G
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
3.08G
    }
439
385M
  }
440
  // 4x8 DCT of the other half of the block.
441
96.3M
  ComputeScaledDCT<4, 8>()(
442
96.3M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
96.3M
      block, scratch_space);
444
481M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.46G
    for (size_t ix = 0; ix < 8; ix++) {
446
3.08G
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
3.08G
    }
448
385M
  }
449
96.3M
  float block00 = coefficients[0] * 0.25f;
450
96.3M
  float block01 = coefficients[1];
451
96.3M
  float block10 = coefficients[8];
452
96.3M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
96.3M
  coefficients[1] = (block00 - block01) * 0.5f;
454
96.3M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
96.3M
}
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
378k
                            float* JXL_RESTRICT coefficients) {
411
378k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
378k
  size_t afv_x = afv_kind & 1;
413
378k
  size_t afv_y = afv_kind / 2;
414
378k
  HWY_ALIGN float block[4 * 8] = {};
415
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
416
7.56M
    for (size_t ix = 0; ix < 4; ix++) {
417
6.04M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
6.04M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
6.04M
    }
420
1.51M
  }
421
  // AFV coefficients in (even, even) positions.
422
378k
  HWY_ALIGN float coeff[4 * 4];
423
378k
  AFVDCT4x4(block, coeff);
424
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
425
7.56M
    for (size_t ix = 0; ix < 4; ix++) {
426
6.04M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
6.04M
    }
428
1.51M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
378k
  ComputeScaledDCT<4, 4>()(
431
378k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
378k
              pixels_stride),
433
378k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
436
13.6M
    for (size_t ix = 0; ix < 8; ix++) {
437
12.0M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
12.0M
    }
439
1.51M
  }
440
  // 4x8 DCT of the other half of the block.
441
378k
  ComputeScaledDCT<4, 8>()(
442
378k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
378k
      block, scratch_space);
444
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
445
13.6M
    for (size_t ix = 0; ix < 8; ix++) {
446
12.0M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
12.0M
    }
448
1.51M
  }
449
378k
  float block00 = coefficients[0] * 0.25f;
450
378k
  float block01 = coefficients[1];
451
378k
  float block10 = coefficients[8];
452
378k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
378k
  coefficients[1] = (block00 - block01) * 0.5f;
454
378k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
378k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
1.14M
                            float* JXL_RESTRICT coefficients) {
411
1.14M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
1.14M
  size_t afv_x = afv_kind & 1;
413
1.14M
  size_t afv_y = afv_kind / 2;
414
1.14M
  HWY_ALIGN float block[4 * 8] = {};
415
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
416
22.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
18.3M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
18.3M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
18.3M
    }
420
4.58M
  }
421
  // AFV coefficients in (even, even) positions.
422
1.14M
  HWY_ALIGN float coeff[4 * 4];
423
1.14M
  AFVDCT4x4(block, coeff);
424
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
425
22.9M
    for (size_t ix = 0; ix < 4; ix++) {
426
18.3M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
18.3M
    }
428
4.58M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
1.14M
  ComputeScaledDCT<4, 4>()(
431
1.14M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
1.14M
              pixels_stride),
433
1.14M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
436
41.2M
    for (size_t ix = 0; ix < 8; ix++) {
437
36.6M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
36.6M
    }
439
4.58M
  }
440
  // 4x8 DCT of the other half of the block.
441
1.14M
  ComputeScaledDCT<4, 8>()(
442
1.14M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
1.14M
      block, scratch_space);
444
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
445
41.2M
    for (size_t ix = 0; ix < 8; ix++) {
446
36.6M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
36.6M
    }
448
4.58M
  }
449
1.14M
  float block00 = coefficients[0] * 0.25f;
450
1.14M
  float block01 = coefficients[1];
451
1.14M
  float block10 = coefficients[8];
452
1.14M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
1.14M
  coefficients[1] = (block00 - block01) * 0.5f;
454
1.14M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
1.14M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
239k
                            float* JXL_RESTRICT coefficients) {
411
239k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
239k
  size_t afv_x = afv_kind & 1;
413
239k
  size_t afv_y = afv_kind / 2;
414
239k
  HWY_ALIGN float block[4 * 8] = {};
415
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
416
4.78M
    for (size_t ix = 0; ix < 4; ix++) {
417
3.82M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
3.82M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
3.82M
    }
420
957k
  }
421
  // AFV coefficients in (even, even) positions.
422
239k
  HWY_ALIGN float coeff[4 * 4];
423
239k
  AFVDCT4x4(block, coeff);
424
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
425
4.78M
    for (size_t ix = 0; ix < 4; ix++) {
426
3.82M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
3.82M
    }
428
957k
  }
429
  // 4x4 DCT of the block with same y and different x.
430
239k
  ComputeScaledDCT<4, 4>()(
431
239k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
239k
              pixels_stride),
433
239k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
436
8.61M
    for (size_t ix = 0; ix < 8; ix++) {
437
7.65M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
7.65M
    }
439
957k
  }
440
  // 4x8 DCT of the other half of the block.
441
239k
  ComputeScaledDCT<4, 8>()(
442
239k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
239k
      block, scratch_space);
444
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
445
8.61M
    for (size_t ix = 0; ix < 8; ix++) {
446
7.65M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
7.65M
    }
448
957k
  }
449
239k
  float block00 = coefficients[0] * 0.25f;
450
239k
  float block01 = coefficients[1];
451
239k
  float block10 = coefficients[8];
452
239k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
239k
  coefficients[1] = (block00 - block01) * 0.5f;
454
239k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
239k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
439k
                            float* JXL_RESTRICT coefficients) {
411
439k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
439k
  size_t afv_x = afv_kind & 1;
413
439k
  size_t afv_y = afv_kind / 2;
414
439k
  HWY_ALIGN float block[4 * 8] = {};
415
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
416
8.78M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.02M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
7.02M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
7.02M
    }
420
1.75M
  }
421
  // AFV coefficients in (even, even) positions.
422
439k
  HWY_ALIGN float coeff[4 * 4];
423
439k
  AFVDCT4x4(block, coeff);
424
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
425
8.78M
    for (size_t ix = 0; ix < 4; ix++) {
426
7.02M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
7.02M
    }
428
1.75M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
439k
  ComputeScaledDCT<4, 4>()(
431
439k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
439k
              pixels_stride),
433
439k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
436
15.8M
    for (size_t ix = 0; ix < 8; ix++) {
437
14.0M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
14.0M
    }
439
1.75M
  }
440
  // 4x8 DCT of the other half of the block.
441
439k
  ComputeScaledDCT<4, 8>()(
442
439k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
439k
      block, scratch_space);
444
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
445
15.8M
    for (size_t ix = 0; ix < 8; ix++) {
446
14.0M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
14.0M
    }
448
1.75M
  }
449
439k
  float block00 = coefficients[0] * 0.25f;
450
439k
  float block01 = coefficients[1];
451
439k
  float block10 = coefficients[8];
452
439k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
439k
  coefficients[1] = (block00 - block01) * 0.5f;
454
439k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
439k
}
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
22.9M
                            float* JXL_RESTRICT coefficients) {
411
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
22.9M
  size_t afv_x = afv_kind & 1;
413
22.9M
  size_t afv_y = afv_kind / 2;
414
22.9M
  HWY_ALIGN float block[4 * 8] = {};
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
367M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
367M
    }
420
91.9M
  }
421
  // AFV coefficients in (even, even) positions.
422
22.9M
  HWY_ALIGN float coeff[4 * 4];
423
22.9M
  AFVDCT4x4(block, coeff);
424
114M
  for (size_t iy = 0; iy < 4; iy++) {
425
459M
    for (size_t ix = 0; ix < 4; ix++) {
426
367M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
367M
    }
428
91.9M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
22.9M
  ComputeScaledDCT<4, 4>()(
431
22.9M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
22.9M
              pixels_stride),
433
22.9M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
114M
  for (size_t iy = 0; iy < 4; iy++) {
436
827M
    for (size_t ix = 0; ix < 8; ix++) {
437
735M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
735M
    }
439
91.9M
  }
440
  // 4x8 DCT of the other half of the block.
441
22.9M
  ComputeScaledDCT<4, 8>()(
442
22.9M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
22.9M
      block, scratch_space);
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
735M
    }
448
91.9M
  }
449
22.9M
  float block00 = coefficients[0] * 0.25f;
450
22.9M
  float block01 = coefficients[1];
451
22.9M
  float block10 = coefficients[8];
452
22.9M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
22.9M
  coefficients[1] = (block00 - block01) * 0.5f;
454
22.9M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
22.9M
                            float* JXL_RESTRICT coefficients) {
411
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
22.9M
  size_t afv_x = afv_kind & 1;
413
22.9M
  size_t afv_y = afv_kind / 2;
414
22.9M
  HWY_ALIGN float block[4 * 8] = {};
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
367M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
367M
    }
420
91.9M
  }
421
  // AFV coefficients in (even, even) positions.
422
22.9M
  HWY_ALIGN float coeff[4 * 4];
423
22.9M
  AFVDCT4x4(block, coeff);
424
114M
  for (size_t iy = 0; iy < 4; iy++) {
425
459M
    for (size_t ix = 0; ix < 4; ix++) {
426
367M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
367M
    }
428
91.9M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
22.9M
  ComputeScaledDCT<4, 4>()(
431
22.9M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
22.9M
              pixels_stride),
433
22.9M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
114M
  for (size_t iy = 0; iy < 4; iy++) {
436
827M
    for (size_t ix = 0; ix < 8; ix++) {
437
735M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
735M
    }
439
91.9M
  }
440
  // 4x8 DCT of the other half of the block.
441
22.9M
  ComputeScaledDCT<4, 8>()(
442
22.9M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
22.9M
      block, scratch_space);
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
735M
    }
448
91.9M
  }
449
22.9M
  float block00 = coefficients[0] * 0.25f;
450
22.9M
  float block01 = coefficients[1];
451
22.9M
  float block10 = coefficients[8];
452
22.9M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
22.9M
  coefficients[1] = (block00 - block01) * 0.5f;
454
22.9M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
22.9M
                            float* JXL_RESTRICT coefficients) {
411
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
22.9M
  size_t afv_x = afv_kind & 1;
413
22.9M
  size_t afv_y = afv_kind / 2;
414
22.9M
  HWY_ALIGN float block[4 * 8] = {};
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
367M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
367M
    }
420
91.9M
  }
421
  // AFV coefficients in (even, even) positions.
422
22.9M
  HWY_ALIGN float coeff[4 * 4];
423
22.9M
  AFVDCT4x4(block, coeff);
424
114M
  for (size_t iy = 0; iy < 4; iy++) {
425
459M
    for (size_t ix = 0; ix < 4; ix++) {
426
367M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
367M
    }
428
91.9M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
22.9M
  ComputeScaledDCT<4, 4>()(
431
22.9M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
22.9M
              pixels_stride),
433
22.9M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
114M
  for (size_t iy = 0; iy < 4; iy++) {
436
827M
    for (size_t ix = 0; ix < 8; ix++) {
437
735M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
735M
    }
439
91.9M
  }
440
  // 4x8 DCT of the other half of the block.
441
22.9M
  ComputeScaledDCT<4, 8>()(
442
22.9M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
22.9M
      block, scratch_space);
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
735M
    }
448
91.9M
  }
449
22.9M
  float block00 = coefficients[0] * 0.25f;
450
22.9M
  float block01 = coefficients[1];
451
22.9M
  float block10 = coefficients[8];
452
22.9M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
22.9M
  coefficients[1] = (block00 - block01) * 0.5f;
454
22.9M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
22.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
22.9M
                            float* JXL_RESTRICT coefficients) {
411
22.9M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
22.9M
  size_t afv_x = afv_kind & 1;
413
22.9M
  size_t afv_y = afv_kind / 2;
414
22.9M
  HWY_ALIGN float block[4 * 8] = {};
415
114M
  for (size_t iy = 0; iy < 4; iy++) {
416
459M
    for (size_t ix = 0; ix < 4; ix++) {
417
367M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
367M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
367M
    }
420
91.9M
  }
421
  // AFV coefficients in (even, even) positions.
422
22.9M
  HWY_ALIGN float coeff[4 * 4];
423
22.9M
  AFVDCT4x4(block, coeff);
424
114M
  for (size_t iy = 0; iy < 4; iy++) {
425
459M
    for (size_t ix = 0; ix < 4; ix++) {
426
367M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
367M
    }
428
91.9M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
22.9M
  ComputeScaledDCT<4, 4>()(
431
22.9M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
22.9M
              pixels_stride),
433
22.9M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
114M
  for (size_t iy = 0; iy < 4; iy++) {
436
827M
    for (size_t ix = 0; ix < 8; ix++) {
437
735M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
735M
    }
439
91.9M
  }
440
  // 4x8 DCT of the other half of the block.
441
22.9M
  ComputeScaledDCT<4, 8>()(
442
22.9M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
22.9M
      block, scratch_space);
444
114M
  for (size_t iy = 0; iy < 4; iy++) {
445
827M
    for (size_t ix = 0; ix < 8; ix++) {
446
735M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
735M
    }
448
91.9M
  }
449
22.9M
  float block00 = coefficients[0] * 0.25f;
450
22.9M
  float block01 = coefficients[1];
451
22.9M
  float block10 = coefficients[8];
452
22.9M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
22.9M
  coefficients[1] = (block00 - block01) * 0.5f;
454
22.9M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
22.9M
}
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
378k
                            float* JXL_RESTRICT coefficients) {
411
378k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
378k
  size_t afv_x = afv_kind & 1;
413
378k
  size_t afv_y = afv_kind / 2;
414
378k
  HWY_ALIGN float block[4 * 8] = {};
415
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
416
7.56M
    for (size_t ix = 0; ix < 4; ix++) {
417
6.04M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
6.04M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
6.04M
    }
420
1.51M
  }
421
  // AFV coefficients in (even, even) positions.
422
378k
  HWY_ALIGN float coeff[4 * 4];
423
378k
  AFVDCT4x4(block, coeff);
424
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
425
7.56M
    for (size_t ix = 0; ix < 4; ix++) {
426
6.04M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
6.04M
    }
428
1.51M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
378k
  ComputeScaledDCT<4, 4>()(
431
378k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
378k
              pixels_stride),
433
378k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
436
13.6M
    for (size_t ix = 0; ix < 8; ix++) {
437
12.0M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
12.0M
    }
439
1.51M
  }
440
  // 4x8 DCT of the other half of the block.
441
378k
  ComputeScaledDCT<4, 8>()(
442
378k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
378k
      block, scratch_space);
444
1.89M
  for (size_t iy = 0; iy < 4; iy++) {
445
13.6M
    for (size_t ix = 0; ix < 8; ix++) {
446
12.0M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
12.0M
    }
448
1.51M
  }
449
378k
  float block00 = coefficients[0] * 0.25f;
450
378k
  float block01 = coefficients[1];
451
378k
  float block10 = coefficients[8];
452
378k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
378k
  coefficients[1] = (block00 - block01) * 0.5f;
454
378k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
378k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
1.14M
                            float* JXL_RESTRICT coefficients) {
411
1.14M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
1.14M
  size_t afv_x = afv_kind & 1;
413
1.14M
  size_t afv_y = afv_kind / 2;
414
1.14M
  HWY_ALIGN float block[4 * 8] = {};
415
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
416
22.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
18.3M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
18.3M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
18.3M
    }
420
4.58M
  }
421
  // AFV coefficients in (even, even) positions.
422
1.14M
  HWY_ALIGN float coeff[4 * 4];
423
1.14M
  AFVDCT4x4(block, coeff);
424
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
425
22.9M
    for (size_t ix = 0; ix < 4; ix++) {
426
18.3M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
18.3M
    }
428
4.58M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
1.14M
  ComputeScaledDCT<4, 4>()(
431
1.14M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
1.14M
              pixels_stride),
433
1.14M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
436
41.2M
    for (size_t ix = 0; ix < 8; ix++) {
437
36.6M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
36.6M
    }
439
4.58M
  }
440
  // 4x8 DCT of the other half of the block.
441
1.14M
  ComputeScaledDCT<4, 8>()(
442
1.14M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
1.14M
      block, scratch_space);
444
5.73M
  for (size_t iy = 0; iy < 4; iy++) {
445
41.2M
    for (size_t ix = 0; ix < 8; ix++) {
446
36.6M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
36.6M
    }
448
4.58M
  }
449
1.14M
  float block00 = coefficients[0] * 0.25f;
450
1.14M
  float block01 = coefficients[1];
451
1.14M
  float block10 = coefficients[8];
452
1.14M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
1.14M
  coefficients[1] = (block00 - block01) * 0.5f;
454
1.14M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
1.14M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
239k
                            float* JXL_RESTRICT coefficients) {
411
239k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
239k
  size_t afv_x = afv_kind & 1;
413
239k
  size_t afv_y = afv_kind / 2;
414
239k
  HWY_ALIGN float block[4 * 8] = {};
415
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
416
4.78M
    for (size_t ix = 0; ix < 4; ix++) {
417
3.82M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
3.82M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
3.82M
    }
420
957k
  }
421
  // AFV coefficients in (even, even) positions.
422
239k
  HWY_ALIGN float coeff[4 * 4];
423
239k
  AFVDCT4x4(block, coeff);
424
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
425
4.78M
    for (size_t ix = 0; ix < 4; ix++) {
426
3.82M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
3.82M
    }
428
957k
  }
429
  // 4x4 DCT of the block with same y and different x.
430
239k
  ComputeScaledDCT<4, 4>()(
431
239k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
239k
              pixels_stride),
433
239k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
436
8.61M
    for (size_t ix = 0; ix < 8; ix++) {
437
7.65M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
7.65M
    }
439
957k
  }
440
  // 4x8 DCT of the other half of the block.
441
239k
  ComputeScaledDCT<4, 8>()(
442
239k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
239k
      block, scratch_space);
444
1.19M
  for (size_t iy = 0; iy < 4; iy++) {
445
8.61M
    for (size_t ix = 0; ix < 8; ix++) {
446
7.65M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
7.65M
    }
448
957k
  }
449
239k
  float block00 = coefficients[0] * 0.25f;
450
239k
  float block01 = coefficients[1];
451
239k
  float block10 = coefficients[8];
452
239k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
239k
  coefficients[1] = (block00 - block01) * 0.5f;
454
239k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
239k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
439k
                            float* JXL_RESTRICT coefficients) {
411
439k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
439k
  size_t afv_x = afv_kind & 1;
413
439k
  size_t afv_y = afv_kind / 2;
414
439k
  HWY_ALIGN float block[4 * 8] = {};
415
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
416
8.78M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.02M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
7.02M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
7.02M
    }
420
1.75M
  }
421
  // AFV coefficients in (even, even) positions.
422
439k
  HWY_ALIGN float coeff[4 * 4];
423
439k
  AFVDCT4x4(block, coeff);
424
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
425
8.78M
    for (size_t ix = 0; ix < 4; ix++) {
426
7.02M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
7.02M
    }
428
1.75M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
439k
  ComputeScaledDCT<4, 4>()(
431
439k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
439k
              pixels_stride),
433
439k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
436
15.8M
    for (size_t ix = 0; ix < 8; ix++) {
437
14.0M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
14.0M
    }
439
1.75M
  }
440
  // 4x8 DCT of the other half of the block.
441
439k
  ComputeScaledDCT<4, 8>()(
442
439k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
439k
      block, scratch_space);
444
2.19M
  for (size_t iy = 0; iy < 4; iy++) {
445
15.8M
    for (size_t ix = 0; ix < 8; ix++) {
446
14.0M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
14.0M
    }
448
1.75M
  }
449
439k
  float block00 = coefficients[0] * 0.25f;
450
439k
  float block01 = coefficients[1];
451
439k
  float block10 = coefficients[8];
452
439k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
439k
  coefficients[1] = (block00 - block01) * 0.5f;
454
439k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
439k
}
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
332M
                                          float* JXL_RESTRICT scratch_space) {
462
332M
  using Type = AcStrategyType;
463
332M
  switch (strategy) {
464
25.2M
    case Type::IDENTITY: {
465
75.8M
      for (size_t y = 0; y < 2; y++) {
466
151M
        for (size_t x = 0; x < 2; x++) {
467
101M
          float block_dc = 0;
468
505M
          for (size_t iy = 0; iy < 4; iy++) {
469
2.02G
            for (size_t ix = 0; ix < 4; ix++) {
470
1.61G
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
1.61G
            }
472
404M
          }
473
101M
          block_dc *= 1.0f / 16;
474
505M
          for (size_t iy = 0; iy < 4; iy++) {
475
2.02G
            for (size_t ix = 0; ix < 4; ix++) {
476
1.61G
              if (ix == 1 && iy == 1) continue;
477
1.51G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
1.51G
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
1.51G
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
1.51G
            }
481
404M
          }
482
101M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
101M
          coefficients[y * 8 + x] = block_dc;
484
101M
        }
485
50.5M
      }
486
25.2M
      float block00 = coefficients[0];
487
25.2M
      float block01 = coefficients[1];
488
25.2M
      float block10 = coefficients[8];
489
25.2M
      float block11 = coefficients[9];
490
25.2M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
25.2M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
25.2M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
25.2M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
25.2M
      break;
495
0
    }
496
23.9M
    case Type::DCT8X4: {
497
71.9M
      for (size_t x = 0; x < 2; x++) {
498
47.9M
        HWY_ALIGN float block[4 * 8];
499
47.9M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
47.9M
                                 scratch_space);
501
239M
        for (size_t iy = 0; iy < 4; iy++) {
502
1.72G
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
1.53G
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
1.53G
          }
506
191M
        }
507
47.9M
      }
508
23.9M
      float block0 = coefficients[0];
509
23.9M
      float block1 = coefficients[8];
510
23.9M
      coefficients[0] = (block0 + block1) * 0.5f;
511
23.9M
      coefficients[8] = (block0 - block1) * 0.5f;
512
23.9M
      break;
513
0
    }
514
23.7M
    case Type::DCT4X8: {
515
71.2M
      for (size_t y = 0; y < 2; y++) {
516
47.5M
        HWY_ALIGN float block[4 * 8];
517
47.5M
        ComputeScaledDCT<4, 8>()(
518
47.5M
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
47.5M
            scratch_space);
520
237M
        for (size_t iy = 0; iy < 4; iy++) {
521
1.71G
          for (size_t ix = 0; ix < 8; ix++) {
522
1.52G
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
1.52G
          }
524
190M
        }
525
47.5M
      }
526
23.7M
      float block0 = coefficients[0];
527
23.7M
      float block1 = coefficients[8];
528
23.7M
      coefficients[0] = (block0 + block1) * 0.5f;
529
23.7M
      coefficients[8] = (block0 - block1) * 0.5f;
530
23.7M
      break;
531
0
    }
532
22.9M
    case Type::DCT4X4: {
533
68.9M
      for (size_t y = 0; y < 2; y++) {
534
137M
        for (size_t x = 0; x < 2; x++) {
535
91.9M
          HWY_ALIGN float block[4 * 4];
536
91.9M
          ComputeScaledDCT<4, 4>()(
537
91.9M
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
91.9M
              block, scratch_space);
539
459M
          for (size_t iy = 0; iy < 4; iy++) {
540
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
541
1.47G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] = block[iy * 4 + ix];
542
1.47G
            }
543
367M
          }
544
91.9M
        }
545
45.9M
      }
546
22.9M
      float block00 = coefficients[0];
547
22.9M
      float block01 = coefficients[1];
548
22.9M
      float block10 = coefficients[8];
549
22.9M
      float block11 = coefficients[9];
550
22.9M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
22.9M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
22.9M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
22.9M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
22.9M
      break;
555
0
    }
556
25.3M
    case Type::DCT2X2: {
557
25.3M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
25.3M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
25.3M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
25.3M
      break;
561
0
    }
562
9.74M
    case Type::DCT16X16: {
563
9.74M
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
9.74M
                                 scratch_space);
565
9.74M
      break;
566
0
    }
567
19.0M
    case Type::DCT16X8: {
568
19.0M
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
19.0M
                                scratch_space);
570
19.0M
      break;
571
0
    }
572
19.5M
    case Type::DCT8X16: {
573
19.5M
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
19.5M
                                scratch_space);
575
19.5M
      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.75M
    case Type::DCT32X16: {
588
3.75M
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
3.75M
                                 scratch_space);
590
3.75M
      break;
591
0
    }
592
3.92M
    case Type::DCT16X32: {
593
3.92M
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
3.92M
                                 scratch_space);
595
3.92M
      break;
596
0
    }
597
2.41M
    case Type::DCT32X32: {
598
2.41M
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
2.41M
                                 scratch_space);
600
2.41M
      break;
601
0
    }
602
53.4M
    case Type::DCT: {
603
53.4M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
53.4M
                               scratch_space);
605
53.4M
      break;
606
0
    }
607
23.7M
    case Type::AFV0: {
608
23.7M
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
23.7M
      break;
610
0
    }
611
25.2M
    case Type::AFV1: {
612
25.2M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
25.2M
      break;
614
0
    }
615
23.4M
    case Type::AFV2: {
616
23.4M
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
23.4M
      break;
618
0
    }
619
23.8M
    case Type::AFV3: {
620
23.8M
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
23.8M
      break;
622
0
    }
623
457k
    case Type::DCT64X64: {
624
457k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
457k
                                 scratch_space);
626
457k
      break;
627
0
    }
628
1.18M
    case Type::DCT64X32: {
629
1.18M
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
1.18M
                                 scratch_space);
631
1.18M
      break;
632
0
    }
633
784k
    case Type::DCT32X64: {
634
784k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
784k
                                 scratch_space);
636
784k
      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
332M
  }
669
332M
}
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
10.7M
                                          float* JXL_RESTRICT scratch_space) {
462
10.7M
  using Type = AcStrategyType;
463
10.7M
  switch (strategy) {
464
1.15M
    case Type::IDENTITY: {
465
3.45M
      for (size_t y = 0; y < 2; y++) {
466
6.91M
        for (size_t x = 0; x < 2; x++) {
467
4.60M
          float block_dc = 0;
468
23.0M
          for (size_t iy = 0; iy < 4; iy++) {
469
92.1M
            for (size_t ix = 0; ix < 4; ix++) {
470
73.7M
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
73.7M
            }
472
18.4M
          }
473
4.60M
          block_dc *= 1.0f / 16;
474
23.0M
          for (size_t iy = 0; iy < 4; iy++) {
475
92.1M
            for (size_t ix = 0; ix < 4; ix++) {
476
73.7M
              if (ix == 1 && iy == 1) continue;
477
69.1M
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
69.1M
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
69.1M
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
69.1M
            }
481
18.4M
          }
482
4.60M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
4.60M
          coefficients[y * 8 + x] = block_dc;
484
4.60M
        }
485
2.30M
      }
486
1.15M
      float block00 = coefficients[0];
487
1.15M
      float block01 = coefficients[1];
488
1.15M
      float block10 = coefficients[8];
489
1.15M
      float block11 = coefficients[9];
490
1.15M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
1.15M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
1.15M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
1.15M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
1.15M
      break;
495
0
    }
496
494k
    case Type::DCT8X4: {
497
1.48M
      for (size_t x = 0; x < 2; x++) {
498
988k
        HWY_ALIGN float block[4 * 8];
499
988k
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
988k
                                 scratch_space);
501
4.94M
        for (size_t iy = 0; iy < 4; iy++) {
502
35.5M
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
31.6M
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
31.6M
          }
506
3.95M
        }
507
988k
      }
508
494k
      float block0 = coefficients[0];
509
494k
      float block1 = coefficients[8];
510
494k
      coefficients[0] = (block0 + block1) * 0.5f;
511
494k
      coefficients[8] = (block0 - block1) * 0.5f;
512
494k
      break;
513
0
    }
514
387k
    case Type::DCT4X8: {
515
1.16M
      for (size_t y = 0; y < 2; y++) {
516
775k
        HWY_ALIGN float block[4 * 8];
517
775k
        ComputeScaledDCT<4, 8>()(
518
775k
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
775k
            scratch_space);
520
3.87M
        for (size_t iy = 0; iy < 4; iy++) {
521
27.9M
          for (size_t ix = 0; ix < 8; ix++) {
522
24.8M
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
24.8M
          }
524
3.10M
        }
525
775k
      }
526
387k
      float block0 = coefficients[0];
527
387k
      float block1 = coefficients[8];
528
387k
      coefficients[0] = (block0 + block1) * 0.5f;
529
387k
      coefficients[8] = (block0 - block1) * 0.5f;
530
387k
      break;
531
0
    }
532
2.35k
    case Type::DCT4X4: {
533
7.07k
      for (size_t y = 0; y < 2; y++) {
534
14.1k
        for (size_t x = 0; x < 2; x++) {
535
9.43k
          HWY_ALIGN float block[4 * 4];
536
9.43k
          ComputeScaledDCT<4, 4>()(
537
9.43k
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
9.43k
              block, scratch_space);
539
47.1k
          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.7k
          }
544
9.43k
        }
545
4.71k
      }
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.20M
    case Type::DCT2X2: {
557
1.20M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
1.20M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
1.20M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
1.20M
      break;
561
0
    }
562
176k
    case Type::DCT16X16: {
563
176k
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
176k
                                 scratch_space);
565
176k
      break;
566
0
    }
567
291k
    case Type::DCT16X8: {
568
291k
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
291k
                                scratch_space);
570
291k
      break;
571
0
    }
572
481k
    case Type::DCT8X16: {
573
481k
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
481k
                                scratch_space);
575
481k
      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
84.7k
    case Type::DCT32X16: {
588
84.7k
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
84.7k
                                 scratch_space);
590
84.7k
      break;
591
0
    }
592
140k
    case Type::DCT16X32: {
593
140k
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
140k
                                 scratch_space);
595
140k
      break;
596
0
    }
597
287k
    case Type::DCT32X32: {
598
287k
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
287k
                                 scratch_space);
600
287k
      break;
601
0
    }
602
3.76M
    case Type::DCT: {
603
3.76M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
3.76M
                               scratch_space);
605
3.76M
      break;
606
0
    }
607
378k
    case Type::AFV0: {
608
378k
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
378k
      break;
610
0
    }
611
1.14M
    case Type::AFV1: {
612
1.14M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
1.14M
      break;
614
0
    }
615
239k
    case Type::AFV2: {
616
239k
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
239k
      break;
618
0
    }
619
439k
    case Type::AFV3: {
620
439k
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
439k
      break;
622
0
    }
623
70.2k
    case Type::DCT64X64: {
624
70.2k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
70.2k
                                 scratch_space);
626
70.2k
      break;
627
0
    }
628
8.91k
    case Type::DCT64X32: {
629
8.91k
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
8.91k
                                 scratch_space);
631
8.91k
      break;
632
0
    }
633
10.9k
    case Type::DCT32X64: {
634
10.9k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
10.9k
                                 scratch_space);
636
10.9k
      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
10.7M
  }
669
10.7M
}
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
287M
                                          float* JXL_RESTRICT scratch_space) {
462
287M
  using Type = AcStrategyType;
463
287M
  switch (strategy) {
464
22.9M
    case Type::IDENTITY: {
465
68.9M
      for (size_t y = 0; y < 2; y++) {
466
137M
        for (size_t x = 0; x < 2; x++) {
467
91.9M
          float block_dc = 0;
468
459M
          for (size_t iy = 0; iy < 4; iy++) {
469
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
470
1.47G
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
1.47G
            }
472
367M
          }
473
91.9M
          block_dc *= 1.0f / 16;
474
459M
          for (size_t iy = 0; iy < 4; iy++) {
475
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
476
1.47G
              if (ix == 1 && iy == 1) continue;
477
1.37G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
1.37G
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
1.37G
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
1.37G
            }
481
367M
          }
482
91.9M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
91.9M
          coefficients[y * 8 + x] = block_dc;
484
91.9M
        }
485
45.9M
      }
486
22.9M
      float block00 = coefficients[0];
487
22.9M
      float block01 = coefficients[1];
488
22.9M
      float block10 = coefficients[8];
489
22.9M
      float block11 = coefficients[9];
490
22.9M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
22.9M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
22.9M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
22.9M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
22.9M
      break;
495
0
    }
496
22.9M
    case Type::DCT8X4: {
497
68.9M
      for (size_t x = 0; x < 2; x++) {
498
45.9M
        HWY_ALIGN float block[4 * 8];
499
45.9M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
45.9M
                                 scratch_space);
501
229M
        for (size_t iy = 0; iy < 4; iy++) {
502
1.65G
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
1.47G
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
1.47G
          }
506
183M
        }
507
45.9M
      }
508
22.9M
      float block0 = coefficients[0];
509
22.9M
      float block1 = coefficients[8];
510
22.9M
      coefficients[0] = (block0 + block1) * 0.5f;
511
22.9M
      coefficients[8] = (block0 - block1) * 0.5f;
512
22.9M
      break;
513
0
    }
514
22.9M
    case Type::DCT4X8: {
515
68.9M
      for (size_t y = 0; y < 2; y++) {
516
45.9M
        HWY_ALIGN float block[4 * 8];
517
45.9M
        ComputeScaledDCT<4, 8>()(
518
45.9M
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
45.9M
            scratch_space);
520
229M
        for (size_t iy = 0; iy < 4; iy++) {
521
1.65G
          for (size_t ix = 0; ix < 8; ix++) {
522
1.47G
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
1.47G
          }
524
183M
        }
525
45.9M
      }
526
22.9M
      float block0 = coefficients[0];
527
22.9M
      float block1 = coefficients[8];
528
22.9M
      coefficients[0] = (block0 + block1) * 0.5f;
529
22.9M
      coefficients[8] = (block0 - block1) * 0.5f;
530
22.9M
      break;
531
0
    }
532
22.9M
    case Type::DCT4X4: {
533
68.9M
      for (size_t y = 0; y < 2; y++) {
534
137M
        for (size_t x = 0; x < 2; x++) {
535
91.9M
          HWY_ALIGN float block[4 * 4];
536
91.9M
          ComputeScaledDCT<4, 4>()(
537
91.9M
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
91.9M
              block, scratch_space);
539
459M
          for (size_t iy = 0; iy < 4; iy++) {
540
1.83G
            for (size_t ix = 0; ix < 4; ix++) {
541
1.47G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] = block[iy * 4 + ix];
542
1.47G
            }
543
367M
          }
544
91.9M
        }
545
45.9M
      }
546
22.9M
      float block00 = coefficients[0];
547
22.9M
      float block01 = coefficients[1];
548
22.9M
      float block10 = coefficients[8];
549
22.9M
      float block11 = coefficients[9];
550
22.9M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
22.9M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
22.9M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
22.9M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
22.9M
      break;
555
0
    }
556
22.9M
    case Type::DCT2X2: {
557
22.9M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
22.9M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
22.9M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
22.9M
      break;
561
0
    }
562
9.39M
    case Type::DCT16X16: {
563
9.39M
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
9.39M
                                 scratch_space);
565
9.39M
      break;
566
0
    }
567
18.4M
    case Type::DCT16X8: {
568
18.4M
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
18.4M
                                scratch_space);
570
18.4M
      break;
571
0
    }
572
18.5M
    case Type::DCT8X16: {
573
18.5M
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
18.5M
                                scratch_space);
575
18.5M
      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.58M
    case Type::DCT32X16: {
588
3.58M
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
3.58M
                                 scratch_space);
590
3.58M
      break;
591
0
    }
592
3.64M
    case Type::DCT16X32: {
593
3.64M
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
3.64M
                                 scratch_space);
595
3.64M
      break;
596
0
    }
597
1.83M
    case Type::DCT32X32: {
598
1.83M
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
1.83M
                                 scratch_space);
600
1.83M
      break;
601
0
    }
602
22.9M
    case Type::DCT: {
603
22.9M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
22.9M
                               scratch_space);
605
22.9M
      break;
606
0
    }
607
22.9M
    case Type::AFV0: {
608
22.9M
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
22.9M
      break;
610
0
    }
611
22.9M
    case Type::AFV1: {
612
22.9M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
22.9M
      break;
614
0
    }
615
22.9M
    case Type::AFV2: {
616
22.9M
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
22.9M
      break;
618
0
    }
619
22.9M
    case Type::AFV3: {
620
22.9M
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
22.9M
      break;
622
0
    }
623
317k
    case Type::DCT64X64: {
624
317k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
317k
                                 scratch_space);
626
317k
      break;
627
0
    }
628
1.16M
    case Type::DCT64X32: {
629
1.16M
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
1.16M
                                 scratch_space);
631
1.16M
      break;
632
0
    }
633
762k
    case Type::DCT32X64: {
634
762k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
762k
                                 scratch_space);
636
762k
      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
287M
  }
669
287M
}
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
33.7M
                                          float* JXL_RESTRICT scratch_space) {
462
33.7M
  using Type = AcStrategyType;
463
33.7M
  switch (strategy) {
464
1.15M
    case Type::IDENTITY: {
465
3.45M
      for (size_t y = 0; y < 2; y++) {
466
6.91M
        for (size_t x = 0; x < 2; x++) {
467
4.60M
          float block_dc = 0;
468
23.0M
          for (size_t iy = 0; iy < 4; iy++) {
469
92.1M
            for (size_t ix = 0; ix < 4; ix++) {
470
73.7M
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
73.7M
            }
472
18.4M
          }
473
4.60M
          block_dc *= 1.0f / 16;
474
23.0M
          for (size_t iy = 0; iy < 4; iy++) {
475
92.1M
            for (size_t ix = 0; ix < 4; ix++) {
476
73.7M
              if (ix == 1 && iy == 1) continue;
477
69.1M
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
69.1M
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
69.1M
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
69.1M
            }
481
18.4M
          }
482
4.60M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
4.60M
          coefficients[y * 8 + x] = block_dc;
484
4.60M
        }
485
2.30M
      }
486
1.15M
      float block00 = coefficients[0];
487
1.15M
      float block01 = coefficients[1];
488
1.15M
      float block10 = coefficients[8];
489
1.15M
      float block11 = coefficients[9];
490
1.15M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
1.15M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
1.15M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
1.15M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
1.15M
      break;
495
0
    }
496
494k
    case Type::DCT8X4: {
497
1.48M
      for (size_t x = 0; x < 2; x++) {
498
988k
        HWY_ALIGN float block[4 * 8];
499
988k
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
988k
                                 scratch_space);
501
4.94M
        for (size_t iy = 0; iy < 4; iy++) {
502
35.5M
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
31.6M
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
31.6M
          }
506
3.95M
        }
507
988k
      }
508
494k
      float block0 = coefficients[0];
509
494k
      float block1 = coefficients[8];
510
494k
      coefficients[0] = (block0 + block1) * 0.5f;
511
494k
      coefficients[8] = (block0 - block1) * 0.5f;
512
494k
      break;
513
0
    }
514
387k
    case Type::DCT4X8: {
515
1.16M
      for (size_t y = 0; y < 2; y++) {
516
775k
        HWY_ALIGN float block[4 * 8];
517
775k
        ComputeScaledDCT<4, 8>()(
518
775k
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
775k
            scratch_space);
520
3.87M
        for (size_t iy = 0; iy < 4; iy++) {
521
27.9M
          for (size_t ix = 0; ix < 8; ix++) {
522
24.8M
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
24.8M
          }
524
3.10M
        }
525
775k
      }
526
387k
      float block0 = coefficients[0];
527
387k
      float block1 = coefficients[8];
528
387k
      coefficients[0] = (block0 + block1) * 0.5f;
529
387k
      coefficients[8] = (block0 - block1) * 0.5f;
530
387k
      break;
531
0
    }
532
2.35k
    case Type::DCT4X4: {
533
7.07k
      for (size_t y = 0; y < 2; y++) {
534
14.1k
        for (size_t x = 0; x < 2; x++) {
535
9.43k
          HWY_ALIGN float block[4 * 4];
536
9.43k
          ComputeScaledDCT<4, 4>()(
537
9.43k
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
9.43k
              block, scratch_space);
539
47.1k
          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.7k
          }
544
9.43k
        }
545
4.71k
      }
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.20M
    case Type::DCT2X2: {
557
1.20M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
1.20M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
1.20M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
1.20M
      break;
561
0
    }
562
176k
    case Type::DCT16X16: {
563
176k
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
176k
                                 scratch_space);
565
176k
      break;
566
0
    }
567
291k
    case Type::DCT16X8: {
568
291k
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
291k
                                scratch_space);
570
291k
      break;
571
0
    }
572
481k
    case Type::DCT8X16: {
573
481k
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
481k
                                scratch_space);
575
481k
      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
84.7k
    case Type::DCT32X16: {
588
84.7k
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
84.7k
                                 scratch_space);
590
84.7k
      break;
591
0
    }
592
140k
    case Type::DCT16X32: {
593
140k
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
140k
                                 scratch_space);
595
140k
      break;
596
0
    }
597
287k
    case Type::DCT32X32: {
598
287k
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
287k
                                 scratch_space);
600
287k
      break;
601
0
    }
602
26.7M
    case Type::DCT: {
603
26.7M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
26.7M
                               scratch_space);
605
26.7M
      break;
606
0
    }
607
378k
    case Type::AFV0: {
608
378k
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
378k
      break;
610
0
    }
611
1.14M
    case Type::AFV1: {
612
1.14M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
1.14M
      break;
614
0
    }
615
239k
    case Type::AFV2: {
616
239k
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
239k
      break;
618
0
    }
619
439k
    case Type::AFV3: {
620
439k
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
439k
      break;
622
0
    }
623
70.2k
    case Type::DCT64X64: {
624
70.2k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
70.2k
                                 scratch_space);
626
70.2k
      break;
627
0
    }
628
8.91k
    case Type::DCT64X32: {
629
8.91k
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
8.91k
                                 scratch_space);
631
8.91k
      break;
632
0
    }
633
10.9k
    case Type::DCT32X64: {
634
10.9k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
10.9k
                                 scratch_space);
636
10.9k
      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
33.7M
  }
669
33.7M
}
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
44.5M
                                              float* scratch_space) {
676
44.5M
  using Type = AcStrategyType;
677
44.5M
  switch (strategy) {
678
583k
    case Type::DCT16X8: {
679
583k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
583k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
583k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
583k
      break;
683
0
    }
684
963k
    case Type::DCT8X16: {
685
963k
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
686
963k
                         /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
687
963k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
688
963k
      break;
689
0
    }
690
352k
    case Type::DCT16X16: {
691
352k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
352k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
352k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
352k
      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
169k
    case Type::DCT32X16: {
709
169k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
169k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
169k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
169k
      break;
713
0
    }
714
281k
    case Type::DCT16X32: {
715
281k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
281k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
281k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
281k
      break;
719
0
    }
720
574k
    case Type::DCT32X32: {
721
574k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
574k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
574k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
574k
      break;
725
0
    }
726
17.8k
    case Type::DCT64X32: {
727
17.8k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
17.8k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
17.8k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
17.8k
      break;
731
0
    }
732
21.9k
    case Type::DCT32X64: {
733
21.9k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
21.9k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
21.9k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
21.9k
      break;
737
0
    }
738
140k
    case Type::DCT64X64: {
739
140k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
140k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
140k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
140k
      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
30.5M
    case Type::DCT:
787
32.9M
    case Type::DCT2X2:
788
32.9M
    case Type::DCT4X4:
789
33.6M
    case Type::DCT4X8:
790
34.6M
    case Type::DCT8X4:
791
35.4M
    case Type::AFV0:
792
37.7M
    case Type::AFV1:
793
38.2M
    case Type::AFV2:
794
39.0M
    case Type::AFV3:
795
41.3M
    case Type::IDENTITY:
796
41.3M
      dc[0] = block[0];
797
41.3M
      break;
798
44.5M
  }
799
44.5M
}
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
10.7M
                                              float* scratch_space) {
676
10.7M
  using Type = AcStrategyType;
677
10.7M
  switch (strategy) {
678
291k
    case Type::DCT16X8: {
679
291k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
291k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
291k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
291k
      break;
683
0
    }
684
481k
    case Type::DCT8X16: {
685
481k
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
686
481k
                         /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
687
481k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
688
481k
      break;
689
0
    }
690
176k
    case Type::DCT16X16: {
691
176k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
176k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
176k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
176k
      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
84.7k
    case Type::DCT32X16: {
709
84.7k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
84.7k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
84.7k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
84.7k
      break;
713
0
    }
714
140k
    case Type::DCT16X32: {
715
140k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
140k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
140k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
140k
      break;
719
0
    }
720
287k
    case Type::DCT32X32: {
721
287k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
287k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
287k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
287k
      break;
725
0
    }
726
8.91k
    case Type::DCT64X32: {
727
8.91k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
8.91k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
8.91k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
8.91k
      break;
731
0
    }
732
10.9k
    case Type::DCT32X64: {
733
10.9k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
10.9k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
10.9k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
10.9k
      break;
737
0
    }
738
70.2k
    case Type::DCT64X64: {
739
70.2k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
70.2k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
70.2k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
70.2k
      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
3.76M
    case Type::DCT:
787
4.96M
    case Type::DCT2X2:
788
4.96M
    case Type::DCT4X4:
789
5.35M
    case Type::DCT4X8:
790
5.84M
    case Type::DCT8X4:
791
6.22M
    case Type::AFV0:
792
7.37M
    case Type::AFV1:
793
7.61M
    case Type::AFV2:
794
8.05M
    case Type::AFV3:
795
9.20M
    case Type::IDENTITY:
796
9.20M
      dc[0] = block[0];
797
9.20M
      break;
798
10.7M
  }
799
10.7M
}
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
33.7M
                                              float* scratch_space) {
676
33.7M
  using Type = AcStrategyType;
677
33.7M
  switch (strategy) {
678
291k
    case Type::DCT16X8: {
679
291k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
291k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
291k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
291k
      break;
683
0
    }
684
481k
    case Type::DCT8X16: {
685
481k
      ReinterpretingIDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
686
481k
                         /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
687
481k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
688
481k
      break;
689
0
    }
690
176k
    case Type::DCT16X16: {
691
176k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
176k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
176k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
176k
      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
84.7k
    case Type::DCT32X16: {
709
84.7k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
84.7k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
84.7k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
84.7k
      break;
713
0
    }
714
140k
    case Type::DCT16X32: {
715
140k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
140k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
140k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
140k
      break;
719
0
    }
720
287k
    case Type::DCT32X32: {
721
287k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
287k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
287k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
287k
      break;
725
0
    }
726
8.91k
    case Type::DCT64X32: {
727
8.91k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
8.91k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
8.91k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
8.91k
      break;
731
0
    }
732
10.9k
    case Type::DCT32X64: {
733
10.9k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
10.9k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
10.9k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
10.9k
      break;
737
0
    }
738
70.2k
    case Type::DCT64X64: {
739
70.2k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
70.2k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
70.2k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
70.2k
      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
26.7M
    case Type::DCT:
787
27.9M
    case Type::DCT2X2:
788
27.9M
    case Type::DCT4X4:
789
28.3M
    case Type::DCT4X8:
790
28.8M
    case Type::DCT8X4:
791
29.2M
    case Type::AFV0:
792
30.3M
    case Type::AFV1:
793
30.6M
    case Type::AFV2:
794
31.0M
    case Type::AFV3:
795
32.1M
    case Type::IDENTITY:
796
32.1M
      dc[0] = block[0];
797
32.1M
      break;
798
33.7M
  }
799
33.7M
}
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_