Coverage Report

Created: 2025-08-11 08:01

/src/libjxl/lib/jxl/dec_transforms-inl.h
Line
Count
Source (jump to first uncovered line)
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 <cstring>
7
8
#include "lib/jxl/base/compiler_specific.h"
9
#include "lib/jxl/frame_dimensions.h"
10
11
#if defined(LIB_JXL_DEC_TRANSFORMS_INL_H_) == defined(HWY_TARGET_TOGGLE)
12
#ifdef LIB_JXL_DEC_TRANSFORMS_INL_H_
13
#undef LIB_JXL_DEC_TRANSFORMS_INL_H_
14
#else
15
#define LIB_JXL_DEC_TRANSFORMS_INL_H_
16
#endif
17
18
#include <cstddef>
19
#include <hwy/highway.h>
20
21
#include "lib/jxl/ac_strategy.h"
22
#include "lib/jxl/dct-inl.h"
23
#include "lib/jxl/dct_scales.h"
24
HWY_BEFORE_NAMESPACE();
25
namespace jxl {
26
namespace HWY_NAMESPACE {
27
namespace {
28
29
// These templates are not found via ADL.
30
using hwy::HWY_NAMESPACE::MulAdd;
31
32
// Computes the lowest-frequency LF_ROWSxLF_COLS-sized square in output, which
33
// is a DCT_ROWS*DCT_COLS-sized DCT block, by doing a ROWS*COLS DCT on the
34
// input block.
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
JXL_INLINE void ReinterpretingDCT(const float* input, const size_t input_stride,
38
                                  float* output, const size_t output_stride,
39
                                  float* JXL_RESTRICT block,
40
2.78M
                                  float* JXL_RESTRICT scratch_space) {
41
2.78M
  static_assert(LF_ROWS == ROWS,
42
2.78M
                "ReinterpretingDCT should only be called with LF == N");
43
2.78M
  static_assert(LF_COLS == COLS,
44
2.78M
                "ReinterpretingDCT should only be called with LF == N");
45
2.78M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
2.78M
                                 scratch_space);
47
2.78M
  if (ROWS < COLS) {
48
2.64M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
5.88M
      for (size_t x = 0; x < LF_COLS; x++) {
50
4.41M
        output[y * output_stride + x] =
51
4.41M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
4.41M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
4.41M
      }
54
1.47M
    }
55
1.60M
  } else {
56
4.71M
    for (size_t y = 0; y < LF_COLS; y++) {
57
14.2M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
11.1M
        output[y * output_stride + x] =
59
11.1M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
11.1M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
11.1M
      }
62
3.11M
    }
63
1.60M
  }
64
2.78M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
774k
                                  float* JXL_RESTRICT scratch_space) {
41
774k
  static_assert(LF_ROWS == ROWS,
42
774k
                "ReinterpretingDCT should only be called with LF == N");
43
774k
  static_assert(LF_COLS == COLS,
44
774k
                "ReinterpretingDCT should only be called with LF == N");
45
774k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
774k
                                 scratch_space);
47
774k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
774k
  } else {
56
1.54M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.32M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.54M
        output[y * output_stride + x] =
59
1.54M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.54M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.54M
      }
62
774k
    }
63
774k
  }
64
774k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
928k
                                  float* JXL_RESTRICT scratch_space) {
41
928k
  static_assert(LF_ROWS == ROWS,
42
928k
                "ReinterpretingDCT should only be called with LF == N");
43
928k
  static_assert(LF_COLS == COLS,
44
928k
                "ReinterpretingDCT should only be called with LF == N");
45
928k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
928k
                                 scratch_space);
47
928k
  if (ROWS < COLS) {
48
1.85M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
2.78M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.85M
        output[y * output_stride + x] =
51
1.85M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.85M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.85M
      }
54
928k
    }
55
928k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
928k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
483k
                                  float* JXL_RESTRICT scratch_space) {
41
483k
  static_assert(LF_ROWS == ROWS,
42
483k
                "ReinterpretingDCT should only be called with LF == N");
43
483k
  static_assert(LF_COLS == COLS,
44
483k
                "ReinterpretingDCT should only be called with LF == N");
45
483k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
483k
                                 scratch_space);
47
483k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
483k
  } else {
56
1.44M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.89M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.93M
        output[y * output_stride + x] =
59
1.93M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.93M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.93M
      }
62
966k
    }
63
483k
  }
64
483k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
48
                                  float* JXL_RESTRICT scratch_space) {
41
48
  static_assert(LF_ROWS == ROWS,
42
48
                "ReinterpretingDCT should only be called with LF == N");
43
48
  static_assert(LF_COLS == COLS,
44
48
                "ReinterpretingDCT should only be called with LF == N");
45
48
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
48
                                 scratch_space);
47
48
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
48
  } else {
56
96
    for (size_t y = 0; y < LF_COLS; y++) {
57
240
      for (size_t x = 0; x < LF_ROWS; x++) {
58
192
        output[y * output_stride + x] =
59
192
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
192
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
192
      }
62
48
    }
63
48
  }
64
48
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
9
                                  float* JXL_RESTRICT scratch_space) {
41
9
  static_assert(LF_ROWS == ROWS,
42
9
                "ReinterpretingDCT should only be called with LF == N");
43
9
  static_assert(LF_COLS == COLS,
44
9
                "ReinterpretingDCT should only be called with LF == N");
45
9
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
9
                                 scratch_space);
47
9
  if (ROWS < COLS) {
48
18
    for (size_t y = 0; y < LF_ROWS; y++) {
49
45
      for (size_t x = 0; x < LF_COLS; x++) {
50
36
        output[y * output_stride + x] =
51
36
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
36
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
36
      }
54
9
    }
55
9
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
9
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
134k
                                  float* JXL_RESTRICT scratch_space) {
41
134k
  static_assert(LF_ROWS == ROWS,
42
134k
                "ReinterpretingDCT should only be called with LF == N");
43
134k
  static_assert(LF_COLS == COLS,
44
134k
                "ReinterpretingDCT should only be called with LF == N");
45
134k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
134k
                                 scratch_space);
47
134k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
134k
  } else {
56
404k
    for (size_t y = 0; y < LF_COLS; y++) {
57
1.34M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.07M
        output[y * output_stride + x] =
59
1.07M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.07M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.07M
      }
62
269k
    }
63
134k
  }
64
134k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
225k
                                  float* JXL_RESTRICT scratch_space) {
41
225k
  static_assert(LF_ROWS == ROWS,
42
225k
                "ReinterpretingDCT should only be called with LF == N");
43
225k
  static_assert(LF_COLS == COLS,
44
225k
                "ReinterpretingDCT should only be called with LF == N");
45
225k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
225k
                                 scratch_space);
47
225k
  if (ROWS < COLS) {
48
675k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
2.25M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.80M
        output[y * output_stride + x] =
51
1.80M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.80M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.80M
      }
54
450k
    }
55
225k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
225k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
136k
                                  float* JXL_RESTRICT scratch_space) {
41
136k
  static_assert(LF_ROWS == ROWS,
42
136k
                "ReinterpretingDCT should only be called with LF == N");
43
136k
  static_assert(LF_COLS == COLS,
44
136k
                "ReinterpretingDCT should only be called with LF == N");
45
136k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
136k
                                 scratch_space);
47
136k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
136k
  } else {
56
683k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.73M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.18M
        output[y * output_stride + x] =
59
2.18M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.18M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.18M
      }
62
546k
    }
63
136k
  }
64
136k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
14.8k
                                  float* JXL_RESTRICT scratch_space) {
41
14.8k
  static_assert(LF_ROWS == ROWS,
42
14.8k
                "ReinterpretingDCT should only be called with LF == N");
43
14.8k
  static_assert(LF_COLS == COLS,
44
14.8k
                "ReinterpretingDCT should only be called with LF == N");
45
14.8k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
14.8k
                                 scratch_space);
47
14.8k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
14.8k
  } else {
56
74.4k
    for (size_t y = 0; y < LF_COLS; y++) {
57
536k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
476k
        output[y * output_stride + x] =
59
476k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
476k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
476k
      }
62
59.5k
    }
63
14.8k
  }
64
14.8k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
23.6k
                                  float* JXL_RESTRICT scratch_space) {
41
23.6k
  static_assert(LF_ROWS == ROWS,
42
23.6k
                "ReinterpretingDCT should only be called with LF == N");
43
23.6k
  static_assert(LF_COLS == COLS,
44
23.6k
                "ReinterpretingDCT should only be called with LF == N");
45
23.6k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
23.6k
                                 scratch_space);
47
23.6k
  if (ROWS < COLS) {
48
118k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
849k
      for (size_t x = 0; x < LF_COLS; x++) {
50
755k
        output[y * output_stride + x] =
51
755k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
755k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
755k
      }
54
94.4k
    }
55
23.6k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
23.6k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
61.8k
                                  float* JXL_RESTRICT scratch_space) {
41
61.8k
  static_assert(LF_ROWS == ROWS,
42
61.8k
                "ReinterpretingDCT should only be called with LF == N");
43
61.8k
  static_assert(LF_COLS == COLS,
44
61.8k
                "ReinterpretingDCT should only be called with LF == N");
45
61.8k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
61.8k
                                 scratch_space);
47
61.8k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
61.8k
  } else {
56
556k
    for (size_t y = 0; y < LF_COLS; y++) {
57
4.45M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
3.95M
        output[y * output_stride + x] =
59
3.95M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
3.95M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
3.95M
      }
62
494k
    }
63
61.8k
  }
64
61.8k
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
65
66
template <size_t S>
67
36.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
36.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
36.9M
  static_assert(S % 2 == 0, "S should be even");
70
36.9M
  float temp[kDCTBlockSize];
71
36.9M
  constexpr size_t num_2x2 = S / 2;
72
123M
  for (size_t y = 0; y < num_2x2; y++) {
73
344M
    for (size_t x = 0; x < num_2x2; x++) {
74
258M
      float c00 = block[y * kBlockDim + x];
75
258M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
258M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
258M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
258M
      float r00 = c00 + c01 + c10 + c11;
79
258M
      float r01 = c00 + c01 - c10 - c11;
80
258M
      float r10 = c00 - c01 + c10 - c11;
81
258M
      float r11 = c00 - c01 - c10 + c11;
82
258M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
258M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
258M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
258M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
258M
    }
87
86.2M
  }
88
209M
  for (size_t y = 0; y < S; y++) {
89
1.20G
    for (size_t x = 0; x < S; x++) {
90
1.03G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.03G
    }
92
172M
  }
93
36.9M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
2.70M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
2.70M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
2.70M
  static_assert(S % 2 == 0, "S should be even");
70
2.70M
  float temp[kDCTBlockSize];
71
2.70M
  constexpr size_t num_2x2 = S / 2;
72
5.40M
  for (size_t y = 0; y < num_2x2; y++) {
73
5.40M
    for (size_t x = 0; x < num_2x2; x++) {
74
2.70M
      float c00 = block[y * kBlockDim + x];
75
2.70M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
2.70M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
2.70M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
2.70M
      float r00 = c00 + c01 + c10 + c11;
79
2.70M
      float r01 = c00 + c01 - c10 - c11;
80
2.70M
      float r10 = c00 - c01 + c10 - c11;
81
2.70M
      float r11 = c00 - c01 - c10 + c11;
82
2.70M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
2.70M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
2.70M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
2.70M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
2.70M
    }
87
2.70M
  }
88
8.10M
  for (size_t y = 0; y < S; y++) {
89
16.2M
    for (size_t x = 0; x < S; x++) {
90
10.8M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
10.8M
    }
92
5.40M
  }
93
2.70M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
2.70M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
2.70M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
2.70M
  static_assert(S % 2 == 0, "S should be even");
70
2.70M
  float temp[kDCTBlockSize];
71
2.70M
  constexpr size_t num_2x2 = S / 2;
72
8.10M
  for (size_t y = 0; y < num_2x2; y++) {
73
16.2M
    for (size_t x = 0; x < num_2x2; x++) {
74
10.8M
      float c00 = block[y * kBlockDim + x];
75
10.8M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
10.8M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
10.8M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
10.8M
      float r00 = c00 + c01 + c10 + c11;
79
10.8M
      float r01 = c00 + c01 - c10 - c11;
80
10.8M
      float r10 = c00 - c01 + c10 - c11;
81
10.8M
      float r11 = c00 - c01 - c10 + c11;
82
10.8M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
10.8M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
10.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
10.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
10.8M
    }
87
5.40M
  }
88
13.5M
  for (size_t y = 0; y < S; y++) {
89
54.0M
    for (size_t x = 0; x < S; x++) {
90
43.2M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
43.2M
    }
92
10.8M
  }
93
2.70M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
2.70M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
2.70M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
2.70M
  static_assert(S % 2 == 0, "S should be even");
70
2.70M
  float temp[kDCTBlockSize];
71
2.70M
  constexpr size_t num_2x2 = S / 2;
72
13.5M
  for (size_t y = 0; y < num_2x2; y++) {
73
54.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
43.2M
      float c00 = block[y * kBlockDim + x];
75
43.2M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
43.2M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
43.2M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
43.2M
      float r00 = c00 + c01 + c10 + c11;
79
43.2M
      float r01 = c00 + c01 - c10 - c11;
80
43.2M
      float r10 = c00 - c01 + c10 - c11;
81
43.2M
      float r11 = c00 - c01 - c10 + c11;
82
43.2M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
43.2M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
43.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
43.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
43.2M
    }
87
10.8M
  }
88
24.3M
  for (size_t y = 0; y < S; y++) {
89
194M
    for (size_t x = 0; x < S; x++) {
90
172M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
172M
    }
92
21.6M
  }
93
2.70M
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
9.62M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
9.62M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
9.62M
  static_assert(S % 2 == 0, "S should be even");
70
9.62M
  float temp[kDCTBlockSize];
71
9.62M
  constexpr size_t num_2x2 = S / 2;
72
19.2M
  for (size_t y = 0; y < num_2x2; y++) {
73
19.2M
    for (size_t x = 0; x < num_2x2; x++) {
74
9.62M
      float c00 = block[y * kBlockDim + x];
75
9.62M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
9.62M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
9.62M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
9.62M
      float r00 = c00 + c01 + c10 + c11;
79
9.62M
      float r01 = c00 + c01 - c10 - c11;
80
9.62M
      float r10 = c00 - c01 + c10 - c11;
81
9.62M
      float r11 = c00 - c01 - c10 + c11;
82
9.62M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
9.62M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
9.62M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
9.62M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
9.62M
    }
87
9.62M
  }
88
28.8M
  for (size_t y = 0; y < S; y++) {
89
57.7M
    for (size_t x = 0; x < S; x++) {
90
38.4M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
38.4M
    }
92
19.2M
  }
93
9.62M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
9.62M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
9.62M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
9.62M
  static_assert(S % 2 == 0, "S should be even");
70
9.62M
  float temp[kDCTBlockSize];
71
9.62M
  constexpr size_t num_2x2 = S / 2;
72
28.8M
  for (size_t y = 0; y < num_2x2; y++) {
73
57.7M
    for (size_t x = 0; x < num_2x2; x++) {
74
38.4M
      float c00 = block[y * kBlockDim + x];
75
38.4M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
38.4M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
38.4M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
38.4M
      float r00 = c00 + c01 + c10 + c11;
79
38.4M
      float r01 = c00 + c01 - c10 - c11;
80
38.4M
      float r10 = c00 - c01 + c10 - c11;
81
38.4M
      float r11 = c00 - c01 - c10 + c11;
82
38.4M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
38.4M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
38.4M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
38.4M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
38.4M
    }
87
19.2M
  }
88
48.1M
  for (size_t y = 0; y < S; y++) {
89
192M
    for (size_t x = 0; x < S; x++) {
90
153M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
153M
    }
92
38.4M
  }
93
9.62M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
9.62M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
9.62M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
9.62M
  static_assert(S % 2 == 0, "S should be even");
70
9.62M
  float temp[kDCTBlockSize];
71
9.62M
  constexpr size_t num_2x2 = S / 2;
72
48.1M
  for (size_t y = 0; y < num_2x2; y++) {
73
192M
    for (size_t x = 0; x < num_2x2; x++) {
74
153M
      float c00 = block[y * kBlockDim + x];
75
153M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
153M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
153M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
153M
      float r00 = c00 + c01 + c10 + c11;
79
153M
      float r01 = c00 + c01 - c10 - c11;
80
153M
      float r10 = c00 - c01 + c10 - c11;
81
153M
      float r11 = c00 - c01 - c10 + c11;
82
153M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
153M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
153M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
153M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
153M
    }
87
38.4M
  }
88
86.5M
  for (size_t y = 0; y < S; y++) {
89
692M
    for (size_t x = 0; x < S; x++) {
90
615M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
615M
    }
92
76.9M
  }
93
9.62M
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
94
95
40.7M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
40.7M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
40.7M
      {
98
40.7M
          0.25,
99
40.7M
          0.25,
100
40.7M
          0.25,
101
40.7M
          0.25,
102
40.7M
          0.25,
103
40.7M
          0.25,
104
40.7M
          0.25,
105
40.7M
          0.25,
106
40.7M
          0.25,
107
40.7M
          0.25,
108
40.7M
          0.25,
109
40.7M
          0.25,
110
40.7M
          0.25,
111
40.7M
          0.25,
112
40.7M
          0.25,
113
40.7M
          0.25,
114
40.7M
      },
115
40.7M
      {
116
40.7M
          0.876902929799142f,
117
40.7M
          0.2206518106944235f,
118
40.7M
          -0.10140050393753763f,
119
40.7M
          -0.1014005039375375f,
120
40.7M
          0.2206518106944236f,
121
40.7M
          -0.10140050393753777f,
122
40.7M
          -0.10140050393753772f,
123
40.7M
          -0.10140050393753763f,
124
40.7M
          -0.10140050393753758f,
125
40.7M
          -0.10140050393753769f,
126
40.7M
          -0.1014005039375375f,
127
40.7M
          -0.10140050393753768f,
128
40.7M
          -0.10140050393753768f,
129
40.7M
          -0.10140050393753759f,
130
40.7M
          -0.10140050393753763f,
131
40.7M
          -0.10140050393753741f,
132
40.7M
      },
133
40.7M
      {
134
40.7M
          0.0,
135
40.7M
          0.0,
136
40.7M
          0.40670075830260755f,
137
40.7M
          0.44444816619734445f,
138
40.7M
          0.0,
139
40.7M
          0.0,
140
40.7M
          0.19574399372042936f,
141
40.7M
          0.2929100136981264f,
142
40.7M
          -0.40670075830260716f,
143
40.7M
          -0.19574399372042872f,
144
40.7M
          0.0,
145
40.7M
          0.11379074460448091f,
146
40.7M
          -0.44444816619734384f,
147
40.7M
          -0.29291001369812636f,
148
40.7M
          -0.1137907446044814f,
149
40.7M
          0.0,
150
40.7M
      },
151
40.7M
      {
152
40.7M
          0.0,
153
40.7M
          0.0,
154
40.7M
          -0.21255748058288748f,
155
40.7M
          0.3085497062849767f,
156
40.7M
          0.0,
157
40.7M
          0.4706702258572536f,
158
40.7M
          -0.1621205195722993f,
159
40.7M
          0.0,
160
40.7M
          -0.21255748058287047f,
161
40.7M
          -0.16212051957228327f,
162
40.7M
          -0.47067022585725277f,
163
40.7M
          -0.1464291867126764f,
164
40.7M
          0.3085497062849487f,
165
40.7M
          0.0,
166
40.7M
          -0.14642918671266536f,
167
40.7M
          0.4251149611657548f,
168
40.7M
      },
169
40.7M
      {
170
40.7M
          0.0,
171
40.7M
          -0.7071067811865474f,
172
40.7M
          0.0,
173
40.7M
          0.0,
174
40.7M
          0.7071067811865476f,
175
40.7M
          0.0,
176
40.7M
          0.0,
177
40.7M
          0.0,
178
40.7M
          0.0,
179
40.7M
          0.0,
180
40.7M
          0.0,
181
40.7M
          0.0,
182
40.7M
          0.0,
183
40.7M
          0.0,
184
40.7M
          0.0,
185
40.7M
          0.0,
186
40.7M
      },
187
40.7M
      {
188
40.7M
          -0.4105377591765233f,
189
40.7M
          0.6235485373547691f,
190
40.7M
          -0.06435071657946274f,
191
40.7M
          -0.06435071657946266f,
192
40.7M
          0.6235485373547694f,
193
40.7M
          -0.06435071657946284f,
194
40.7M
          -0.0643507165794628f,
195
40.7M
          -0.06435071657946274f,
196
40.7M
          -0.06435071657946272f,
197
40.7M
          -0.06435071657946279f,
198
40.7M
          -0.06435071657946266f,
199
40.7M
          -0.06435071657946277f,
200
40.7M
          -0.06435071657946277f,
201
40.7M
          -0.06435071657946273f,
202
40.7M
          -0.06435071657946274f,
203
40.7M
          -0.0643507165794626f,
204
40.7M
      },
205
40.7M
      {
206
40.7M
          0.0,
207
40.7M
          0.0,
208
40.7M
          -0.4517556589999482f,
209
40.7M
          0.15854503551840063f,
210
40.7M
          0.0,
211
40.7M
          -0.04038515160822202f,
212
40.7M
          0.0074182263792423875f,
213
40.7M
          0.39351034269210167f,
214
40.7M
          -0.45175565899994635f,
215
40.7M
          0.007418226379244351f,
216
40.7M
          0.1107416575309343f,
217
40.7M
          0.08298163094882051f,
218
40.7M
          0.15854503551839705f,
219
40.7M
          0.3935103426921022f,
220
40.7M
          0.0829816309488214f,
221
40.7M
          -0.45175565899994796f,
222
40.7M
      },
223
40.7M
      {
224
40.7M
          0.0,
225
40.7M
          0.0,
226
40.7M
          -0.304684750724869f,
227
40.7M
          0.5112616136591823f,
228
40.7M
          0.0,
229
40.7M
          0.0,
230
40.7M
          -0.290480129728998f,
231
40.7M
          -0.06578701549142804f,
232
40.7M
          0.304684750724884f,
233
40.7M
          0.2904801297290076f,
234
40.7M
          0.0,
235
40.7M
          -0.23889773523344604f,
236
40.7M
          -0.5112616136592012f,
237
40.7M
          0.06578701549142545f,
238
40.7M
          0.23889773523345467f,
239
40.7M
          0.0,
240
40.7M
      },
241
40.7M
      {
242
40.7M
          0.0,
243
40.7M
          0.0,
244
40.7M
          0.3017929516615495f,
245
40.7M
          0.25792362796341184f,
246
40.7M
          0.0,
247
40.7M
          0.16272340142866204f,
248
40.7M
          0.09520022653475037f,
249
40.7M
          0.0,
250
40.7M
          0.3017929516615503f,
251
40.7M
          0.09520022653475055f,
252
40.7M
          -0.16272340142866173f,
253
40.7M
          -0.35312385449816297f,
254
40.7M
          0.25792362796341295f,
255
40.7M
          0.0,
256
40.7M
          -0.3531238544981624f,
257
40.7M
          -0.6035859033230976f,
258
40.7M
      },
259
40.7M
      {
260
40.7M
          0.0,
261
40.7M
          0.0,
262
40.7M
          0.40824829046386274f,
263
40.7M
          0.0,
264
40.7M
          0.0,
265
40.7M
          0.0,
266
40.7M
          0.0,
267
40.7M
          -0.4082482904638628f,
268
40.7M
          -0.4082482904638635f,
269
40.7M
          0.0,
270
40.7M
          0.0,
271
40.7M
          -0.40824829046386296f,
272
40.7M
          0.0,
273
40.7M
          0.4082482904638634f,
274
40.7M
          0.408248290463863f,
275
40.7M
          0.0,
276
40.7M
      },
277
40.7M
      {
278
40.7M
          0.0,
279
40.7M
          0.0,
280
40.7M
          0.1747866975480809f,
281
40.7M
          0.0812611176717539f,
282
40.7M
          0.0,
283
40.7M
          0.0,
284
40.7M
          -0.3675398009862027f,
285
40.7M
          -0.307882213957909f,
286
40.7M
          -0.17478669754808135f,
287
40.7M
          0.3675398009862011f,
288
40.7M
          0.0,
289
40.7M
          0.4826689115059883f,
290
40.7M
          -0.08126111767175039f,
291
40.7M
          0.30788221395790305f,
292
40.7M
          -0.48266891150598584f,
293
40.7M
          0.0,
294
40.7M
      },
295
40.7M
      {
296
40.7M
          0.0,
297
40.7M
          0.0,
298
40.7M
          -0.21105601049335784f,
299
40.7M
          0.18567180916109802f,
300
40.7M
          0.0,
301
40.7M
          0.0,
302
40.7M
          0.49215859013738733f,
303
40.7M
          -0.38525013709251915f,
304
40.7M
          0.21105601049335806f,
305
40.7M
          -0.49215859013738905f,
306
40.7M
          0.0,
307
40.7M
          0.17419412659916217f,
308
40.7M
          -0.18567180916109904f,
309
40.7M
          0.3852501370925211f,
310
40.7M
          -0.1741941265991621f,
311
40.7M
          0.0,
312
40.7M
      },
313
40.7M
      {
314
40.7M
          0.0,
315
40.7M
          0.0,
316
40.7M
          -0.14266084808807264f,
317
40.7M
          -0.3416446842253372f,
318
40.7M
          0.0,
319
40.7M
          0.7367497537172237f,
320
40.7M
          0.24627107722075148f,
321
40.7M
          -0.08574019035519306f,
322
40.7M
          -0.14266084808807344f,
323
40.7M
          0.24627107722075137f,
324
40.7M
          0.14883399227113567f,
325
40.7M
          -0.04768680350229251f,
326
40.7M
          -0.3416446842253373f,
327
40.7M
          -0.08574019035519267f,
328
40.7M
          -0.047686803502292804f,
329
40.7M
          -0.14266084808807242f,
330
40.7M
      },
331
40.7M
      {
332
40.7M
          0.0,
333
40.7M
          0.0,
334
40.7M
          -0.13813540350758585f,
335
40.7M
          0.3302282550303788f,
336
40.7M
          0.0,
337
40.7M
          0.08755115000587084f,
338
40.7M
          -0.07946706605909573f,
339
40.7M
          -0.4613374887461511f,
340
40.7M
          -0.13813540350758294f,
341
40.7M
          -0.07946706605910261f,
342
40.7M
          0.49724647109535086f,
343
40.7M
          0.12538059448563663f,
344
40.7M
          0.3302282550303805f,
345
40.7M
          -0.4613374887461554f,
346
40.7M
          0.12538059448564315f,
347
40.7M
          -0.13813540350758452f,
348
40.7M
      },
349
40.7M
      {
350
40.7M
          0.0,
351
40.7M
          0.0,
352
40.7M
          -0.17437602599651067f,
353
40.7M
          0.0702790691196284f,
354
40.7M
          0.0,
355
40.7M
          -0.2921026642334881f,
356
40.7M
          0.3623817333531167f,
357
40.7M
          0.0,
358
40.7M
          -0.1743760259965108f,
359
40.7M
          0.36238173335311646f,
360
40.7M
          0.29210266423348785f,
361
40.7M
          -0.4326608024727445f,
362
40.7M
          0.07027906911962818f,
363
40.7M
          0.0,
364
40.7M
          -0.4326608024727457f,
365
40.7M
          0.34875205199302267f,
366
40.7M
      },
367
40.7M
      {
368
40.7M
          0.0,
369
40.7M
          0.0,
370
40.7M
          0.11354987314994337f,
371
40.7M
          -0.07417504595810355f,
372
40.7M
          0.0,
373
40.7M
          0.19402893032594343f,
374
40.7M
          -0.435190496523228f,
375
40.7M
          0.21918684838857466f,
376
40.7M
          0.11354987314994257f,
377
40.7M
          -0.4351904965232251f,
378
40.7M
          0.5550443808910661f,
379
40.7M
          -0.25468277124066463f,
380
40.7M
          -0.07417504595810233f,
381
40.7M
          0.2191868483885728f,
382
40.7M
          -0.25468277124066413f,
383
40.7M
          0.1135498731499429f,
384
40.7M
      },
385
40.7M
  };
386
387
40.7M
  const HWY_CAPPED(float, 16) d;
388
122M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
81.5M
    auto pixel = Zero(d);
390
1.38G
    for (size_t j = 0; j < 16; j++) {
391
1.30G
      auto cf = Set(d, coeffs[j]);
392
1.30G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
1.30G
      pixel = MulAdd(cf, basis, pixel);
394
1.30G
    }
395
81.5M
    Store(pixel, d, pixels + i);
396
81.5M
  }
397
40.7M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Line
Count
Source
95
2.29M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
2.29M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
2.29M
      {
98
2.29M
          0.25,
99
2.29M
          0.25,
100
2.29M
          0.25,
101
2.29M
          0.25,
102
2.29M
          0.25,
103
2.29M
          0.25,
104
2.29M
          0.25,
105
2.29M
          0.25,
106
2.29M
          0.25,
107
2.29M
          0.25,
108
2.29M
          0.25,
109
2.29M
          0.25,
110
2.29M
          0.25,
111
2.29M
          0.25,
112
2.29M
          0.25,
113
2.29M
          0.25,
114
2.29M
      },
115
2.29M
      {
116
2.29M
          0.876902929799142f,
117
2.29M
          0.2206518106944235f,
118
2.29M
          -0.10140050393753763f,
119
2.29M
          -0.1014005039375375f,
120
2.29M
          0.2206518106944236f,
121
2.29M
          -0.10140050393753777f,
122
2.29M
          -0.10140050393753772f,
123
2.29M
          -0.10140050393753763f,
124
2.29M
          -0.10140050393753758f,
125
2.29M
          -0.10140050393753769f,
126
2.29M
          -0.1014005039375375f,
127
2.29M
          -0.10140050393753768f,
128
2.29M
          -0.10140050393753768f,
129
2.29M
          -0.10140050393753759f,
130
2.29M
          -0.10140050393753763f,
131
2.29M
          -0.10140050393753741f,
132
2.29M
      },
133
2.29M
      {
134
2.29M
          0.0,
135
2.29M
          0.0,
136
2.29M
          0.40670075830260755f,
137
2.29M
          0.44444816619734445f,
138
2.29M
          0.0,
139
2.29M
          0.0,
140
2.29M
          0.19574399372042936f,
141
2.29M
          0.2929100136981264f,
142
2.29M
          -0.40670075830260716f,
143
2.29M
          -0.19574399372042872f,
144
2.29M
          0.0,
145
2.29M
          0.11379074460448091f,
146
2.29M
          -0.44444816619734384f,
147
2.29M
          -0.29291001369812636f,
148
2.29M
          -0.1137907446044814f,
149
2.29M
          0.0,
150
2.29M
      },
151
2.29M
      {
152
2.29M
          0.0,
153
2.29M
          0.0,
154
2.29M
          -0.21255748058288748f,
155
2.29M
          0.3085497062849767f,
156
2.29M
          0.0,
157
2.29M
          0.4706702258572536f,
158
2.29M
          -0.1621205195722993f,
159
2.29M
          0.0,
160
2.29M
          -0.21255748058287047f,
161
2.29M
          -0.16212051957228327f,
162
2.29M
          -0.47067022585725277f,
163
2.29M
          -0.1464291867126764f,
164
2.29M
          0.3085497062849487f,
165
2.29M
          0.0,
166
2.29M
          -0.14642918671266536f,
167
2.29M
          0.4251149611657548f,
168
2.29M
      },
169
2.29M
      {
170
2.29M
          0.0,
171
2.29M
          -0.7071067811865474f,
172
2.29M
          0.0,
173
2.29M
          0.0,
174
2.29M
          0.7071067811865476f,
175
2.29M
          0.0,
176
2.29M
          0.0,
177
2.29M
          0.0,
178
2.29M
          0.0,
179
2.29M
          0.0,
180
2.29M
          0.0,
181
2.29M
          0.0,
182
2.29M
          0.0,
183
2.29M
          0.0,
184
2.29M
          0.0,
185
2.29M
          0.0,
186
2.29M
      },
187
2.29M
      {
188
2.29M
          -0.4105377591765233f,
189
2.29M
          0.6235485373547691f,
190
2.29M
          -0.06435071657946274f,
191
2.29M
          -0.06435071657946266f,
192
2.29M
          0.6235485373547694f,
193
2.29M
          -0.06435071657946284f,
194
2.29M
          -0.0643507165794628f,
195
2.29M
          -0.06435071657946274f,
196
2.29M
          -0.06435071657946272f,
197
2.29M
          -0.06435071657946279f,
198
2.29M
          -0.06435071657946266f,
199
2.29M
          -0.06435071657946277f,
200
2.29M
          -0.06435071657946277f,
201
2.29M
          -0.06435071657946273f,
202
2.29M
          -0.06435071657946274f,
203
2.29M
          -0.0643507165794626f,
204
2.29M
      },
205
2.29M
      {
206
2.29M
          0.0,
207
2.29M
          0.0,
208
2.29M
          -0.4517556589999482f,
209
2.29M
          0.15854503551840063f,
210
2.29M
          0.0,
211
2.29M
          -0.04038515160822202f,
212
2.29M
          0.0074182263792423875f,
213
2.29M
          0.39351034269210167f,
214
2.29M
          -0.45175565899994635f,
215
2.29M
          0.007418226379244351f,
216
2.29M
          0.1107416575309343f,
217
2.29M
          0.08298163094882051f,
218
2.29M
          0.15854503551839705f,
219
2.29M
          0.3935103426921022f,
220
2.29M
          0.0829816309488214f,
221
2.29M
          -0.45175565899994796f,
222
2.29M
      },
223
2.29M
      {
224
2.29M
          0.0,
225
2.29M
          0.0,
226
2.29M
          -0.304684750724869f,
227
2.29M
          0.5112616136591823f,
228
2.29M
          0.0,
229
2.29M
          0.0,
230
2.29M
          -0.290480129728998f,
231
2.29M
          -0.06578701549142804f,
232
2.29M
          0.304684750724884f,
233
2.29M
          0.2904801297290076f,
234
2.29M
          0.0,
235
2.29M
          -0.23889773523344604f,
236
2.29M
          -0.5112616136592012f,
237
2.29M
          0.06578701549142545f,
238
2.29M
          0.23889773523345467f,
239
2.29M
          0.0,
240
2.29M
      },
241
2.29M
      {
242
2.29M
          0.0,
243
2.29M
          0.0,
244
2.29M
          0.3017929516615495f,
245
2.29M
          0.25792362796341184f,
246
2.29M
          0.0,
247
2.29M
          0.16272340142866204f,
248
2.29M
          0.09520022653475037f,
249
2.29M
          0.0,
250
2.29M
          0.3017929516615503f,
251
2.29M
          0.09520022653475055f,
252
2.29M
          -0.16272340142866173f,
253
2.29M
          -0.35312385449816297f,
254
2.29M
          0.25792362796341295f,
255
2.29M
          0.0,
256
2.29M
          -0.3531238544981624f,
257
2.29M
          -0.6035859033230976f,
258
2.29M
      },
259
2.29M
      {
260
2.29M
          0.0,
261
2.29M
          0.0,
262
2.29M
          0.40824829046386274f,
263
2.29M
          0.0,
264
2.29M
          0.0,
265
2.29M
          0.0,
266
2.29M
          0.0,
267
2.29M
          -0.4082482904638628f,
268
2.29M
          -0.4082482904638635f,
269
2.29M
          0.0,
270
2.29M
          0.0,
271
2.29M
          -0.40824829046386296f,
272
2.29M
          0.0,
273
2.29M
          0.4082482904638634f,
274
2.29M
          0.408248290463863f,
275
2.29M
          0.0,
276
2.29M
      },
277
2.29M
      {
278
2.29M
          0.0,
279
2.29M
          0.0,
280
2.29M
          0.1747866975480809f,
281
2.29M
          0.0812611176717539f,
282
2.29M
          0.0,
283
2.29M
          0.0,
284
2.29M
          -0.3675398009862027f,
285
2.29M
          -0.307882213957909f,
286
2.29M
          -0.17478669754808135f,
287
2.29M
          0.3675398009862011f,
288
2.29M
          0.0,
289
2.29M
          0.4826689115059883f,
290
2.29M
          -0.08126111767175039f,
291
2.29M
          0.30788221395790305f,
292
2.29M
          -0.48266891150598584f,
293
2.29M
          0.0,
294
2.29M
      },
295
2.29M
      {
296
2.29M
          0.0,
297
2.29M
          0.0,
298
2.29M
          -0.21105601049335784f,
299
2.29M
          0.18567180916109802f,
300
2.29M
          0.0,
301
2.29M
          0.0,
302
2.29M
          0.49215859013738733f,
303
2.29M
          -0.38525013709251915f,
304
2.29M
          0.21105601049335806f,
305
2.29M
          -0.49215859013738905f,
306
2.29M
          0.0,
307
2.29M
          0.17419412659916217f,
308
2.29M
          -0.18567180916109904f,
309
2.29M
          0.3852501370925211f,
310
2.29M
          -0.1741941265991621f,
311
2.29M
          0.0,
312
2.29M
      },
313
2.29M
      {
314
2.29M
          0.0,
315
2.29M
          0.0,
316
2.29M
          -0.14266084808807264f,
317
2.29M
          -0.3416446842253372f,
318
2.29M
          0.0,
319
2.29M
          0.7367497537172237f,
320
2.29M
          0.24627107722075148f,
321
2.29M
          -0.08574019035519306f,
322
2.29M
          -0.14266084808807344f,
323
2.29M
          0.24627107722075137f,
324
2.29M
          0.14883399227113567f,
325
2.29M
          -0.04768680350229251f,
326
2.29M
          -0.3416446842253373f,
327
2.29M
          -0.08574019035519267f,
328
2.29M
          -0.047686803502292804f,
329
2.29M
          -0.14266084808807242f,
330
2.29M
      },
331
2.29M
      {
332
2.29M
          0.0,
333
2.29M
          0.0,
334
2.29M
          -0.13813540350758585f,
335
2.29M
          0.3302282550303788f,
336
2.29M
          0.0,
337
2.29M
          0.08755115000587084f,
338
2.29M
          -0.07946706605909573f,
339
2.29M
          -0.4613374887461511f,
340
2.29M
          -0.13813540350758294f,
341
2.29M
          -0.07946706605910261f,
342
2.29M
          0.49724647109535086f,
343
2.29M
          0.12538059448563663f,
344
2.29M
          0.3302282550303805f,
345
2.29M
          -0.4613374887461554f,
346
2.29M
          0.12538059448564315f,
347
2.29M
          -0.13813540350758452f,
348
2.29M
      },
349
2.29M
      {
350
2.29M
          0.0,
351
2.29M
          0.0,
352
2.29M
          -0.17437602599651067f,
353
2.29M
          0.0702790691196284f,
354
2.29M
          0.0,
355
2.29M
          -0.2921026642334881f,
356
2.29M
          0.3623817333531167f,
357
2.29M
          0.0,
358
2.29M
          -0.1743760259965108f,
359
2.29M
          0.36238173335311646f,
360
2.29M
          0.29210266423348785f,
361
2.29M
          -0.4326608024727445f,
362
2.29M
          0.07027906911962818f,
363
2.29M
          0.0,
364
2.29M
          -0.4326608024727457f,
365
2.29M
          0.34875205199302267f,
366
2.29M
      },
367
2.29M
      {
368
2.29M
          0.0,
369
2.29M
          0.0,
370
2.29M
          0.11354987314994337f,
371
2.29M
          -0.07417504595810355f,
372
2.29M
          0.0,
373
2.29M
          0.19402893032594343f,
374
2.29M
          -0.435190496523228f,
375
2.29M
          0.21918684838857466f,
376
2.29M
          0.11354987314994257f,
377
2.29M
          -0.4351904965232251f,
378
2.29M
          0.5550443808910661f,
379
2.29M
          -0.25468277124066463f,
380
2.29M
          -0.07417504595810233f,
381
2.29M
          0.2191868483885728f,
382
2.29M
          -0.25468277124066413f,
383
2.29M
          0.1135498731499429f,
384
2.29M
      },
385
2.29M
  };
386
387
2.29M
  const HWY_CAPPED(float, 16) d;
388
6.87M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
4.58M
    auto pixel = Zero(d);
390
77.8M
    for (size_t j = 0; j < 16; j++) {
391
73.2M
      auto cf = Set(d, coeffs[j]);
392
73.2M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
73.2M
      pixel = MulAdd(cf, basis, pixel);
394
73.2M
    }
395
4.58M
    Store(pixel, d, pixels + i);
396
4.58M
  }
397
2.29M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Line
Count
Source
95
38.4M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
38.4M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
38.4M
      {
98
38.4M
          0.25,
99
38.4M
          0.25,
100
38.4M
          0.25,
101
38.4M
          0.25,
102
38.4M
          0.25,
103
38.4M
          0.25,
104
38.4M
          0.25,
105
38.4M
          0.25,
106
38.4M
          0.25,
107
38.4M
          0.25,
108
38.4M
          0.25,
109
38.4M
          0.25,
110
38.4M
          0.25,
111
38.4M
          0.25,
112
38.4M
          0.25,
113
38.4M
          0.25,
114
38.4M
      },
115
38.4M
      {
116
38.4M
          0.876902929799142f,
117
38.4M
          0.2206518106944235f,
118
38.4M
          -0.10140050393753763f,
119
38.4M
          -0.1014005039375375f,
120
38.4M
          0.2206518106944236f,
121
38.4M
          -0.10140050393753777f,
122
38.4M
          -0.10140050393753772f,
123
38.4M
          -0.10140050393753763f,
124
38.4M
          -0.10140050393753758f,
125
38.4M
          -0.10140050393753769f,
126
38.4M
          -0.1014005039375375f,
127
38.4M
          -0.10140050393753768f,
128
38.4M
          -0.10140050393753768f,
129
38.4M
          -0.10140050393753759f,
130
38.4M
          -0.10140050393753763f,
131
38.4M
          -0.10140050393753741f,
132
38.4M
      },
133
38.4M
      {
134
38.4M
          0.0,
135
38.4M
          0.0,
136
38.4M
          0.40670075830260755f,
137
38.4M
          0.44444816619734445f,
138
38.4M
          0.0,
139
38.4M
          0.0,
140
38.4M
          0.19574399372042936f,
141
38.4M
          0.2929100136981264f,
142
38.4M
          -0.40670075830260716f,
143
38.4M
          -0.19574399372042872f,
144
38.4M
          0.0,
145
38.4M
          0.11379074460448091f,
146
38.4M
          -0.44444816619734384f,
147
38.4M
          -0.29291001369812636f,
148
38.4M
          -0.1137907446044814f,
149
38.4M
          0.0,
150
38.4M
      },
151
38.4M
      {
152
38.4M
          0.0,
153
38.4M
          0.0,
154
38.4M
          -0.21255748058288748f,
155
38.4M
          0.3085497062849767f,
156
38.4M
          0.0,
157
38.4M
          0.4706702258572536f,
158
38.4M
          -0.1621205195722993f,
159
38.4M
          0.0,
160
38.4M
          -0.21255748058287047f,
161
38.4M
          -0.16212051957228327f,
162
38.4M
          -0.47067022585725277f,
163
38.4M
          -0.1464291867126764f,
164
38.4M
          0.3085497062849487f,
165
38.4M
          0.0,
166
38.4M
          -0.14642918671266536f,
167
38.4M
          0.4251149611657548f,
168
38.4M
      },
169
38.4M
      {
170
38.4M
          0.0,
171
38.4M
          -0.7071067811865474f,
172
38.4M
          0.0,
173
38.4M
          0.0,
174
38.4M
          0.7071067811865476f,
175
38.4M
          0.0,
176
38.4M
          0.0,
177
38.4M
          0.0,
178
38.4M
          0.0,
179
38.4M
          0.0,
180
38.4M
          0.0,
181
38.4M
          0.0,
182
38.4M
          0.0,
183
38.4M
          0.0,
184
38.4M
          0.0,
185
38.4M
          0.0,
186
38.4M
      },
187
38.4M
      {
188
38.4M
          -0.4105377591765233f,
189
38.4M
          0.6235485373547691f,
190
38.4M
          -0.06435071657946274f,
191
38.4M
          -0.06435071657946266f,
192
38.4M
          0.6235485373547694f,
193
38.4M
          -0.06435071657946284f,
194
38.4M
          -0.0643507165794628f,
195
38.4M
          -0.06435071657946274f,
196
38.4M
          -0.06435071657946272f,
197
38.4M
          -0.06435071657946279f,
198
38.4M
          -0.06435071657946266f,
199
38.4M
          -0.06435071657946277f,
200
38.4M
          -0.06435071657946277f,
201
38.4M
          -0.06435071657946273f,
202
38.4M
          -0.06435071657946274f,
203
38.4M
          -0.0643507165794626f,
204
38.4M
      },
205
38.4M
      {
206
38.4M
          0.0,
207
38.4M
          0.0,
208
38.4M
          -0.4517556589999482f,
209
38.4M
          0.15854503551840063f,
210
38.4M
          0.0,
211
38.4M
          -0.04038515160822202f,
212
38.4M
          0.0074182263792423875f,
213
38.4M
          0.39351034269210167f,
214
38.4M
          -0.45175565899994635f,
215
38.4M
          0.007418226379244351f,
216
38.4M
          0.1107416575309343f,
217
38.4M
          0.08298163094882051f,
218
38.4M
          0.15854503551839705f,
219
38.4M
          0.3935103426921022f,
220
38.4M
          0.0829816309488214f,
221
38.4M
          -0.45175565899994796f,
222
38.4M
      },
223
38.4M
      {
224
38.4M
          0.0,
225
38.4M
          0.0,
226
38.4M
          -0.304684750724869f,
227
38.4M
          0.5112616136591823f,
228
38.4M
          0.0,
229
38.4M
          0.0,
230
38.4M
          -0.290480129728998f,
231
38.4M
          -0.06578701549142804f,
232
38.4M
          0.304684750724884f,
233
38.4M
          0.2904801297290076f,
234
38.4M
          0.0,
235
38.4M
          -0.23889773523344604f,
236
38.4M
          -0.5112616136592012f,
237
38.4M
          0.06578701549142545f,
238
38.4M
          0.23889773523345467f,
239
38.4M
          0.0,
240
38.4M
      },
241
38.4M
      {
242
38.4M
          0.0,
243
38.4M
          0.0,
244
38.4M
          0.3017929516615495f,
245
38.4M
          0.25792362796341184f,
246
38.4M
          0.0,
247
38.4M
          0.16272340142866204f,
248
38.4M
          0.09520022653475037f,
249
38.4M
          0.0,
250
38.4M
          0.3017929516615503f,
251
38.4M
          0.09520022653475055f,
252
38.4M
          -0.16272340142866173f,
253
38.4M
          -0.35312385449816297f,
254
38.4M
          0.25792362796341295f,
255
38.4M
          0.0,
256
38.4M
          -0.3531238544981624f,
257
38.4M
          -0.6035859033230976f,
258
38.4M
      },
259
38.4M
      {
260
38.4M
          0.0,
261
38.4M
          0.0,
262
38.4M
          0.40824829046386274f,
263
38.4M
          0.0,
264
38.4M
          0.0,
265
38.4M
          0.0,
266
38.4M
          0.0,
267
38.4M
          -0.4082482904638628f,
268
38.4M
          -0.4082482904638635f,
269
38.4M
          0.0,
270
38.4M
          0.0,
271
38.4M
          -0.40824829046386296f,
272
38.4M
          0.0,
273
38.4M
          0.4082482904638634f,
274
38.4M
          0.408248290463863f,
275
38.4M
          0.0,
276
38.4M
      },
277
38.4M
      {
278
38.4M
          0.0,
279
38.4M
          0.0,
280
38.4M
          0.1747866975480809f,
281
38.4M
          0.0812611176717539f,
282
38.4M
          0.0,
283
38.4M
          0.0,
284
38.4M
          -0.3675398009862027f,
285
38.4M
          -0.307882213957909f,
286
38.4M
          -0.17478669754808135f,
287
38.4M
          0.3675398009862011f,
288
38.4M
          0.0,
289
38.4M
          0.4826689115059883f,
290
38.4M
          -0.08126111767175039f,
291
38.4M
          0.30788221395790305f,
292
38.4M
          -0.48266891150598584f,
293
38.4M
          0.0,
294
38.4M
      },
295
38.4M
      {
296
38.4M
          0.0,
297
38.4M
          0.0,
298
38.4M
          -0.21105601049335784f,
299
38.4M
          0.18567180916109802f,
300
38.4M
          0.0,
301
38.4M
          0.0,
302
38.4M
          0.49215859013738733f,
303
38.4M
          -0.38525013709251915f,
304
38.4M
          0.21105601049335806f,
305
38.4M
          -0.49215859013738905f,
306
38.4M
          0.0,
307
38.4M
          0.17419412659916217f,
308
38.4M
          -0.18567180916109904f,
309
38.4M
          0.3852501370925211f,
310
38.4M
          -0.1741941265991621f,
311
38.4M
          0.0,
312
38.4M
      },
313
38.4M
      {
314
38.4M
          0.0,
315
38.4M
          0.0,
316
38.4M
          -0.14266084808807264f,
317
38.4M
          -0.3416446842253372f,
318
38.4M
          0.0,
319
38.4M
          0.7367497537172237f,
320
38.4M
          0.24627107722075148f,
321
38.4M
          -0.08574019035519306f,
322
38.4M
          -0.14266084808807344f,
323
38.4M
          0.24627107722075137f,
324
38.4M
          0.14883399227113567f,
325
38.4M
          -0.04768680350229251f,
326
38.4M
          -0.3416446842253373f,
327
38.4M
          -0.08574019035519267f,
328
38.4M
          -0.047686803502292804f,
329
38.4M
          -0.14266084808807242f,
330
38.4M
      },
331
38.4M
      {
332
38.4M
          0.0,
333
38.4M
          0.0,
334
38.4M
          -0.13813540350758585f,
335
38.4M
          0.3302282550303788f,
336
38.4M
          0.0,
337
38.4M
          0.08755115000587084f,
338
38.4M
          -0.07946706605909573f,
339
38.4M
          -0.4613374887461511f,
340
38.4M
          -0.13813540350758294f,
341
38.4M
          -0.07946706605910261f,
342
38.4M
          0.49724647109535086f,
343
38.4M
          0.12538059448563663f,
344
38.4M
          0.3302282550303805f,
345
38.4M
          -0.4613374887461554f,
346
38.4M
          0.12538059448564315f,
347
38.4M
          -0.13813540350758452f,
348
38.4M
      },
349
38.4M
      {
350
38.4M
          0.0,
351
38.4M
          0.0,
352
38.4M
          -0.17437602599651067f,
353
38.4M
          0.0702790691196284f,
354
38.4M
          0.0,
355
38.4M
          -0.2921026642334881f,
356
38.4M
          0.3623817333531167f,
357
38.4M
          0.0,
358
38.4M
          -0.1743760259965108f,
359
38.4M
          0.36238173335311646f,
360
38.4M
          0.29210266423348785f,
361
38.4M
          -0.4326608024727445f,
362
38.4M
          0.07027906911962818f,
363
38.4M
          0.0,
364
38.4M
          -0.4326608024727457f,
365
38.4M
          0.34875205199302267f,
366
38.4M
      },
367
38.4M
      {
368
38.4M
          0.0,
369
38.4M
          0.0,
370
38.4M
          0.11354987314994337f,
371
38.4M
          -0.07417504595810355f,
372
38.4M
          0.0,
373
38.4M
          0.19402893032594343f,
374
38.4M
          -0.435190496523228f,
375
38.4M
          0.21918684838857466f,
376
38.4M
          0.11354987314994257f,
377
38.4M
          -0.4351904965232251f,
378
38.4M
          0.5550443808910661f,
379
38.4M
          -0.25468277124066463f,
380
38.4M
          -0.07417504595810233f,
381
38.4M
          0.2191868483885728f,
382
38.4M
          -0.25468277124066413f,
383
38.4M
          0.1135498731499429f,
384
38.4M
      },
385
38.4M
  };
386
387
38.4M
  const HWY_CAPPED(float, 16) d;
388
115M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
76.9M
    auto pixel = Zero(d);
390
1.30G
    for (size_t j = 0; j < 16; j++) {
391
1.23G
      auto cf = Set(d, coeffs[j]);
392
1.23G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
1.23G
      pixel = MulAdd(cf, basis, pixel);
394
1.23G
    }
395
76.9M
    Store(pixel, d, pixels + i);
396
76.9M
  }
397
38.4M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
398
399
template <size_t afv_kind>
400
void AFVTransformToPixels(const float* JXL_RESTRICT coefficients,
401
40.7M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
40.7M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
40.7M
  size_t afv_x = afv_kind & 1;
404
40.7M
  size_t afv_y = afv_kind / 2;
405
40.7M
  float dcs[3] = {};
406
40.7M
  float block00 = coefficients[0];
407
40.7M
  float block01 = coefficients[1];
408
40.7M
  float block10 = coefficients[8];
409
40.7M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
40.7M
  dcs[1] = (block00 + block10 - block01);
411
40.7M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
40.7M
  HWY_ALIGN float coeff[4 * 4];
414
40.7M
  coeff[0] = dcs[0];
415
203M
  for (size_t iy = 0; iy < 4; iy++) {
416
815M
    for (size_t ix = 0; ix < 4; ix++) {
417
652M
      if (ix == 0 && iy == 0) continue;
418
611M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
611M
    }
420
163M
  }
421
40.7M
  HWY_ALIGN float block[4 * 8];
422
40.7M
  AFVIDCT4x4(coeff, block);
423
203M
  for (size_t iy = 0; iy < 4; iy++) {
424
815M
    for (size_t ix = 0; ix < 4; ix++) {
425
652M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
652M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
652M
    }
428
163M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
40.7M
  block[0] = dcs[1];
431
203M
  for (size_t iy = 0; iy < 4; iy++) {
432
815M
    for (size_t ix = 0; ix < 4; ix++) {
433
652M
      if (ix == 0 && iy == 0) continue;
434
611M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
611M
    }
436
163M
  }
437
40.7M
  ComputeScaledIDCT<4, 4>()(
438
40.7M
      block,
439
40.7M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
40.7M
            pixels_stride),
441
40.7M
      scratch_space);
442
  // IDCT4x8.
443
40.7M
  block[0] = dcs[2];
444
203M
  for (size_t iy = 0; iy < 4; iy++) {
445
1.46G
    for (size_t ix = 0; ix < 8; ix++) {
446
1.30G
      if (ix == 0 && iy == 0) continue;
447
1.26G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
1.26G
    }
449
163M
  }
450
40.7M
  ComputeScaledIDCT<4, 8>()(
451
40.7M
      block,
452
40.7M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
40.7M
      scratch_space);
454
40.7M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Line
Count
Source
401
589k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
589k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
589k
  size_t afv_x = afv_kind & 1;
404
589k
  size_t afv_y = afv_kind / 2;
405
589k
  float dcs[3] = {};
406
589k
  float block00 = coefficients[0];
407
589k
  float block01 = coefficients[1];
408
589k
  float block10 = coefficients[8];
409
589k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
589k
  dcs[1] = (block00 + block10 - block01);
411
589k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
589k
  HWY_ALIGN float coeff[4 * 4];
414
589k
  coeff[0] = dcs[0];
415
2.94M
  for (size_t iy = 0; iy < 4; iy++) {
416
11.7M
    for (size_t ix = 0; ix < 4; ix++) {
417
9.42M
      if (ix == 0 && iy == 0) continue;
418
8.83M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
8.83M
    }
420
2.35M
  }
421
589k
  HWY_ALIGN float block[4 * 8];
422
589k
  AFVIDCT4x4(coeff, block);
423
2.94M
  for (size_t iy = 0; iy < 4; iy++) {
424
11.7M
    for (size_t ix = 0; ix < 4; ix++) {
425
9.42M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
9.42M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
9.42M
    }
428
2.35M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
589k
  block[0] = dcs[1];
431
2.94M
  for (size_t iy = 0; iy < 4; iy++) {
432
11.7M
    for (size_t ix = 0; ix < 4; ix++) {
433
9.42M
      if (ix == 0 && iy == 0) continue;
434
8.83M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
8.83M
    }
436
2.35M
  }
437
589k
  ComputeScaledIDCT<4, 4>()(
438
589k
      block,
439
589k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
589k
            pixels_stride),
441
589k
      scratch_space);
442
  // IDCT4x8.
443
589k
  block[0] = dcs[2];
444
2.94M
  for (size_t iy = 0; iy < 4; iy++) {
445
21.2M
    for (size_t ix = 0; ix < 8; ix++) {
446
18.8M
      if (ix == 0 && iy == 0) continue;
447
18.2M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
18.2M
    }
449
2.35M
  }
450
589k
  ComputeScaledIDCT<4, 8>()(
451
589k
      block,
452
589k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
589k
      scratch_space);
454
589k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
481k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
481k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
481k
  size_t afv_x = afv_kind & 1;
404
481k
  size_t afv_y = afv_kind / 2;
405
481k
  float dcs[3] = {};
406
481k
  float block00 = coefficients[0];
407
481k
  float block01 = coefficients[1];
408
481k
  float block10 = coefficients[8];
409
481k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
481k
  dcs[1] = (block00 + block10 - block01);
411
481k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
481k
  HWY_ALIGN float coeff[4 * 4];
414
481k
  coeff[0] = dcs[0];
415
2.40M
  for (size_t iy = 0; iy < 4; iy++) {
416
9.62M
    for (size_t ix = 0; ix < 4; ix++) {
417
7.69M
      if (ix == 0 && iy == 0) continue;
418
7.21M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
7.21M
    }
420
1.92M
  }
421
481k
  HWY_ALIGN float block[4 * 8];
422
481k
  AFVIDCT4x4(coeff, block);
423
2.40M
  for (size_t iy = 0; iy < 4; iy++) {
424
9.62M
    for (size_t ix = 0; ix < 4; ix++) {
425
7.69M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
7.69M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
7.69M
    }
428
1.92M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
481k
  block[0] = dcs[1];
431
2.40M
  for (size_t iy = 0; iy < 4; iy++) {
432
9.62M
    for (size_t ix = 0; ix < 4; ix++) {
433
7.69M
      if (ix == 0 && iy == 0) continue;
434
7.21M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
7.21M
    }
436
1.92M
  }
437
481k
  ComputeScaledIDCT<4, 4>()(
438
481k
      block,
439
481k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
481k
            pixels_stride),
441
481k
      scratch_space);
442
  // IDCT4x8.
443
481k
  block[0] = dcs[2];
444
2.40M
  for (size_t iy = 0; iy < 4; iy++) {
445
17.3M
    for (size_t ix = 0; ix < 8; ix++) {
446
15.3M
      if (ix == 0 && iy == 0) continue;
447
14.9M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
14.9M
    }
449
1.92M
  }
450
481k
  ComputeScaledIDCT<4, 8>()(
451
481k
      block,
452
481k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
481k
      scratch_space);
454
481k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
562k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
562k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
562k
  size_t afv_x = afv_kind & 1;
404
562k
  size_t afv_y = afv_kind / 2;
405
562k
  float dcs[3] = {};
406
562k
  float block00 = coefficients[0];
407
562k
  float block01 = coefficients[1];
408
562k
  float block10 = coefficients[8];
409
562k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
562k
  dcs[1] = (block00 + block10 - block01);
411
562k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
562k
  HWY_ALIGN float coeff[4 * 4];
414
562k
  coeff[0] = dcs[0];
415
2.81M
  for (size_t iy = 0; iy < 4; iy++) {
416
11.2M
    for (size_t ix = 0; ix < 4; ix++) {
417
8.99M
      if (ix == 0 && iy == 0) continue;
418
8.43M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
8.43M
    }
420
2.24M
  }
421
562k
  HWY_ALIGN float block[4 * 8];
422
562k
  AFVIDCT4x4(coeff, block);
423
2.81M
  for (size_t iy = 0; iy < 4; iy++) {
424
11.2M
    for (size_t ix = 0; ix < 4; ix++) {
425
8.99M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
8.99M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
8.99M
    }
428
2.24M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
562k
  block[0] = dcs[1];
431
2.81M
  for (size_t iy = 0; iy < 4; iy++) {
432
11.2M
    for (size_t ix = 0; ix < 4; ix++) {
433
8.99M
      if (ix == 0 && iy == 0) continue;
434
8.43M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
8.43M
    }
436
2.24M
  }
437
562k
  ComputeScaledIDCT<4, 4>()(
438
562k
      block,
439
562k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
562k
            pixels_stride),
441
562k
      scratch_space);
442
  // IDCT4x8.
443
562k
  block[0] = dcs[2];
444
2.81M
  for (size_t iy = 0; iy < 4; iy++) {
445
20.2M
    for (size_t ix = 0; ix < 8; ix++) {
446
17.9M
      if (ix == 0 && iy == 0) continue;
447
17.4M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
17.4M
    }
449
2.24M
  }
450
562k
  ComputeScaledIDCT<4, 8>()(
451
562k
      block,
452
562k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
562k
      scratch_space);
454
562k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
657k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
657k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
657k
  size_t afv_x = afv_kind & 1;
404
657k
  size_t afv_y = afv_kind / 2;
405
657k
  float dcs[3] = {};
406
657k
  float block00 = coefficients[0];
407
657k
  float block01 = coefficients[1];
408
657k
  float block10 = coefficients[8];
409
657k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
657k
  dcs[1] = (block00 + block10 - block01);
411
657k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
657k
  HWY_ALIGN float coeff[4 * 4];
414
657k
  coeff[0] = dcs[0];
415
3.28M
  for (size_t iy = 0; iy < 4; iy++) {
416
13.1M
    for (size_t ix = 0; ix < 4; ix++) {
417
10.5M
      if (ix == 0 && iy == 0) continue;
418
9.86M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
9.86M
    }
420
2.63M
  }
421
657k
  HWY_ALIGN float block[4 * 8];
422
657k
  AFVIDCT4x4(coeff, block);
423
3.28M
  for (size_t iy = 0; iy < 4; iy++) {
424
13.1M
    for (size_t ix = 0; ix < 4; ix++) {
425
10.5M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
10.5M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
10.5M
    }
428
2.63M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
657k
  block[0] = dcs[1];
431
3.28M
  for (size_t iy = 0; iy < 4; iy++) {
432
13.1M
    for (size_t ix = 0; ix < 4; ix++) {
433
10.5M
      if (ix == 0 && iy == 0) continue;
434
9.86M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
9.86M
    }
436
2.63M
  }
437
657k
  ComputeScaledIDCT<4, 4>()(
438
657k
      block,
439
657k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
657k
            pixels_stride),
441
657k
      scratch_space);
442
  // IDCT4x8.
443
657k
  block[0] = dcs[2];
444
3.28M
  for (size_t iy = 0; iy < 4; iy++) {
445
23.6M
    for (size_t ix = 0; ix < 8; ix++) {
446
21.0M
      if (ix == 0 && iy == 0) continue;
447
20.3M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
20.3M
    }
449
2.63M
  }
450
657k
  ComputeScaledIDCT<4, 8>()(
451
657k
      block,
452
657k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
657k
      scratch_space);
454
657k
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Line
Count
Source
401
9.62M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
9.62M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
9.62M
  size_t afv_x = afv_kind & 1;
404
9.62M
  size_t afv_y = afv_kind / 2;
405
9.62M
  float dcs[3] = {};
406
9.62M
  float block00 = coefficients[0];
407
9.62M
  float block01 = coefficients[1];
408
9.62M
  float block10 = coefficients[8];
409
9.62M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
9.62M
  dcs[1] = (block00 + block10 - block01);
411
9.62M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
9.62M
  HWY_ALIGN float coeff[4 * 4];
414
9.62M
  coeff[0] = dcs[0];
415
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
192M
    for (size_t ix = 0; ix < 4; ix++) {
417
153M
      if (ix == 0 && iy == 0) continue;
418
144M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
144M
    }
420
38.4M
  }
421
9.62M
  HWY_ALIGN float block[4 * 8];
422
9.62M
  AFVIDCT4x4(coeff, block);
423
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
192M
    for (size_t ix = 0; ix < 4; ix++) {
425
153M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
153M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
153M
    }
428
38.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
9.62M
  block[0] = dcs[1];
431
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
192M
    for (size_t ix = 0; ix < 4; ix++) {
433
153M
      if (ix == 0 && iy == 0) continue;
434
144M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
144M
    }
436
38.4M
  }
437
9.62M
  ComputeScaledIDCT<4, 4>()(
438
9.62M
      block,
439
9.62M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
9.62M
            pixels_stride),
441
9.62M
      scratch_space);
442
  // IDCT4x8.
443
9.62M
  block[0] = dcs[2];
444
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
346M
    for (size_t ix = 0; ix < 8; ix++) {
446
307M
      if (ix == 0 && iy == 0) continue;
447
298M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
298M
    }
449
38.4M
  }
450
9.62M
  ComputeScaledIDCT<4, 8>()(
451
9.62M
      block,
452
9.62M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
9.62M
      scratch_space);
454
9.62M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
9.62M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
9.62M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
9.62M
  size_t afv_x = afv_kind & 1;
404
9.62M
  size_t afv_y = afv_kind / 2;
405
9.62M
  float dcs[3] = {};
406
9.62M
  float block00 = coefficients[0];
407
9.62M
  float block01 = coefficients[1];
408
9.62M
  float block10 = coefficients[8];
409
9.62M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
9.62M
  dcs[1] = (block00 + block10 - block01);
411
9.62M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
9.62M
  HWY_ALIGN float coeff[4 * 4];
414
9.62M
  coeff[0] = dcs[0];
415
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
192M
    for (size_t ix = 0; ix < 4; ix++) {
417
153M
      if (ix == 0 && iy == 0) continue;
418
144M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
144M
    }
420
38.4M
  }
421
9.62M
  HWY_ALIGN float block[4 * 8];
422
9.62M
  AFVIDCT4x4(coeff, block);
423
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
192M
    for (size_t ix = 0; ix < 4; ix++) {
425
153M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
153M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
153M
    }
428
38.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
9.62M
  block[0] = dcs[1];
431
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
192M
    for (size_t ix = 0; ix < 4; ix++) {
433
153M
      if (ix == 0 && iy == 0) continue;
434
144M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
144M
    }
436
38.4M
  }
437
9.62M
  ComputeScaledIDCT<4, 4>()(
438
9.62M
      block,
439
9.62M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
9.62M
            pixels_stride),
441
9.62M
      scratch_space);
442
  // IDCT4x8.
443
9.62M
  block[0] = dcs[2];
444
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
346M
    for (size_t ix = 0; ix < 8; ix++) {
446
307M
      if (ix == 0 && iy == 0) continue;
447
298M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
298M
    }
449
38.4M
  }
450
9.62M
  ComputeScaledIDCT<4, 8>()(
451
9.62M
      block,
452
9.62M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
9.62M
      scratch_space);
454
9.62M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
9.62M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
9.62M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
9.62M
  size_t afv_x = afv_kind & 1;
404
9.62M
  size_t afv_y = afv_kind / 2;
405
9.62M
  float dcs[3] = {};
406
9.62M
  float block00 = coefficients[0];
407
9.62M
  float block01 = coefficients[1];
408
9.62M
  float block10 = coefficients[8];
409
9.62M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
9.62M
  dcs[1] = (block00 + block10 - block01);
411
9.62M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
9.62M
  HWY_ALIGN float coeff[4 * 4];
414
9.62M
  coeff[0] = dcs[0];
415
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
192M
    for (size_t ix = 0; ix < 4; ix++) {
417
153M
      if (ix == 0 && iy == 0) continue;
418
144M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
144M
    }
420
38.4M
  }
421
9.62M
  HWY_ALIGN float block[4 * 8];
422
9.62M
  AFVIDCT4x4(coeff, block);
423
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
192M
    for (size_t ix = 0; ix < 4; ix++) {
425
153M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
153M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
153M
    }
428
38.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
9.62M
  block[0] = dcs[1];
431
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
192M
    for (size_t ix = 0; ix < 4; ix++) {
433
153M
      if (ix == 0 && iy == 0) continue;
434
144M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
144M
    }
436
38.4M
  }
437
9.62M
  ComputeScaledIDCT<4, 4>()(
438
9.62M
      block,
439
9.62M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
9.62M
            pixels_stride),
441
9.62M
      scratch_space);
442
  // IDCT4x8.
443
9.62M
  block[0] = dcs[2];
444
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
346M
    for (size_t ix = 0; ix < 8; ix++) {
446
307M
      if (ix == 0 && iy == 0) continue;
447
298M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
298M
    }
449
38.4M
  }
450
9.62M
  ComputeScaledIDCT<4, 8>()(
451
9.62M
      block,
452
9.62M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
9.62M
      scratch_space);
454
9.62M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
9.62M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
9.62M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
9.62M
  size_t afv_x = afv_kind & 1;
404
9.62M
  size_t afv_y = afv_kind / 2;
405
9.62M
  float dcs[3] = {};
406
9.62M
  float block00 = coefficients[0];
407
9.62M
  float block01 = coefficients[1];
408
9.62M
  float block10 = coefficients[8];
409
9.62M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
9.62M
  dcs[1] = (block00 + block10 - block01);
411
9.62M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
9.62M
  HWY_ALIGN float coeff[4 * 4];
414
9.62M
  coeff[0] = dcs[0];
415
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
192M
    for (size_t ix = 0; ix < 4; ix++) {
417
153M
      if (ix == 0 && iy == 0) continue;
418
144M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
144M
    }
420
38.4M
  }
421
9.62M
  HWY_ALIGN float block[4 * 8];
422
9.62M
  AFVIDCT4x4(coeff, block);
423
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
192M
    for (size_t ix = 0; ix < 4; ix++) {
425
153M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
153M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
153M
    }
428
38.4M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
9.62M
  block[0] = dcs[1];
431
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
192M
    for (size_t ix = 0; ix < 4; ix++) {
433
153M
      if (ix == 0 && iy == 0) continue;
434
144M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
144M
    }
436
38.4M
  }
437
9.62M
  ComputeScaledIDCT<4, 4>()(
438
9.62M
      block,
439
9.62M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
9.62M
            pixels_stride),
441
9.62M
      scratch_space);
442
  // IDCT4x8.
443
9.62M
  block[0] = dcs[2];
444
48.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
346M
    for (size_t ix = 0; ix < 8; ix++) {
446
307M
      if (ix == 0 && iy == 0) continue;
447
298M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
298M
    }
449
38.4M
  }
450
9.62M
  ComputeScaledIDCT<4, 8>()(
451
9.62M
      block,
452
9.62M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
9.62M
      scratch_space);
454
9.62M
}
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
455
456
HWY_MAYBE_UNUSED void TransformToPixels(const AcStrategyType strategy,
457
                                        float* JXL_RESTRICT coefficients,
458
                                        float* JXL_RESTRICT pixels,
459
                                        size_t pixels_stride,
460
137M
                                        float* scratch_space) {
461
137M
  using Type = AcStrategyType;
462
137M
  switch (strategy) {
463
12.2M
    case Type::IDENTITY: {
464
12.2M
      float dcs[4] = {};
465
12.2M
      float block00 = coefficients[0];
466
12.2M
      float block01 = coefficients[1];
467
12.2M
      float block10 = coefficients[8];
468
12.2M
      float block11 = coefficients[9];
469
12.2M
      dcs[0] = block00 + block01 + block10 + block11;
470
12.2M
      dcs[1] = block00 + block01 - block10 - block11;
471
12.2M
      dcs[2] = block00 - block01 + block10 - block11;
472
12.2M
      dcs[3] = block00 - block01 - block10 + block11;
473
36.7M
      for (size_t y = 0; y < 2; y++) {
474
73.5M
        for (size_t x = 0; x < 2; x++) {
475
49.0M
          float block_dc = dcs[y * 2 + x];
476
49.0M
          float residual_sum = 0;
477
245M
          for (size_t iy = 0; iy < 4; iy++) {
478
980M
            for (size_t ix = 0; ix < 4; ix++) {
479
784M
              if (ix == 0 && iy == 0) continue;
480
735M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
735M
            }
482
196M
          }
483
49.0M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
49.0M
              block_dc - residual_sum * (1.0f / 16);
485
245M
          for (size_t iy = 0; iy < 4; iy++) {
486
980M
            for (size_t ix = 0; ix < 4; ix++) {
487
784M
              if (ix == 1 && iy == 1) continue;
488
735M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
735M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
735M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
735M
            }
492
196M
          }
493
49.0M
          pixels[y * 4 * pixels_stride + x * 4] =
494
49.0M
              coefficients[(y + 2) * 8 + x + 2] +
495
49.0M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
49.0M
        }
497
24.5M
      }
498
12.2M
      break;
499
0
    }
500
10.4M
    case Type::DCT8X4: {
501
10.4M
      float dcs[2] = {};
502
10.4M
      float block0 = coefficients[0];
503
10.4M
      float block1 = coefficients[8];
504
10.4M
      dcs[0] = block0 + block1;
505
10.4M
      dcs[1] = block0 - block1;
506
31.4M
      for (size_t x = 0; x < 2; x++) {
507
20.9M
        HWY_ALIGN float block[4 * 8];
508
20.9M
        block[0] = dcs[x];
509
104M
        for (size_t iy = 0; iy < 4; iy++) {
510
753M
          for (size_t ix = 0; ix < 8; ix++) {
511
669M
            if (ix == 0 && iy == 0) continue;
512
648M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
648M
          }
514
83.7M
        }
515
20.9M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
20.9M
                                  scratch_space);
517
20.9M
      }
518
10.4M
      break;
519
0
    }
520
10.0M
    case Type::DCT4X8: {
521
10.0M
      float dcs[2] = {};
522
10.0M
      float block0 = coefficients[0];
523
10.0M
      float block1 = coefficients[8];
524
10.0M
      dcs[0] = block0 + block1;
525
10.0M
      dcs[1] = block0 - block1;
526
30.0M
      for (size_t y = 0; y < 2; y++) {
527
20.0M
        HWY_ALIGN float block[4 * 8];
528
20.0M
        block[0] = dcs[y];
529
100M
        for (size_t iy = 0; iy < 4; iy++) {
530
720M
          for (size_t ix = 0; ix < 8; ix++) {
531
640M
            if (ix == 0 && iy == 0) continue;
532
620M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
620M
          }
534
80.0M
        }
535
20.0M
        ComputeScaledIDCT<4, 8>()(
536
20.0M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
20.0M
            scratch_space);
538
20.0M
      }
539
10.0M
      break;
540
0
    }
541
9.62M
    case Type::DCT4X4: {
542
9.62M
      float dcs[4] = {};
543
9.62M
      float block00 = coefficients[0];
544
9.62M
      float block01 = coefficients[1];
545
9.62M
      float block10 = coefficients[8];
546
9.62M
      float block11 = coefficients[9];
547
9.62M
      dcs[0] = block00 + block01 + block10 + block11;
548
9.62M
      dcs[1] = block00 + block01 - block10 - block11;
549
9.62M
      dcs[2] = block00 - block01 + block10 - block11;
550
9.62M
      dcs[3] = block00 - block01 - block10 + block11;
551
28.8M
      for (size_t y = 0; y < 2; y++) {
552
57.7M
        for (size_t x = 0; x < 2; x++) {
553
38.5M
          HWY_ALIGN float block[4 * 4];
554
38.5M
          block[0] = dcs[y * 2 + x];
555
192M
          for (size_t iy = 0; iy < 4; iy++) {
556
770M
            for (size_t ix = 0; ix < 4; ix++) {
557
616M
              if (ix == 0 && iy == 0) continue;
558
577M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
577M
            }
560
154M
          }
561
38.5M
          ComputeScaledIDCT<4, 4>()(
562
38.5M
              block,
563
38.5M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
38.5M
              scratch_space);
565
38.5M
        }
566
19.2M
      }
567
9.62M
      break;
568
0
    }
569
12.3M
    case Type::DCT2X2: {
570
12.3M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
12.3M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
12.3M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
12.3M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
12.3M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
110M
      for (size_t y = 0; y < kBlockDim; y++) {
576
887M
        for (size_t x = 0; x < kBlockDim; x++) {
577
788M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
788M
        }
579
98.5M
      }
580
12.3M
      break;
581
0
    }
582
4.60M
    case Type::DCT16X16: {
583
4.60M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
4.60M
                                  scratch_space);
585
4.60M
      break;
586
0
    }
587
8.78M
    case Type::DCT16X8: {
588
8.78M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
8.78M
                                 scratch_space);
590
8.78M
      break;
591
0
    }
592
8.95M
    case Type::DCT8X16: {
593
8.95M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
8.95M
                                 scratch_space);
595
8.95M
      break;
596
0
    }
597
48
    case Type::DCT32X8: {
598
48
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
48
                                 scratch_space);
600
48
      break;
601
0
    }
602
9
    case Type::DCT8X32: {
603
9
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
9
                                 scratch_space);
605
9
      break;
606
0
    }
607
1.75M
    case Type::DCT32X16: {
608
1.75M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
1.75M
                                  scratch_space);
610
1.75M
      break;
611
0
    }
612
1.84M
    case Type::DCT16X32: {
613
1.84M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
1.84M
                                  scratch_space);
615
1.84M
      break;
616
0
    }
617
971k
    case Type::DCT32X32: {
618
971k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
971k
                                  scratch_space);
620
971k
      break;
621
0
    }
622
14.4M
    case Type::DCT: {
623
14.4M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
14.4M
                                scratch_space);
625
14.4M
      break;
626
0
    }
627
10.2M
    case Type::AFV0: {
628
10.2M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
10.2M
      break;
630
0
    }
631
10.1M
    case Type::AFV1: {
632
10.1M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
10.1M
      break;
634
0
    }
635
10.1M
    case Type::AFV2: {
636
10.1M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
10.1M
      break;
638
0
    }
639
10.2M
    case Type::AFV3: {
640
10.2M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
10.2M
      break;
642
0
    }
643
518k
    case Type::DCT64X32: {
644
518k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
518k
                                  scratch_space);
646
518k
      break;
647
0
    }
648
368k
    case Type::DCT32X64: {
649
368k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
368k
                                  scratch_space);
651
368k
      break;
652
0
    }
653
196k
    case Type::DCT64X64: {
654
196k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
196k
                                  scratch_space);
656
196k
      break;
657
0
    }
658
0
    case Type::DCT128X64: {
659
0
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT64X128: {
664
0
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
0
    case Type::DCT128X128: {
669
0
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
0
                                    scratch_space);
671
0
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
0
    case Type::DCT256X256: {
684
0
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
0
                                    scratch_space);
686
0
      break;
687
0
    }
688
137M
  }
689
137M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
16.4M
                                        float* scratch_space) {
461
16.4M
  using Type = AcStrategyType;
462
16.4M
  switch (strategy) {
463
2.63M
    case Type::IDENTITY: {
464
2.63M
      float dcs[4] = {};
465
2.63M
      float block00 = coefficients[0];
466
2.63M
      float block01 = coefficients[1];
467
2.63M
      float block10 = coefficients[8];
468
2.63M
      float block11 = coefficients[9];
469
2.63M
      dcs[0] = block00 + block01 + block10 + block11;
470
2.63M
      dcs[1] = block00 + block01 - block10 - block11;
471
2.63M
      dcs[2] = block00 - block01 + block10 - block11;
472
2.63M
      dcs[3] = block00 - block01 - block10 + block11;
473
7.90M
      for (size_t y = 0; y < 2; y++) {
474
15.8M
        for (size_t x = 0; x < 2; x++) {
475
10.5M
          float block_dc = dcs[y * 2 + x];
476
10.5M
          float residual_sum = 0;
477
52.7M
          for (size_t iy = 0; iy < 4; iy++) {
478
210M
            for (size_t ix = 0; ix < 4; ix++) {
479
168M
              if (ix == 0 && iy == 0) continue;
480
158M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
158M
            }
482
42.1M
          }
483
10.5M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
10.5M
              block_dc - residual_sum * (1.0f / 16);
485
52.7M
          for (size_t iy = 0; iy < 4; iy++) {
486
210M
            for (size_t ix = 0; ix < 4; ix++) {
487
168M
              if (ix == 1 && iy == 1) continue;
488
158M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
158M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
158M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
158M
            }
492
42.1M
          }
493
10.5M
          pixels[y * 4 * pixels_stride + x * 4] =
494
10.5M
              coefficients[(y + 2) * 8 + x + 2] +
495
10.5M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
10.5M
        }
497
5.27M
      }
498
2.63M
      break;
499
0
    }
500
846k
    case Type::DCT8X4: {
501
846k
      float dcs[2] = {};
502
846k
      float block0 = coefficients[0];
503
846k
      float block1 = coefficients[8];
504
846k
      dcs[0] = block0 + block1;
505
846k
      dcs[1] = block0 - block1;
506
2.53M
      for (size_t x = 0; x < 2; x++) {
507
1.69M
        HWY_ALIGN float block[4 * 8];
508
1.69M
        block[0] = dcs[x];
509
8.46M
        for (size_t iy = 0; iy < 4; iy++) {
510
60.9M
          for (size_t ix = 0; ix < 8; ix++) {
511
54.1M
            if (ix == 0 && iy == 0) continue;
512
52.4M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
52.4M
          }
514
6.77M
        }
515
1.69M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
1.69M
                                  scratch_space);
517
1.69M
      }
518
846k
      break;
519
0
    }
520
388k
    case Type::DCT4X8: {
521
388k
      float dcs[2] = {};
522
388k
      float block0 = coefficients[0];
523
388k
      float block1 = coefficients[8];
524
388k
      dcs[0] = block0 + block1;
525
388k
      dcs[1] = block0 - block1;
526
1.16M
      for (size_t y = 0; y < 2; y++) {
527
777k
        HWY_ALIGN float block[4 * 8];
528
777k
        block[0] = dcs[y];
529
3.88M
        for (size_t iy = 0; iy < 4; iy++) {
530
28.0M
          for (size_t ix = 0; ix < 8; ix++) {
531
24.8M
            if (ix == 0 && iy == 0) continue;
532
24.1M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
24.1M
          }
534
3.11M
        }
535
777k
        ComputeScaledIDCT<4, 8>()(
536
777k
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
777k
            scratch_space);
538
777k
      }
539
388k
      break;
540
0
    }
541
5.13k
    case Type::DCT4X4: {
542
5.13k
      float dcs[4] = {};
543
5.13k
      float block00 = coefficients[0];
544
5.13k
      float block01 = coefficients[1];
545
5.13k
      float block10 = coefficients[8];
546
5.13k
      float block11 = coefficients[9];
547
5.13k
      dcs[0] = block00 + block01 + block10 + block11;
548
5.13k
      dcs[1] = block00 + block01 - block10 - block11;
549
5.13k
      dcs[2] = block00 - block01 + block10 - block11;
550
5.13k
      dcs[3] = block00 - block01 - block10 + block11;
551
15.3k
      for (size_t y = 0; y < 2; y++) {
552
30.7k
        for (size_t x = 0; x < 2; x++) {
553
20.5k
          HWY_ALIGN float block[4 * 4];
554
20.5k
          block[0] = dcs[y * 2 + x];
555
102k
          for (size_t iy = 0; iy < 4; iy++) {
556
410k
            for (size_t ix = 0; ix < 4; ix++) {
557
328k
              if (ix == 0 && iy == 0) continue;
558
307k
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
307k
            }
560
82.1k
          }
561
20.5k
          ComputeScaledIDCT<4, 4>()(
562
20.5k
              block,
563
20.5k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
20.5k
              scratch_space);
565
20.5k
        }
566
10.2k
      }
567
5.13k
      break;
568
0
    }
569
2.70M
    case Type::DCT2X2: {
570
2.70M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
2.70M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
2.70M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
2.70M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
2.70M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
24.3M
      for (size_t y = 0; y < kBlockDim; y++) {
576
194M
        for (size_t x = 0; x < kBlockDim; x++) {
577
172M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
172M
        }
579
21.6M
      }
580
2.70M
      break;
581
0
    }
582
483k
    case Type::DCT16X16: {
583
483k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
483k
                                  scratch_space);
585
483k
      break;
586
0
    }
587
774k
    case Type::DCT16X8: {
588
774k
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
774k
                                 scratch_space);
590
774k
      break;
591
0
    }
592
928k
    case Type::DCT8X16: {
593
928k
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
928k
                                 scratch_space);
595
928k
      break;
596
0
    }
597
48
    case Type::DCT32X8: {
598
48
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
48
                                 scratch_space);
600
48
      break;
601
0
    }
602
9
    case Type::DCT8X32: {
603
9
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
9
                                 scratch_space);
605
9
      break;
606
0
    }
607
134k
    case Type::DCT32X16: {
608
134k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
134k
                                  scratch_space);
610
134k
      break;
611
0
    }
612
225k
    case Type::DCT16X32: {
613
225k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
225k
                                  scratch_space);
615
225k
      break;
616
0
    }
617
136k
    case Type::DCT32X32: {
618
136k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
136k
                                  scratch_space);
620
136k
      break;
621
0
    }
622
4.82M
    case Type::DCT: {
623
4.82M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
4.82M
                                scratch_space);
625
4.82M
      break;
626
0
    }
627
589k
    case Type::AFV0: {
628
589k
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
589k
      break;
630
0
    }
631
481k
    case Type::AFV1: {
632
481k
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
481k
      break;
634
0
    }
635
562k
    case Type::AFV2: {
636
562k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
562k
      break;
638
0
    }
639
657k
    case Type::AFV3: {
640
657k
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
657k
      break;
642
0
    }
643
14.8k
    case Type::DCT64X32: {
644
14.8k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
14.8k
                                  scratch_space);
646
14.8k
      break;
647
0
    }
648
23.6k
    case Type::DCT32X64: {
649
23.6k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
23.6k
                                  scratch_space);
651
23.6k
      break;
652
0
    }
653
61.8k
    case Type::DCT64X64: {
654
61.8k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
61.8k
                                  scratch_space);
656
61.8k
      break;
657
0
    }
658
0
    case Type::DCT128X64: {
659
0
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT64X128: {
664
0
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
0
    case Type::DCT128X128: {
669
0
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
0
                                    scratch_space);
671
0
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
0
    case Type::DCT256X256: {
684
0
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
0
                                    scratch_space);
686
0
      break;
687
0
    }
688
16.4M
  }
689
16.4M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
121M
                                        float* scratch_space) {
461
121M
  using Type = AcStrategyType;
462
121M
  switch (strategy) {
463
9.62M
    case Type::IDENTITY: {
464
9.62M
      float dcs[4] = {};
465
9.62M
      float block00 = coefficients[0];
466
9.62M
      float block01 = coefficients[1];
467
9.62M
      float block10 = coefficients[8];
468
9.62M
      float block11 = coefficients[9];
469
9.62M
      dcs[0] = block00 + block01 + block10 + block11;
470
9.62M
      dcs[1] = block00 + block01 - block10 - block11;
471
9.62M
      dcs[2] = block00 - block01 + block10 - block11;
472
9.62M
      dcs[3] = block00 - block01 - block10 + block11;
473
28.8M
      for (size_t y = 0; y < 2; y++) {
474
57.7M
        for (size_t x = 0; x < 2; x++) {
475
38.4M
          float block_dc = dcs[y * 2 + x];
476
38.4M
          float residual_sum = 0;
477
192M
          for (size_t iy = 0; iy < 4; iy++) {
478
769M
            for (size_t ix = 0; ix < 4; ix++) {
479
615M
              if (ix == 0 && iy == 0) continue;
480
577M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
577M
            }
482
153M
          }
483
38.4M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
38.4M
              block_dc - residual_sum * (1.0f / 16);
485
192M
          for (size_t iy = 0; iy < 4; iy++) {
486
769M
            for (size_t ix = 0; ix < 4; ix++) {
487
615M
              if (ix == 1 && iy == 1) continue;
488
577M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
577M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
577M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
577M
            }
492
153M
          }
493
38.4M
          pixels[y * 4 * pixels_stride + x * 4] =
494
38.4M
              coefficients[(y + 2) * 8 + x + 2] +
495
38.4M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
38.4M
        }
497
19.2M
      }
498
9.62M
      break;
499
0
    }
500
9.62M
    case Type::DCT8X4: {
501
9.62M
      float dcs[2] = {};
502
9.62M
      float block0 = coefficients[0];
503
9.62M
      float block1 = coefficients[8];
504
9.62M
      dcs[0] = block0 + block1;
505
9.62M
      dcs[1] = block0 - block1;
506
28.8M
      for (size_t x = 0; x < 2; x++) {
507
19.2M
        HWY_ALIGN float block[4 * 8];
508
19.2M
        block[0] = dcs[x];
509
96.2M
        for (size_t iy = 0; iy < 4; iy++) {
510
692M
          for (size_t ix = 0; ix < 8; ix++) {
511
615M
            if (ix == 0 && iy == 0) continue;
512
596M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
596M
          }
514
76.9M
        }
515
19.2M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
19.2M
                                  scratch_space);
517
19.2M
      }
518
9.62M
      break;
519
0
    }
520
9.62M
    case Type::DCT4X8: {
521
9.62M
      float dcs[2] = {};
522
9.62M
      float block0 = coefficients[0];
523
9.62M
      float block1 = coefficients[8];
524
9.62M
      dcs[0] = block0 + block1;
525
9.62M
      dcs[1] = block0 - block1;
526
28.8M
      for (size_t y = 0; y < 2; y++) {
527
19.2M
        HWY_ALIGN float block[4 * 8];
528
19.2M
        block[0] = dcs[y];
529
96.2M
        for (size_t iy = 0; iy < 4; iy++) {
530
692M
          for (size_t ix = 0; ix < 8; ix++) {
531
615M
            if (ix == 0 && iy == 0) continue;
532
596M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
596M
          }
534
76.9M
        }
535
19.2M
        ComputeScaledIDCT<4, 8>()(
536
19.2M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
19.2M
            scratch_space);
538
19.2M
      }
539
9.62M
      break;
540
0
    }
541
9.62M
    case Type::DCT4X4: {
542
9.62M
      float dcs[4] = {};
543
9.62M
      float block00 = coefficients[0];
544
9.62M
      float block01 = coefficients[1];
545
9.62M
      float block10 = coefficients[8];
546
9.62M
      float block11 = coefficients[9];
547
9.62M
      dcs[0] = block00 + block01 + block10 + block11;
548
9.62M
      dcs[1] = block00 + block01 - block10 - block11;
549
9.62M
      dcs[2] = block00 - block01 + block10 - block11;
550
9.62M
      dcs[3] = block00 - block01 - block10 + block11;
551
28.8M
      for (size_t y = 0; y < 2; y++) {
552
57.7M
        for (size_t x = 0; x < 2; x++) {
553
38.4M
          HWY_ALIGN float block[4 * 4];
554
38.4M
          block[0] = dcs[y * 2 + x];
555
192M
          for (size_t iy = 0; iy < 4; iy++) {
556
769M
            for (size_t ix = 0; ix < 4; ix++) {
557
615M
              if (ix == 0 && iy == 0) continue;
558
577M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
577M
            }
560
153M
          }
561
38.4M
          ComputeScaledIDCT<4, 4>()(
562
38.4M
              block,
563
38.4M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
38.4M
              scratch_space);
565
38.4M
        }
566
19.2M
      }
567
9.62M
      break;
568
0
    }
569
9.62M
    case Type::DCT2X2: {
570
9.62M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
9.62M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
9.62M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
9.62M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
9.62M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
86.5M
      for (size_t y = 0; y < kBlockDim; y++) {
576
692M
        for (size_t x = 0; x < kBlockDim; x++) {
577
615M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
615M
        }
579
76.9M
      }
580
9.62M
      break;
581
0
    }
582
4.12M
    case Type::DCT16X16: {
583
4.12M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
4.12M
                                  scratch_space);
585
4.12M
      break;
586
0
    }
587
8.00M
    case Type::DCT16X8: {
588
8.00M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
8.00M
                                 scratch_space);
590
8.00M
      break;
591
0
    }
592
8.02M
    case Type::DCT8X16: {
593
8.02M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
8.02M
                                 scratch_space);
595
8.02M
      break;
596
0
    }
597
0
    case Type::DCT32X8: {
598
0
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
0
                                 scratch_space);
600
0
      break;
601
0
    }
602
0
    case Type::DCT8X32: {
603
0
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
0
                                 scratch_space);
605
0
      break;
606
0
    }
607
1.61M
    case Type::DCT32X16: {
608
1.61M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
1.61M
                                  scratch_space);
610
1.61M
      break;
611
0
    }
612
1.62M
    case Type::DCT16X32: {
613
1.62M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
1.62M
                                  scratch_space);
615
1.62M
      break;
616
0
    }
617
834k
    case Type::DCT32X32: {
618
834k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
834k
                                  scratch_space);
620
834k
      break;
621
0
    }
622
9.62M
    case Type::DCT: {
623
9.62M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
9.62M
                                scratch_space);
625
9.62M
      break;
626
0
    }
627
9.62M
    case Type::AFV0: {
628
9.62M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
9.62M
      break;
630
0
    }
631
9.62M
    case Type::AFV1: {
632
9.62M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
9.62M
      break;
634
0
    }
635
9.62M
    case Type::AFV2: {
636
9.62M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
9.62M
      break;
638
0
    }
639
9.62M
    case Type::AFV3: {
640
9.62M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
9.62M
      break;
642
0
    }
643
503k
    case Type::DCT64X32: {
644
503k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
503k
                                  scratch_space);
646
503k
      break;
647
0
    }
648
345k
    case Type::DCT32X64: {
649
345k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
345k
                                  scratch_space);
651
345k
      break;
652
0
    }
653
134k
    case Type::DCT64X64: {
654
134k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
134k
                                  scratch_space);
656
134k
      break;
657
0
    }
658
0
    case Type::DCT128X64: {
659
0
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
0
                                   scratch_space);
661
0
      break;
662
0
    }
663
0
    case Type::DCT64X128: {
664
0
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
0
                                   scratch_space);
666
0
      break;
667
0
    }
668
0
    case Type::DCT128X128: {
669
0
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
0
                                    scratch_space);
671
0
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
0
    case Type::DCT256X256: {
684
0
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
0
                                    scratch_space);
686
0
      break;
687
0
    }
688
121M
  }
689
121M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
690
691
HWY_MAYBE_UNUSED void LowestFrequenciesFromDC(const AcStrategyType strategy,
692
                                              const float* dc, size_t dc_stride,
693
                                              float* llf,
694
16.4M
                                              float* JXL_RESTRICT scratch) {
695
16.4M
  using Type = AcStrategyType;
696
16.4M
  HWY_ALIGN float warm_block[4 * 4];
697
16.4M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
16.4M
  switch (strategy) {
699
774k
    case Type::DCT16X8: {
700
774k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
774k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
774k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
774k
      break;
704
0
    }
705
928k
    case Type::DCT8X16: {
706
928k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
928k
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
928k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
928k
      break;
710
0
    }
711
483k
    case Type::DCT16X16: {
712
483k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
483k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
483k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
483k
      break;
716
0
    }
717
48
    case Type::DCT32X8: {
718
48
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
48
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
48
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
48
      break;
722
0
    }
723
9
    case Type::DCT8X32: {
724
9
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
9
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
9
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
9
      break;
728
0
    }
729
134k
    case Type::DCT32X16: {
730
134k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
134k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
134k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
134k
      break;
734
0
    }
735
225k
    case Type::DCT16X32: {
736
225k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
225k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
225k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
225k
      break;
740
0
    }
741
136k
    case Type::DCT32X32: {
742
136k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
136k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
136k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
136k
      break;
746
0
    }
747
14.8k
    case Type::DCT64X32: {
748
14.8k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
14.8k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
14.8k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
14.8k
      break;
752
0
    }
753
23.6k
    case Type::DCT32X64: {
754
23.6k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
23.6k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
23.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
23.6k
      break;
758
0
    }
759
61.8k
    case Type::DCT64X64: {
760
61.8k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
61.8k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
61.8k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
61.8k
      break;
764
0
    }
765
0
    case Type::DCT128X64: {
766
0
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
0
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
0
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
0
      break;
770
0
    }
771
0
    case Type::DCT64X128: {
772
0
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
0
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
0
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
0
      break;
776
0
    }
777
0
    case Type::DCT128X128: {
778
0
      ReinterpretingDCT<
779
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
0
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
0
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
0
      break;
783
0
    }
784
0
    case Type::DCT256X128: {
785
0
      ReinterpretingDCT<
786
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
787
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
788
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 16);
789
0
      break;
790
0
    }
791
0
    case Type::DCT128X256: {
792
0
      ReinterpretingDCT<
793
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
794
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
795
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 16 * 32);
796
0
      break;
797
0
    }
798
0
    case Type::DCT256X256: {
799
0
      ReinterpretingDCT<
800
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
0
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
0
      break;
804
0
    }
805
4.82M
    case Type::DCT:
806
7.52M
    case Type::DCT2X2:
807
7.53M
    case Type::DCT4X4:
808
7.92M
    case Type::DCT4X8:
809
8.77M
    case Type::DCT8X4:
810
9.35M
    case Type::AFV0:
811
9.84M
    case Type::AFV1:
812
10.4M
    case Type::AFV2:
813
11.0M
    case Type::AFV3:
814
13.6M
    case Type::IDENTITY:
815
13.6M
      llf[0] = dc[0];
816
13.6M
      break;
817
16.4M
  };
818
16.4M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
694
16.4M
                                              float* JXL_RESTRICT scratch) {
695
16.4M
  using Type = AcStrategyType;
696
16.4M
  HWY_ALIGN float warm_block[4 * 4];
697
16.4M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
16.4M
  switch (strategy) {
699
774k
    case Type::DCT16X8: {
700
774k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
774k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
774k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
774k
      break;
704
0
    }
705
928k
    case Type::DCT8X16: {
706
928k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
928k
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
928k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
928k
      break;
710
0
    }
711
483k
    case Type::DCT16X16: {
712
483k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
483k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
483k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
483k
      break;
716
0
    }
717
48
    case Type::DCT32X8: {
718
48
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
48
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
48
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
48
      break;
722
0
    }
723
9
    case Type::DCT8X32: {
724
9
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
9
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
9
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
9
      break;
728
0
    }
729
134k
    case Type::DCT32X16: {
730
134k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
134k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
134k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
134k
      break;
734
0
    }
735
225k
    case Type::DCT16X32: {
736
225k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
225k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
225k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
225k
      break;
740
0
    }
741
136k
    case Type::DCT32X32: {
742
136k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
136k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
136k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
136k
      break;
746
0
    }
747
14.8k
    case Type::DCT64X32: {
748
14.8k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
14.8k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
14.8k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
14.8k
      break;
752
0
    }
753
23.6k
    case Type::DCT32X64: {
754
23.6k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
23.6k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
23.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
23.6k
      break;
758
0
    }
759
61.8k
    case Type::DCT64X64: {
760
61.8k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
61.8k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
61.8k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
61.8k
      break;
764
0
    }
765
0
    case Type::DCT128X64: {
766
0
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
0
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
0
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
0
      break;
770
0
    }
771
0
    case Type::DCT64X128: {
772
0
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
0
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
0
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
0
      break;
776
0
    }
777
0
    case Type::DCT128X128: {
778
0
      ReinterpretingDCT<
779
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
0
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
0
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
0
      break;
783
0
    }
784
0
    case Type::DCT256X128: {
785
0
      ReinterpretingDCT<
786
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
787
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
788
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 16);
789
0
      break;
790
0
    }
791
0
    case Type::DCT128X256: {
792
0
      ReinterpretingDCT<
793
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
794
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
795
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 16 * 32);
796
0
      break;
797
0
    }
798
0
    case Type::DCT256X256: {
799
0
      ReinterpretingDCT<
800
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
0
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
0
      break;
804
0
    }
805
4.82M
    case Type::DCT:
806
7.52M
    case Type::DCT2X2:
807
7.53M
    case Type::DCT4X4:
808
7.92M
    case Type::DCT4X8:
809
8.77M
    case Type::DCT8X4:
810
9.35M
    case Type::AFV0:
811
9.84M
    case Type::AFV1:
812
10.4M
    case Type::AFV2:
813
11.0M
    case Type::AFV3:
814
13.6M
    case Type::IDENTITY:
815
13.6M
      llf[0] = dc[0];
816
13.6M
      break;
817
16.4M
  };
818
16.4M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
819
820
}  // namespace
821
// NOLINTNEXTLINE(google-readability-namespace-comments)
822
}  // namespace HWY_NAMESPACE
823
}  // namespace jxl
824
HWY_AFTER_NAMESPACE();
825
826
#endif  // LIB_JXL_DEC_TRANSFORMS_INL_H_