Coverage Report

Created: 2025-12-31 07:53

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/dec_transforms-inl.h
Line
Count
Source
1
// Copyright (c) the JPEG XL Project Authors. All rights reserved.
2
//
3
// Use of this source code is governed by a BSD-style
4
// license that can be found in the LICENSE file.
5
6
#include <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
4.99M
                                  float* JXL_RESTRICT scratch_space) {
41
4.99M
  static_assert(LF_ROWS == ROWS,
42
4.99M
                "ReinterpretingDCT should only be called with LF == N");
43
4.99M
  static_assert(LF_COLS == COLS,
44
4.99M
                "ReinterpretingDCT should only be called with LF == N");
45
4.99M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
4.99M
                                 scratch_space);
47
4.99M
  if (ROWS < COLS) {
48
4.88M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
10.9M
      for (size_t x = 0; x < LF_COLS; x++) {
50
8.22M
        output[y * output_stride + x] =
51
8.22M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
8.22M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
8.22M
      }
54
2.73M
    }
55
2.83M
  } else {
56
9.61M
    for (size_t y = 0; y < LF_COLS; y++) {
57
33.6M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
26.8M
        output[y * output_stride + x] =
59
26.8M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
26.8M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
26.8M
      }
62
6.77M
    }
63
2.83M
  }
64
4.99M
}
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
1.08M
                                  float* JXL_RESTRICT scratch_space) {
41
1.08M
  static_assert(LF_ROWS == ROWS,
42
1.08M
                "ReinterpretingDCT should only be called with LF == N");
43
1.08M
  static_assert(LF_COLS == COLS,
44
1.08M
                "ReinterpretingDCT should only be called with LF == N");
45
1.08M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.08M
                                 scratch_space);
47
1.08M
  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
1.08M
  } else {
56
2.17M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.26M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.17M
        output[y * output_stride + x] =
59
2.17M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.17M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.17M
      }
62
1.08M
    }
63
1.08M
  }
64
1.08M
}
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
1.63M
                                  float* JXL_RESTRICT scratch_space) {
41
1.63M
  static_assert(LF_ROWS == ROWS,
42
1.63M
                "ReinterpretingDCT should only be called with LF == N");
43
1.63M
  static_assert(LF_COLS == COLS,
44
1.63M
                "ReinterpretingDCT should only be called with LF == N");
45
1.63M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.63M
                                 scratch_space);
47
1.63M
  if (ROWS < COLS) {
48
3.27M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.90M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.27M
        output[y * output_stride + x] =
51
3.27M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.27M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.27M
      }
54
1.63M
    }
55
1.63M
  } 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
1.63M
}
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
600k
                                  float* JXL_RESTRICT scratch_space) {
41
600k
  static_assert(LF_ROWS == ROWS,
42
600k
                "ReinterpretingDCT should only be called with LF == N");
43
600k
  static_assert(LF_COLS == COLS,
44
600k
                "ReinterpretingDCT should only be called with LF == N");
45
600k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
600k
                                 scratch_space);
47
600k
  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
600k
  } else {
56
1.80M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.60M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.40M
        output[y * output_stride + x] =
59
2.40M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.40M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.40M
      }
62
1.20M
    }
63
600k
  }
64
600k
}
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
6.36k
                                  float* JXL_RESTRICT scratch_space) {
41
6.36k
  static_assert(LF_ROWS == ROWS,
42
6.36k
                "ReinterpretingDCT should only be called with LF == N");
43
6.36k
  static_assert(LF_COLS == COLS,
44
6.36k
                "ReinterpretingDCT should only be called with LF == N");
45
6.36k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
6.36k
                                 scratch_space);
47
6.36k
  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
6.36k
  } else {
56
12.7k
    for (size_t y = 0; y < LF_COLS; y++) {
57
31.8k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
25.4k
        output[y * output_stride + x] =
59
25.4k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
25.4k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
25.4k
      }
62
6.36k
    }
63
6.36k
  }
64
6.36k
}
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
7.75k
                                  float* JXL_RESTRICT scratch_space) {
41
7.75k
  static_assert(LF_ROWS == ROWS,
42
7.75k
                "ReinterpretingDCT should only be called with LF == N");
43
7.75k
  static_assert(LF_COLS == COLS,
44
7.75k
                "ReinterpretingDCT should only be called with LF == N");
45
7.75k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
7.75k
                                 scratch_space);
47
7.75k
  if (ROWS < COLS) {
48
15.5k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
38.7k
      for (size_t x = 0; x < LF_COLS; x++) {
50
31.0k
        output[y * output_stride + x] =
51
31.0k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
31.0k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
31.0k
      }
54
7.75k
    }
55
7.75k
  } 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
7.75k
}
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
299k
                                  float* JXL_RESTRICT scratch_space) {
41
299k
  static_assert(LF_ROWS == ROWS,
42
299k
                "ReinterpretingDCT should only be called with LF == N");
43
299k
  static_assert(LF_COLS == COLS,
44
299k
                "ReinterpretingDCT should only be called with LF == N");
45
299k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
299k
                                 scratch_space);
47
299k
  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
299k
  } else {
56
897k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.99M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.39M
        output[y * output_stride + x] =
59
2.39M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.39M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.39M
      }
62
598k
    }
63
299k
  }
64
299k
}
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
476k
                                  float* JXL_RESTRICT scratch_space) {
41
476k
  static_assert(LF_ROWS == ROWS,
42
476k
                "ReinterpretingDCT should only be called with LF == N");
43
476k
  static_assert(LF_COLS == COLS,
44
476k
                "ReinterpretingDCT should only be called with LF == N");
45
476k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
476k
                                 scratch_space);
47
476k
  if (ROWS < COLS) {
48
1.42M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.76M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.81M
        output[y * output_stride + x] =
51
3.81M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.81M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.81M
      }
54
952k
    }
55
476k
  } 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
476k
}
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
700k
                                  float* JXL_RESTRICT scratch_space) {
41
700k
  static_assert(LF_ROWS == ROWS,
42
700k
                "ReinterpretingDCT should only be called with LF == N");
43
700k
  static_assert(LF_COLS == COLS,
44
700k
                "ReinterpretingDCT should only be called with LF == N");
45
700k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
700k
                                 scratch_space);
47
700k
  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
700k
  } else {
56
3.50M
    for (size_t y = 0; y < LF_COLS; y++) {
57
14.0M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
11.2M
        output[y * output_stride + x] =
59
11.2M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
11.2M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
11.2M
      }
62
2.80M
    }
63
700k
  }
64
700k
}
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
19.6k
                                  float* JXL_RESTRICT scratch_space) {
41
19.6k
  static_assert(LF_ROWS == ROWS,
42
19.6k
                "ReinterpretingDCT should only be called with LF == N");
43
19.6k
  static_assert(LF_COLS == COLS,
44
19.6k
                "ReinterpretingDCT should only be called with LF == N");
45
19.6k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
19.6k
                                 scratch_space);
47
19.6k
  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
19.6k
  } else {
56
98.3k
    for (size_t y = 0; y < LF_COLS; y++) {
57
708k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
629k
        output[y * output_stride + x] =
59
629k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
629k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
629k
      }
62
78.7k
    }
63
19.6k
  }
64
19.6k
}
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
34.5k
                                  float* JXL_RESTRICT scratch_space) {
41
34.5k
  static_assert(LF_ROWS == ROWS,
42
34.5k
                "ReinterpretingDCT should only be called with LF == N");
43
34.5k
  static_assert(LF_COLS == COLS,
44
34.5k
                "ReinterpretingDCT should only be called with LF == N");
45
34.5k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
34.5k
                                 scratch_space);
47
34.5k
  if (ROWS < COLS) {
48
172k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.24M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.10M
        output[y * output_stride + x] =
51
1.10M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.10M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.10M
      }
54
138k
    }
55
34.5k
  } 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
34.5k
}
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
124k
                                  float* JXL_RESTRICT scratch_space) {
41
124k
  static_assert(LF_ROWS == ROWS,
42
124k
                "ReinterpretingDCT should only be called with LF == N");
43
124k
  static_assert(LF_COLS == COLS,
44
124k
                "ReinterpretingDCT should only be called with LF == N");
45
124k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
124k
                                 scratch_space);
47
124k
  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
124k
  } else {
56
1.12M
    for (size_t y = 0; y < LF_COLS; y++) {
57
8.96M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
7.97M
        output[y * output_stride + x] =
59
7.97M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
7.97M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
7.97M
      }
62
996k
    }
63
124k
  }
64
124k
}
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*)
Line
Count
Source
40
54
                                  float* JXL_RESTRICT scratch_space) {
41
54
  static_assert(LF_ROWS == ROWS,
42
54
                "ReinterpretingDCT should only be called with LF == N");
43
54
  static_assert(LF_COLS == COLS,
44
54
                "ReinterpretingDCT should only be called with LF == N");
45
54
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
54
                                 scratch_space);
47
54
  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
54
  } else {
56
486
    for (size_t y = 0; y < LF_COLS; y++) {
57
7.34k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
6.91k
        output[y * output_stride + x] =
59
6.91k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
6.91k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
6.91k
      }
62
432
    }
63
54
  }
64
54
}
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*)
Line
Count
Source
40
12
                                  float* JXL_RESTRICT scratch_space) {
41
12
  static_assert(LF_ROWS == ROWS,
42
12
                "ReinterpretingDCT should only be called with LF == N");
43
12
  static_assert(LF_COLS == COLS,
44
12
                "ReinterpretingDCT should only be called with LF == N");
45
12
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
12
                                 scratch_space);
47
12
  if (ROWS < COLS) {
48
108
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.63k
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.53k
        output[y * output_stride + x] =
51
1.53k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.53k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.53k
      }
54
96
    }
55
12
  } 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
12
}
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*)
Line
Count
Source
40
21
                                  float* JXL_RESTRICT scratch_space) {
41
21
  static_assert(LF_ROWS == ROWS,
42
21
                "ReinterpretingDCT should only be called with LF == N");
43
21
  static_assert(LF_COLS == COLS,
44
21
                "ReinterpretingDCT should only be called with LF == N");
45
21
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
21
                                 scratch_space);
47
21
  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
21
  } else {
56
357
    for (size_t y = 0; y < LF_COLS; y++) {
57
5.71k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
5.37k
        output[y * output_stride + x] =
59
5.37k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
5.37k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
5.37k
      }
62
336
    }
63
21
  }
64
21
}
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*)
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*)
Line
Count
Source
40
27
                                  float* JXL_RESTRICT scratch_space) {
41
27
  static_assert(LF_ROWS == ROWS,
42
27
                "ReinterpretingDCT should only be called with LF == N");
43
27
  static_assert(LF_COLS == COLS,
44
27
                "ReinterpretingDCT should only be called with LF == N");
45
27
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
27
                                 scratch_space);
47
27
  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
27
  } else {
56
891
    for (size_t y = 0; y < LF_COLS; y++) {
57
28.5k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
27.6k
        output[y * output_stride + x] =
59
27.6k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
27.6k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
27.6k
      }
62
864
    }
63
27
  }
64
27
}
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
64.3M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
64.3M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
64.3M
  static_assert(S % 2 == 0, "S should be even");
70
64.3M
  float temp[kDCTBlockSize];
71
64.3M
  constexpr size_t num_2x2 = S / 2;
72
214M
  for (size_t y = 0; y < num_2x2; y++) {
73
600M
    for (size_t x = 0; x < num_2x2; x++) {
74
450M
      float c00 = block[y * kBlockDim + x];
75
450M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
450M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
450M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
450M
      float r00 = c00 + c01 + c10 + c11;
79
450M
      float r01 = c00 + c01 - c10 - c11;
80
450M
      float r10 = c00 - c01 + c10 - c11;
81
450M
      float r11 = c00 - c01 - c10 + c11;
82
450M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
450M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
450M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
450M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
450M
    }
87
150M
  }
88
364M
  for (size_t y = 0; y < S; y++) {
89
2.10G
    for (size_t x = 0; x < S; x++) {
90
1.80G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.80G
    }
92
300M
  }
93
64.3M
}
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
3.50M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.50M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.50M
  static_assert(S % 2 == 0, "S should be even");
70
3.50M
  float temp[kDCTBlockSize];
71
3.50M
  constexpr size_t num_2x2 = S / 2;
72
7.00M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.00M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.50M
      float c00 = block[y * kBlockDim + x];
75
3.50M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.50M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.50M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.50M
      float r00 = c00 + c01 + c10 + c11;
79
3.50M
      float r01 = c00 + c01 - c10 - c11;
80
3.50M
      float r10 = c00 - c01 + c10 - c11;
81
3.50M
      float r11 = c00 - c01 - c10 + c11;
82
3.50M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.50M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.50M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.50M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.50M
    }
87
3.50M
  }
88
10.5M
  for (size_t y = 0; y < S; y++) {
89
21.0M
    for (size_t x = 0; x < S; x++) {
90
14.0M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
14.0M
    }
92
7.00M
  }
93
3.50M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.50M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.50M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.50M
  static_assert(S % 2 == 0, "S should be even");
70
3.50M
  float temp[kDCTBlockSize];
71
3.50M
  constexpr size_t num_2x2 = S / 2;
72
10.5M
  for (size_t y = 0; y < num_2x2; y++) {
73
21.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
14.0M
      float c00 = block[y * kBlockDim + x];
75
14.0M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
14.0M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
14.0M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
14.0M
      float r00 = c00 + c01 + c10 + c11;
79
14.0M
      float r01 = c00 + c01 - c10 - c11;
80
14.0M
      float r10 = c00 - c01 + c10 - c11;
81
14.0M
      float r11 = c00 - c01 - c10 + c11;
82
14.0M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
14.0M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
14.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
14.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
14.0M
    }
87
7.00M
  }
88
17.5M
  for (size_t y = 0; y < S; y++) {
89
70.0M
    for (size_t x = 0; x < S; x++) {
90
56.0M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
56.0M
    }
92
14.0M
  }
93
3.50M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.50M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.50M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.50M
  static_assert(S % 2 == 0, "S should be even");
70
3.50M
  float temp[kDCTBlockSize];
71
3.50M
  constexpr size_t num_2x2 = S / 2;
72
17.5M
  for (size_t y = 0; y < num_2x2; y++) {
73
70.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
56.0M
      float c00 = block[y * kBlockDim + x];
75
56.0M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
56.0M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
56.0M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
56.0M
      float r00 = c00 + c01 + c10 + c11;
79
56.0M
      float r01 = c00 + c01 - c10 - c11;
80
56.0M
      float r10 = c00 - c01 + c10 - c11;
81
56.0M
      float r11 = c00 - c01 - c10 + c11;
82
56.0M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
56.0M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
56.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
56.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
56.0M
    }
87
14.0M
  }
88
31.5M
  for (size_t y = 0; y < S; y++) {
89
252M
    for (size_t x = 0; x < S; x++) {
90
224M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
224M
    }
92
28.0M
  }
93
3.50M
}
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
17.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
17.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
17.9M
  static_assert(S % 2 == 0, "S should be even");
70
17.9M
  float temp[kDCTBlockSize];
71
17.9M
  constexpr size_t num_2x2 = S / 2;
72
35.9M
  for (size_t y = 0; y < num_2x2; y++) {
73
35.9M
    for (size_t x = 0; x < num_2x2; x++) {
74
17.9M
      float c00 = block[y * kBlockDim + x];
75
17.9M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
17.9M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
17.9M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
17.9M
      float r00 = c00 + c01 + c10 + c11;
79
17.9M
      float r01 = c00 + c01 - c10 - c11;
80
17.9M
      float r10 = c00 - c01 + c10 - c11;
81
17.9M
      float r11 = c00 - c01 - c10 + c11;
82
17.9M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
17.9M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
17.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
17.9M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
17.9M
    }
87
17.9M
  }
88
53.8M
  for (size_t y = 0; y < S; y++) {
89
107M
    for (size_t x = 0; x < S; x++) {
90
71.8M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
71.8M
    }
92
35.9M
  }
93
17.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
17.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
17.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
17.9M
  static_assert(S % 2 == 0, "S should be even");
70
17.9M
  float temp[kDCTBlockSize];
71
17.9M
  constexpr size_t num_2x2 = S / 2;
72
53.8M
  for (size_t y = 0; y < num_2x2; y++) {
73
107M
    for (size_t x = 0; x < num_2x2; x++) {
74
71.8M
      float c00 = block[y * kBlockDim + x];
75
71.8M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
71.8M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
71.8M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
71.8M
      float r00 = c00 + c01 + c10 + c11;
79
71.8M
      float r01 = c00 + c01 - c10 - c11;
80
71.8M
      float r10 = c00 - c01 + c10 - c11;
81
71.8M
      float r11 = c00 - c01 - c10 + c11;
82
71.8M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
71.8M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
71.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
71.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
71.8M
    }
87
35.9M
  }
88
89.7M
  for (size_t y = 0; y < S; y++) {
89
359M
    for (size_t x = 0; x < S; x++) {
90
287M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
287M
    }
92
71.8M
  }
93
17.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
17.9M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
17.9M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
17.9M
  static_assert(S % 2 == 0, "S should be even");
70
17.9M
  float temp[kDCTBlockSize];
71
17.9M
  constexpr size_t num_2x2 = S / 2;
72
89.7M
  for (size_t y = 0; y < num_2x2; y++) {
73
359M
    for (size_t x = 0; x < num_2x2; x++) {
74
287M
      float c00 = block[y * kBlockDim + x];
75
287M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
287M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
287M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
287M
      float r00 = c00 + c01 + c10 + c11;
79
287M
      float r01 = c00 + c01 - c10 - c11;
80
287M
      float r10 = c00 - c01 + c10 - c11;
81
287M
      float r11 = c00 - c01 - c10 + c11;
82
287M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
287M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
287M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
287M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
287M
    }
87
71.8M
  }
88
161M
  for (size_t y = 0; y < S; y++) {
89
1.29G
    for (size_t x = 0; x < S; x++) {
90
1.14G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.14G
    }
92
143M
  }
93
17.9M
}
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
76.4M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
76.4M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
76.4M
      {
98
76.4M
          0.25,
99
76.4M
          0.25,
100
76.4M
          0.25,
101
76.4M
          0.25,
102
76.4M
          0.25,
103
76.4M
          0.25,
104
76.4M
          0.25,
105
76.4M
          0.25,
106
76.4M
          0.25,
107
76.4M
          0.25,
108
76.4M
          0.25,
109
76.4M
          0.25,
110
76.4M
          0.25,
111
76.4M
          0.25,
112
76.4M
          0.25,
113
76.4M
          0.25,
114
76.4M
      },
115
76.4M
      {
116
76.4M
          0.876902929799142f,
117
76.4M
          0.2206518106944235f,
118
76.4M
          -0.10140050393753763f,
119
76.4M
          -0.1014005039375375f,
120
76.4M
          0.2206518106944236f,
121
76.4M
          -0.10140050393753777f,
122
76.4M
          -0.10140050393753772f,
123
76.4M
          -0.10140050393753763f,
124
76.4M
          -0.10140050393753758f,
125
76.4M
          -0.10140050393753769f,
126
76.4M
          -0.1014005039375375f,
127
76.4M
          -0.10140050393753768f,
128
76.4M
          -0.10140050393753768f,
129
76.4M
          -0.10140050393753759f,
130
76.4M
          -0.10140050393753763f,
131
76.4M
          -0.10140050393753741f,
132
76.4M
      },
133
76.4M
      {
134
76.4M
          0.0,
135
76.4M
          0.0,
136
76.4M
          0.40670075830260755f,
137
76.4M
          0.44444816619734445f,
138
76.4M
          0.0,
139
76.4M
          0.0,
140
76.4M
          0.19574399372042936f,
141
76.4M
          0.2929100136981264f,
142
76.4M
          -0.40670075830260716f,
143
76.4M
          -0.19574399372042872f,
144
76.4M
          0.0,
145
76.4M
          0.11379074460448091f,
146
76.4M
          -0.44444816619734384f,
147
76.4M
          -0.29291001369812636f,
148
76.4M
          -0.1137907446044814f,
149
76.4M
          0.0,
150
76.4M
      },
151
76.4M
      {
152
76.4M
          0.0,
153
76.4M
          0.0,
154
76.4M
          -0.21255748058288748f,
155
76.4M
          0.3085497062849767f,
156
76.4M
          0.0,
157
76.4M
          0.4706702258572536f,
158
76.4M
          -0.1621205195722993f,
159
76.4M
          0.0,
160
76.4M
          -0.21255748058287047f,
161
76.4M
          -0.16212051957228327f,
162
76.4M
          -0.47067022585725277f,
163
76.4M
          -0.1464291867126764f,
164
76.4M
          0.3085497062849487f,
165
76.4M
          0.0,
166
76.4M
          -0.14642918671266536f,
167
76.4M
          0.4251149611657548f,
168
76.4M
      },
169
76.4M
      {
170
76.4M
          0.0,
171
76.4M
          -0.7071067811865474f,
172
76.4M
          0.0,
173
76.4M
          0.0,
174
76.4M
          0.7071067811865476f,
175
76.4M
          0.0,
176
76.4M
          0.0,
177
76.4M
          0.0,
178
76.4M
          0.0,
179
76.4M
          0.0,
180
76.4M
          0.0,
181
76.4M
          0.0,
182
76.4M
          0.0,
183
76.4M
          0.0,
184
76.4M
          0.0,
185
76.4M
          0.0,
186
76.4M
      },
187
76.4M
      {
188
76.4M
          -0.4105377591765233f,
189
76.4M
          0.6235485373547691f,
190
76.4M
          -0.06435071657946274f,
191
76.4M
          -0.06435071657946266f,
192
76.4M
          0.6235485373547694f,
193
76.4M
          -0.06435071657946284f,
194
76.4M
          -0.0643507165794628f,
195
76.4M
          -0.06435071657946274f,
196
76.4M
          -0.06435071657946272f,
197
76.4M
          -0.06435071657946279f,
198
76.4M
          -0.06435071657946266f,
199
76.4M
          -0.06435071657946277f,
200
76.4M
          -0.06435071657946277f,
201
76.4M
          -0.06435071657946273f,
202
76.4M
          -0.06435071657946274f,
203
76.4M
          -0.0643507165794626f,
204
76.4M
      },
205
76.4M
      {
206
76.4M
          0.0,
207
76.4M
          0.0,
208
76.4M
          -0.4517556589999482f,
209
76.4M
          0.15854503551840063f,
210
76.4M
          0.0,
211
76.4M
          -0.04038515160822202f,
212
76.4M
          0.0074182263792423875f,
213
76.4M
          0.39351034269210167f,
214
76.4M
          -0.45175565899994635f,
215
76.4M
          0.007418226379244351f,
216
76.4M
          0.1107416575309343f,
217
76.4M
          0.08298163094882051f,
218
76.4M
          0.15854503551839705f,
219
76.4M
          0.3935103426921022f,
220
76.4M
          0.0829816309488214f,
221
76.4M
          -0.45175565899994796f,
222
76.4M
      },
223
76.4M
      {
224
76.4M
          0.0,
225
76.4M
          0.0,
226
76.4M
          -0.304684750724869f,
227
76.4M
          0.5112616136591823f,
228
76.4M
          0.0,
229
76.4M
          0.0,
230
76.4M
          -0.290480129728998f,
231
76.4M
          -0.06578701549142804f,
232
76.4M
          0.304684750724884f,
233
76.4M
          0.2904801297290076f,
234
76.4M
          0.0,
235
76.4M
          -0.23889773523344604f,
236
76.4M
          -0.5112616136592012f,
237
76.4M
          0.06578701549142545f,
238
76.4M
          0.23889773523345467f,
239
76.4M
          0.0,
240
76.4M
      },
241
76.4M
      {
242
76.4M
          0.0,
243
76.4M
          0.0,
244
76.4M
          0.3017929516615495f,
245
76.4M
          0.25792362796341184f,
246
76.4M
          0.0,
247
76.4M
          0.16272340142866204f,
248
76.4M
          0.09520022653475037f,
249
76.4M
          0.0,
250
76.4M
          0.3017929516615503f,
251
76.4M
          0.09520022653475055f,
252
76.4M
          -0.16272340142866173f,
253
76.4M
          -0.35312385449816297f,
254
76.4M
          0.25792362796341295f,
255
76.4M
          0.0,
256
76.4M
          -0.3531238544981624f,
257
76.4M
          -0.6035859033230976f,
258
76.4M
      },
259
76.4M
      {
260
76.4M
          0.0,
261
76.4M
          0.0,
262
76.4M
          0.40824829046386274f,
263
76.4M
          0.0,
264
76.4M
          0.0,
265
76.4M
          0.0,
266
76.4M
          0.0,
267
76.4M
          -0.4082482904638628f,
268
76.4M
          -0.4082482904638635f,
269
76.4M
          0.0,
270
76.4M
          0.0,
271
76.4M
          -0.40824829046386296f,
272
76.4M
          0.0,
273
76.4M
          0.4082482904638634f,
274
76.4M
          0.408248290463863f,
275
76.4M
          0.0,
276
76.4M
      },
277
76.4M
      {
278
76.4M
          0.0,
279
76.4M
          0.0,
280
76.4M
          0.1747866975480809f,
281
76.4M
          0.0812611176717539f,
282
76.4M
          0.0,
283
76.4M
          0.0,
284
76.4M
          -0.3675398009862027f,
285
76.4M
          -0.307882213957909f,
286
76.4M
          -0.17478669754808135f,
287
76.4M
          0.3675398009862011f,
288
76.4M
          0.0,
289
76.4M
          0.4826689115059883f,
290
76.4M
          -0.08126111767175039f,
291
76.4M
          0.30788221395790305f,
292
76.4M
          -0.48266891150598584f,
293
76.4M
          0.0,
294
76.4M
      },
295
76.4M
      {
296
76.4M
          0.0,
297
76.4M
          0.0,
298
76.4M
          -0.21105601049335784f,
299
76.4M
          0.18567180916109802f,
300
76.4M
          0.0,
301
76.4M
          0.0,
302
76.4M
          0.49215859013738733f,
303
76.4M
          -0.38525013709251915f,
304
76.4M
          0.21105601049335806f,
305
76.4M
          -0.49215859013738905f,
306
76.4M
          0.0,
307
76.4M
          0.17419412659916217f,
308
76.4M
          -0.18567180916109904f,
309
76.4M
          0.3852501370925211f,
310
76.4M
          -0.1741941265991621f,
311
76.4M
          0.0,
312
76.4M
      },
313
76.4M
      {
314
76.4M
          0.0,
315
76.4M
          0.0,
316
76.4M
          -0.14266084808807264f,
317
76.4M
          -0.3416446842253372f,
318
76.4M
          0.0,
319
76.4M
          0.7367497537172237f,
320
76.4M
          0.24627107722075148f,
321
76.4M
          -0.08574019035519306f,
322
76.4M
          -0.14266084808807344f,
323
76.4M
          0.24627107722075137f,
324
76.4M
          0.14883399227113567f,
325
76.4M
          -0.04768680350229251f,
326
76.4M
          -0.3416446842253373f,
327
76.4M
          -0.08574019035519267f,
328
76.4M
          -0.047686803502292804f,
329
76.4M
          -0.14266084808807242f,
330
76.4M
      },
331
76.4M
      {
332
76.4M
          0.0,
333
76.4M
          0.0,
334
76.4M
          -0.13813540350758585f,
335
76.4M
          0.3302282550303788f,
336
76.4M
          0.0,
337
76.4M
          0.08755115000587084f,
338
76.4M
          -0.07946706605909573f,
339
76.4M
          -0.4613374887461511f,
340
76.4M
          -0.13813540350758294f,
341
76.4M
          -0.07946706605910261f,
342
76.4M
          0.49724647109535086f,
343
76.4M
          0.12538059448563663f,
344
76.4M
          0.3302282550303805f,
345
76.4M
          -0.4613374887461554f,
346
76.4M
          0.12538059448564315f,
347
76.4M
          -0.13813540350758452f,
348
76.4M
      },
349
76.4M
      {
350
76.4M
          0.0,
351
76.4M
          0.0,
352
76.4M
          -0.17437602599651067f,
353
76.4M
          0.0702790691196284f,
354
76.4M
          0.0,
355
76.4M
          -0.2921026642334881f,
356
76.4M
          0.3623817333531167f,
357
76.4M
          0.0,
358
76.4M
          -0.1743760259965108f,
359
76.4M
          0.36238173335311646f,
360
76.4M
          0.29210266423348785f,
361
76.4M
          -0.4326608024727445f,
362
76.4M
          0.07027906911962818f,
363
76.4M
          0.0,
364
76.4M
          -0.4326608024727457f,
365
76.4M
          0.34875205199302267f,
366
76.4M
      },
367
76.4M
      {
368
76.4M
          0.0,
369
76.4M
          0.0,
370
76.4M
          0.11354987314994337f,
371
76.4M
          -0.07417504595810355f,
372
76.4M
          0.0,
373
76.4M
          0.19402893032594343f,
374
76.4M
          -0.435190496523228f,
375
76.4M
          0.21918684838857466f,
376
76.4M
          0.11354987314994257f,
377
76.4M
          -0.4351904965232251f,
378
76.4M
          0.5550443808910661f,
379
76.4M
          -0.25468277124066463f,
380
76.4M
          -0.07417504595810233f,
381
76.4M
          0.2191868483885728f,
382
76.4M
          -0.25468277124066413f,
383
76.4M
          0.1135498731499429f,
384
76.4M
      },
385
76.4M
  };
386
387
76.4M
  const HWY_CAPPED(float, 16) d;
388
229M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
152M
    auto pixel = Zero(d);
390
2.59G
    for (size_t j = 0; j < 16; j++) {
391
2.44G
      auto cf = Set(d, coeffs[j]);
392
2.44G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.44G
      pixel = MulAdd(cf, basis, pixel);
394
2.44G
    }
395
152M
    Store(pixel, d, pixels + i);
396
152M
  }
397
76.4M
}
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
4.62M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
4.62M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
4.62M
      {
98
4.62M
          0.25,
99
4.62M
          0.25,
100
4.62M
          0.25,
101
4.62M
          0.25,
102
4.62M
          0.25,
103
4.62M
          0.25,
104
4.62M
          0.25,
105
4.62M
          0.25,
106
4.62M
          0.25,
107
4.62M
          0.25,
108
4.62M
          0.25,
109
4.62M
          0.25,
110
4.62M
          0.25,
111
4.62M
          0.25,
112
4.62M
          0.25,
113
4.62M
          0.25,
114
4.62M
      },
115
4.62M
      {
116
4.62M
          0.876902929799142f,
117
4.62M
          0.2206518106944235f,
118
4.62M
          -0.10140050393753763f,
119
4.62M
          -0.1014005039375375f,
120
4.62M
          0.2206518106944236f,
121
4.62M
          -0.10140050393753777f,
122
4.62M
          -0.10140050393753772f,
123
4.62M
          -0.10140050393753763f,
124
4.62M
          -0.10140050393753758f,
125
4.62M
          -0.10140050393753769f,
126
4.62M
          -0.1014005039375375f,
127
4.62M
          -0.10140050393753768f,
128
4.62M
          -0.10140050393753768f,
129
4.62M
          -0.10140050393753759f,
130
4.62M
          -0.10140050393753763f,
131
4.62M
          -0.10140050393753741f,
132
4.62M
      },
133
4.62M
      {
134
4.62M
          0.0,
135
4.62M
          0.0,
136
4.62M
          0.40670075830260755f,
137
4.62M
          0.44444816619734445f,
138
4.62M
          0.0,
139
4.62M
          0.0,
140
4.62M
          0.19574399372042936f,
141
4.62M
          0.2929100136981264f,
142
4.62M
          -0.40670075830260716f,
143
4.62M
          -0.19574399372042872f,
144
4.62M
          0.0,
145
4.62M
          0.11379074460448091f,
146
4.62M
          -0.44444816619734384f,
147
4.62M
          -0.29291001369812636f,
148
4.62M
          -0.1137907446044814f,
149
4.62M
          0.0,
150
4.62M
      },
151
4.62M
      {
152
4.62M
          0.0,
153
4.62M
          0.0,
154
4.62M
          -0.21255748058288748f,
155
4.62M
          0.3085497062849767f,
156
4.62M
          0.0,
157
4.62M
          0.4706702258572536f,
158
4.62M
          -0.1621205195722993f,
159
4.62M
          0.0,
160
4.62M
          -0.21255748058287047f,
161
4.62M
          -0.16212051957228327f,
162
4.62M
          -0.47067022585725277f,
163
4.62M
          -0.1464291867126764f,
164
4.62M
          0.3085497062849487f,
165
4.62M
          0.0,
166
4.62M
          -0.14642918671266536f,
167
4.62M
          0.4251149611657548f,
168
4.62M
      },
169
4.62M
      {
170
4.62M
          0.0,
171
4.62M
          -0.7071067811865474f,
172
4.62M
          0.0,
173
4.62M
          0.0,
174
4.62M
          0.7071067811865476f,
175
4.62M
          0.0,
176
4.62M
          0.0,
177
4.62M
          0.0,
178
4.62M
          0.0,
179
4.62M
          0.0,
180
4.62M
          0.0,
181
4.62M
          0.0,
182
4.62M
          0.0,
183
4.62M
          0.0,
184
4.62M
          0.0,
185
4.62M
          0.0,
186
4.62M
      },
187
4.62M
      {
188
4.62M
          -0.4105377591765233f,
189
4.62M
          0.6235485373547691f,
190
4.62M
          -0.06435071657946274f,
191
4.62M
          -0.06435071657946266f,
192
4.62M
          0.6235485373547694f,
193
4.62M
          -0.06435071657946284f,
194
4.62M
          -0.0643507165794628f,
195
4.62M
          -0.06435071657946274f,
196
4.62M
          -0.06435071657946272f,
197
4.62M
          -0.06435071657946279f,
198
4.62M
          -0.06435071657946266f,
199
4.62M
          -0.06435071657946277f,
200
4.62M
          -0.06435071657946277f,
201
4.62M
          -0.06435071657946273f,
202
4.62M
          -0.06435071657946274f,
203
4.62M
          -0.0643507165794626f,
204
4.62M
      },
205
4.62M
      {
206
4.62M
          0.0,
207
4.62M
          0.0,
208
4.62M
          -0.4517556589999482f,
209
4.62M
          0.15854503551840063f,
210
4.62M
          0.0,
211
4.62M
          -0.04038515160822202f,
212
4.62M
          0.0074182263792423875f,
213
4.62M
          0.39351034269210167f,
214
4.62M
          -0.45175565899994635f,
215
4.62M
          0.007418226379244351f,
216
4.62M
          0.1107416575309343f,
217
4.62M
          0.08298163094882051f,
218
4.62M
          0.15854503551839705f,
219
4.62M
          0.3935103426921022f,
220
4.62M
          0.0829816309488214f,
221
4.62M
          -0.45175565899994796f,
222
4.62M
      },
223
4.62M
      {
224
4.62M
          0.0,
225
4.62M
          0.0,
226
4.62M
          -0.304684750724869f,
227
4.62M
          0.5112616136591823f,
228
4.62M
          0.0,
229
4.62M
          0.0,
230
4.62M
          -0.290480129728998f,
231
4.62M
          -0.06578701549142804f,
232
4.62M
          0.304684750724884f,
233
4.62M
          0.2904801297290076f,
234
4.62M
          0.0,
235
4.62M
          -0.23889773523344604f,
236
4.62M
          -0.5112616136592012f,
237
4.62M
          0.06578701549142545f,
238
4.62M
          0.23889773523345467f,
239
4.62M
          0.0,
240
4.62M
      },
241
4.62M
      {
242
4.62M
          0.0,
243
4.62M
          0.0,
244
4.62M
          0.3017929516615495f,
245
4.62M
          0.25792362796341184f,
246
4.62M
          0.0,
247
4.62M
          0.16272340142866204f,
248
4.62M
          0.09520022653475037f,
249
4.62M
          0.0,
250
4.62M
          0.3017929516615503f,
251
4.62M
          0.09520022653475055f,
252
4.62M
          -0.16272340142866173f,
253
4.62M
          -0.35312385449816297f,
254
4.62M
          0.25792362796341295f,
255
4.62M
          0.0,
256
4.62M
          -0.3531238544981624f,
257
4.62M
          -0.6035859033230976f,
258
4.62M
      },
259
4.62M
      {
260
4.62M
          0.0,
261
4.62M
          0.0,
262
4.62M
          0.40824829046386274f,
263
4.62M
          0.0,
264
4.62M
          0.0,
265
4.62M
          0.0,
266
4.62M
          0.0,
267
4.62M
          -0.4082482904638628f,
268
4.62M
          -0.4082482904638635f,
269
4.62M
          0.0,
270
4.62M
          0.0,
271
4.62M
          -0.40824829046386296f,
272
4.62M
          0.0,
273
4.62M
          0.4082482904638634f,
274
4.62M
          0.408248290463863f,
275
4.62M
          0.0,
276
4.62M
      },
277
4.62M
      {
278
4.62M
          0.0,
279
4.62M
          0.0,
280
4.62M
          0.1747866975480809f,
281
4.62M
          0.0812611176717539f,
282
4.62M
          0.0,
283
4.62M
          0.0,
284
4.62M
          -0.3675398009862027f,
285
4.62M
          -0.307882213957909f,
286
4.62M
          -0.17478669754808135f,
287
4.62M
          0.3675398009862011f,
288
4.62M
          0.0,
289
4.62M
          0.4826689115059883f,
290
4.62M
          -0.08126111767175039f,
291
4.62M
          0.30788221395790305f,
292
4.62M
          -0.48266891150598584f,
293
4.62M
          0.0,
294
4.62M
      },
295
4.62M
      {
296
4.62M
          0.0,
297
4.62M
          0.0,
298
4.62M
          -0.21105601049335784f,
299
4.62M
          0.18567180916109802f,
300
4.62M
          0.0,
301
4.62M
          0.0,
302
4.62M
          0.49215859013738733f,
303
4.62M
          -0.38525013709251915f,
304
4.62M
          0.21105601049335806f,
305
4.62M
          -0.49215859013738905f,
306
4.62M
          0.0,
307
4.62M
          0.17419412659916217f,
308
4.62M
          -0.18567180916109904f,
309
4.62M
          0.3852501370925211f,
310
4.62M
          -0.1741941265991621f,
311
4.62M
          0.0,
312
4.62M
      },
313
4.62M
      {
314
4.62M
          0.0,
315
4.62M
          0.0,
316
4.62M
          -0.14266084808807264f,
317
4.62M
          -0.3416446842253372f,
318
4.62M
          0.0,
319
4.62M
          0.7367497537172237f,
320
4.62M
          0.24627107722075148f,
321
4.62M
          -0.08574019035519306f,
322
4.62M
          -0.14266084808807344f,
323
4.62M
          0.24627107722075137f,
324
4.62M
          0.14883399227113567f,
325
4.62M
          -0.04768680350229251f,
326
4.62M
          -0.3416446842253373f,
327
4.62M
          -0.08574019035519267f,
328
4.62M
          -0.047686803502292804f,
329
4.62M
          -0.14266084808807242f,
330
4.62M
      },
331
4.62M
      {
332
4.62M
          0.0,
333
4.62M
          0.0,
334
4.62M
          -0.13813540350758585f,
335
4.62M
          0.3302282550303788f,
336
4.62M
          0.0,
337
4.62M
          0.08755115000587084f,
338
4.62M
          -0.07946706605909573f,
339
4.62M
          -0.4613374887461511f,
340
4.62M
          -0.13813540350758294f,
341
4.62M
          -0.07946706605910261f,
342
4.62M
          0.49724647109535086f,
343
4.62M
          0.12538059448563663f,
344
4.62M
          0.3302282550303805f,
345
4.62M
          -0.4613374887461554f,
346
4.62M
          0.12538059448564315f,
347
4.62M
          -0.13813540350758452f,
348
4.62M
      },
349
4.62M
      {
350
4.62M
          0.0,
351
4.62M
          0.0,
352
4.62M
          -0.17437602599651067f,
353
4.62M
          0.0702790691196284f,
354
4.62M
          0.0,
355
4.62M
          -0.2921026642334881f,
356
4.62M
          0.3623817333531167f,
357
4.62M
          0.0,
358
4.62M
          -0.1743760259965108f,
359
4.62M
          0.36238173335311646f,
360
4.62M
          0.29210266423348785f,
361
4.62M
          -0.4326608024727445f,
362
4.62M
          0.07027906911962818f,
363
4.62M
          0.0,
364
4.62M
          -0.4326608024727457f,
365
4.62M
          0.34875205199302267f,
366
4.62M
      },
367
4.62M
      {
368
4.62M
          0.0,
369
4.62M
          0.0,
370
4.62M
          0.11354987314994337f,
371
4.62M
          -0.07417504595810355f,
372
4.62M
          0.0,
373
4.62M
          0.19402893032594343f,
374
4.62M
          -0.435190496523228f,
375
4.62M
          0.21918684838857466f,
376
4.62M
          0.11354987314994257f,
377
4.62M
          -0.4351904965232251f,
378
4.62M
          0.5550443808910661f,
379
4.62M
          -0.25468277124066463f,
380
4.62M
          -0.07417504595810233f,
381
4.62M
          0.2191868483885728f,
382
4.62M
          -0.25468277124066413f,
383
4.62M
          0.1135498731499429f,
384
4.62M
      },
385
4.62M
  };
386
387
4.62M
  const HWY_CAPPED(float, 16) d;
388
13.8M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
9.24M
    auto pixel = Zero(d);
390
157M
    for (size_t j = 0; j < 16; j++) {
391
147M
      auto cf = Set(d, coeffs[j]);
392
147M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
147M
      pixel = MulAdd(cf, basis, pixel);
394
147M
    }
395
9.24M
    Store(pixel, d, pixels + i);
396
9.24M
  }
397
4.62M
}
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
71.8M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
71.8M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
71.8M
      {
98
71.8M
          0.25,
99
71.8M
          0.25,
100
71.8M
          0.25,
101
71.8M
          0.25,
102
71.8M
          0.25,
103
71.8M
          0.25,
104
71.8M
          0.25,
105
71.8M
          0.25,
106
71.8M
          0.25,
107
71.8M
          0.25,
108
71.8M
          0.25,
109
71.8M
          0.25,
110
71.8M
          0.25,
111
71.8M
          0.25,
112
71.8M
          0.25,
113
71.8M
          0.25,
114
71.8M
      },
115
71.8M
      {
116
71.8M
          0.876902929799142f,
117
71.8M
          0.2206518106944235f,
118
71.8M
          -0.10140050393753763f,
119
71.8M
          -0.1014005039375375f,
120
71.8M
          0.2206518106944236f,
121
71.8M
          -0.10140050393753777f,
122
71.8M
          -0.10140050393753772f,
123
71.8M
          -0.10140050393753763f,
124
71.8M
          -0.10140050393753758f,
125
71.8M
          -0.10140050393753769f,
126
71.8M
          -0.1014005039375375f,
127
71.8M
          -0.10140050393753768f,
128
71.8M
          -0.10140050393753768f,
129
71.8M
          -0.10140050393753759f,
130
71.8M
          -0.10140050393753763f,
131
71.8M
          -0.10140050393753741f,
132
71.8M
      },
133
71.8M
      {
134
71.8M
          0.0,
135
71.8M
          0.0,
136
71.8M
          0.40670075830260755f,
137
71.8M
          0.44444816619734445f,
138
71.8M
          0.0,
139
71.8M
          0.0,
140
71.8M
          0.19574399372042936f,
141
71.8M
          0.2929100136981264f,
142
71.8M
          -0.40670075830260716f,
143
71.8M
          -0.19574399372042872f,
144
71.8M
          0.0,
145
71.8M
          0.11379074460448091f,
146
71.8M
          -0.44444816619734384f,
147
71.8M
          -0.29291001369812636f,
148
71.8M
          -0.1137907446044814f,
149
71.8M
          0.0,
150
71.8M
      },
151
71.8M
      {
152
71.8M
          0.0,
153
71.8M
          0.0,
154
71.8M
          -0.21255748058288748f,
155
71.8M
          0.3085497062849767f,
156
71.8M
          0.0,
157
71.8M
          0.4706702258572536f,
158
71.8M
          -0.1621205195722993f,
159
71.8M
          0.0,
160
71.8M
          -0.21255748058287047f,
161
71.8M
          -0.16212051957228327f,
162
71.8M
          -0.47067022585725277f,
163
71.8M
          -0.1464291867126764f,
164
71.8M
          0.3085497062849487f,
165
71.8M
          0.0,
166
71.8M
          -0.14642918671266536f,
167
71.8M
          0.4251149611657548f,
168
71.8M
      },
169
71.8M
      {
170
71.8M
          0.0,
171
71.8M
          -0.7071067811865474f,
172
71.8M
          0.0,
173
71.8M
          0.0,
174
71.8M
          0.7071067811865476f,
175
71.8M
          0.0,
176
71.8M
          0.0,
177
71.8M
          0.0,
178
71.8M
          0.0,
179
71.8M
          0.0,
180
71.8M
          0.0,
181
71.8M
          0.0,
182
71.8M
          0.0,
183
71.8M
          0.0,
184
71.8M
          0.0,
185
71.8M
          0.0,
186
71.8M
      },
187
71.8M
      {
188
71.8M
          -0.4105377591765233f,
189
71.8M
          0.6235485373547691f,
190
71.8M
          -0.06435071657946274f,
191
71.8M
          -0.06435071657946266f,
192
71.8M
          0.6235485373547694f,
193
71.8M
          -0.06435071657946284f,
194
71.8M
          -0.0643507165794628f,
195
71.8M
          -0.06435071657946274f,
196
71.8M
          -0.06435071657946272f,
197
71.8M
          -0.06435071657946279f,
198
71.8M
          -0.06435071657946266f,
199
71.8M
          -0.06435071657946277f,
200
71.8M
          -0.06435071657946277f,
201
71.8M
          -0.06435071657946273f,
202
71.8M
          -0.06435071657946274f,
203
71.8M
          -0.0643507165794626f,
204
71.8M
      },
205
71.8M
      {
206
71.8M
          0.0,
207
71.8M
          0.0,
208
71.8M
          -0.4517556589999482f,
209
71.8M
          0.15854503551840063f,
210
71.8M
          0.0,
211
71.8M
          -0.04038515160822202f,
212
71.8M
          0.0074182263792423875f,
213
71.8M
          0.39351034269210167f,
214
71.8M
          -0.45175565899994635f,
215
71.8M
          0.007418226379244351f,
216
71.8M
          0.1107416575309343f,
217
71.8M
          0.08298163094882051f,
218
71.8M
          0.15854503551839705f,
219
71.8M
          0.3935103426921022f,
220
71.8M
          0.0829816309488214f,
221
71.8M
          -0.45175565899994796f,
222
71.8M
      },
223
71.8M
      {
224
71.8M
          0.0,
225
71.8M
          0.0,
226
71.8M
          -0.304684750724869f,
227
71.8M
          0.5112616136591823f,
228
71.8M
          0.0,
229
71.8M
          0.0,
230
71.8M
          -0.290480129728998f,
231
71.8M
          -0.06578701549142804f,
232
71.8M
          0.304684750724884f,
233
71.8M
          0.2904801297290076f,
234
71.8M
          0.0,
235
71.8M
          -0.23889773523344604f,
236
71.8M
          -0.5112616136592012f,
237
71.8M
          0.06578701549142545f,
238
71.8M
          0.23889773523345467f,
239
71.8M
          0.0,
240
71.8M
      },
241
71.8M
      {
242
71.8M
          0.0,
243
71.8M
          0.0,
244
71.8M
          0.3017929516615495f,
245
71.8M
          0.25792362796341184f,
246
71.8M
          0.0,
247
71.8M
          0.16272340142866204f,
248
71.8M
          0.09520022653475037f,
249
71.8M
          0.0,
250
71.8M
          0.3017929516615503f,
251
71.8M
          0.09520022653475055f,
252
71.8M
          -0.16272340142866173f,
253
71.8M
          -0.35312385449816297f,
254
71.8M
          0.25792362796341295f,
255
71.8M
          0.0,
256
71.8M
          -0.3531238544981624f,
257
71.8M
          -0.6035859033230976f,
258
71.8M
      },
259
71.8M
      {
260
71.8M
          0.0,
261
71.8M
          0.0,
262
71.8M
          0.40824829046386274f,
263
71.8M
          0.0,
264
71.8M
          0.0,
265
71.8M
          0.0,
266
71.8M
          0.0,
267
71.8M
          -0.4082482904638628f,
268
71.8M
          -0.4082482904638635f,
269
71.8M
          0.0,
270
71.8M
          0.0,
271
71.8M
          -0.40824829046386296f,
272
71.8M
          0.0,
273
71.8M
          0.4082482904638634f,
274
71.8M
          0.408248290463863f,
275
71.8M
          0.0,
276
71.8M
      },
277
71.8M
      {
278
71.8M
          0.0,
279
71.8M
          0.0,
280
71.8M
          0.1747866975480809f,
281
71.8M
          0.0812611176717539f,
282
71.8M
          0.0,
283
71.8M
          0.0,
284
71.8M
          -0.3675398009862027f,
285
71.8M
          -0.307882213957909f,
286
71.8M
          -0.17478669754808135f,
287
71.8M
          0.3675398009862011f,
288
71.8M
          0.0,
289
71.8M
          0.4826689115059883f,
290
71.8M
          -0.08126111767175039f,
291
71.8M
          0.30788221395790305f,
292
71.8M
          -0.48266891150598584f,
293
71.8M
          0.0,
294
71.8M
      },
295
71.8M
      {
296
71.8M
          0.0,
297
71.8M
          0.0,
298
71.8M
          -0.21105601049335784f,
299
71.8M
          0.18567180916109802f,
300
71.8M
          0.0,
301
71.8M
          0.0,
302
71.8M
          0.49215859013738733f,
303
71.8M
          -0.38525013709251915f,
304
71.8M
          0.21105601049335806f,
305
71.8M
          -0.49215859013738905f,
306
71.8M
          0.0,
307
71.8M
          0.17419412659916217f,
308
71.8M
          -0.18567180916109904f,
309
71.8M
          0.3852501370925211f,
310
71.8M
          -0.1741941265991621f,
311
71.8M
          0.0,
312
71.8M
      },
313
71.8M
      {
314
71.8M
          0.0,
315
71.8M
          0.0,
316
71.8M
          -0.14266084808807264f,
317
71.8M
          -0.3416446842253372f,
318
71.8M
          0.0,
319
71.8M
          0.7367497537172237f,
320
71.8M
          0.24627107722075148f,
321
71.8M
          -0.08574019035519306f,
322
71.8M
          -0.14266084808807344f,
323
71.8M
          0.24627107722075137f,
324
71.8M
          0.14883399227113567f,
325
71.8M
          -0.04768680350229251f,
326
71.8M
          -0.3416446842253373f,
327
71.8M
          -0.08574019035519267f,
328
71.8M
          -0.047686803502292804f,
329
71.8M
          -0.14266084808807242f,
330
71.8M
      },
331
71.8M
      {
332
71.8M
          0.0,
333
71.8M
          0.0,
334
71.8M
          -0.13813540350758585f,
335
71.8M
          0.3302282550303788f,
336
71.8M
          0.0,
337
71.8M
          0.08755115000587084f,
338
71.8M
          -0.07946706605909573f,
339
71.8M
          -0.4613374887461511f,
340
71.8M
          -0.13813540350758294f,
341
71.8M
          -0.07946706605910261f,
342
71.8M
          0.49724647109535086f,
343
71.8M
          0.12538059448563663f,
344
71.8M
          0.3302282550303805f,
345
71.8M
          -0.4613374887461554f,
346
71.8M
          0.12538059448564315f,
347
71.8M
          -0.13813540350758452f,
348
71.8M
      },
349
71.8M
      {
350
71.8M
          0.0,
351
71.8M
          0.0,
352
71.8M
          -0.17437602599651067f,
353
71.8M
          0.0702790691196284f,
354
71.8M
          0.0,
355
71.8M
          -0.2921026642334881f,
356
71.8M
          0.3623817333531167f,
357
71.8M
          0.0,
358
71.8M
          -0.1743760259965108f,
359
71.8M
          0.36238173335311646f,
360
71.8M
          0.29210266423348785f,
361
71.8M
          -0.4326608024727445f,
362
71.8M
          0.07027906911962818f,
363
71.8M
          0.0,
364
71.8M
          -0.4326608024727457f,
365
71.8M
          0.34875205199302267f,
366
71.8M
      },
367
71.8M
      {
368
71.8M
          0.0,
369
71.8M
          0.0,
370
71.8M
          0.11354987314994337f,
371
71.8M
          -0.07417504595810355f,
372
71.8M
          0.0,
373
71.8M
          0.19402893032594343f,
374
71.8M
          -0.435190496523228f,
375
71.8M
          0.21918684838857466f,
376
71.8M
          0.11354987314994257f,
377
71.8M
          -0.4351904965232251f,
378
71.8M
          0.5550443808910661f,
379
71.8M
          -0.25468277124066463f,
380
71.8M
          -0.07417504595810233f,
381
71.8M
          0.2191868483885728f,
382
71.8M
          -0.25468277124066413f,
383
71.8M
          0.1135498731499429f,
384
71.8M
      },
385
71.8M
  };
386
387
71.8M
  const HWY_CAPPED(float, 16) d;
388
215M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
143M
    auto pixel = Zero(d);
390
2.44G
    for (size_t j = 0; j < 16; j++) {
391
2.29G
      auto cf = Set(d, coeffs[j]);
392
2.29G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.29G
      pixel = MulAdd(cf, basis, pixel);
394
2.29G
    }
395
143M
    Store(pixel, d, pixels + i);
396
143M
  }
397
71.8M
}
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
76.4M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
76.4M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
76.4M
  size_t afv_x = afv_kind & 1;
404
76.4M
  size_t afv_y = afv_kind / 2;
405
76.4M
  float dcs[3] = {};
406
76.4M
  float block00 = coefficients[0];
407
76.4M
  float block01 = coefficients[1];
408
76.4M
  float block10 = coefficients[8];
409
76.4M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
76.4M
  dcs[1] = (block00 + block10 - block01);
411
76.4M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
76.4M
  HWY_ALIGN float coeff[4 * 4];
414
76.4M
  coeff[0] = dcs[0];
415
382M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.52G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.22G
      if (ix == 0 && iy == 0) continue;
418
1.14G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.14G
    }
420
305M
  }
421
76.4M
  HWY_ALIGN float block[4 * 8];
422
76.4M
  AFVIDCT4x4(coeff, block);
423
382M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.52G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.22G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.22G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.22G
    }
428
305M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
76.4M
  block[0] = dcs[1];
431
382M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.52G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.22G
      if (ix == 0 && iy == 0) continue;
434
1.14G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.14G
    }
436
305M
  }
437
76.4M
  ComputeScaledIDCT<4, 4>()(
438
76.4M
      block,
439
76.4M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
76.4M
            pixels_stride),
441
76.4M
      scratch_space);
442
  // IDCT4x8.
443
76.4M
  block[0] = dcs[2];
444
382M
  for (size_t iy = 0; iy < 4; iy++) {
445
2.75G
    for (size_t ix = 0; ix < 8; ix++) {
446
2.44G
      if (ix == 0 && iy == 0) continue;
447
2.36G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
2.36G
    }
449
305M
  }
450
76.4M
  ComputeScaledIDCT<4, 8>()(
451
76.4M
      block,
452
76.4M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
76.4M
      scratch_space);
454
76.4M
}
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
938k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
938k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
938k
  size_t afv_x = afv_kind & 1;
404
938k
  size_t afv_y = afv_kind / 2;
405
938k
  float dcs[3] = {};
406
938k
  float block00 = coefficients[0];
407
938k
  float block01 = coefficients[1];
408
938k
  float block10 = coefficients[8];
409
938k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
938k
  dcs[1] = (block00 + block10 - block01);
411
938k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
938k
  HWY_ALIGN float coeff[4 * 4];
414
938k
  coeff[0] = dcs[0];
415
4.69M
  for (size_t iy = 0; iy < 4; iy++) {
416
18.7M
    for (size_t ix = 0; ix < 4; ix++) {
417
15.0M
      if (ix == 0 && iy == 0) continue;
418
14.0M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
14.0M
    }
420
3.75M
  }
421
938k
  HWY_ALIGN float block[4 * 8];
422
938k
  AFVIDCT4x4(coeff, block);
423
4.69M
  for (size_t iy = 0; iy < 4; iy++) {
424
18.7M
    for (size_t ix = 0; ix < 4; ix++) {
425
15.0M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
15.0M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
15.0M
    }
428
3.75M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
938k
  block[0] = dcs[1];
431
4.69M
  for (size_t iy = 0; iy < 4; iy++) {
432
18.7M
    for (size_t ix = 0; ix < 4; ix++) {
433
15.0M
      if (ix == 0 && iy == 0) continue;
434
14.0M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
14.0M
    }
436
3.75M
  }
437
938k
  ComputeScaledIDCT<4, 4>()(
438
938k
      block,
439
938k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
938k
            pixels_stride),
441
938k
      scratch_space);
442
  // IDCT4x8.
443
938k
  block[0] = dcs[2];
444
4.69M
  for (size_t iy = 0; iy < 4; iy++) {
445
33.8M
    for (size_t ix = 0; ix < 8; ix++) {
446
30.0M
      if (ix == 0 && iy == 0) continue;
447
29.1M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
29.1M
    }
449
3.75M
  }
450
938k
  ComputeScaledIDCT<4, 8>()(
451
938k
      block,
452
938k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
938k
      scratch_space);
454
938k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.78M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.78M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.78M
  size_t afv_x = afv_kind & 1;
404
1.78M
  size_t afv_y = afv_kind / 2;
405
1.78M
  float dcs[3] = {};
406
1.78M
  float block00 = coefficients[0];
407
1.78M
  float block01 = coefficients[1];
408
1.78M
  float block10 = coefficients[8];
409
1.78M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.78M
  dcs[1] = (block00 + block10 - block01);
411
1.78M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.78M
  HWY_ALIGN float coeff[4 * 4];
414
1.78M
  coeff[0] = dcs[0];
415
8.93M
  for (size_t iy = 0; iy < 4; iy++) {
416
35.7M
    for (size_t ix = 0; ix < 4; ix++) {
417
28.5M
      if (ix == 0 && iy == 0) continue;
418
26.8M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
26.8M
    }
420
7.14M
  }
421
1.78M
  HWY_ALIGN float block[4 * 8];
422
1.78M
  AFVIDCT4x4(coeff, block);
423
8.93M
  for (size_t iy = 0; iy < 4; iy++) {
424
35.7M
    for (size_t ix = 0; ix < 4; ix++) {
425
28.5M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
28.5M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
28.5M
    }
428
7.14M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.78M
  block[0] = dcs[1];
431
8.93M
  for (size_t iy = 0; iy < 4; iy++) {
432
35.7M
    for (size_t ix = 0; ix < 4; ix++) {
433
28.5M
      if (ix == 0 && iy == 0) continue;
434
26.8M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
26.8M
    }
436
7.14M
  }
437
1.78M
  ComputeScaledIDCT<4, 4>()(
438
1.78M
      block,
439
1.78M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.78M
            pixels_stride),
441
1.78M
      scratch_space);
442
  // IDCT4x8.
443
1.78M
  block[0] = dcs[2];
444
8.93M
  for (size_t iy = 0; iy < 4; iy++) {
445
64.3M
    for (size_t ix = 0; ix < 8; ix++) {
446
57.1M
      if (ix == 0 && iy == 0) continue;
447
55.4M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
55.4M
    }
449
7.14M
  }
450
1.78M
  ComputeScaledIDCT<4, 8>()(
451
1.78M
      block,
452
1.78M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.78M
      scratch_space);
454
1.78M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
809k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
809k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
809k
  size_t afv_x = afv_kind & 1;
404
809k
  size_t afv_y = afv_kind / 2;
405
809k
  float dcs[3] = {};
406
809k
  float block00 = coefficients[0];
407
809k
  float block01 = coefficients[1];
408
809k
  float block10 = coefficients[8];
409
809k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
809k
  dcs[1] = (block00 + block10 - block01);
411
809k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
809k
  HWY_ALIGN float coeff[4 * 4];
414
809k
  coeff[0] = dcs[0];
415
4.04M
  for (size_t iy = 0; iy < 4; iy++) {
416
16.1M
    for (size_t ix = 0; ix < 4; ix++) {
417
12.9M
      if (ix == 0 && iy == 0) continue;
418
12.1M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
12.1M
    }
420
3.23M
  }
421
809k
  HWY_ALIGN float block[4 * 8];
422
809k
  AFVIDCT4x4(coeff, block);
423
4.04M
  for (size_t iy = 0; iy < 4; iy++) {
424
16.1M
    for (size_t ix = 0; ix < 4; ix++) {
425
12.9M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
12.9M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
12.9M
    }
428
3.23M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
809k
  block[0] = dcs[1];
431
4.04M
  for (size_t iy = 0; iy < 4; iy++) {
432
16.1M
    for (size_t ix = 0; ix < 4; ix++) {
433
12.9M
      if (ix == 0 && iy == 0) continue;
434
12.1M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
12.1M
    }
436
3.23M
  }
437
809k
  ComputeScaledIDCT<4, 4>()(
438
809k
      block,
439
809k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
809k
            pixels_stride),
441
809k
      scratch_space);
442
  // IDCT4x8.
443
809k
  block[0] = dcs[2];
444
4.04M
  for (size_t iy = 0; iy < 4; iy++) {
445
29.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
25.9M
      if (ix == 0 && iy == 0) continue;
447
25.1M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
25.1M
    }
449
3.23M
  }
450
809k
  ComputeScaledIDCT<4, 8>()(
451
809k
      block,
452
809k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
809k
      scratch_space);
454
809k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.08M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.08M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.08M
  size_t afv_x = afv_kind & 1;
404
1.08M
  size_t afv_y = afv_kind / 2;
405
1.08M
  float dcs[3] = {};
406
1.08M
  float block00 = coefficients[0];
407
1.08M
  float block01 = coefficients[1];
408
1.08M
  float block10 = coefficients[8];
409
1.08M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.08M
  dcs[1] = (block00 + block10 - block01);
411
1.08M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.08M
  HWY_ALIGN float coeff[4 * 4];
414
1.08M
  coeff[0] = dcs[0];
415
5.44M
  for (size_t iy = 0; iy < 4; iy++) {
416
21.7M
    for (size_t ix = 0; ix < 4; ix++) {
417
17.4M
      if (ix == 0 && iy == 0) continue;
418
16.3M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
16.3M
    }
420
4.35M
  }
421
1.08M
  HWY_ALIGN float block[4 * 8];
422
1.08M
  AFVIDCT4x4(coeff, block);
423
5.44M
  for (size_t iy = 0; iy < 4; iy++) {
424
21.7M
    for (size_t ix = 0; ix < 4; ix++) {
425
17.4M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
17.4M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
17.4M
    }
428
4.35M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.08M
  block[0] = dcs[1];
431
5.44M
  for (size_t iy = 0; iy < 4; iy++) {
432
21.7M
    for (size_t ix = 0; ix < 4; ix++) {
433
17.4M
      if (ix == 0 && iy == 0) continue;
434
16.3M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
16.3M
    }
436
4.35M
  }
437
1.08M
  ComputeScaledIDCT<4, 4>()(
438
1.08M
      block,
439
1.08M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.08M
            pixels_stride),
441
1.08M
      scratch_space);
442
  // IDCT4x8.
443
1.08M
  block[0] = dcs[2];
444
5.44M
  for (size_t iy = 0; iy < 4; iy++) {
445
39.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
34.8M
      if (ix == 0 && iy == 0) continue;
447
33.7M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
33.7M
    }
449
4.35M
  }
450
1.08M
  ComputeScaledIDCT<4, 8>()(
451
1.08M
      block,
452
1.08M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.08M
      scratch_space);
454
1.08M
}
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
17.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.9M
  size_t afv_x = afv_kind & 1;
404
17.9M
  size_t afv_y = afv_kind / 2;
405
17.9M
  float dcs[3] = {};
406
17.9M
  float block00 = coefficients[0];
407
17.9M
  float block01 = coefficients[1];
408
17.9M
  float block10 = coefficients[8];
409
17.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.9M
  dcs[1] = (block00 + block10 - block01);
411
17.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.9M
  HWY_ALIGN float coeff[4 * 4];
414
17.9M
  coeff[0] = dcs[0];
415
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
416
359M
    for (size_t ix = 0; ix < 4; ix++) {
417
287M
      if (ix == 0 && iy == 0) continue;
418
269M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
269M
    }
420
71.8M
  }
421
17.9M
  HWY_ALIGN float block[4 * 8];
422
17.9M
  AFVIDCT4x4(coeff, block);
423
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
424
359M
    for (size_t ix = 0; ix < 4; ix++) {
425
287M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
287M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
287M
    }
428
71.8M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.9M
  block[0] = dcs[1];
431
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
432
359M
    for (size_t ix = 0; ix < 4; ix++) {
433
287M
      if (ix == 0 && iy == 0) continue;
434
269M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
269M
    }
436
71.8M
  }
437
17.9M
  ComputeScaledIDCT<4, 4>()(
438
17.9M
      block,
439
17.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.9M
            pixels_stride),
441
17.9M
      scratch_space);
442
  // IDCT4x8.
443
17.9M
  block[0] = dcs[2];
444
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
445
646M
    for (size_t ix = 0; ix < 8; ix++) {
446
574M
      if (ix == 0 && iy == 0) continue;
447
556M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
556M
    }
449
71.8M
  }
450
17.9M
  ComputeScaledIDCT<4, 8>()(
451
17.9M
      block,
452
17.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.9M
      scratch_space);
454
17.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
17.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.9M
  size_t afv_x = afv_kind & 1;
404
17.9M
  size_t afv_y = afv_kind / 2;
405
17.9M
  float dcs[3] = {};
406
17.9M
  float block00 = coefficients[0];
407
17.9M
  float block01 = coefficients[1];
408
17.9M
  float block10 = coefficients[8];
409
17.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.9M
  dcs[1] = (block00 + block10 - block01);
411
17.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.9M
  HWY_ALIGN float coeff[4 * 4];
414
17.9M
  coeff[0] = dcs[0];
415
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
416
359M
    for (size_t ix = 0; ix < 4; ix++) {
417
287M
      if (ix == 0 && iy == 0) continue;
418
269M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
269M
    }
420
71.8M
  }
421
17.9M
  HWY_ALIGN float block[4 * 8];
422
17.9M
  AFVIDCT4x4(coeff, block);
423
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
424
359M
    for (size_t ix = 0; ix < 4; ix++) {
425
287M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
287M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
287M
    }
428
71.8M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.9M
  block[0] = dcs[1];
431
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
432
359M
    for (size_t ix = 0; ix < 4; ix++) {
433
287M
      if (ix == 0 && iy == 0) continue;
434
269M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
269M
    }
436
71.8M
  }
437
17.9M
  ComputeScaledIDCT<4, 4>()(
438
17.9M
      block,
439
17.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.9M
            pixels_stride),
441
17.9M
      scratch_space);
442
  // IDCT4x8.
443
17.9M
  block[0] = dcs[2];
444
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
445
646M
    for (size_t ix = 0; ix < 8; ix++) {
446
574M
      if (ix == 0 && iy == 0) continue;
447
556M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
556M
    }
449
71.8M
  }
450
17.9M
  ComputeScaledIDCT<4, 8>()(
451
17.9M
      block,
452
17.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.9M
      scratch_space);
454
17.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
17.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.9M
  size_t afv_x = afv_kind & 1;
404
17.9M
  size_t afv_y = afv_kind / 2;
405
17.9M
  float dcs[3] = {};
406
17.9M
  float block00 = coefficients[0];
407
17.9M
  float block01 = coefficients[1];
408
17.9M
  float block10 = coefficients[8];
409
17.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.9M
  dcs[1] = (block00 + block10 - block01);
411
17.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.9M
  HWY_ALIGN float coeff[4 * 4];
414
17.9M
  coeff[0] = dcs[0];
415
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
416
359M
    for (size_t ix = 0; ix < 4; ix++) {
417
287M
      if (ix == 0 && iy == 0) continue;
418
269M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
269M
    }
420
71.8M
  }
421
17.9M
  HWY_ALIGN float block[4 * 8];
422
17.9M
  AFVIDCT4x4(coeff, block);
423
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
424
359M
    for (size_t ix = 0; ix < 4; ix++) {
425
287M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
287M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
287M
    }
428
71.8M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.9M
  block[0] = dcs[1];
431
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
432
359M
    for (size_t ix = 0; ix < 4; ix++) {
433
287M
      if (ix == 0 && iy == 0) continue;
434
269M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
269M
    }
436
71.8M
  }
437
17.9M
  ComputeScaledIDCT<4, 4>()(
438
17.9M
      block,
439
17.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.9M
            pixels_stride),
441
17.9M
      scratch_space);
442
  // IDCT4x8.
443
17.9M
  block[0] = dcs[2];
444
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
445
646M
    for (size_t ix = 0; ix < 8; ix++) {
446
574M
      if (ix == 0 && iy == 0) continue;
447
556M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
556M
    }
449
71.8M
  }
450
17.9M
  ComputeScaledIDCT<4, 8>()(
451
17.9M
      block,
452
17.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.9M
      scratch_space);
454
17.9M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
17.9M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.9M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.9M
  size_t afv_x = afv_kind & 1;
404
17.9M
  size_t afv_y = afv_kind / 2;
405
17.9M
  float dcs[3] = {};
406
17.9M
  float block00 = coefficients[0];
407
17.9M
  float block01 = coefficients[1];
408
17.9M
  float block10 = coefficients[8];
409
17.9M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.9M
  dcs[1] = (block00 + block10 - block01);
411
17.9M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.9M
  HWY_ALIGN float coeff[4 * 4];
414
17.9M
  coeff[0] = dcs[0];
415
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
416
359M
    for (size_t ix = 0; ix < 4; ix++) {
417
287M
      if (ix == 0 && iy == 0) continue;
418
269M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
269M
    }
420
71.8M
  }
421
17.9M
  HWY_ALIGN float block[4 * 8];
422
17.9M
  AFVIDCT4x4(coeff, block);
423
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
424
359M
    for (size_t ix = 0; ix < 4; ix++) {
425
287M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
287M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
287M
    }
428
71.8M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.9M
  block[0] = dcs[1];
431
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
432
359M
    for (size_t ix = 0; ix < 4; ix++) {
433
287M
      if (ix == 0 && iy == 0) continue;
434
269M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
269M
    }
436
71.8M
  }
437
17.9M
  ComputeScaledIDCT<4, 4>()(
438
17.9M
      block,
439
17.9M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.9M
            pixels_stride),
441
17.9M
      scratch_space);
442
  // IDCT4x8.
443
17.9M
  block[0] = dcs[2];
444
89.7M
  for (size_t iy = 0; iy < 4; iy++) {
445
646M
    for (size_t ix = 0; ix < 8; ix++) {
446
574M
      if (ix == 0 && iy == 0) continue;
447
556M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
556M
    }
449
71.8M
  }
450
17.9M
  ComputeScaledIDCT<4, 8>()(
451
17.9M
      block,
452
17.9M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.9M
      scratch_space);
454
17.9M
}
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
256M
                                        float* scratch_space) {
461
256M
  using Type = AcStrategyType;
462
256M
  switch (strategy) {
463
21.4M
    case Type::IDENTITY: {
464
21.4M
      float dcs[4] = {};
465
21.4M
      float block00 = coefficients[0];
466
21.4M
      float block01 = coefficients[1];
467
21.4M
      float block10 = coefficients[8];
468
21.4M
      float block11 = coefficients[9];
469
21.4M
      dcs[0] = block00 + block01 + block10 + block11;
470
21.4M
      dcs[1] = block00 + block01 - block10 - block11;
471
21.4M
      dcs[2] = block00 - block01 + block10 - block11;
472
21.4M
      dcs[3] = block00 - block01 - block10 + block11;
473
64.4M
      for (size_t y = 0; y < 2; y++) {
474
128M
        for (size_t x = 0; x < 2; x++) {
475
85.9M
          float block_dc = dcs[y * 2 + x];
476
85.9M
          float residual_sum = 0;
477
429M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.71G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.37G
              if (ix == 0 && iy == 0) continue;
480
1.28G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.28G
            }
482
343M
          }
483
85.9M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
85.9M
              block_dc - residual_sum * (1.0f / 16);
485
429M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.71G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.37G
              if (ix == 1 && iy == 1) continue;
488
1.28G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.28G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.28G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.28G
            }
492
343M
          }
493
85.9M
          pixels[y * 4 * pixels_stride + x * 4] =
494
85.9M
              coefficients[(y + 2) * 8 + x + 2] +
495
85.9M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
85.9M
        }
497
42.9M
      }
498
21.4M
      break;
499
0
    }
500
19.6M
    case Type::DCT8X4: {
501
19.6M
      float dcs[2] = {};
502
19.6M
      float block0 = coefficients[0];
503
19.6M
      float block1 = coefficients[8];
504
19.6M
      dcs[0] = block0 + block1;
505
19.6M
      dcs[1] = block0 - block1;
506
58.8M
      for (size_t x = 0; x < 2; x++) {
507
39.2M
        HWY_ALIGN float block[4 * 8];
508
39.2M
        block[0] = dcs[x];
509
196M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.41G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.25G
            if (ix == 0 && iy == 0) continue;
512
1.21G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.21G
          }
514
156M
        }
515
39.2M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
39.2M
                                  scratch_space);
517
39.2M
      }
518
19.6M
      break;
519
0
    }
520
19.1M
    case Type::DCT4X8: {
521
19.1M
      float dcs[2] = {};
522
19.1M
      float block0 = coefficients[0];
523
19.1M
      float block1 = coefficients[8];
524
19.1M
      dcs[0] = block0 + block1;
525
19.1M
      dcs[1] = block0 - block1;
526
57.3M
      for (size_t y = 0; y < 2; y++) {
527
38.2M
        HWY_ALIGN float block[4 * 8];
528
38.2M
        block[0] = dcs[y];
529
191M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.37G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.22G
            if (ix == 0 && iy == 0) continue;
532
1.18G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.18G
          }
534
152M
        }
535
38.2M
        ComputeScaledIDCT<4, 8>()(
536
38.2M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
38.2M
            scratch_space);
538
38.2M
      }
539
19.1M
      break;
540
0
    }
541
18.0M
    case Type::DCT4X4: {
542
18.0M
      float dcs[4] = {};
543
18.0M
      float block00 = coefficients[0];
544
18.0M
      float block01 = coefficients[1];
545
18.0M
      float block10 = coefficients[8];
546
18.0M
      float block11 = coefficients[9];
547
18.0M
      dcs[0] = block00 + block01 + block10 + block11;
548
18.0M
      dcs[1] = block00 + block01 - block10 - block11;
549
18.0M
      dcs[2] = block00 - block01 + block10 - block11;
550
18.0M
      dcs[3] = block00 - block01 - block10 + block11;
551
54.0M
      for (size_t y = 0; y < 2; y++) {
552
108M
        for (size_t x = 0; x < 2; x++) {
553
72.0M
          HWY_ALIGN float block[4 * 4];
554
72.0M
          block[0] = dcs[y * 2 + x];
555
360M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.44G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.15G
              if (ix == 0 && iy == 0) continue;
558
1.08G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.08G
            }
560
288M
          }
561
72.0M
          ComputeScaledIDCT<4, 4>()(
562
72.0M
              block,
563
72.0M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
72.0M
              scratch_space);
565
72.0M
        }
566
36.0M
      }
567
18.0M
      break;
568
0
    }
569
21.4M
    case Type::DCT2X2: {
570
21.4M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
21.4M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
21.4M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
21.4M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
21.4M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
193M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.54G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.37G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.37G
        }
579
171M
      }
580
21.4M
      break;
581
0
    }
582
8.06M
    case Type::DCT16X16: {
583
8.06M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
8.06M
                                  scratch_space);
585
8.06M
      break;
586
0
    }
587
15.6M
    case Type::DCT16X8: {
588
15.6M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
15.6M
                                 scratch_space);
590
15.6M
      break;
591
0
    }
592
16.2M
    case Type::DCT8X16: {
593
16.2M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
16.2M
                                 scratch_space);
595
16.2M
      break;
596
0
    }
597
6.36k
    case Type::DCT32X8: {
598
6.36k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
6.36k
                                 scratch_space);
600
6.36k
      break;
601
0
    }
602
7.75k
    case Type::DCT8X32: {
603
7.75k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
7.75k
                                 scratch_space);
605
7.75k
      break;
606
0
    }
607
3.16M
    case Type::DCT32X16: {
608
3.16M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.16M
                                  scratch_space);
610
3.16M
      break;
611
0
    }
612
3.36M
    case Type::DCT16X32: {
613
3.36M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.36M
                                  scratch_space);
615
3.36M
      break;
616
0
    }
617
2.16M
    case Type::DCT32X32: {
618
2.16M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
2.16M
                                  scratch_space);
620
2.16M
      break;
621
0
    }
622
29.1M
    case Type::DCT: {
623
29.1M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
29.1M
                                scratch_space);
625
29.1M
      break;
626
0
    }
627
18.8M
    case Type::AFV0: {
628
18.8M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
18.8M
      break;
630
0
    }
631
19.7M
    case Type::AFV1: {
632
19.7M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
19.7M
      break;
634
0
    }
635
18.7M
    case Type::AFV2: {
636
18.7M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
18.7M
      break;
638
0
    }
639
19.0M
    case Type::AFV3: {
640
19.0M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
19.0M
      break;
642
0
    }
643
944k
    case Type::DCT64X32: {
644
944k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
944k
                                  scratch_space);
646
944k
      break;
647
0
    }
648
667k
    case Type::DCT32X64: {
649
667k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
667k
                                  scratch_space);
651
667k
      break;
652
0
    }
653
366k
    case Type::DCT64X64: {
654
366k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
366k
                                  scratch_space);
656
366k
      break;
657
0
    }
658
54
    case Type::DCT128X64: {
659
54
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
54
                                   scratch_space);
661
54
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
21
    case Type::DCT128X128: {
669
21
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
21
                                    scratch_space);
671
21
      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
27
    case Type::DCT256X256: {
684
27
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
27
                                    scratch_space);
686
27
      break;
687
0
    }
688
256M
  }
689
256M
}
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
30.7M
                                        float* scratch_space) {
461
30.7M
  using Type = AcStrategyType;
462
30.7M
  switch (strategy) {
463
3.53M
    case Type::IDENTITY: {
464
3.53M
      float dcs[4] = {};
465
3.53M
      float block00 = coefficients[0];
466
3.53M
      float block01 = coefficients[1];
467
3.53M
      float block10 = coefficients[8];
468
3.53M
      float block11 = coefficients[9];
469
3.53M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.53M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.53M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.53M
      dcs[3] = block00 - block01 - block10 + block11;
473
10.6M
      for (size_t y = 0; y < 2; y++) {
474
21.2M
        for (size_t x = 0; x < 2; x++) {
475
14.1M
          float block_dc = dcs[y * 2 + x];
476
14.1M
          float residual_sum = 0;
477
70.7M
          for (size_t iy = 0; iy < 4; iy++) {
478
282M
            for (size_t ix = 0; ix < 4; ix++) {
479
226M
              if (ix == 0 && iy == 0) continue;
480
212M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
212M
            }
482
56.5M
          }
483
14.1M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
14.1M
              block_dc - residual_sum * (1.0f / 16);
485
70.7M
          for (size_t iy = 0; iy < 4; iy++) {
486
282M
            for (size_t ix = 0; ix < 4; ix++) {
487
226M
              if (ix == 1 && iy == 1) continue;
488
212M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
212M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
212M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
212M
            }
492
56.5M
          }
493
14.1M
          pixels[y * 4 * pixels_stride + x * 4] =
494
14.1M
              coefficients[(y + 2) * 8 + x + 2] +
495
14.1M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
14.1M
        }
497
7.07M
      }
498
3.53M
      break;
499
0
    }
500
1.66M
    case Type::DCT8X4: {
501
1.66M
      float dcs[2] = {};
502
1.66M
      float block0 = coefficients[0];
503
1.66M
      float block1 = coefficients[8];
504
1.66M
      dcs[0] = block0 + block1;
505
1.66M
      dcs[1] = block0 - block1;
506
5.00M
      for (size_t x = 0; x < 2; x++) {
507
3.33M
        HWY_ALIGN float block[4 * 8];
508
3.33M
        block[0] = dcs[x];
509
16.6M
        for (size_t iy = 0; iy < 4; iy++) {
510
120M
          for (size_t ix = 0; ix < 8; ix++) {
511
106M
            if (ix == 0 && iy == 0) continue;
512
103M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
103M
          }
514
13.3M
        }
515
3.33M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
3.33M
                                  scratch_space);
517
3.33M
      }
518
1.66M
      break;
519
0
    }
520
1.15M
    case Type::DCT4X8: {
521
1.15M
      float dcs[2] = {};
522
1.15M
      float block0 = coefficients[0];
523
1.15M
      float block1 = coefficients[8];
524
1.15M
      dcs[0] = block0 + block1;
525
1.15M
      dcs[1] = block0 - block1;
526
3.47M
      for (size_t y = 0; y < 2; y++) {
527
2.31M
        HWY_ALIGN float block[4 * 8];
528
2.31M
        block[0] = dcs[y];
529
11.5M
        for (size_t iy = 0; iy < 4; iy++) {
530
83.3M
          for (size_t ix = 0; ix < 8; ix++) {
531
74.1M
            if (ix == 0 && iy == 0) continue;
532
71.7M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
71.7M
          }
534
9.26M
        }
535
2.31M
        ComputeScaledIDCT<4, 8>()(
536
2.31M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.31M
            scratch_space);
538
2.31M
      }
539
1.15M
      break;
540
0
    }
541
51.3k
    case Type::DCT4X4: {
542
51.3k
      float dcs[4] = {};
543
51.3k
      float block00 = coefficients[0];
544
51.3k
      float block01 = coefficients[1];
545
51.3k
      float block10 = coefficients[8];
546
51.3k
      float block11 = coefficients[9];
547
51.3k
      dcs[0] = block00 + block01 + block10 + block11;
548
51.3k
      dcs[1] = block00 + block01 - block10 - block11;
549
51.3k
      dcs[2] = block00 - block01 + block10 - block11;
550
51.3k
      dcs[3] = block00 - block01 - block10 + block11;
551
153k
      for (size_t y = 0; y < 2; y++) {
552
307k
        for (size_t x = 0; x < 2; x++) {
553
205k
          HWY_ALIGN float block[4 * 4];
554
205k
          block[0] = dcs[y * 2 + x];
555
1.02M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.10M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.28M
              if (ix == 0 && iy == 0) continue;
558
3.07M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.07M
            }
560
821k
          }
561
205k
          ComputeScaledIDCT<4, 4>()(
562
205k
              block,
563
205k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
205k
              scratch_space);
565
205k
        }
566
102k
      }
567
51.3k
      break;
568
0
    }
569
3.50M
    case Type::DCT2X2: {
570
3.50M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.50M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.50M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.50M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.50M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
31.5M
      for (size_t y = 0; y < kBlockDim; y++) {
576
252M
        for (size_t x = 0; x < kBlockDim; x++) {
577
224M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
224M
        }
579
28.0M
      }
580
3.50M
      break;
581
0
    }
582
600k
    case Type::DCT16X16: {
583
600k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
600k
                                  scratch_space);
585
600k
      break;
586
0
    }
587
1.08M
    case Type::DCT16X8: {
588
1.08M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
1.08M
                                 scratch_space);
590
1.08M
      break;
591
0
    }
592
1.63M
    case Type::DCT8X16: {
593
1.63M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.63M
                                 scratch_space);
595
1.63M
      break;
596
0
    }
597
6.36k
    case Type::DCT32X8: {
598
6.36k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
6.36k
                                 scratch_space);
600
6.36k
      break;
601
0
    }
602
7.75k
    case Type::DCT8X32: {
603
7.75k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
7.75k
                                 scratch_space);
605
7.75k
      break;
606
0
    }
607
299k
    case Type::DCT32X16: {
608
299k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
299k
                                  scratch_space);
610
299k
      break;
611
0
    }
612
476k
    case Type::DCT16X32: {
613
476k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
476k
                                  scratch_space);
615
476k
      break;
616
0
    }
617
700k
    case Type::DCT32X32: {
618
700k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
700k
                                  scratch_space);
620
700k
      break;
621
0
    }
622
11.1M
    case Type::DCT: {
623
11.1M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
11.1M
                                scratch_space);
625
11.1M
      break;
626
0
    }
627
938k
    case Type::AFV0: {
628
938k
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
938k
      break;
630
0
    }
631
1.78M
    case Type::AFV1: {
632
1.78M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
1.78M
      break;
634
0
    }
635
809k
    case Type::AFV2: {
636
809k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
809k
      break;
638
0
    }
639
1.08M
    case Type::AFV3: {
640
1.08M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
1.08M
      break;
642
0
    }
643
19.6k
    case Type::DCT64X32: {
644
19.6k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
19.6k
                                  scratch_space);
646
19.6k
      break;
647
0
    }
648
34.5k
    case Type::DCT32X64: {
649
34.5k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
34.5k
                                  scratch_space);
651
34.5k
      break;
652
0
    }
653
124k
    case Type::DCT64X64: {
654
124k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
124k
                                  scratch_space);
656
124k
      break;
657
0
    }
658
54
    case Type::DCT128X64: {
659
54
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
54
                                   scratch_space);
661
54
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
21
    case Type::DCT128X128: {
669
21
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
21
                                    scratch_space);
671
21
      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
27
    case Type::DCT256X256: {
684
27
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
27
                                    scratch_space);
686
27
      break;
687
0
    }
688
30.7M
  }
689
30.7M
}
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
225M
                                        float* scratch_space) {
461
225M
  using Type = AcStrategyType;
462
225M
  switch (strategy) {
463
17.9M
    case Type::IDENTITY: {
464
17.9M
      float dcs[4] = {};
465
17.9M
      float block00 = coefficients[0];
466
17.9M
      float block01 = coefficients[1];
467
17.9M
      float block10 = coefficients[8];
468
17.9M
      float block11 = coefficients[9];
469
17.9M
      dcs[0] = block00 + block01 + block10 + block11;
470
17.9M
      dcs[1] = block00 + block01 - block10 - block11;
471
17.9M
      dcs[2] = block00 - block01 + block10 - block11;
472
17.9M
      dcs[3] = block00 - block01 - block10 + block11;
473
53.8M
      for (size_t y = 0; y < 2; y++) {
474
107M
        for (size_t x = 0; x < 2; x++) {
475
71.8M
          float block_dc = dcs[y * 2 + x];
476
71.8M
          float residual_sum = 0;
477
359M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.43G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.14G
              if (ix == 0 && iy == 0) continue;
480
1.07G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.07G
            }
482
287M
          }
483
71.8M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
71.8M
              block_dc - residual_sum * (1.0f / 16);
485
359M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.43G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.14G
              if (ix == 1 && iy == 1) continue;
488
1.07G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.07G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.07G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.07G
            }
492
287M
          }
493
71.8M
          pixels[y * 4 * pixels_stride + x * 4] =
494
71.8M
              coefficients[(y + 2) * 8 + x + 2] +
495
71.8M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
71.8M
        }
497
35.9M
      }
498
17.9M
      break;
499
0
    }
500
17.9M
    case Type::DCT8X4: {
501
17.9M
      float dcs[2] = {};
502
17.9M
      float block0 = coefficients[0];
503
17.9M
      float block1 = coefficients[8];
504
17.9M
      dcs[0] = block0 + block1;
505
17.9M
      dcs[1] = block0 - block1;
506
53.8M
      for (size_t x = 0; x < 2; x++) {
507
35.9M
        HWY_ALIGN float block[4 * 8];
508
35.9M
        block[0] = dcs[x];
509
179M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.29G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.14G
            if (ix == 0 && iy == 0) continue;
512
1.11G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.11G
          }
514
143M
        }
515
35.9M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
35.9M
                                  scratch_space);
517
35.9M
      }
518
17.9M
      break;
519
0
    }
520
17.9M
    case Type::DCT4X8: {
521
17.9M
      float dcs[2] = {};
522
17.9M
      float block0 = coefficients[0];
523
17.9M
      float block1 = coefficients[8];
524
17.9M
      dcs[0] = block0 + block1;
525
17.9M
      dcs[1] = block0 - block1;
526
53.8M
      for (size_t y = 0; y < 2; y++) {
527
35.9M
        HWY_ALIGN float block[4 * 8];
528
35.9M
        block[0] = dcs[y];
529
179M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.29G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.14G
            if (ix == 0 && iy == 0) continue;
532
1.11G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.11G
          }
534
143M
        }
535
35.9M
        ComputeScaledIDCT<4, 8>()(
536
35.9M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
35.9M
            scratch_space);
538
35.9M
      }
539
17.9M
      break;
540
0
    }
541
17.9M
    case Type::DCT4X4: {
542
17.9M
      float dcs[4] = {};
543
17.9M
      float block00 = coefficients[0];
544
17.9M
      float block01 = coefficients[1];
545
17.9M
      float block10 = coefficients[8];
546
17.9M
      float block11 = coefficients[9];
547
17.9M
      dcs[0] = block00 + block01 + block10 + block11;
548
17.9M
      dcs[1] = block00 + block01 - block10 - block11;
549
17.9M
      dcs[2] = block00 - block01 + block10 - block11;
550
17.9M
      dcs[3] = block00 - block01 - block10 + block11;
551
53.8M
      for (size_t y = 0; y < 2; y++) {
552
107M
        for (size_t x = 0; x < 2; x++) {
553
71.8M
          HWY_ALIGN float block[4 * 4];
554
71.8M
          block[0] = dcs[y * 2 + x];
555
359M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.43G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.14G
              if (ix == 0 && iy == 0) continue;
558
1.07G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.07G
            }
560
287M
          }
561
71.8M
          ComputeScaledIDCT<4, 4>()(
562
71.8M
              block,
563
71.8M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
71.8M
              scratch_space);
565
71.8M
        }
566
35.9M
      }
567
17.9M
      break;
568
0
    }
569
17.9M
    case Type::DCT2X2: {
570
17.9M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
17.9M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
17.9M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
17.9M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
17.9M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
161M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.29G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.14G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.14G
        }
579
143M
      }
580
17.9M
      break;
581
0
    }
582
7.46M
    case Type::DCT16X16: {
583
7.46M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
7.46M
                                  scratch_space);
585
7.46M
      break;
586
0
    }
587
14.5M
    case Type::DCT16X8: {
588
14.5M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
14.5M
                                 scratch_space);
590
14.5M
      break;
591
0
    }
592
14.6M
    case Type::DCT8X16: {
593
14.6M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
14.6M
                                 scratch_space);
595
14.6M
      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
2.86M
    case Type::DCT32X16: {
608
2.86M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
2.86M
                                  scratch_space);
610
2.86M
      break;
611
0
    }
612
2.88M
    case Type::DCT16X32: {
613
2.88M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
2.88M
                                  scratch_space);
615
2.88M
      break;
616
0
    }
617
1.46M
    case Type::DCT32X32: {
618
1.46M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.46M
                                  scratch_space);
620
1.46M
      break;
621
0
    }
622
17.9M
    case Type::DCT: {
623
17.9M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
17.9M
                                scratch_space);
625
17.9M
      break;
626
0
    }
627
17.9M
    case Type::AFV0: {
628
17.9M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
17.9M
      break;
630
0
    }
631
17.9M
    case Type::AFV1: {
632
17.9M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
17.9M
      break;
634
0
    }
635
17.9M
    case Type::AFV2: {
636
17.9M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
17.9M
      break;
638
0
    }
639
17.9M
    case Type::AFV3: {
640
17.9M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
17.9M
      break;
642
0
    }
643
924k
    case Type::DCT64X32: {
644
924k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
924k
                                  scratch_space);
646
924k
      break;
647
0
    }
648
632k
    case Type::DCT32X64: {
649
632k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
632k
                                  scratch_space);
651
632k
      break;
652
0
    }
653
242k
    case Type::DCT64X64: {
654
242k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
242k
                                  scratch_space);
656
242k
      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
225M
  }
689
225M
}
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
30.7M
                                              float* JXL_RESTRICT scratch) {
695
30.7M
  using Type = AcStrategyType;
696
30.7M
  HWY_ALIGN float warm_block[4 * 4];
697
30.7M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
30.7M
  switch (strategy) {
699
1.08M
    case Type::DCT16X8: {
700
1.08M
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
1.08M
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
1.08M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
1.08M
      break;
704
0
    }
705
1.63M
    case Type::DCT8X16: {
706
1.63M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.63M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.63M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.63M
      break;
710
0
    }
711
600k
    case Type::DCT16X16: {
712
600k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
600k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
600k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
600k
      break;
716
0
    }
717
6.36k
    case Type::DCT32X8: {
718
6.36k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
6.36k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
6.36k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
6.36k
      break;
722
0
    }
723
7.75k
    case Type::DCT8X32: {
724
7.75k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
7.75k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
7.75k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
7.75k
      break;
728
0
    }
729
299k
    case Type::DCT32X16: {
730
299k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
299k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
299k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
299k
      break;
734
0
    }
735
476k
    case Type::DCT16X32: {
736
476k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
476k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
476k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
476k
      break;
740
0
    }
741
700k
    case Type::DCT32X32: {
742
700k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
700k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
700k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
700k
      break;
746
0
    }
747
19.6k
    case Type::DCT64X32: {
748
19.6k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
19.6k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
19.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
19.6k
      break;
752
0
    }
753
34.5k
    case Type::DCT32X64: {
754
34.5k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
34.5k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
34.5k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
34.5k
      break;
758
0
    }
759
124k
    case Type::DCT64X64: {
760
124k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
124k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
124k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
124k
      break;
764
0
    }
765
54
    case Type::DCT128X64: {
766
54
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
54
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
54
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
54
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
21
    case Type::DCT128X128: {
778
21
      ReinterpretingDCT<
779
21
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
21
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
21
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
21
      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
27
    case Type::DCT256X256: {
799
27
      ReinterpretingDCT<
800
27
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
27
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
27
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
27
      break;
804
0
    }
805
11.1M
    case Type::DCT:
806
14.6M
    case Type::DCT2X2:
807
14.7M
    case Type::DCT4X4:
808
15.8M
    case Type::DCT4X8:
809
17.5M
    case Type::DCT8X4:
810
18.5M
    case Type::AFV0:
811
20.2M
    case Type::AFV1:
812
21.0M
    case Type::AFV2:
813
22.1M
    case Type::AFV3:
814
25.7M
    case Type::IDENTITY:
815
25.7M
      llf[0] = dc[0];
816
25.7M
      break;
817
30.7M
  };
818
30.7M
}
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
30.7M
                                              float* JXL_RESTRICT scratch) {
695
30.7M
  using Type = AcStrategyType;
696
30.7M
  HWY_ALIGN float warm_block[4 * 4];
697
30.7M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
30.7M
  switch (strategy) {
699
1.08M
    case Type::DCT16X8: {
700
1.08M
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
1.08M
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
1.08M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
1.08M
      break;
704
0
    }
705
1.63M
    case Type::DCT8X16: {
706
1.63M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.63M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.63M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.63M
      break;
710
0
    }
711
600k
    case Type::DCT16X16: {
712
600k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
600k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
600k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
600k
      break;
716
0
    }
717
6.36k
    case Type::DCT32X8: {
718
6.36k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
6.36k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
6.36k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
6.36k
      break;
722
0
    }
723
7.75k
    case Type::DCT8X32: {
724
7.75k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
7.75k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
7.75k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
7.75k
      break;
728
0
    }
729
299k
    case Type::DCT32X16: {
730
299k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
299k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
299k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
299k
      break;
734
0
    }
735
476k
    case Type::DCT16X32: {
736
476k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
476k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
476k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
476k
      break;
740
0
    }
741
700k
    case Type::DCT32X32: {
742
700k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
700k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
700k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
700k
      break;
746
0
    }
747
19.6k
    case Type::DCT64X32: {
748
19.6k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
19.6k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
19.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
19.6k
      break;
752
0
    }
753
34.5k
    case Type::DCT32X64: {
754
34.5k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
34.5k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
34.5k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
34.5k
      break;
758
0
    }
759
124k
    case Type::DCT64X64: {
760
124k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
124k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
124k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
124k
      break;
764
0
    }
765
54
    case Type::DCT128X64: {
766
54
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
54
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
54
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
54
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
21
    case Type::DCT128X128: {
778
21
      ReinterpretingDCT<
779
21
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
21
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
21
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
21
      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
27
    case Type::DCT256X256: {
799
27
      ReinterpretingDCT<
800
27
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
27
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
27
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
27
      break;
804
0
    }
805
11.1M
    case Type::DCT:
806
14.6M
    case Type::DCT2X2:
807
14.7M
    case Type::DCT4X4:
808
15.8M
    case Type::DCT4X8:
809
17.5M
    case Type::DCT8X4:
810
18.5M
    case Type::AFV0:
811
20.2M
    case Type::AFV1:
812
21.0M
    case Type::AFV2:
813
22.1M
    case Type::AFV3:
814
25.7M
    case Type::IDENTITY:
815
25.7M
      llf[0] = dc[0];
816
25.7M
      break;
817
30.7M
  };
818
30.7M
}
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_