Coverage Report

Created: 2026-09-06 07:31

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.49M
      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.84M
  } else {
52
6.97M
    for (size_t y = 0; y < LF_COLS; y++) {
53
27.9M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
22.8M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
22.8M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
22.8M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
22.8M
      }
58
5.13M
    }
59
1.84M
  }
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
293k
                                   const size_t output_stride, float* scratch) {
40
293k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
293k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
293k
  float* block = scratch;
43
293k
  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
293k
  } else {
52
586k
    for (size_t y = 0; y < LF_COLS; y++) {
53
880k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
586k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
586k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
586k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
586k
      }
58
293k
    }
59
293k
  }
60
61
293k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
293k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
293k
                                  scratch_space);
64
293k
}
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
177k
                                   const size_t output_stride, float* scratch) {
40
177k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
177k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
177k
  float* block = scratch;
43
177k
  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
177k
  } else {
52
531k
    for (size_t y = 0; y < LF_COLS; y++) {
53
1.06M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
708k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
708k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
708k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
708k
      }
58
354k
    }
59
177k
  }
60
61
177k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
177k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
177k
                                  scratch_space);
64
177k
}
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.5k
                                   const size_t output_stride, float* scratch) {
40
84.5k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
84.5k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
84.5k
  float* block = scratch;
43
84.5k
  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.5k
  } else {
52
253k
    for (size_t y = 0; y < LF_COLS; y++) {
53
845k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
676k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
676k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
676k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
676k
      }
58
169k
    }
59
84.5k
  }
60
61
84.5k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
84.5k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
84.5k
                                  scratch_space);
64
84.5k
}
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
420k
    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
280k
    }
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
285k
                                   const size_t output_stride, float* scratch) {
40
285k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
285k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
285k
  float* block = scratch;
43
285k
  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
285k
  } else {
52
1.42M
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.70M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.56M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.56M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.56M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.56M
      }
58
1.14M
    }
59
285k
  }
60
61
285k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
285k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
285k
                                  scratch_space);
64
285k
}
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
9.04k
                                   const size_t output_stride, float* scratch) {
40
9.04k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
9.04k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
9.04k
  float* block = scratch;
43
9.04k
  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
9.04k
  } else {
52
45.2k
    for (size_t y = 0; y < LF_COLS; y++) {
53
325k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
289k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
289k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
289k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
289k
      }
58
36.1k
    }
59
9.04k
  }
60
61
9.04k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
9.04k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
9.04k
                                  scratch_space);
64
9.04k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
11.0k
                                   const size_t output_stride, float* scratch) {
40
11.0k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
11.0k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
11.0k
  float* block = scratch;
43
11.0k
  if (ROWS < COLS) {
44
55.3k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
398k
      for (size_t x = 0; x < LF_COLS; x++) {
46
354k
        block[y * COLS + x] = input[y * input_stride + x] *
47
354k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
354k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
354k
      }
50
44.3k
    }
51
11.0k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
11.0k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
11.0k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
11.0k
                                  scratch_space);
64
11.0k
}
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
71.7k
                                   const size_t output_stride, float* scratch) {
40
71.7k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
71.7k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
71.7k
  float* block = scratch;
43
71.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
71.7k
  } else {
52
645k
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.16M
      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
573k
    }
59
71.7k
  }
60
61
71.7k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
71.7k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
71.7k
                                  scratch_space);
64
71.7k
}
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
293k
                                   const size_t output_stride, float* scratch) {
40
293k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
293k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
293k
  float* block = scratch;
43
293k
  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
293k
  } else {
52
586k
    for (size_t y = 0; y < LF_COLS; y++) {
53
880k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
586k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
586k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
586k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
586k
      }
58
293k
    }
59
293k
  }
60
61
293k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
293k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
293k
                                  scratch_space);
64
293k
}
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
177k
                                   const size_t output_stride, float* scratch) {
40
177k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
177k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
177k
  float* block = scratch;
43
177k
  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
177k
  } else {
52
531k
    for (size_t y = 0; y < LF_COLS; y++) {
53
1.06M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
708k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
708k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
708k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
708k
      }
58
354k
    }
59
177k
  }
60
61
177k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
177k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
177k
                                  scratch_space);
64
177k
}
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.5k
                                   const size_t output_stride, float* scratch) {
40
84.5k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
84.5k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
84.5k
  float* block = scratch;
43
84.5k
  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.5k
  } else {
52
253k
    for (size_t y = 0; y < LF_COLS; y++) {
53
845k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
676k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
676k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
676k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
676k
      }
58
169k
    }
59
84.5k
  }
60
61
84.5k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
84.5k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
84.5k
                                  scratch_space);
64
84.5k
}
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
420k
    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
280k
    }
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
285k
                                   const size_t output_stride, float* scratch) {
40
285k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
285k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
285k
  float* block = scratch;
43
285k
  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
285k
  } else {
52
1.42M
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.70M
      for (size_t x = 0; x < LF_ROWS; x++) {
54
4.56M
        block[y * ROWS + x] = input[y * input_stride + x] *
55
4.56M
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
4.56M
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
4.56M
      }
58
1.14M
    }
59
285k
  }
60
61
285k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
285k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
285k
                                  scratch_space);
64
285k
}
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
9.04k
                                   const size_t output_stride, float* scratch) {
40
9.04k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
9.04k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
9.04k
  float* block = scratch;
43
9.04k
  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
9.04k
  } else {
52
45.2k
    for (size_t y = 0; y < LF_COLS; y++) {
53
325k
      for (size_t x = 0; x < LF_ROWS; x++) {
54
289k
        block[y * ROWS + x] = input[y * input_stride + x] *
55
289k
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
289k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
289k
      }
58
36.1k
    }
59
9.04k
  }
60
61
9.04k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
9.04k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
9.04k
                                  scratch_space);
64
9.04k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingIDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*)
Line
Count
Source
39
11.0k
                                   const size_t output_stride, float* scratch) {
40
11.0k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
11.0k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
11.0k
  float* block = scratch;
43
11.0k
  if (ROWS < COLS) {
44
55.3k
    for (size_t y = 0; y < LF_ROWS; y++) {
45
398k
      for (size_t x = 0; x < LF_COLS; x++) {
46
354k
        block[y * COLS + x] = input[y * input_stride + x] *
47
354k
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(y) *
48
354k
                              DCTTotalResampleScale<DCT_COLS, COLS>(x);
49
354k
      }
50
44.3k
    }
51
11.0k
  } else {
52
0
    for (size_t y = 0; y < LF_COLS; y++) {
53
0
      for (size_t x = 0; x < LF_ROWS; x++) {
54
0
        block[y * ROWS + x] = input[y * input_stride + x] *
55
0
                              DCTTotalResampleScale<DCT_COLS, COLS>(y) *
56
0
                              DCTTotalResampleScale<DCT_ROWS, ROWS>(x);
57
0
      }
58
0
    }
59
0
  }
60
61
11.0k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
11.0k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
11.0k
                                  scratch_space);
64
11.0k
}
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
71.7k
                                   const size_t output_stride, float* scratch) {
40
71.7k
  static_assert(ROWS <= kMaxBlocks, "Unsupported block size");
41
71.7k
  static_assert(COLS <= kMaxBlocks, "Unsupported block size");
42
71.7k
  float* block = scratch;
43
71.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
71.7k
  } else {
52
645k
    for (size_t y = 0; y < LF_COLS; y++) {
53
5.16M
      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
573k
    }
59
71.7k
  }
60
61
71.7k
  float* scratch_space = scratch + kMaxBlocks * kMaxBlocks;
62
71.7k
  ComputeScaledIDCT<ROWS, COLS>()(block, DCTTo(output, output_stride),
63
71.7k
                                  scratch_space);
64
71.7k
}
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.5M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
76.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
76.5M
  static_assert(S % 2 == 0, "S should be even");
70
76.5M
  float temp[kDCTBlockSize];
71
76.5M
  constexpr size_t num_2x2 = S / 2;
72
255M
  for (size_t y = 0; y < num_2x2; y++) {
73
714M
    for (size_t x = 0; x < num_2x2; x++) {
74
535M
      float c00 = block[y * 2 * stride + x * 2];
75
535M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
535M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
535M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
535M
      float r00 = c00 + c01 + c10 + c11;
79
535M
      float r01 = c00 + c01 - c10 - c11;
80
535M
      float r10 = c00 - c01 + c10 - c11;
81
535M
      float r11 = c00 - c01 - c10 + c11;
82
535M
      r00 *= 0.25f;
83
535M
      r01 *= 0.25f;
84
535M
      r10 *= 0.25f;
85
535M
      r11 *= 0.25f;
86
535M
      temp[y * kBlockDim + x] = r00;
87
535M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
535M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
535M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
535M
    }
91
178M
  }
92
433M
  for (size_t y = 0; y < S; y++) {
93
2.49G
    for (size_t x = 0; x < S; x++) {
94
2.14G
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
2.14G
    }
96
357M
  }
97
76.5M
}
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.21M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.21M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.21M
  static_assert(S % 2 == 0, "S should be even");
70
1.21M
  float temp[kDCTBlockSize];
71
1.21M
  constexpr size_t num_2x2 = S / 2;
72
6.05M
  for (size_t y = 0; y < num_2x2; y++) {
73
24.2M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.3M
      float c00 = block[y * 2 * stride + x * 2];
75
19.3M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
19.3M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
19.3M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
19.3M
      float r00 = c00 + c01 + c10 + c11;
79
19.3M
      float r01 = c00 + c01 - c10 - c11;
80
19.3M
      float r10 = c00 - c01 + c10 - c11;
81
19.3M
      float r11 = c00 - c01 - c10 + c11;
82
19.3M
      r00 *= 0.25f;
83
19.3M
      r01 *= 0.25f;
84
19.3M
      r10 *= 0.25f;
85
19.3M
      r11 *= 0.25f;
86
19.3M
      temp[y * kBlockDim + x] = r00;
87
19.3M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
19.3M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
19.3M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
19.3M
    }
91
4.84M
  }
92
10.9M
  for (size_t y = 0; y < S; y++) {
93
87.2M
    for (size_t x = 0; x < S; x++) {
94
77.5M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
77.5M
    }
96
9.69M
  }
97
1.21M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.21M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.21M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.21M
  static_assert(S % 2 == 0, "S should be even");
70
1.21M
  float temp[kDCTBlockSize];
71
1.21M
  constexpr size_t num_2x2 = S / 2;
72
3.63M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.27M
    for (size_t x = 0; x < num_2x2; x++) {
74
4.84M
      float c00 = block[y * 2 * stride + x * 2];
75
4.84M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
4.84M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
4.84M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
4.84M
      float r00 = c00 + c01 + c10 + c11;
79
4.84M
      float r01 = c00 + c01 - c10 - c11;
80
4.84M
      float r10 = c00 - c01 + c10 - c11;
81
4.84M
      float r11 = c00 - c01 - c10 + c11;
82
4.84M
      r00 *= 0.25f;
83
4.84M
      r01 *= 0.25f;
84
4.84M
      r10 *= 0.25f;
85
4.84M
      r11 *= 0.25f;
86
4.84M
      temp[y * kBlockDim + x] = r00;
87
4.84M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
4.84M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
4.84M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
4.84M
    }
91
2.42M
  }
92
6.05M
  for (size_t y = 0; y < S; y++) {
93
24.2M
    for (size_t x = 0; x < S; x++) {
94
19.3M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
19.3M
    }
96
4.84M
  }
97
1.21M
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.21M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.21M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.21M
  static_assert(S % 2 == 0, "S should be even");
70
1.21M
  float temp[kDCTBlockSize];
71
1.21M
  constexpr size_t num_2x2 = S / 2;
72
2.42M
  for (size_t y = 0; y < num_2x2; y++) {
73
2.42M
    for (size_t x = 0; x < num_2x2; x++) {
74
1.21M
      float c00 = block[y * 2 * stride + x * 2];
75
1.21M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
1.21M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
1.21M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
1.21M
      float r00 = c00 + c01 + c10 + c11;
79
1.21M
      float r01 = c00 + c01 - c10 - c11;
80
1.21M
      float r10 = c00 - c01 + c10 - c11;
81
1.21M
      float r11 = c00 - c01 - c10 + c11;
82
1.21M
      r00 *= 0.25f;
83
1.21M
      r01 *= 0.25f;
84
1.21M
      r10 *= 0.25f;
85
1.21M
      r11 *= 0.25f;
86
1.21M
      temp[y * kBlockDim + x] = r00;
87
1.21M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
1.21M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
1.21M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
1.21M
    }
91
1.21M
  }
92
3.63M
  for (size_t y = 0; y < S; y++) {
93
7.27M
    for (size_t x = 0; x < S; x++) {
94
4.84M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
4.84M
    }
96
2.42M
  }
97
1.21M
}
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
23.0M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
23.0M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
23.0M
  static_assert(S % 2 == 0, "S should be even");
70
23.0M
  float temp[kDCTBlockSize];
71
23.0M
  constexpr size_t num_2x2 = S / 2;
72
115M
  for (size_t y = 0; y < num_2x2; y++) {
73
461M
    for (size_t x = 0; x < num_2x2; x++) {
74
369M
      float c00 = block[y * 2 * stride + x * 2];
75
369M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
369M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
369M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
369M
      float r00 = c00 + c01 + c10 + c11;
79
369M
      float r01 = c00 + c01 - c10 - c11;
80
369M
      float r10 = c00 - c01 + c10 - c11;
81
369M
      float r11 = c00 - c01 - c10 + c11;
82
369M
      r00 *= 0.25f;
83
369M
      r01 *= 0.25f;
84
369M
      r10 *= 0.25f;
85
369M
      r11 *= 0.25f;
86
369M
      temp[y * kBlockDim + x] = r00;
87
369M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
369M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
369M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
369M
    }
91
92.3M
  }
92
207M
  for (size_t y = 0; y < S; y++) {
93
1.66G
    for (size_t x = 0; x < S; x++) {
94
1.47G
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
1.47G
    }
96
184M
  }
97
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
23.0M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
23.0M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
23.0M
  static_assert(S % 2 == 0, "S should be even");
70
23.0M
  float temp[kDCTBlockSize];
71
23.0M
  constexpr size_t num_2x2 = S / 2;
72
69.2M
  for (size_t y = 0; y < num_2x2; y++) {
73
138M
    for (size_t x = 0; x < num_2x2; x++) {
74
92.3M
      float c00 = block[y * 2 * stride + x * 2];
75
92.3M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
92.3M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
92.3M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
92.3M
      float r00 = c00 + c01 + c10 + c11;
79
92.3M
      float r01 = c00 + c01 - c10 - c11;
80
92.3M
      float r10 = c00 - c01 + c10 - c11;
81
92.3M
      float r11 = c00 - c01 - c10 + c11;
82
92.3M
      r00 *= 0.25f;
83
92.3M
      r01 *= 0.25f;
84
92.3M
      r10 *= 0.25f;
85
92.3M
      r11 *= 0.25f;
86
92.3M
      temp[y * kBlockDim + x] = r00;
87
92.3M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
92.3M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
92.3M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
92.3M
    }
91
46.1M
  }
92
115M
  for (size_t y = 0; y < S; y++) {
93
461M
    for (size_t x = 0; x < S; x++) {
94
369M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
369M
    }
96
92.3M
  }
97
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
23.0M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
23.0M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
23.0M
  static_assert(S % 2 == 0, "S should be even");
70
23.0M
  float temp[kDCTBlockSize];
71
23.0M
  constexpr size_t num_2x2 = S / 2;
72
46.1M
  for (size_t y = 0; y < num_2x2; y++) {
73
46.1M
    for (size_t x = 0; x < num_2x2; x++) {
74
23.0M
      float c00 = block[y * 2 * stride + x * 2];
75
23.0M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
23.0M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
23.0M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
23.0M
      float r00 = c00 + c01 + c10 + c11;
79
23.0M
      float r01 = c00 + c01 - c10 - c11;
80
23.0M
      float r10 = c00 - c01 + c10 - c11;
81
23.0M
      float r11 = c00 - c01 - c10 + c11;
82
23.0M
      r00 *= 0.25f;
83
23.0M
      r01 *= 0.25f;
84
23.0M
      r10 *= 0.25f;
85
23.0M
      r11 *= 0.25f;
86
23.0M
      temp[y * kBlockDim + x] = r00;
87
23.0M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
23.0M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
23.0M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
23.0M
    }
91
23.0M
  }
92
69.2M
  for (size_t y = 0; y < S; y++) {
93
138M
    for (size_t x = 0; x < S; x++) {
94
92.3M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
92.3M
    }
96
46.1M
  }
97
23.0M
}
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.21M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.21M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.21M
  static_assert(S % 2 == 0, "S should be even");
70
1.21M
  float temp[kDCTBlockSize];
71
1.21M
  constexpr size_t num_2x2 = S / 2;
72
6.05M
  for (size_t y = 0; y < num_2x2; y++) {
73
24.2M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.3M
      float c00 = block[y * 2 * stride + x * 2];
75
19.3M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
19.3M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
19.3M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
19.3M
      float r00 = c00 + c01 + c10 + c11;
79
19.3M
      float r01 = c00 + c01 - c10 - c11;
80
19.3M
      float r10 = c00 - c01 + c10 - c11;
81
19.3M
      float r11 = c00 - c01 - c10 + c11;
82
19.3M
      r00 *= 0.25f;
83
19.3M
      r01 *= 0.25f;
84
19.3M
      r10 *= 0.25f;
85
19.3M
      r11 *= 0.25f;
86
19.3M
      temp[y * kBlockDim + x] = r00;
87
19.3M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
19.3M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
19.3M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
19.3M
    }
91
4.84M
  }
92
10.9M
  for (size_t y = 0; y < S; y++) {
93
87.2M
    for (size_t x = 0; x < S; x++) {
94
77.5M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
77.5M
    }
96
9.69M
  }
97
1.21M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.21M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.21M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.21M
  static_assert(S % 2 == 0, "S should be even");
70
1.21M
  float temp[kDCTBlockSize];
71
1.21M
  constexpr size_t num_2x2 = S / 2;
72
3.63M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.27M
    for (size_t x = 0; x < num_2x2; x++) {
74
4.84M
      float c00 = block[y * 2 * stride + x * 2];
75
4.84M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
4.84M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
4.84M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
4.84M
      float r00 = c00 + c01 + c10 + c11;
79
4.84M
      float r01 = c00 + c01 - c10 - c11;
80
4.84M
      float r10 = c00 - c01 + c10 - c11;
81
4.84M
      float r11 = c00 - c01 - c10 + c11;
82
4.84M
      r00 *= 0.25f;
83
4.84M
      r01 *= 0.25f;
84
4.84M
      r10 *= 0.25f;
85
4.84M
      r11 *= 0.25f;
86
4.84M
      temp[y * kBlockDim + x] = r00;
87
4.84M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
4.84M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
4.84M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
4.84M
    }
91
2.42M
  }
92
6.05M
  for (size_t y = 0; y < S; y++) {
93
24.2M
    for (size_t x = 0; x < S; x++) {
94
19.3M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
19.3M
    }
96
4.84M
  }
97
1.21M
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::DCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
1.21M
void DCT2TopBlock(const float* block, size_t stride, float* out) {
68
1.21M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
1.21M
  static_assert(S % 2 == 0, "S should be even");
70
1.21M
  float temp[kDCTBlockSize];
71
1.21M
  constexpr size_t num_2x2 = S / 2;
72
2.42M
  for (size_t y = 0; y < num_2x2; y++) {
73
2.42M
    for (size_t x = 0; x < num_2x2; x++) {
74
1.21M
      float c00 = block[y * 2 * stride + x * 2];
75
1.21M
      float c01 = block[y * 2 * stride + x * 2 + 1];
76
1.21M
      float c10 = block[(y * 2 + 1) * stride + x * 2];
77
1.21M
      float c11 = block[(y * 2 + 1) * stride + x * 2 + 1];
78
1.21M
      float r00 = c00 + c01 + c10 + c11;
79
1.21M
      float r01 = c00 + c01 - c10 - c11;
80
1.21M
      float r10 = c00 - c01 + c10 - c11;
81
1.21M
      float r11 = c00 - c01 - c10 + c11;
82
1.21M
      r00 *= 0.25f;
83
1.21M
      r01 *= 0.25f;
84
1.21M
      r10 *= 0.25f;
85
1.21M
      r11 *= 0.25f;
86
1.21M
      temp[y * kBlockDim + x] = r00;
87
1.21M
      temp[y * kBlockDim + num_2x2 + x] = r01;
88
1.21M
      temp[(y + num_2x2) * kBlockDim + x] = r10;
89
1.21M
      temp[(y + num_2x2) * kBlockDim + num_2x2 + x] = r11;
90
1.21M
    }
91
1.21M
  }
92
3.63M
  for (size_t y = 0; y < S; y++) {
93
7.27M
    for (size_t x = 0; x < S; x++) {
94
4.84M
      out[y * kBlockDim + x] = temp[y * kBlockDim + x];
95
4.84M
    }
96
2.42M
  }
97
1.21M
}
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.7M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
96.7M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
96.7M
      {
102
96.7M
          0.2500000000000000,
103
96.7M
          0.8769029297991420f,
104
96.7M
          0.0000000000000000,
105
96.7M
          0.0000000000000000,
106
96.7M
          0.0000000000000000,
107
96.7M
          -0.4105377591765233f,
108
96.7M
          0.0000000000000000,
109
96.7M
          0.0000000000000000,
110
96.7M
          0.0000000000000000,
111
96.7M
          0.0000000000000000,
112
96.7M
          0.0000000000000000,
113
96.7M
          0.0000000000000000,
114
96.7M
          0.0000000000000000,
115
96.7M
          0.0000000000000000,
116
96.7M
          0.0000000000000000,
117
96.7M
          0.0000000000000000,
118
96.7M
      },
119
96.7M
      {
120
96.7M
          0.2500000000000000,
121
96.7M
          0.2206518106944235f,
122
96.7M
          0.0000000000000000,
123
96.7M
          0.0000000000000000,
124
96.7M
          -0.7071067811865474f,
125
96.7M
          0.6235485373547691f,
126
96.7M
          0.0000000000000000,
127
96.7M
          0.0000000000000000,
128
96.7M
          0.0000000000000000,
129
96.7M
          0.0000000000000000,
130
96.7M
          0.0000000000000000,
131
96.7M
          0.0000000000000000,
132
96.7M
          0.0000000000000000,
133
96.7M
          0.0000000000000000,
134
96.7M
          0.0000000000000000,
135
96.7M
          0.0000000000000000,
136
96.7M
      },
137
96.7M
      {
138
96.7M
          0.2500000000000000,
139
96.7M
          -0.1014005039375376f,
140
96.7M
          0.4067007583026075f,
141
96.7M
          -0.2125574805828875f,
142
96.7M
          0.0000000000000000,
143
96.7M
          -0.0643507165794627f,
144
96.7M
          -0.4517556589999482f,
145
96.7M
          -0.3046847507248690f,
146
96.7M
          0.3017929516615495f,
147
96.7M
          0.4082482904638627f,
148
96.7M
          0.1747866975480809f,
149
96.7M
          -0.2110560104933578f,
150
96.7M
          -0.1426608480880726f,
151
96.7M
          -0.1381354035075859f,
152
96.7M
          -0.1743760259965107f,
153
96.7M
          0.1135498731499434f,
154
96.7M
      },
155
96.7M
      {
156
96.7M
          0.2500000000000000,
157
96.7M
          -0.1014005039375375f,
158
96.7M
          0.4444481661973445f,
159
96.7M
          0.3085497062849767f,
160
96.7M
          0.0000000000000000f,
161
96.7M
          -0.0643507165794627f,
162
96.7M
          0.1585450355184006f,
163
96.7M
          0.5112616136591823f,
164
96.7M
          0.2579236279634118f,
165
96.7M
          0.0000000000000000,
166
96.7M
          0.0812611176717539f,
167
96.7M
          0.1856718091610980f,
168
96.7M
          -0.3416446842253372f,
169
96.7M
          0.3302282550303788f,
170
96.7M
          0.0702790691196284f,
171
96.7M
          -0.0741750459581035f,
172
96.7M
      },
173
96.7M
      {
174
96.7M
          0.2500000000000000,
175
96.7M
          0.2206518106944236f,
176
96.7M
          0.0000000000000000,
177
96.7M
          0.0000000000000000,
178
96.7M
          0.7071067811865476f,
179
96.7M
          0.6235485373547694f,
180
96.7M
          0.0000000000000000,
181
96.7M
          0.0000000000000000,
182
96.7M
          0.0000000000000000,
183
96.7M
          0.0000000000000000,
184
96.7M
          0.0000000000000000,
185
96.7M
          0.0000000000000000,
186
96.7M
          0.0000000000000000,
187
96.7M
          0.0000000000000000,
188
96.7M
          0.0000000000000000,
189
96.7M
          0.0000000000000000,
190
96.7M
      },
191
96.7M
      {
192
96.7M
          0.2500000000000000,
193
96.7M
          -0.1014005039375378f,
194
96.7M
          0.0000000000000000,
195
96.7M
          0.4706702258572536f,
196
96.7M
          0.0000000000000000,
197
96.7M
          -0.0643507165794628f,
198
96.7M
          -0.0403851516082220f,
199
96.7M
          0.0000000000000000,
200
96.7M
          0.1627234014286620f,
201
96.7M
          0.0000000000000000,
202
96.7M
          0.0000000000000000,
203
96.7M
          0.0000000000000000,
204
96.7M
          0.7367497537172237f,
205
96.7M
          0.0875511500058708f,
206
96.7M
          -0.2921026642334881f,
207
96.7M
          0.1940289303259434f,
208
96.7M
      },
209
96.7M
      {
210
96.7M
          0.2500000000000000,
211
96.7M
          -0.1014005039375377f,
212
96.7M
          0.1957439937204294f,
213
96.7M
          -0.1621205195722993f,
214
96.7M
          0.0000000000000000,
215
96.7M
          -0.0643507165794628f,
216
96.7M
          0.0074182263792424f,
217
96.7M
          -0.2904801297289980f,
218
96.7M
          0.0952002265347504f,
219
96.7M
          0.0000000000000000,
220
96.7M
          -0.3675398009862027f,
221
96.7M
          0.4921585901373873f,
222
96.7M
          0.2462710772207515f,
223
96.7M
          -0.0794670660590957f,
224
96.7M
          0.3623817333531167f,
225
96.7M
          -0.4351904965232280f,
226
96.7M
      },
227
96.7M
      {
228
96.7M
          0.2500000000000000,
229
96.7M
          -0.1014005039375376f,
230
96.7M
          0.2929100136981264f,
231
96.7M
          0.0000000000000000,
232
96.7M
          0.0000000000000000,
233
96.7M
          -0.0643507165794627f,
234
96.7M
          0.3935103426921017f,
235
96.7M
          -0.0657870154914280f,
236
96.7M
          0.0000000000000000,
237
96.7M
          -0.4082482904638628f,
238
96.7M
          -0.3078822139579090f,
239
96.7M
          -0.3852501370925192f,
240
96.7M
          -0.0857401903551931f,
241
96.7M
          -0.4613374887461511f,
242
96.7M
          0.0000000000000000,
243
96.7M
          0.2191868483885747f,
244
96.7M
      },
245
96.7M
      {
246
96.7M
          0.2500000000000000,
247
96.7M
          -0.1014005039375376f,
248
96.7M
          -0.4067007583026072f,
249
96.7M
          -0.2125574805828705f,
250
96.7M
          0.0000000000000000,
251
96.7M
          -0.0643507165794627f,
252
96.7M
          -0.4517556589999464f,
253
96.7M
          0.3046847507248840f,
254
96.7M
          0.3017929516615503f,
255
96.7M
          -0.4082482904638635f,
256
96.7M
          -0.1747866975480813f,
257
96.7M
          0.2110560104933581f,
258
96.7M
          -0.1426608480880734f,
259
96.7M
          -0.1381354035075829f,
260
96.7M
          -0.1743760259965108f,
261
96.7M
          0.1135498731499426f,
262
96.7M
      },
263
96.7M
      {
264
96.7M
          0.2500000000000000,
265
96.7M
          -0.1014005039375377f,
266
96.7M
          -0.1957439937204287f,
267
96.7M
          -0.1621205195722833f,
268
96.7M
          0.0000000000000000,
269
96.7M
          -0.0643507165794628f,
270
96.7M
          0.0074182263792444f,
271
96.7M
          0.2904801297290076f,
272
96.7M
          0.0952002265347505f,
273
96.7M
          0.0000000000000000,
274
96.7M
          0.3675398009862011f,
275
96.7M
          -0.4921585901373891f,
276
96.7M
          0.2462710772207514f,
277
96.7M
          -0.0794670660591026f,
278
96.7M
          0.3623817333531165f,
279
96.7M
          -0.4351904965232251f,
280
96.7M
      },
281
96.7M
      {
282
96.7M
          0.2500000000000000,
283
96.7M
          -0.1014005039375375f,
284
96.7M
          0.0000000000000000,
285
96.7M
          -0.4706702258572528f,
286
96.7M
          0.0000000000000000,
287
96.7M
          -0.0643507165794627f,
288
96.7M
          0.1107416575309343f,
289
96.7M
          0.0000000000000000,
290
96.7M
          -0.1627234014286617f,
291
96.7M
          0.0000000000000000,
292
96.7M
          0.0000000000000000,
293
96.7M
          0.0000000000000000,
294
96.7M
          0.1488339922711357f,
295
96.7M
          0.4972464710953509f,
296
96.7M
          0.2921026642334879f,
297
96.7M
          0.5550443808910661f,
298
96.7M
      },
299
96.7M
      {
300
96.7M
          0.2500000000000000,
301
96.7M
          -0.1014005039375377f,
302
96.7M
          0.1137907446044809f,
303
96.7M
          -0.1464291867126764f,
304
96.7M
          0.0000000000000000,
305
96.7M
          -0.0643507165794628f,
306
96.7M
          0.0829816309488205f,
307
96.7M
          -0.2388977352334460f,
308
96.7M
          -0.3531238544981630f,
309
96.7M
          -0.4082482904638630f,
310
96.7M
          0.4826689115059883f,
311
96.7M
          0.1741941265991622f,
312
96.7M
          -0.0476868035022925f,
313
96.7M
          0.1253805944856366f,
314
96.7M
          -0.4326608024727445f,
315
96.7M
          -0.2546827712406646f,
316
96.7M
      },
317
96.7M
      {
318
96.7M
          0.2500000000000000,
319
96.7M
          -0.1014005039375377f,
320
96.7M
          -0.4444481661973438f,
321
96.7M
          0.3085497062849487f,
322
96.7M
          0.0000000000000000,
323
96.7M
          -0.0643507165794628f,
324
96.7M
          0.1585450355183970f,
325
96.7M
          -0.5112616136592012f,
326
96.7M
          0.2579236279634129f,
327
96.7M
          0.0000000000000000,
328
96.7M
          -0.0812611176717504f,
329
96.7M
          -0.1856718091610990f,
330
96.7M
          -0.3416446842253373f,
331
96.7M
          0.3302282550303805f,
332
96.7M
          0.0702790691196282f,
333
96.7M
          -0.0741750459581023f,
334
96.7M
      },
335
96.7M
      {
336
96.7M
          0.2500000000000000,
337
96.7M
          -0.1014005039375376f,
338
96.7M
          -0.2929100136981264f,
339
96.7M
          0.0000000000000000,
340
96.7M
          0.0000000000000000,
341
96.7M
          -0.0643507165794627f,
342
96.7M
          0.3935103426921022f,
343
96.7M
          0.0657870154914254f,
344
96.7M
          0.0000000000000000,
345
96.7M
          0.4082482904638634f,
346
96.7M
          0.3078822139579031f,
347
96.7M
          0.3852501370925211f,
348
96.7M
          -0.0857401903551927f,
349
96.7M
          -0.4613374887461554f,
350
96.7M
          0.0000000000000000,
351
96.7M
          0.2191868483885728f,
352
96.7M
      },
353
96.7M
      {
354
96.7M
          0.2500000000000000,
355
96.7M
          -0.1014005039375376f,
356
96.7M
          -0.1137907446044814f,
357
96.7M
          -0.1464291867126654f,
358
96.7M
          0.0000000000000000,
359
96.7M
          -0.0643507165794627f,
360
96.7M
          0.0829816309488214f,
361
96.7M
          0.2388977352334547f,
362
96.7M
          -0.3531238544981624f,
363
96.7M
          0.4082482904638630f,
364
96.7M
          -0.4826689115059858f,
365
96.7M
          -0.1741941265991621f,
366
96.7M
          -0.0476868035022928f,
367
96.7M
          0.1253805944856431f,
368
96.7M
          -0.4326608024727457f,
369
96.7M
          -0.2546827712406641f,
370
96.7M
      },
371
96.7M
      {
372
96.7M
          0.2500000000000000,
373
96.7M
          -0.1014005039375374f,
374
96.7M
          0.0000000000000000,
375
96.7M
          0.4251149611657548f,
376
96.7M
          0.0000000000000000,
377
96.7M
          -0.0643507165794626f,
378
96.7M
          -0.4517556589999480f,
379
96.7M
          0.0000000000000000,
380
96.7M
          -0.6035859033230976f,
381
96.7M
          0.0000000000000000,
382
96.7M
          0.0000000000000000,
383
96.7M
          0.0000000000000000,
384
96.7M
          -0.1426608480880724f,
385
96.7M
          -0.1381354035075845f,
386
96.7M
          0.3487520519930227f,
387
96.7M
          0.1135498731499429f,
388
96.7M
      },
389
96.7M
  };
390
391
96.7M
  const HWY_CAPPED(float, 16) d;
392
290M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
193M
    auto scalar = Zero(d);
394
3.28G
    for (size_t j = 0; j < 16; j++) {
395
3.09G
      auto px = Set(d, pixels[j]);
396
3.09G
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
3.09G
      scalar = MulAdd(px, basis, scalar);
398
3.09G
    }
399
193M
    Store(scalar, d, coeffs + i);
400
193M
  }
401
96.7M
}
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.19M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
2.19M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
2.19M
      {
102
2.19M
          0.2500000000000000,
103
2.19M
          0.8769029297991420f,
104
2.19M
          0.0000000000000000,
105
2.19M
          0.0000000000000000,
106
2.19M
          0.0000000000000000,
107
2.19M
          -0.4105377591765233f,
108
2.19M
          0.0000000000000000,
109
2.19M
          0.0000000000000000,
110
2.19M
          0.0000000000000000,
111
2.19M
          0.0000000000000000,
112
2.19M
          0.0000000000000000,
113
2.19M
          0.0000000000000000,
114
2.19M
          0.0000000000000000,
115
2.19M
          0.0000000000000000,
116
2.19M
          0.0000000000000000,
117
2.19M
          0.0000000000000000,
118
2.19M
      },
119
2.19M
      {
120
2.19M
          0.2500000000000000,
121
2.19M
          0.2206518106944235f,
122
2.19M
          0.0000000000000000,
123
2.19M
          0.0000000000000000,
124
2.19M
          -0.7071067811865474f,
125
2.19M
          0.6235485373547691f,
126
2.19M
          0.0000000000000000,
127
2.19M
          0.0000000000000000,
128
2.19M
          0.0000000000000000,
129
2.19M
          0.0000000000000000,
130
2.19M
          0.0000000000000000,
131
2.19M
          0.0000000000000000,
132
2.19M
          0.0000000000000000,
133
2.19M
          0.0000000000000000,
134
2.19M
          0.0000000000000000,
135
2.19M
          0.0000000000000000,
136
2.19M
      },
137
2.19M
      {
138
2.19M
          0.2500000000000000,
139
2.19M
          -0.1014005039375376f,
140
2.19M
          0.4067007583026075f,
141
2.19M
          -0.2125574805828875f,
142
2.19M
          0.0000000000000000,
143
2.19M
          -0.0643507165794627f,
144
2.19M
          -0.4517556589999482f,
145
2.19M
          -0.3046847507248690f,
146
2.19M
          0.3017929516615495f,
147
2.19M
          0.4082482904638627f,
148
2.19M
          0.1747866975480809f,
149
2.19M
          -0.2110560104933578f,
150
2.19M
          -0.1426608480880726f,
151
2.19M
          -0.1381354035075859f,
152
2.19M
          -0.1743760259965107f,
153
2.19M
          0.1135498731499434f,
154
2.19M
      },
155
2.19M
      {
156
2.19M
          0.2500000000000000,
157
2.19M
          -0.1014005039375375f,
158
2.19M
          0.4444481661973445f,
159
2.19M
          0.3085497062849767f,
160
2.19M
          0.0000000000000000f,
161
2.19M
          -0.0643507165794627f,
162
2.19M
          0.1585450355184006f,
163
2.19M
          0.5112616136591823f,
164
2.19M
          0.2579236279634118f,
165
2.19M
          0.0000000000000000,
166
2.19M
          0.0812611176717539f,
167
2.19M
          0.1856718091610980f,
168
2.19M
          -0.3416446842253372f,
169
2.19M
          0.3302282550303788f,
170
2.19M
          0.0702790691196284f,
171
2.19M
          -0.0741750459581035f,
172
2.19M
      },
173
2.19M
      {
174
2.19M
          0.2500000000000000,
175
2.19M
          0.2206518106944236f,
176
2.19M
          0.0000000000000000,
177
2.19M
          0.0000000000000000,
178
2.19M
          0.7071067811865476f,
179
2.19M
          0.6235485373547694f,
180
2.19M
          0.0000000000000000,
181
2.19M
          0.0000000000000000,
182
2.19M
          0.0000000000000000,
183
2.19M
          0.0000000000000000,
184
2.19M
          0.0000000000000000,
185
2.19M
          0.0000000000000000,
186
2.19M
          0.0000000000000000,
187
2.19M
          0.0000000000000000,
188
2.19M
          0.0000000000000000,
189
2.19M
          0.0000000000000000,
190
2.19M
      },
191
2.19M
      {
192
2.19M
          0.2500000000000000,
193
2.19M
          -0.1014005039375378f,
194
2.19M
          0.0000000000000000,
195
2.19M
          0.4706702258572536f,
196
2.19M
          0.0000000000000000,
197
2.19M
          -0.0643507165794628f,
198
2.19M
          -0.0403851516082220f,
199
2.19M
          0.0000000000000000,
200
2.19M
          0.1627234014286620f,
201
2.19M
          0.0000000000000000,
202
2.19M
          0.0000000000000000,
203
2.19M
          0.0000000000000000,
204
2.19M
          0.7367497537172237f,
205
2.19M
          0.0875511500058708f,
206
2.19M
          -0.2921026642334881f,
207
2.19M
          0.1940289303259434f,
208
2.19M
      },
209
2.19M
      {
210
2.19M
          0.2500000000000000,
211
2.19M
          -0.1014005039375377f,
212
2.19M
          0.1957439937204294f,
213
2.19M
          -0.1621205195722993f,
214
2.19M
          0.0000000000000000,
215
2.19M
          -0.0643507165794628f,
216
2.19M
          0.0074182263792424f,
217
2.19M
          -0.2904801297289980f,
218
2.19M
          0.0952002265347504f,
219
2.19M
          0.0000000000000000,
220
2.19M
          -0.3675398009862027f,
221
2.19M
          0.4921585901373873f,
222
2.19M
          0.2462710772207515f,
223
2.19M
          -0.0794670660590957f,
224
2.19M
          0.3623817333531167f,
225
2.19M
          -0.4351904965232280f,
226
2.19M
      },
227
2.19M
      {
228
2.19M
          0.2500000000000000,
229
2.19M
          -0.1014005039375376f,
230
2.19M
          0.2929100136981264f,
231
2.19M
          0.0000000000000000,
232
2.19M
          0.0000000000000000,
233
2.19M
          -0.0643507165794627f,
234
2.19M
          0.3935103426921017f,
235
2.19M
          -0.0657870154914280f,
236
2.19M
          0.0000000000000000,
237
2.19M
          -0.4082482904638628f,
238
2.19M
          -0.3078822139579090f,
239
2.19M
          -0.3852501370925192f,
240
2.19M
          -0.0857401903551931f,
241
2.19M
          -0.4613374887461511f,
242
2.19M
          0.0000000000000000,
243
2.19M
          0.2191868483885747f,
244
2.19M
      },
245
2.19M
      {
246
2.19M
          0.2500000000000000,
247
2.19M
          -0.1014005039375376f,
248
2.19M
          -0.4067007583026072f,
249
2.19M
          -0.2125574805828705f,
250
2.19M
          0.0000000000000000,
251
2.19M
          -0.0643507165794627f,
252
2.19M
          -0.4517556589999464f,
253
2.19M
          0.3046847507248840f,
254
2.19M
          0.3017929516615503f,
255
2.19M
          -0.4082482904638635f,
256
2.19M
          -0.1747866975480813f,
257
2.19M
          0.2110560104933581f,
258
2.19M
          -0.1426608480880734f,
259
2.19M
          -0.1381354035075829f,
260
2.19M
          -0.1743760259965108f,
261
2.19M
          0.1135498731499426f,
262
2.19M
      },
263
2.19M
      {
264
2.19M
          0.2500000000000000,
265
2.19M
          -0.1014005039375377f,
266
2.19M
          -0.1957439937204287f,
267
2.19M
          -0.1621205195722833f,
268
2.19M
          0.0000000000000000,
269
2.19M
          -0.0643507165794628f,
270
2.19M
          0.0074182263792444f,
271
2.19M
          0.2904801297290076f,
272
2.19M
          0.0952002265347505f,
273
2.19M
          0.0000000000000000,
274
2.19M
          0.3675398009862011f,
275
2.19M
          -0.4921585901373891f,
276
2.19M
          0.2462710772207514f,
277
2.19M
          -0.0794670660591026f,
278
2.19M
          0.3623817333531165f,
279
2.19M
          -0.4351904965232251f,
280
2.19M
      },
281
2.19M
      {
282
2.19M
          0.2500000000000000,
283
2.19M
          -0.1014005039375375f,
284
2.19M
          0.0000000000000000,
285
2.19M
          -0.4706702258572528f,
286
2.19M
          0.0000000000000000,
287
2.19M
          -0.0643507165794627f,
288
2.19M
          0.1107416575309343f,
289
2.19M
          0.0000000000000000,
290
2.19M
          -0.1627234014286617f,
291
2.19M
          0.0000000000000000,
292
2.19M
          0.0000000000000000,
293
2.19M
          0.0000000000000000,
294
2.19M
          0.1488339922711357f,
295
2.19M
          0.4972464710953509f,
296
2.19M
          0.2921026642334879f,
297
2.19M
          0.5550443808910661f,
298
2.19M
      },
299
2.19M
      {
300
2.19M
          0.2500000000000000,
301
2.19M
          -0.1014005039375377f,
302
2.19M
          0.1137907446044809f,
303
2.19M
          -0.1464291867126764f,
304
2.19M
          0.0000000000000000,
305
2.19M
          -0.0643507165794628f,
306
2.19M
          0.0829816309488205f,
307
2.19M
          -0.2388977352334460f,
308
2.19M
          -0.3531238544981630f,
309
2.19M
          -0.4082482904638630f,
310
2.19M
          0.4826689115059883f,
311
2.19M
          0.1741941265991622f,
312
2.19M
          -0.0476868035022925f,
313
2.19M
          0.1253805944856366f,
314
2.19M
          -0.4326608024727445f,
315
2.19M
          -0.2546827712406646f,
316
2.19M
      },
317
2.19M
      {
318
2.19M
          0.2500000000000000,
319
2.19M
          -0.1014005039375377f,
320
2.19M
          -0.4444481661973438f,
321
2.19M
          0.3085497062849487f,
322
2.19M
          0.0000000000000000,
323
2.19M
          -0.0643507165794628f,
324
2.19M
          0.1585450355183970f,
325
2.19M
          -0.5112616136592012f,
326
2.19M
          0.2579236279634129f,
327
2.19M
          0.0000000000000000,
328
2.19M
          -0.0812611176717504f,
329
2.19M
          -0.1856718091610990f,
330
2.19M
          -0.3416446842253373f,
331
2.19M
          0.3302282550303805f,
332
2.19M
          0.0702790691196282f,
333
2.19M
          -0.0741750459581023f,
334
2.19M
      },
335
2.19M
      {
336
2.19M
          0.2500000000000000,
337
2.19M
          -0.1014005039375376f,
338
2.19M
          -0.2929100136981264f,
339
2.19M
          0.0000000000000000,
340
2.19M
          0.0000000000000000,
341
2.19M
          -0.0643507165794627f,
342
2.19M
          0.3935103426921022f,
343
2.19M
          0.0657870154914254f,
344
2.19M
          0.0000000000000000,
345
2.19M
          0.4082482904638634f,
346
2.19M
          0.3078822139579031f,
347
2.19M
          0.3852501370925211f,
348
2.19M
          -0.0857401903551927f,
349
2.19M
          -0.4613374887461554f,
350
2.19M
          0.0000000000000000,
351
2.19M
          0.2191868483885728f,
352
2.19M
      },
353
2.19M
      {
354
2.19M
          0.2500000000000000,
355
2.19M
          -0.1014005039375376f,
356
2.19M
          -0.1137907446044814f,
357
2.19M
          -0.1464291867126654f,
358
2.19M
          0.0000000000000000,
359
2.19M
          -0.0643507165794627f,
360
2.19M
          0.0829816309488214f,
361
2.19M
          0.2388977352334547f,
362
2.19M
          -0.3531238544981624f,
363
2.19M
          0.4082482904638630f,
364
2.19M
          -0.4826689115059858f,
365
2.19M
          -0.1741941265991621f,
366
2.19M
          -0.0476868035022928f,
367
2.19M
          0.1253805944856431f,
368
2.19M
          -0.4326608024727457f,
369
2.19M
          -0.2546827712406641f,
370
2.19M
      },
371
2.19M
      {
372
2.19M
          0.2500000000000000,
373
2.19M
          -0.1014005039375374f,
374
2.19M
          0.0000000000000000,
375
2.19M
          0.4251149611657548f,
376
2.19M
          0.0000000000000000,
377
2.19M
          -0.0643507165794626f,
378
2.19M
          -0.4517556589999480f,
379
2.19M
          0.0000000000000000,
380
2.19M
          -0.6035859033230976f,
381
2.19M
          0.0000000000000000,
382
2.19M
          0.0000000000000000,
383
2.19M
          0.0000000000000000,
384
2.19M
          -0.1426608480880724f,
385
2.19M
          -0.1381354035075845f,
386
2.19M
          0.3487520519930227f,
387
2.19M
          0.1135498731499429f,
388
2.19M
      },
389
2.19M
  };
390
391
2.19M
  const HWY_CAPPED(float, 16) d;
392
6.59M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
4.39M
    auto scalar = Zero(d);
394
74.7M
    for (size_t j = 0; j < 16; j++) {
395
70.3M
      auto px = Set(d, pixels[j]);
396
70.3M
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
70.3M
      scalar = MulAdd(px, basis, scalar);
398
70.3M
    }
399
4.39M
    Store(scalar, d, coeffs + i);
400
4.39M
  }
401
2.19M
}
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
92.3M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
92.3M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
92.3M
      {
102
92.3M
          0.2500000000000000,
103
92.3M
          0.8769029297991420f,
104
92.3M
          0.0000000000000000,
105
92.3M
          0.0000000000000000,
106
92.3M
          0.0000000000000000,
107
92.3M
          -0.4105377591765233f,
108
92.3M
          0.0000000000000000,
109
92.3M
          0.0000000000000000,
110
92.3M
          0.0000000000000000,
111
92.3M
          0.0000000000000000,
112
92.3M
          0.0000000000000000,
113
92.3M
          0.0000000000000000,
114
92.3M
          0.0000000000000000,
115
92.3M
          0.0000000000000000,
116
92.3M
          0.0000000000000000,
117
92.3M
          0.0000000000000000,
118
92.3M
      },
119
92.3M
      {
120
92.3M
          0.2500000000000000,
121
92.3M
          0.2206518106944235f,
122
92.3M
          0.0000000000000000,
123
92.3M
          0.0000000000000000,
124
92.3M
          -0.7071067811865474f,
125
92.3M
          0.6235485373547691f,
126
92.3M
          0.0000000000000000,
127
92.3M
          0.0000000000000000,
128
92.3M
          0.0000000000000000,
129
92.3M
          0.0000000000000000,
130
92.3M
          0.0000000000000000,
131
92.3M
          0.0000000000000000,
132
92.3M
          0.0000000000000000,
133
92.3M
          0.0000000000000000,
134
92.3M
          0.0000000000000000,
135
92.3M
          0.0000000000000000,
136
92.3M
      },
137
92.3M
      {
138
92.3M
          0.2500000000000000,
139
92.3M
          -0.1014005039375376f,
140
92.3M
          0.4067007583026075f,
141
92.3M
          -0.2125574805828875f,
142
92.3M
          0.0000000000000000,
143
92.3M
          -0.0643507165794627f,
144
92.3M
          -0.4517556589999482f,
145
92.3M
          -0.3046847507248690f,
146
92.3M
          0.3017929516615495f,
147
92.3M
          0.4082482904638627f,
148
92.3M
          0.1747866975480809f,
149
92.3M
          -0.2110560104933578f,
150
92.3M
          -0.1426608480880726f,
151
92.3M
          -0.1381354035075859f,
152
92.3M
          -0.1743760259965107f,
153
92.3M
          0.1135498731499434f,
154
92.3M
      },
155
92.3M
      {
156
92.3M
          0.2500000000000000,
157
92.3M
          -0.1014005039375375f,
158
92.3M
          0.4444481661973445f,
159
92.3M
          0.3085497062849767f,
160
92.3M
          0.0000000000000000f,
161
92.3M
          -0.0643507165794627f,
162
92.3M
          0.1585450355184006f,
163
92.3M
          0.5112616136591823f,
164
92.3M
          0.2579236279634118f,
165
92.3M
          0.0000000000000000,
166
92.3M
          0.0812611176717539f,
167
92.3M
          0.1856718091610980f,
168
92.3M
          -0.3416446842253372f,
169
92.3M
          0.3302282550303788f,
170
92.3M
          0.0702790691196284f,
171
92.3M
          -0.0741750459581035f,
172
92.3M
      },
173
92.3M
      {
174
92.3M
          0.2500000000000000,
175
92.3M
          0.2206518106944236f,
176
92.3M
          0.0000000000000000,
177
92.3M
          0.0000000000000000,
178
92.3M
          0.7071067811865476f,
179
92.3M
          0.6235485373547694f,
180
92.3M
          0.0000000000000000,
181
92.3M
          0.0000000000000000,
182
92.3M
          0.0000000000000000,
183
92.3M
          0.0000000000000000,
184
92.3M
          0.0000000000000000,
185
92.3M
          0.0000000000000000,
186
92.3M
          0.0000000000000000,
187
92.3M
          0.0000000000000000,
188
92.3M
          0.0000000000000000,
189
92.3M
          0.0000000000000000,
190
92.3M
      },
191
92.3M
      {
192
92.3M
          0.2500000000000000,
193
92.3M
          -0.1014005039375378f,
194
92.3M
          0.0000000000000000,
195
92.3M
          0.4706702258572536f,
196
92.3M
          0.0000000000000000,
197
92.3M
          -0.0643507165794628f,
198
92.3M
          -0.0403851516082220f,
199
92.3M
          0.0000000000000000,
200
92.3M
          0.1627234014286620f,
201
92.3M
          0.0000000000000000,
202
92.3M
          0.0000000000000000,
203
92.3M
          0.0000000000000000,
204
92.3M
          0.7367497537172237f,
205
92.3M
          0.0875511500058708f,
206
92.3M
          -0.2921026642334881f,
207
92.3M
          0.1940289303259434f,
208
92.3M
      },
209
92.3M
      {
210
92.3M
          0.2500000000000000,
211
92.3M
          -0.1014005039375377f,
212
92.3M
          0.1957439937204294f,
213
92.3M
          -0.1621205195722993f,
214
92.3M
          0.0000000000000000,
215
92.3M
          -0.0643507165794628f,
216
92.3M
          0.0074182263792424f,
217
92.3M
          -0.2904801297289980f,
218
92.3M
          0.0952002265347504f,
219
92.3M
          0.0000000000000000,
220
92.3M
          -0.3675398009862027f,
221
92.3M
          0.4921585901373873f,
222
92.3M
          0.2462710772207515f,
223
92.3M
          -0.0794670660590957f,
224
92.3M
          0.3623817333531167f,
225
92.3M
          -0.4351904965232280f,
226
92.3M
      },
227
92.3M
      {
228
92.3M
          0.2500000000000000,
229
92.3M
          -0.1014005039375376f,
230
92.3M
          0.2929100136981264f,
231
92.3M
          0.0000000000000000,
232
92.3M
          0.0000000000000000,
233
92.3M
          -0.0643507165794627f,
234
92.3M
          0.3935103426921017f,
235
92.3M
          -0.0657870154914280f,
236
92.3M
          0.0000000000000000,
237
92.3M
          -0.4082482904638628f,
238
92.3M
          -0.3078822139579090f,
239
92.3M
          -0.3852501370925192f,
240
92.3M
          -0.0857401903551931f,
241
92.3M
          -0.4613374887461511f,
242
92.3M
          0.0000000000000000,
243
92.3M
          0.2191868483885747f,
244
92.3M
      },
245
92.3M
      {
246
92.3M
          0.2500000000000000,
247
92.3M
          -0.1014005039375376f,
248
92.3M
          -0.4067007583026072f,
249
92.3M
          -0.2125574805828705f,
250
92.3M
          0.0000000000000000,
251
92.3M
          -0.0643507165794627f,
252
92.3M
          -0.4517556589999464f,
253
92.3M
          0.3046847507248840f,
254
92.3M
          0.3017929516615503f,
255
92.3M
          -0.4082482904638635f,
256
92.3M
          -0.1747866975480813f,
257
92.3M
          0.2110560104933581f,
258
92.3M
          -0.1426608480880734f,
259
92.3M
          -0.1381354035075829f,
260
92.3M
          -0.1743760259965108f,
261
92.3M
          0.1135498731499426f,
262
92.3M
      },
263
92.3M
      {
264
92.3M
          0.2500000000000000,
265
92.3M
          -0.1014005039375377f,
266
92.3M
          -0.1957439937204287f,
267
92.3M
          -0.1621205195722833f,
268
92.3M
          0.0000000000000000,
269
92.3M
          -0.0643507165794628f,
270
92.3M
          0.0074182263792444f,
271
92.3M
          0.2904801297290076f,
272
92.3M
          0.0952002265347505f,
273
92.3M
          0.0000000000000000,
274
92.3M
          0.3675398009862011f,
275
92.3M
          -0.4921585901373891f,
276
92.3M
          0.2462710772207514f,
277
92.3M
          -0.0794670660591026f,
278
92.3M
          0.3623817333531165f,
279
92.3M
          -0.4351904965232251f,
280
92.3M
      },
281
92.3M
      {
282
92.3M
          0.2500000000000000,
283
92.3M
          -0.1014005039375375f,
284
92.3M
          0.0000000000000000,
285
92.3M
          -0.4706702258572528f,
286
92.3M
          0.0000000000000000,
287
92.3M
          -0.0643507165794627f,
288
92.3M
          0.1107416575309343f,
289
92.3M
          0.0000000000000000,
290
92.3M
          -0.1627234014286617f,
291
92.3M
          0.0000000000000000,
292
92.3M
          0.0000000000000000,
293
92.3M
          0.0000000000000000,
294
92.3M
          0.1488339922711357f,
295
92.3M
          0.4972464710953509f,
296
92.3M
          0.2921026642334879f,
297
92.3M
          0.5550443808910661f,
298
92.3M
      },
299
92.3M
      {
300
92.3M
          0.2500000000000000,
301
92.3M
          -0.1014005039375377f,
302
92.3M
          0.1137907446044809f,
303
92.3M
          -0.1464291867126764f,
304
92.3M
          0.0000000000000000,
305
92.3M
          -0.0643507165794628f,
306
92.3M
          0.0829816309488205f,
307
92.3M
          -0.2388977352334460f,
308
92.3M
          -0.3531238544981630f,
309
92.3M
          -0.4082482904638630f,
310
92.3M
          0.4826689115059883f,
311
92.3M
          0.1741941265991622f,
312
92.3M
          -0.0476868035022925f,
313
92.3M
          0.1253805944856366f,
314
92.3M
          -0.4326608024727445f,
315
92.3M
          -0.2546827712406646f,
316
92.3M
      },
317
92.3M
      {
318
92.3M
          0.2500000000000000,
319
92.3M
          -0.1014005039375377f,
320
92.3M
          -0.4444481661973438f,
321
92.3M
          0.3085497062849487f,
322
92.3M
          0.0000000000000000,
323
92.3M
          -0.0643507165794628f,
324
92.3M
          0.1585450355183970f,
325
92.3M
          -0.5112616136592012f,
326
92.3M
          0.2579236279634129f,
327
92.3M
          0.0000000000000000,
328
92.3M
          -0.0812611176717504f,
329
92.3M
          -0.1856718091610990f,
330
92.3M
          -0.3416446842253373f,
331
92.3M
          0.3302282550303805f,
332
92.3M
          0.0702790691196282f,
333
92.3M
          -0.0741750459581023f,
334
92.3M
      },
335
92.3M
      {
336
92.3M
          0.2500000000000000,
337
92.3M
          -0.1014005039375376f,
338
92.3M
          -0.2929100136981264f,
339
92.3M
          0.0000000000000000,
340
92.3M
          0.0000000000000000,
341
92.3M
          -0.0643507165794627f,
342
92.3M
          0.3935103426921022f,
343
92.3M
          0.0657870154914254f,
344
92.3M
          0.0000000000000000,
345
92.3M
          0.4082482904638634f,
346
92.3M
          0.3078822139579031f,
347
92.3M
          0.3852501370925211f,
348
92.3M
          -0.0857401903551927f,
349
92.3M
          -0.4613374887461554f,
350
92.3M
          0.0000000000000000,
351
92.3M
          0.2191868483885728f,
352
92.3M
      },
353
92.3M
      {
354
92.3M
          0.2500000000000000,
355
92.3M
          -0.1014005039375376f,
356
92.3M
          -0.1137907446044814f,
357
92.3M
          -0.1464291867126654f,
358
92.3M
          0.0000000000000000,
359
92.3M
          -0.0643507165794627f,
360
92.3M
          0.0829816309488214f,
361
92.3M
          0.2388977352334547f,
362
92.3M
          -0.3531238544981624f,
363
92.3M
          0.4082482904638630f,
364
92.3M
          -0.4826689115059858f,
365
92.3M
          -0.1741941265991621f,
366
92.3M
          -0.0476868035022928f,
367
92.3M
          0.1253805944856431f,
368
92.3M
          -0.4326608024727457f,
369
92.3M
          -0.2546827712406641f,
370
92.3M
      },
371
92.3M
      {
372
92.3M
          0.2500000000000000,
373
92.3M
          -0.1014005039375374f,
374
92.3M
          0.0000000000000000,
375
92.3M
          0.4251149611657548f,
376
92.3M
          0.0000000000000000,
377
92.3M
          -0.0643507165794626f,
378
92.3M
          -0.4517556589999480f,
379
92.3M
          0.0000000000000000,
380
92.3M
          -0.6035859033230976f,
381
92.3M
          0.0000000000000000,
382
92.3M
          0.0000000000000000,
383
92.3M
          0.0000000000000000,
384
92.3M
          -0.1426608480880724f,
385
92.3M
          -0.1381354035075845f,
386
92.3M
          0.3487520519930227f,
387
92.3M
          0.1135498731499429f,
388
92.3M
      },
389
92.3M
  };
390
391
92.3M
  const HWY_CAPPED(float, 16) d;
392
276M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
184M
    auto scalar = Zero(d);
394
3.13G
    for (size_t j = 0; j < 16; j++) {
395
2.95G
      auto px = Set(d, pixels[j]);
396
2.95G
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
2.95G
      scalar = MulAdd(px, basis, scalar);
398
2.95G
    }
399
184M
    Store(scalar, d, coeffs + i);
400
184M
  }
401
92.3M
}
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.19M
void AFVDCT4x4(const float* JXL_RESTRICT pixels, float* JXL_RESTRICT coeffs) {
100
2.19M
  HWY_ALIGN static constexpr float k4x4AFVBasisTranspose[16][16] = {
101
2.19M
      {
102
2.19M
          0.2500000000000000,
103
2.19M
          0.8769029297991420f,
104
2.19M
          0.0000000000000000,
105
2.19M
          0.0000000000000000,
106
2.19M
          0.0000000000000000,
107
2.19M
          -0.4105377591765233f,
108
2.19M
          0.0000000000000000,
109
2.19M
          0.0000000000000000,
110
2.19M
          0.0000000000000000,
111
2.19M
          0.0000000000000000,
112
2.19M
          0.0000000000000000,
113
2.19M
          0.0000000000000000,
114
2.19M
          0.0000000000000000,
115
2.19M
          0.0000000000000000,
116
2.19M
          0.0000000000000000,
117
2.19M
          0.0000000000000000,
118
2.19M
      },
119
2.19M
      {
120
2.19M
          0.2500000000000000,
121
2.19M
          0.2206518106944235f,
122
2.19M
          0.0000000000000000,
123
2.19M
          0.0000000000000000,
124
2.19M
          -0.7071067811865474f,
125
2.19M
          0.6235485373547691f,
126
2.19M
          0.0000000000000000,
127
2.19M
          0.0000000000000000,
128
2.19M
          0.0000000000000000,
129
2.19M
          0.0000000000000000,
130
2.19M
          0.0000000000000000,
131
2.19M
          0.0000000000000000,
132
2.19M
          0.0000000000000000,
133
2.19M
          0.0000000000000000,
134
2.19M
          0.0000000000000000,
135
2.19M
          0.0000000000000000,
136
2.19M
      },
137
2.19M
      {
138
2.19M
          0.2500000000000000,
139
2.19M
          -0.1014005039375376f,
140
2.19M
          0.4067007583026075f,
141
2.19M
          -0.2125574805828875f,
142
2.19M
          0.0000000000000000,
143
2.19M
          -0.0643507165794627f,
144
2.19M
          -0.4517556589999482f,
145
2.19M
          -0.3046847507248690f,
146
2.19M
          0.3017929516615495f,
147
2.19M
          0.4082482904638627f,
148
2.19M
          0.1747866975480809f,
149
2.19M
          -0.2110560104933578f,
150
2.19M
          -0.1426608480880726f,
151
2.19M
          -0.1381354035075859f,
152
2.19M
          -0.1743760259965107f,
153
2.19M
          0.1135498731499434f,
154
2.19M
      },
155
2.19M
      {
156
2.19M
          0.2500000000000000,
157
2.19M
          -0.1014005039375375f,
158
2.19M
          0.4444481661973445f,
159
2.19M
          0.3085497062849767f,
160
2.19M
          0.0000000000000000f,
161
2.19M
          -0.0643507165794627f,
162
2.19M
          0.1585450355184006f,
163
2.19M
          0.5112616136591823f,
164
2.19M
          0.2579236279634118f,
165
2.19M
          0.0000000000000000,
166
2.19M
          0.0812611176717539f,
167
2.19M
          0.1856718091610980f,
168
2.19M
          -0.3416446842253372f,
169
2.19M
          0.3302282550303788f,
170
2.19M
          0.0702790691196284f,
171
2.19M
          -0.0741750459581035f,
172
2.19M
      },
173
2.19M
      {
174
2.19M
          0.2500000000000000,
175
2.19M
          0.2206518106944236f,
176
2.19M
          0.0000000000000000,
177
2.19M
          0.0000000000000000,
178
2.19M
          0.7071067811865476f,
179
2.19M
          0.6235485373547694f,
180
2.19M
          0.0000000000000000,
181
2.19M
          0.0000000000000000,
182
2.19M
          0.0000000000000000,
183
2.19M
          0.0000000000000000,
184
2.19M
          0.0000000000000000,
185
2.19M
          0.0000000000000000,
186
2.19M
          0.0000000000000000,
187
2.19M
          0.0000000000000000,
188
2.19M
          0.0000000000000000,
189
2.19M
          0.0000000000000000,
190
2.19M
      },
191
2.19M
      {
192
2.19M
          0.2500000000000000,
193
2.19M
          -0.1014005039375378f,
194
2.19M
          0.0000000000000000,
195
2.19M
          0.4706702258572536f,
196
2.19M
          0.0000000000000000,
197
2.19M
          -0.0643507165794628f,
198
2.19M
          -0.0403851516082220f,
199
2.19M
          0.0000000000000000,
200
2.19M
          0.1627234014286620f,
201
2.19M
          0.0000000000000000,
202
2.19M
          0.0000000000000000,
203
2.19M
          0.0000000000000000,
204
2.19M
          0.7367497537172237f,
205
2.19M
          0.0875511500058708f,
206
2.19M
          -0.2921026642334881f,
207
2.19M
          0.1940289303259434f,
208
2.19M
      },
209
2.19M
      {
210
2.19M
          0.2500000000000000,
211
2.19M
          -0.1014005039375377f,
212
2.19M
          0.1957439937204294f,
213
2.19M
          -0.1621205195722993f,
214
2.19M
          0.0000000000000000,
215
2.19M
          -0.0643507165794628f,
216
2.19M
          0.0074182263792424f,
217
2.19M
          -0.2904801297289980f,
218
2.19M
          0.0952002265347504f,
219
2.19M
          0.0000000000000000,
220
2.19M
          -0.3675398009862027f,
221
2.19M
          0.4921585901373873f,
222
2.19M
          0.2462710772207515f,
223
2.19M
          -0.0794670660590957f,
224
2.19M
          0.3623817333531167f,
225
2.19M
          -0.4351904965232280f,
226
2.19M
      },
227
2.19M
      {
228
2.19M
          0.2500000000000000,
229
2.19M
          -0.1014005039375376f,
230
2.19M
          0.2929100136981264f,
231
2.19M
          0.0000000000000000,
232
2.19M
          0.0000000000000000,
233
2.19M
          -0.0643507165794627f,
234
2.19M
          0.3935103426921017f,
235
2.19M
          -0.0657870154914280f,
236
2.19M
          0.0000000000000000,
237
2.19M
          -0.4082482904638628f,
238
2.19M
          -0.3078822139579090f,
239
2.19M
          -0.3852501370925192f,
240
2.19M
          -0.0857401903551931f,
241
2.19M
          -0.4613374887461511f,
242
2.19M
          0.0000000000000000,
243
2.19M
          0.2191868483885747f,
244
2.19M
      },
245
2.19M
      {
246
2.19M
          0.2500000000000000,
247
2.19M
          -0.1014005039375376f,
248
2.19M
          -0.4067007583026072f,
249
2.19M
          -0.2125574805828705f,
250
2.19M
          0.0000000000000000,
251
2.19M
          -0.0643507165794627f,
252
2.19M
          -0.4517556589999464f,
253
2.19M
          0.3046847507248840f,
254
2.19M
          0.3017929516615503f,
255
2.19M
          -0.4082482904638635f,
256
2.19M
          -0.1747866975480813f,
257
2.19M
          0.2110560104933581f,
258
2.19M
          -0.1426608480880734f,
259
2.19M
          -0.1381354035075829f,
260
2.19M
          -0.1743760259965108f,
261
2.19M
          0.1135498731499426f,
262
2.19M
      },
263
2.19M
      {
264
2.19M
          0.2500000000000000,
265
2.19M
          -0.1014005039375377f,
266
2.19M
          -0.1957439937204287f,
267
2.19M
          -0.1621205195722833f,
268
2.19M
          0.0000000000000000,
269
2.19M
          -0.0643507165794628f,
270
2.19M
          0.0074182263792444f,
271
2.19M
          0.2904801297290076f,
272
2.19M
          0.0952002265347505f,
273
2.19M
          0.0000000000000000,
274
2.19M
          0.3675398009862011f,
275
2.19M
          -0.4921585901373891f,
276
2.19M
          0.2462710772207514f,
277
2.19M
          -0.0794670660591026f,
278
2.19M
          0.3623817333531165f,
279
2.19M
          -0.4351904965232251f,
280
2.19M
      },
281
2.19M
      {
282
2.19M
          0.2500000000000000,
283
2.19M
          -0.1014005039375375f,
284
2.19M
          0.0000000000000000,
285
2.19M
          -0.4706702258572528f,
286
2.19M
          0.0000000000000000,
287
2.19M
          -0.0643507165794627f,
288
2.19M
          0.1107416575309343f,
289
2.19M
          0.0000000000000000,
290
2.19M
          -0.1627234014286617f,
291
2.19M
          0.0000000000000000,
292
2.19M
          0.0000000000000000,
293
2.19M
          0.0000000000000000,
294
2.19M
          0.1488339922711357f,
295
2.19M
          0.4972464710953509f,
296
2.19M
          0.2921026642334879f,
297
2.19M
          0.5550443808910661f,
298
2.19M
      },
299
2.19M
      {
300
2.19M
          0.2500000000000000,
301
2.19M
          -0.1014005039375377f,
302
2.19M
          0.1137907446044809f,
303
2.19M
          -0.1464291867126764f,
304
2.19M
          0.0000000000000000,
305
2.19M
          -0.0643507165794628f,
306
2.19M
          0.0829816309488205f,
307
2.19M
          -0.2388977352334460f,
308
2.19M
          -0.3531238544981630f,
309
2.19M
          -0.4082482904638630f,
310
2.19M
          0.4826689115059883f,
311
2.19M
          0.1741941265991622f,
312
2.19M
          -0.0476868035022925f,
313
2.19M
          0.1253805944856366f,
314
2.19M
          -0.4326608024727445f,
315
2.19M
          -0.2546827712406646f,
316
2.19M
      },
317
2.19M
      {
318
2.19M
          0.2500000000000000,
319
2.19M
          -0.1014005039375377f,
320
2.19M
          -0.4444481661973438f,
321
2.19M
          0.3085497062849487f,
322
2.19M
          0.0000000000000000,
323
2.19M
          -0.0643507165794628f,
324
2.19M
          0.1585450355183970f,
325
2.19M
          -0.5112616136592012f,
326
2.19M
          0.2579236279634129f,
327
2.19M
          0.0000000000000000,
328
2.19M
          -0.0812611176717504f,
329
2.19M
          -0.1856718091610990f,
330
2.19M
          -0.3416446842253373f,
331
2.19M
          0.3302282550303805f,
332
2.19M
          0.0702790691196282f,
333
2.19M
          -0.0741750459581023f,
334
2.19M
      },
335
2.19M
      {
336
2.19M
          0.2500000000000000,
337
2.19M
          -0.1014005039375376f,
338
2.19M
          -0.2929100136981264f,
339
2.19M
          0.0000000000000000,
340
2.19M
          0.0000000000000000,
341
2.19M
          -0.0643507165794627f,
342
2.19M
          0.3935103426921022f,
343
2.19M
          0.0657870154914254f,
344
2.19M
          0.0000000000000000,
345
2.19M
          0.4082482904638634f,
346
2.19M
          0.3078822139579031f,
347
2.19M
          0.3852501370925211f,
348
2.19M
          -0.0857401903551927f,
349
2.19M
          -0.4613374887461554f,
350
2.19M
          0.0000000000000000,
351
2.19M
          0.2191868483885728f,
352
2.19M
      },
353
2.19M
      {
354
2.19M
          0.2500000000000000,
355
2.19M
          -0.1014005039375376f,
356
2.19M
          -0.1137907446044814f,
357
2.19M
          -0.1464291867126654f,
358
2.19M
          0.0000000000000000,
359
2.19M
          -0.0643507165794627f,
360
2.19M
          0.0829816309488214f,
361
2.19M
          0.2388977352334547f,
362
2.19M
          -0.3531238544981624f,
363
2.19M
          0.4082482904638630f,
364
2.19M
          -0.4826689115059858f,
365
2.19M
          -0.1741941265991621f,
366
2.19M
          -0.0476868035022928f,
367
2.19M
          0.1253805944856431f,
368
2.19M
          -0.4326608024727457f,
369
2.19M
          -0.2546827712406641f,
370
2.19M
      },
371
2.19M
      {
372
2.19M
          0.2500000000000000,
373
2.19M
          -0.1014005039375374f,
374
2.19M
          0.0000000000000000,
375
2.19M
          0.4251149611657548f,
376
2.19M
          0.0000000000000000,
377
2.19M
          -0.0643507165794626f,
378
2.19M
          -0.4517556589999480f,
379
2.19M
          0.0000000000000000,
380
2.19M
          -0.6035859033230976f,
381
2.19M
          0.0000000000000000,
382
2.19M
          0.0000000000000000,
383
2.19M
          0.0000000000000000,
384
2.19M
          -0.1426608480880724f,
385
2.19M
          -0.1381354035075845f,
386
2.19M
          0.3487520519930227f,
387
2.19M
          0.1135498731499429f,
388
2.19M
      },
389
2.19M
  };
390
391
2.19M
  const HWY_CAPPED(float, 16) d;
392
6.59M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
393
4.39M
    auto scalar = Zero(d);
394
74.7M
    for (size_t j = 0; j < 16; j++) {
395
70.3M
      auto px = Set(d, pixels[j]);
396
70.3M
      auto basis = Load(d, k4x4AFVBasisTranspose[j] + i);
397
70.3M
      scalar = MulAdd(px, basis, scalar);
398
70.3M
    }
399
4.39M
    Store(scalar, d, coeffs + i);
400
4.39M
  }
401
2.19M
}
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.7M
                            float* JXL_RESTRICT coefficients) {
411
96.7M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
96.7M
  size_t afv_x = afv_kind & 1;
413
96.7M
  size_t afv_y = afv_kind / 2;
414
96.7M
  HWY_ALIGN float block[4 * 8] = {};
415
483M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.93G
    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
386M
  }
421
  // AFV coefficients in (even, even) positions.
422
96.7M
  HWY_ALIGN float coeff[4 * 4];
423
96.7M
  AFVDCT4x4(block, coeff);
424
483M
  for (size_t iy = 0; iy < 4; iy++) {
425
1.93G
    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
386M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
96.7M
  ComputeScaledDCT<4, 4>()(
431
96.7M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
96.7M
              pixels_stride),
433
96.7M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
483M
  for (size_t iy = 0; iy < 4; iy++) {
436
3.48G
    for (size_t ix = 0; ix < 8; ix++) {
437
3.09G
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
3.09G
    }
439
386M
  }
440
  // 4x8 DCT of the other half of the block.
441
96.7M
  ComputeScaledDCT<4, 8>()(
442
96.7M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
96.7M
      block, scratch_space);
444
483M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.48G
    for (size_t ix = 0; ix < 8; ix++) {
446
3.09G
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
3.09G
    }
448
386M
  }
449
96.7M
  float block00 = coefficients[0] * 0.25f;
450
96.7M
  float block01 = coefficients[1];
451
96.7M
  float block10 = coefficients[8];
452
96.7M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
96.7M
  coefficients[1] = (block00 - block01) * 0.5f;
454
96.7M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
96.7M
}
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.05M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
6.05M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
6.05M
    }
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.05M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
6.05M
    }
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.1M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
12.1M
    }
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.1M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
12.1M
    }
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.70M
  for (size_t iy = 0; iy < 4; iy++) {
416
22.8M
    for (size_t ix = 0; ix < 4; ix++) {
417
18.2M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
18.2M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
18.2M
    }
420
4.56M
  }
421
  // AFV coefficients in (even, even) positions.
422
1.14M
  HWY_ALIGN float coeff[4 * 4];
423
1.14M
  AFVDCT4x4(block, coeff);
424
5.70M
  for (size_t iy = 0; iy < 4; iy++) {
425
22.8M
    for (size_t ix = 0; ix < 4; ix++) {
426
18.2M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
18.2M
    }
428
4.56M
  }
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.70M
  for (size_t iy = 0; iy < 4; iy++) {
436
41.0M
    for (size_t ix = 0; ix < 8; ix++) {
437
36.5M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
36.5M
    }
439
4.56M
  }
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.70M
  for (size_t iy = 0; iy < 4; iy++) {
445
41.0M
    for (size_t ix = 0; ix < 8; ix++) {
446
36.5M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
36.5M
    }
448
4.56M
  }
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
240k
                            float* JXL_RESTRICT coefficients) {
411
240k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
240k
  size_t afv_x = afv_kind & 1;
413
240k
  size_t afv_y = afv_kind / 2;
414
240k
  HWY_ALIGN float block[4 * 8] = {};
415
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
416
4.80M
    for (size_t ix = 0; ix < 4; ix++) {
417
3.84M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
3.84M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
3.84M
    }
420
961k
  }
421
  // AFV coefficients in (even, even) positions.
422
240k
  HWY_ALIGN float coeff[4 * 4];
423
240k
  AFVDCT4x4(block, coeff);
424
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
425
4.80M
    for (size_t ix = 0; ix < 4; ix++) {
426
3.84M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
3.84M
    }
428
961k
  }
429
  // 4x4 DCT of the block with same y and different x.
430
240k
  ComputeScaledDCT<4, 4>()(
431
240k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
240k
              pixels_stride),
433
240k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
436
8.65M
    for (size_t ix = 0; ix < 8; ix++) {
437
7.69M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
7.69M
    }
439
961k
  }
440
  // 4x8 DCT of the other half of the block.
441
240k
  ComputeScaledDCT<4, 8>()(
442
240k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
240k
      block, scratch_space);
444
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
445
8.65M
    for (size_t ix = 0; ix < 8; ix++) {
446
7.69M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
7.69M
    }
448
961k
  }
449
240k
  float block00 = coefficients[0] * 0.25f;
450
240k
  float block01 = coefficients[1];
451
240k
  float block10 = coefficients[8];
452
240k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
240k
  coefficients[1] = (block00 - block01) * 0.5f;
454
240k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
240k
}
enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
437k
                            float* JXL_RESTRICT coefficients) {
411
437k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
437k
  size_t afv_x = afv_kind & 1;
413
437k
  size_t afv_y = afv_kind / 2;
414
437k
  HWY_ALIGN float block[4 * 8] = {};
415
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
416
8.75M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.00M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
7.00M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
7.00M
    }
420
1.75M
  }
421
  // AFV coefficients in (even, even) positions.
422
437k
  HWY_ALIGN float coeff[4 * 4];
423
437k
  AFVDCT4x4(block, coeff);
424
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
425
8.75M
    for (size_t ix = 0; ix < 4; ix++) {
426
7.00M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
7.00M
    }
428
1.75M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
437k
  ComputeScaledDCT<4, 4>()(
431
437k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
437k
              pixels_stride),
433
437k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
436
15.7M
    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
437k
  ComputeScaledDCT<4, 8>()(
442
437k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
437k
      block, scratch_space);
444
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
445
15.7M
    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
437k
  float block00 = coefficients[0] * 0.25f;
450
437k
  float block01 = coefficients[1];
451
437k
  float block10 = coefficients[8];
452
437k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
437k
  coefficients[1] = (block00 - block01) * 0.5f;
454
437k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
437k
}
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
23.0M
                            float* JXL_RESTRICT coefficients) {
411
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
23.0M
  size_t afv_x = afv_kind & 1;
413
23.0M
  size_t afv_y = afv_kind / 2;
414
23.0M
  HWY_ALIGN float block[4 * 8] = {};
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
369M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
369M
    }
420
92.3M
  }
421
  // AFV coefficients in (even, even) positions.
422
23.0M
  HWY_ALIGN float coeff[4 * 4];
423
23.0M
  AFVDCT4x4(block, coeff);
424
115M
  for (size_t iy = 0; iy < 4; iy++) {
425
461M
    for (size_t ix = 0; ix < 4; ix++) {
426
369M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
369M
    }
428
92.3M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
23.0M
  ComputeScaledDCT<4, 4>()(
431
23.0M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
23.0M
              pixels_stride),
433
23.0M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
115M
  for (size_t iy = 0; iy < 4; iy++) {
436
830M
    for (size_t ix = 0; ix < 8; ix++) {
437
738M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
738M
    }
439
92.3M
  }
440
  // 4x8 DCT of the other half of the block.
441
23.0M
  ComputeScaledDCT<4, 8>()(
442
23.0M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
23.0M
      block, scratch_space);
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
738M
    }
448
92.3M
  }
449
23.0M
  float block00 = coefficients[0] * 0.25f;
450
23.0M
  float block01 = coefficients[1];
451
23.0M
  float block10 = coefficients[8];
452
23.0M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
23.0M
  coefficients[1] = (block00 - block01) * 0.5f;
454
23.0M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<1ul>(float const*, unsigned long, float*)
Line
Count
Source
410
23.0M
                            float* JXL_RESTRICT coefficients) {
411
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
23.0M
  size_t afv_x = afv_kind & 1;
413
23.0M
  size_t afv_y = afv_kind / 2;
414
23.0M
  HWY_ALIGN float block[4 * 8] = {};
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
369M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
369M
    }
420
92.3M
  }
421
  // AFV coefficients in (even, even) positions.
422
23.0M
  HWY_ALIGN float coeff[4 * 4];
423
23.0M
  AFVDCT4x4(block, coeff);
424
115M
  for (size_t iy = 0; iy < 4; iy++) {
425
461M
    for (size_t ix = 0; ix < 4; ix++) {
426
369M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
369M
    }
428
92.3M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
23.0M
  ComputeScaledDCT<4, 4>()(
431
23.0M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
23.0M
              pixels_stride),
433
23.0M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
115M
  for (size_t iy = 0; iy < 4; iy++) {
436
830M
    for (size_t ix = 0; ix < 8; ix++) {
437
738M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
738M
    }
439
92.3M
  }
440
  // 4x8 DCT of the other half of the block.
441
23.0M
  ComputeScaledDCT<4, 8>()(
442
23.0M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
23.0M
      block, scratch_space);
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
738M
    }
448
92.3M
  }
449
23.0M
  float block00 = coefficients[0] * 0.25f;
450
23.0M
  float block01 = coefficients[1];
451
23.0M
  float block10 = coefficients[8];
452
23.0M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
23.0M
  coefficients[1] = (block00 - block01) * 0.5f;
454
23.0M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<2ul>(float const*, unsigned long, float*)
Line
Count
Source
410
23.0M
                            float* JXL_RESTRICT coefficients) {
411
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
23.0M
  size_t afv_x = afv_kind & 1;
413
23.0M
  size_t afv_y = afv_kind / 2;
414
23.0M
  HWY_ALIGN float block[4 * 8] = {};
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
369M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
369M
    }
420
92.3M
  }
421
  // AFV coefficients in (even, even) positions.
422
23.0M
  HWY_ALIGN float coeff[4 * 4];
423
23.0M
  AFVDCT4x4(block, coeff);
424
115M
  for (size_t iy = 0; iy < 4; iy++) {
425
461M
    for (size_t ix = 0; ix < 4; ix++) {
426
369M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
369M
    }
428
92.3M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
23.0M
  ComputeScaledDCT<4, 4>()(
431
23.0M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
23.0M
              pixels_stride),
433
23.0M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
115M
  for (size_t iy = 0; iy < 4; iy++) {
436
830M
    for (size_t ix = 0; ix < 8; ix++) {
437
738M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
738M
    }
439
92.3M
  }
440
  // 4x8 DCT of the other half of the block.
441
23.0M
  ComputeScaledDCT<4, 8>()(
442
23.0M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
23.0M
      block, scratch_space);
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
738M
    }
448
92.3M
  }
449
23.0M
  float block00 = coefficients[0] * 0.25f;
450
23.0M
  float block01 = coefficients[1];
451
23.0M
  float block10 = coefficients[8];
452
23.0M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
23.0M
  coefficients[1] = (block00 - block01) * 0.5f;
454
23.0M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
23.0M
                            float* JXL_RESTRICT coefficients) {
411
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
23.0M
  size_t afv_x = afv_kind & 1;
413
23.0M
  size_t afv_y = afv_kind / 2;
414
23.0M
  HWY_ALIGN float block[4 * 8] = {};
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
369M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
369M
    }
420
92.3M
  }
421
  // AFV coefficients in (even, even) positions.
422
23.0M
  HWY_ALIGN float coeff[4 * 4];
423
23.0M
  AFVDCT4x4(block, coeff);
424
115M
  for (size_t iy = 0; iy < 4; iy++) {
425
461M
    for (size_t ix = 0; ix < 4; ix++) {
426
369M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
369M
    }
428
92.3M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
23.0M
  ComputeScaledDCT<4, 4>()(
431
23.0M
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
23.0M
              pixels_stride),
433
23.0M
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
115M
  for (size_t iy = 0; iy < 4; iy++) {
436
830M
    for (size_t ix = 0; ix < 8; ix++) {
437
738M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
738M
    }
439
92.3M
  }
440
  // 4x8 DCT of the other half of the block.
441
23.0M
  ComputeScaledDCT<4, 8>()(
442
23.0M
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
23.0M
      block, scratch_space);
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
738M
    }
448
92.3M
  }
449
23.0M
  float block00 = coefficients[0] * 0.25f;
450
23.0M
  float block01 = coefficients[1];
451
23.0M
  float block10 = coefficients[8];
452
23.0M
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
23.0M
  coefficients[1] = (block00 - block01) * 0.5f;
454
23.0M
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
23.0M
}
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.05M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
6.05M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
6.05M
    }
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.05M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
6.05M
    }
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.1M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
12.1M
    }
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.1M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
12.1M
    }
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.70M
  for (size_t iy = 0; iy < 4; iy++) {
416
22.8M
    for (size_t ix = 0; ix < 4; ix++) {
417
18.2M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
18.2M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
18.2M
    }
420
4.56M
  }
421
  // AFV coefficients in (even, even) positions.
422
1.14M
  HWY_ALIGN float coeff[4 * 4];
423
1.14M
  AFVDCT4x4(block, coeff);
424
5.70M
  for (size_t iy = 0; iy < 4; iy++) {
425
22.8M
    for (size_t ix = 0; ix < 4; ix++) {
426
18.2M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
18.2M
    }
428
4.56M
  }
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.70M
  for (size_t iy = 0; iy < 4; iy++) {
436
41.0M
    for (size_t ix = 0; ix < 8; ix++) {
437
36.5M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
36.5M
    }
439
4.56M
  }
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.70M
  for (size_t iy = 0; iy < 4; iy++) {
445
41.0M
    for (size_t ix = 0; ix < 8; ix++) {
446
36.5M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
36.5M
    }
448
4.56M
  }
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
240k
                            float* JXL_RESTRICT coefficients) {
411
240k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
240k
  size_t afv_x = afv_kind & 1;
413
240k
  size_t afv_y = afv_kind / 2;
414
240k
  HWY_ALIGN float block[4 * 8] = {};
415
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
416
4.80M
    for (size_t ix = 0; ix < 4; ix++) {
417
3.84M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
3.84M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
3.84M
    }
420
961k
  }
421
  // AFV coefficients in (even, even) positions.
422
240k
  HWY_ALIGN float coeff[4 * 4];
423
240k
  AFVDCT4x4(block, coeff);
424
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
425
4.80M
    for (size_t ix = 0; ix < 4; ix++) {
426
3.84M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
3.84M
    }
428
961k
  }
429
  // 4x4 DCT of the block with same y and different x.
430
240k
  ComputeScaledDCT<4, 4>()(
431
240k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
240k
              pixels_stride),
433
240k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
436
8.65M
    for (size_t ix = 0; ix < 8; ix++) {
437
7.69M
      coefficients[iy * 2 * 8 + ix * 2 + 1] = block[iy * 4 + ix];
438
7.69M
    }
439
961k
  }
440
  // 4x8 DCT of the other half of the block.
441
240k
  ComputeScaledDCT<4, 8>()(
442
240k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
240k
      block, scratch_space);
444
1.20M
  for (size_t iy = 0; iy < 4; iy++) {
445
8.65M
    for (size_t ix = 0; ix < 8; ix++) {
446
7.69M
      coefficients[(1 + iy * 2) * 8 + ix] = block[iy * 8 + ix];
447
7.69M
    }
448
961k
  }
449
240k
  float block00 = coefficients[0] * 0.25f;
450
240k
  float block01 = coefficients[1];
451
240k
  float block10 = coefficients[8];
452
240k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
240k
  coefficients[1] = (block00 - block01) * 0.5f;
454
240k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
240k
}
enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformFromPixels<3ul>(float const*, unsigned long, float*)
Line
Count
Source
410
437k
                            float* JXL_RESTRICT coefficients) {
411
437k
  HWY_ALIGN float scratch_space[4 * 8 * 5];
412
437k
  size_t afv_x = afv_kind & 1;
413
437k
  size_t afv_y = afv_kind / 2;
414
437k
  HWY_ALIGN float block[4 * 8] = {};
415
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
416
8.75M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.00M
      block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)] =
418
7.00M
          pixels[(iy + 4 * afv_y) * pixels_stride + ix + 4 * afv_x];
419
7.00M
    }
420
1.75M
  }
421
  // AFV coefficients in (even, even) positions.
422
437k
  HWY_ALIGN float coeff[4 * 4];
423
437k
  AFVDCT4x4(block, coeff);
424
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
425
8.75M
    for (size_t ix = 0; ix < 4; ix++) {
426
7.00M
      coefficients[iy * 2 * 8 + ix * 2] = coeff[iy * 4 + ix];
427
7.00M
    }
428
1.75M
  }
429
  // 4x4 DCT of the block with same y and different x.
430
437k
  ComputeScaledDCT<4, 4>()(
431
437k
      DCTFrom(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
432
437k
              pixels_stride),
433
437k
      block, scratch_space);
434
  // ... in (odd, even) positions.
435
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
436
15.7M
    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
437k
  ComputeScaledDCT<4, 8>()(
442
437k
      DCTFrom(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
443
437k
      block, scratch_space);
444
2.18M
  for (size_t iy = 0; iy < 4; iy++) {
445
15.7M
    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
437k
  float block00 = coefficients[0] * 0.25f;
450
437k
  float block01 = coefficients[1];
451
437k
  float block10 = coefficients[8];
452
437k
  coefficients[0] = (block00 + block01 + 2 * block10) * 0.25f;
453
437k
  coefficients[1] = (block00 - block01) * 0.5f;
454
437k
  coefficients[8] = (block00 + block01 - 2 * block10) * 0.25f;
455
437k
}
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
333M
                                          float* JXL_RESTRICT scratch_space) {
462
333M
  using Type = AcStrategyType;
463
333M
  switch (strategy) {
464
25.4M
    case Type::IDENTITY: {
465
76.2M
      for (size_t y = 0; y < 2; y++) {
466
152M
        for (size_t x = 0; x < 2; x++) {
467
101M
          float block_dc = 0;
468
508M
          for (size_t iy = 0; iy < 4; iy++) {
469
2.03G
            for (size_t ix = 0; ix < 4; ix++) {
470
1.62G
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
1.62G
            }
472
406M
          }
473
101M
          block_dc *= 1.0f / 16;
474
508M
          for (size_t iy = 0; iy < 4; iy++) {
475
2.03G
            for (size_t ix = 0; ix < 4; ix++) {
476
1.62G
              if (ix == 1 && iy == 1) continue;
477
1.52G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
1.52G
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
1.52G
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
1.52G
            }
481
406M
          }
482
101M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
101M
          coefficients[y * 8 + x] = block_dc;
484
101M
        }
485
50.8M
      }
486
25.4M
      float block00 = coefficients[0];
487
25.4M
      float block01 = coefficients[1];
488
25.4M
      float block10 = coefficients[8];
489
25.4M
      float block11 = coefficients[9];
490
25.4M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
25.4M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
25.4M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
25.4M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
25.4M
      break;
495
0
    }
496
24.0M
    case Type::DCT8X4: {
497
72.2M
      for (size_t x = 0; x < 2; x++) {
498
48.1M
        HWY_ALIGN float block[4 * 8];
499
48.1M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
48.1M
                                 scratch_space);
501
240M
        for (size_t iy = 0; iy < 4; iy++) {
502
1.73G
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
1.54G
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
1.54G
          }
506
192M
        }
507
48.1M
      }
508
24.0M
      float block0 = coefficients[0];
509
24.0M
      float block1 = coefficients[8];
510
24.0M
      coefficients[0] = (block0 + block1) * 0.5f;
511
24.0M
      coefficients[8] = (block0 - block1) * 0.5f;
512
24.0M
      break;
513
0
    }
514
23.8M
    case Type::DCT4X8: {
515
71.5M
      for (size_t y = 0; y < 2; y++) {
516
47.7M
        HWY_ALIGN float block[4 * 8];
517
47.7M
        ComputeScaledDCT<4, 8>()(
518
47.7M
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
47.7M
            scratch_space);
520
238M
        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.7M
      }
526
23.8M
      float block0 = coefficients[0];
527
23.8M
      float block1 = coefficients[8];
528
23.8M
      coefficients[0] = (block0 + block1) * 0.5f;
529
23.8M
      coefficients[8] = (block0 - block1) * 0.5f;
530
23.8M
      break;
531
0
    }
532
23.0M
    case Type::DCT4X4: {
533
69.2M
      for (size_t y = 0; y < 2; y++) {
534
138M
        for (size_t x = 0; x < 2; x++) {
535
92.3M
          HWY_ALIGN float block[4 * 4];
536
92.3M
          ComputeScaledDCT<4, 4>()(
537
92.3M
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
92.3M
              block, scratch_space);
539
461M
          for (size_t iy = 0; iy < 4; iy++) {
540
1.84G
            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
369M
          }
544
92.3M
        }
545
46.1M
      }
546
23.0M
      float block00 = coefficients[0];
547
23.0M
      float block01 = coefficients[1];
548
23.0M
      float block10 = coefficients[8];
549
23.0M
      float block11 = coefficients[9];
550
23.0M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
23.0M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
23.0M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
23.0M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
23.0M
      break;
555
0
    }
556
25.5M
    case Type::DCT2X2: {
557
25.5M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
25.5M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
25.5M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
25.5M
      break;
561
0
    }
562
9.78M
    case Type::DCT16X16: {
563
9.78M
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
9.78M
                                 scratch_space);
565
9.78M
      break;
566
0
    }
567
19.1M
    case Type::DCT16X8: {
568
19.1M
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
19.1M
                                scratch_space);
570
19.1M
      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.76M
    case Type::DCT32X16: {
588
3.76M
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
3.76M
                                 scratch_space);
590
3.76M
      break;
591
0
    }
592
3.93M
    case Type::DCT16X32: {
593
3.93M
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
3.93M
                                 scratch_space);
595
3.93M
      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.6M
    case Type::DCT: {
603
53.6M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
53.6M
                               scratch_space);
605
53.6M
      break;
606
0
    }
607
23.8M
    case Type::AFV0: {
608
23.8M
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
23.8M
      break;
610
0
    }
611
25.3M
    case Type::AFV1: {
612
25.3M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
25.3M
      break;
614
0
    }
615
23.5M
    case Type::AFV2: {
616
23.5M
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
23.5M
      break;
618
0
    }
619
23.9M
    case Type::AFV3: {
620
23.9M
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
23.9M
      break;
622
0
    }
623
461k
    case Type::DCT64X64: {
624
461k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
461k
                                 scratch_space);
626
461k
      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
333M
  }
669
333M
}
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.16M
    case Type::IDENTITY: {
465
3.49M
      for (size_t y = 0; y < 2; y++) {
466
6.99M
        for (size_t x = 0; x < 2; x++) {
467
4.66M
          float block_dc = 0;
468
23.3M
          for (size_t iy = 0; iy < 4; iy++) {
469
93.2M
            for (size_t ix = 0; ix < 4; ix++) {
470
74.5M
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
74.5M
            }
472
18.6M
          }
473
4.66M
          block_dc *= 1.0f / 16;
474
23.3M
          for (size_t iy = 0; iy < 4; iy++) {
475
93.2M
            for (size_t ix = 0; ix < 4; ix++) {
476
74.5M
              if (ix == 1 && iy == 1) continue;
477
69.9M
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
69.9M
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
69.9M
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
69.9M
            }
481
18.6M
          }
482
4.66M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
4.66M
          coefficients[y * 8 + x] = block_dc;
484
4.66M
        }
485
2.33M
      }
486
1.16M
      float block00 = coefficients[0];
487
1.16M
      float block01 = coefficients[1];
488
1.16M
      float block10 = coefficients[8];
489
1.16M
      float block11 = coefficients[9];
490
1.16M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
1.16M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
1.16M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
1.16M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
1.16M
      break;
495
0
    }
496
496k
    case Type::DCT8X4: {
497
1.49M
      for (size_t x = 0; x < 2; x++) {
498
993k
        HWY_ALIGN float block[4 * 8];
499
993k
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
993k
                                 scratch_space);
501
4.96M
        for (size_t iy = 0; iy < 4; iy++) {
502
35.7M
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
31.7M
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
31.7M
          }
506
3.97M
        }
507
993k
      }
508
496k
      float block0 = coefficients[0];
509
496k
      float block1 = coefficients[8];
510
496k
      coefficients[0] = (block0 + block1) * 0.5f;
511
496k
      coefficients[8] = (block0 - block1) * 0.5f;
512
496k
      break;
513
0
    }
514
387k
    case Type::DCT4X8: {
515
1.16M
      for (size_t y = 0; y < 2; y++) {
516
774k
        HWY_ALIGN float block[4 * 8];
517
774k
        ComputeScaledDCT<4, 8>()(
518
774k
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
774k
            scratch_space);
520
3.87M
        for (size_t iy = 0; iy < 4; iy++) {
521
27.8M
          for (size_t ix = 0; ix < 8; ix++) {
522
24.7M
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
24.7M
          }
524
3.09M
        }
525
774k
      }
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.21M
    case Type::DCT2X2: {
557
1.21M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
1.21M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
1.21M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
1.21M
      break;
561
0
    }
562
177k
    case Type::DCT16X16: {
563
177k
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
177k
                                 scratch_space);
565
177k
      break;
566
0
    }
567
293k
    case Type::DCT16X8: {
568
293k
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
293k
                                scratch_space);
570
293k
      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.5k
    case Type::DCT32X16: {
588
84.5k
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
84.5k
                                 scratch_space);
590
84.5k
      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
285k
    case Type::DCT32X32: {
598
285k
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
285k
                                 scratch_space);
600
285k
      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
240k
    case Type::AFV2: {
616
240k
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
240k
      break;
618
0
    }
619
437k
    case Type::AFV3: {
620
437k
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
437k
      break;
622
0
    }
623
71.7k
    case Type::DCT64X64: {
624
71.7k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
71.7k
                                 scratch_space);
626
71.7k
      break;
627
0
    }
628
9.04k
    case Type::DCT64X32: {
629
9.04k
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
9.04k
                                 scratch_space);
631
9.04k
      break;
632
0
    }
633
11.0k
    case Type::DCT32X64: {
634
11.0k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
11.0k
                                 scratch_space);
636
11.0k
      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
288M
                                          float* JXL_RESTRICT scratch_space) {
462
288M
  using Type = AcStrategyType;
463
288M
  switch (strategy) {
464
23.0M
    case Type::IDENTITY: {
465
69.2M
      for (size_t y = 0; y < 2; y++) {
466
138M
        for (size_t x = 0; x < 2; x++) {
467
92.3M
          float block_dc = 0;
468
461M
          for (size_t iy = 0; iy < 4; iy++) {
469
1.84G
            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
369M
          }
473
92.3M
          block_dc *= 1.0f / 16;
474
461M
          for (size_t iy = 0; iy < 4; iy++) {
475
1.84G
            for (size_t ix = 0; ix < 4; ix++) {
476
1.47G
              if (ix == 1 && iy == 1) continue;
477
1.38G
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
1.38G
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
1.38G
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
1.38G
            }
481
369M
          }
482
92.3M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
92.3M
          coefficients[y * 8 + x] = block_dc;
484
92.3M
        }
485
46.1M
      }
486
23.0M
      float block00 = coefficients[0];
487
23.0M
      float block01 = coefficients[1];
488
23.0M
      float block10 = coefficients[8];
489
23.0M
      float block11 = coefficients[9];
490
23.0M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
23.0M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
23.0M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
23.0M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
23.0M
      break;
495
0
    }
496
23.0M
    case Type::DCT8X4: {
497
69.2M
      for (size_t x = 0; x < 2; x++) {
498
46.1M
        HWY_ALIGN float block[4 * 8];
499
46.1M
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
46.1M
                                 scratch_space);
501
230M
        for (size_t iy = 0; iy < 4; iy++) {
502
1.66G
          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
184M
        }
507
46.1M
      }
508
23.0M
      float block0 = coefficients[0];
509
23.0M
      float block1 = coefficients[8];
510
23.0M
      coefficients[0] = (block0 + block1) * 0.5f;
511
23.0M
      coefficients[8] = (block0 - block1) * 0.5f;
512
23.0M
      break;
513
0
    }
514
23.0M
    case Type::DCT4X8: {
515
69.2M
      for (size_t y = 0; y < 2; y++) {
516
46.1M
        HWY_ALIGN float block[4 * 8];
517
46.1M
        ComputeScaledDCT<4, 8>()(
518
46.1M
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
46.1M
            scratch_space);
520
230M
        for (size_t iy = 0; iy < 4; iy++) {
521
1.66G
          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
184M
        }
525
46.1M
      }
526
23.0M
      float block0 = coefficients[0];
527
23.0M
      float block1 = coefficients[8];
528
23.0M
      coefficients[0] = (block0 + block1) * 0.5f;
529
23.0M
      coefficients[8] = (block0 - block1) * 0.5f;
530
23.0M
      break;
531
0
    }
532
23.0M
    case Type::DCT4X4: {
533
69.2M
      for (size_t y = 0; y < 2; y++) {
534
138M
        for (size_t x = 0; x < 2; x++) {
535
92.3M
          HWY_ALIGN float block[4 * 4];
536
92.3M
          ComputeScaledDCT<4, 4>()(
537
92.3M
              DCTFrom(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
538
92.3M
              block, scratch_space);
539
461M
          for (size_t iy = 0; iy < 4; iy++) {
540
1.84G
            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
369M
          }
544
92.3M
        }
545
46.1M
      }
546
23.0M
      float block00 = coefficients[0];
547
23.0M
      float block01 = coefficients[1];
548
23.0M
      float block10 = coefficients[8];
549
23.0M
      float block11 = coefficients[9];
550
23.0M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
551
23.0M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
552
23.0M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
553
23.0M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
554
23.0M
      break;
555
0
    }
556
23.0M
    case Type::DCT2X2: {
557
23.0M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
23.0M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
23.0M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
23.0M
      break;
561
0
    }
562
9.42M
    case Type::DCT16X16: {
563
9.42M
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
9.42M
                                 scratch_space);
565
9.42M
      break;
566
0
    }
567
18.5M
    case Type::DCT16X8: {
568
18.5M
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
18.5M
                                scratch_space);
570
18.5M
      break;
571
0
    }
572
18.6M
    case Type::DCT8X16: {
573
18.6M
      ComputeScaledDCT<8, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
574
18.6M
                                scratch_space);
575
18.6M
      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.59M
    case Type::DCT32X16: {
588
3.59M
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
3.59M
                                 scratch_space);
590
3.59M
      break;
591
0
    }
592
3.65M
    case Type::DCT16X32: {
593
3.65M
      ComputeScaledDCT<16, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
594
3.65M
                                 scratch_space);
595
3.65M
      break;
596
0
    }
597
1.84M
    case Type::DCT32X32: {
598
1.84M
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
1.84M
                                 scratch_space);
600
1.84M
      break;
601
0
    }
602
23.0M
    case Type::DCT: {
603
23.0M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
23.0M
                               scratch_space);
605
23.0M
      break;
606
0
    }
607
23.0M
    case Type::AFV0: {
608
23.0M
      AFVTransformFromPixels<0>(pixels, pixels_stride, coefficients);
609
23.0M
      break;
610
0
    }
611
23.0M
    case Type::AFV1: {
612
23.0M
      AFVTransformFromPixels<1>(pixels, pixels_stride, coefficients);
613
23.0M
      break;
614
0
    }
615
23.0M
    case Type::AFV2: {
616
23.0M
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
23.0M
      break;
618
0
    }
619
23.0M
    case Type::AFV3: {
620
23.0M
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
23.0M
      break;
622
0
    }
623
318k
    case Type::DCT64X64: {
624
318k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
318k
                                 scratch_space);
626
318k
      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
288M
  }
669
288M
}
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.8M
                                          float* JXL_RESTRICT scratch_space) {
462
33.8M
  using Type = AcStrategyType;
463
33.8M
  switch (strategy) {
464
1.16M
    case Type::IDENTITY: {
465
3.49M
      for (size_t y = 0; y < 2; y++) {
466
6.99M
        for (size_t x = 0; x < 2; x++) {
467
4.66M
          float block_dc = 0;
468
23.3M
          for (size_t iy = 0; iy < 4; iy++) {
469
93.2M
            for (size_t ix = 0; ix < 4; ix++) {
470
74.5M
              block_dc += pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix];
471
74.5M
            }
472
18.6M
          }
473
4.66M
          block_dc *= 1.0f / 16;
474
23.3M
          for (size_t iy = 0; iy < 4; iy++) {
475
93.2M
            for (size_t ix = 0; ix < 4; ix++) {
476
74.5M
              if (ix == 1 && iy == 1) continue;
477
69.9M
              coefficients[(y + iy * 2) * 8 + x + ix * 2] =
478
69.9M
                  pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] -
479
69.9M
                  pixels[(y * 4 + 1) * pixels_stride + x * 4 + 1];
480
69.9M
            }
481
18.6M
          }
482
4.66M
          coefficients[(y + 2) * 8 + x + 2] = coefficients[y * 8 + x];
483
4.66M
          coefficients[y * 8 + x] = block_dc;
484
4.66M
        }
485
2.33M
      }
486
1.16M
      float block00 = coefficients[0];
487
1.16M
      float block01 = coefficients[1];
488
1.16M
      float block10 = coefficients[8];
489
1.16M
      float block11 = coefficients[9];
490
1.16M
      coefficients[0] = (block00 + block01 + block10 + block11) * 0.25f;
491
1.16M
      coefficients[1] = (block00 + block01 - block10 - block11) * 0.25f;
492
1.16M
      coefficients[8] = (block00 - block01 + block10 - block11) * 0.25f;
493
1.16M
      coefficients[9] = (block00 - block01 - block10 + block11) * 0.25f;
494
1.16M
      break;
495
0
    }
496
496k
    case Type::DCT8X4: {
497
1.49M
      for (size_t x = 0; x < 2; x++) {
498
993k
        HWY_ALIGN float block[4 * 8];
499
993k
        ComputeScaledDCT<8, 4>()(DCTFrom(pixels + x * 4, pixels_stride), block,
500
993k
                                 scratch_space);
501
4.96M
        for (size_t iy = 0; iy < 4; iy++) {
502
35.7M
          for (size_t ix = 0; ix < 8; ix++) {
503
            // Store transposed.
504
31.7M
            coefficients[(x + iy * 2) * 8 + ix] = block[iy * 8 + ix];
505
31.7M
          }
506
3.97M
        }
507
993k
      }
508
496k
      float block0 = coefficients[0];
509
496k
      float block1 = coefficients[8];
510
496k
      coefficients[0] = (block0 + block1) * 0.5f;
511
496k
      coefficients[8] = (block0 - block1) * 0.5f;
512
496k
      break;
513
0
    }
514
387k
    case Type::DCT4X8: {
515
1.16M
      for (size_t y = 0; y < 2; y++) {
516
774k
        HWY_ALIGN float block[4 * 8];
517
774k
        ComputeScaledDCT<4, 8>()(
518
774k
            DCTFrom(pixels + y * 4 * pixels_stride, pixels_stride), block,
519
774k
            scratch_space);
520
3.87M
        for (size_t iy = 0; iy < 4; iy++) {
521
27.8M
          for (size_t ix = 0; ix < 8; ix++) {
522
24.7M
            coefficients[(y + iy * 2) * 8 + ix] = block[iy * 8 + ix];
523
24.7M
          }
524
3.09M
        }
525
774k
      }
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.21M
    case Type::DCT2X2: {
557
1.21M
      DCT2TopBlock<8>(pixels, pixels_stride, coefficients);
558
1.21M
      DCT2TopBlock<4>(coefficients, kBlockDim, coefficients);
559
1.21M
      DCT2TopBlock<2>(coefficients, kBlockDim, coefficients);
560
1.21M
      break;
561
0
    }
562
177k
    case Type::DCT16X16: {
563
177k
      ComputeScaledDCT<16, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
564
177k
                                 scratch_space);
565
177k
      break;
566
0
    }
567
293k
    case Type::DCT16X8: {
568
293k
      ComputeScaledDCT<16, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
569
293k
                                scratch_space);
570
293k
      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.5k
    case Type::DCT32X16: {
588
84.5k
      ComputeScaledDCT<32, 16>()(DCTFrom(pixels, pixels_stride), coefficients,
589
84.5k
                                 scratch_space);
590
84.5k
      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
285k
    case Type::DCT32X32: {
598
285k
      ComputeScaledDCT<32, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
599
285k
                                 scratch_space);
600
285k
      break;
601
0
    }
602
26.8M
    case Type::DCT: {
603
26.8M
      ComputeScaledDCT<8, 8>()(DCTFrom(pixels, pixels_stride), coefficients,
604
26.8M
                               scratch_space);
605
26.8M
      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
240k
    case Type::AFV2: {
616
240k
      AFVTransformFromPixels<2>(pixels, pixels_stride, coefficients);
617
240k
      break;
618
0
    }
619
437k
    case Type::AFV3: {
620
437k
      AFVTransformFromPixels<3>(pixels, pixels_stride, coefficients);
621
437k
      break;
622
0
    }
623
71.7k
    case Type::DCT64X64: {
624
71.7k
      ComputeScaledDCT<64, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
625
71.7k
                                 scratch_space);
626
71.7k
      break;
627
0
    }
628
9.04k
    case Type::DCT64X32: {
629
9.04k
      ComputeScaledDCT<64, 32>()(DCTFrom(pixels, pixels_stride), coefficients,
630
9.04k
                                 scratch_space);
631
9.04k
      break;
632
0
    }
633
11.0k
    case Type::DCT32X64: {
634
11.0k
      ComputeScaledDCT<32, 64>()(DCTFrom(pixels, pixels_stride), coefficients,
635
11.0k
                                 scratch_space);
636
11.0k
      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.8M
  }
669
33.8M
}
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.6M
                                              float* scratch_space) {
676
44.6M
  using Type = AcStrategyType;
677
44.6M
  switch (strategy) {
678
586k
    case Type::DCT16X8: {
679
586k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
586k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
586k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
586k
      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
354k
    case Type::DCT16X16: {
691
354k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
354k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
354k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
354k
      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
280k
    case Type::DCT16X32: {
715
280k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
716
280k
                         /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
717
280k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
718
280k
      break;
719
0
    }
720
570k
    case Type::DCT32X32: {
721
570k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
570k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
570k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
570k
      break;
725
0
    }
726
18.0k
    case Type::DCT64X32: {
727
18.0k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
18.0k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
18.0k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
18.0k
      break;
731
0
    }
732
22.1k
    case Type::DCT32X64: {
733
22.1k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
22.1k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
22.1k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
22.1k
      break;
737
0
    }
738
143k
    case Type::DCT64X64: {
739
143k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
143k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
143k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
143k
      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.6M
    case Type::DCT:
787
33.0M
    case Type::DCT2X2:
788
33.0M
    case Type::DCT4X4:
789
33.8M
    case Type::DCT4X8:
790
34.8M
    case Type::DCT8X4:
791
35.5M
    case Type::AFV0:
792
37.8M
    case Type::AFV1:
793
38.3M
    case Type::AFV2:
794
39.2M
    case Type::AFV3:
795
41.5M
    case Type::IDENTITY:
796
41.5M
      dc[0] = block[0];
797
41.5M
      break;
798
44.6M
  }
799
44.6M
}
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
293k
    case Type::DCT16X8: {
679
293k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
293k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
293k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
293k
      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
177k
    case Type::DCT16X16: {
691
177k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
177k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
177k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
177k
      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.5k
    case Type::DCT32X16: {
709
84.5k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
84.5k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
84.5k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
84.5k
      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
285k
    case Type::DCT32X32: {
721
285k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
285k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
285k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
285k
      break;
725
0
    }
726
9.04k
    case Type::DCT64X32: {
727
9.04k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
9.04k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
9.04k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
9.04k
      break;
731
0
    }
732
11.0k
    case Type::DCT32X64: {
733
11.0k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
11.0k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
11.0k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
11.0k
      break;
737
0
    }
738
71.7k
    case Type::DCT64X64: {
739
71.7k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
71.7k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
71.7k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
71.7k
      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.97M
    case Type::DCT2X2:
788
4.97M
    case Type::DCT4X4:
789
5.36M
    case Type::DCT4X8:
790
5.86M
    case Type::DCT8X4:
791
6.24M
    case Type::AFV0:
792
7.38M
    case Type::AFV1:
793
7.62M
    case Type::AFV2:
794
8.05M
    case Type::AFV3:
795
9.22M
    case Type::IDENTITY:
796
9.22M
      dc[0] = block[0];
797
9.22M
      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.8M
                                              float* scratch_space) {
676
33.8M
  using Type = AcStrategyType;
677
33.8M
  switch (strategy) {
678
293k
    case Type::DCT16X8: {
679
293k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
680
293k
                         /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
681
293k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
682
293k
      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
177k
    case Type::DCT16X16: {
691
177k
      ReinterpretingIDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
692
177k
                         /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
693
177k
          block, 2 * kBlockDim, dc, dc_stride, scratch_space);
694
177k
      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.5k
    case Type::DCT32X16: {
709
84.5k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
710
84.5k
                         /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
711
84.5k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
712
84.5k
      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
285k
    case Type::DCT32X32: {
721
285k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
722
285k
                         /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
723
285k
          block, 4 * kBlockDim, dc, dc_stride, scratch_space);
724
285k
      break;
725
0
    }
726
9.04k
    case Type::DCT64X32: {
727
9.04k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
728
9.04k
                         /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
729
9.04k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
730
9.04k
      break;
731
0
    }
732
11.0k
    case Type::DCT32X64: {
733
11.0k
      ReinterpretingIDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
734
11.0k
                         /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
735
11.0k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
736
11.0k
      break;
737
0
    }
738
71.7k
    case Type::DCT64X64: {
739
71.7k
      ReinterpretingIDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
740
71.7k
                         /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
741
71.7k
          block, 8 * kBlockDim, dc, dc_stride, scratch_space);
742
71.7k
      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.8M
    case Type::DCT:
787
28.0M
    case Type::DCT2X2:
788
28.0M
    case Type::DCT4X4:
789
28.4M
    case Type::DCT4X8:
790
28.9M
    case Type::DCT8X4:
791
29.3M
    case Type::AFV0:
792
30.4M
    case Type::AFV1:
793
30.7M
    case Type::AFV2:
794
31.1M
    case Type::AFV3:
795
32.3M
    case Type::IDENTITY:
796
32.3M
      dc[0] = block[0];
797
32.3M
      break;
798
33.8M
  }
799
33.8M
}
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_