Coverage Report

Created: 2026-05-24 07:45

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.15M
                                  float* JXL_RESTRICT scratch_space) {
41
4.15M
  static_assert(LF_ROWS == ROWS,
42
4.15M
                "ReinterpretingDCT should only be called with LF == N");
43
4.15M
  static_assert(LF_COLS == COLS,
44
4.15M
                "ReinterpretingDCT should only be called with LF == N");
45
4.15M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
4.15M
                                 scratch_space);
47
4.15M
  if (ROWS < COLS) {
48
3.95M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
8.59M
      for (size_t x = 0; x < LF_COLS; x++) {
50
6.40M
        output[y * output_stride + x] =
51
6.40M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
6.40M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
6.40M
      }
54
2.18M
    }
55
2.38M
  } else {
56
8.64M
    for (size_t y = 0; y < LF_COLS; y++) {
57
33.3M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
27.0M
        output[y * output_stride + x] =
59
27.0M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
27.0M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
27.0M
      }
62
6.25M
    }
63
2.38M
  }
64
4.15M
}
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
860k
                                  float* JXL_RESTRICT scratch_space) {
41
860k
  static_assert(LF_ROWS == ROWS,
42
860k
                "ReinterpretingDCT should only be called with LF == N");
43
860k
  static_assert(LF_COLS == COLS,
44
860k
                "ReinterpretingDCT should only be called with LF == N");
45
860k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
860k
                                 scratch_space);
47
860k
  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
860k
  } else {
56
1.72M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.58M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.72M
        output[y * output_stride + x] =
59
1.72M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.72M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.72M
      }
62
860k
    }
63
860k
  }
64
860k
}
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.39M
                                  float* JXL_RESTRICT scratch_space) {
41
1.39M
  static_assert(LF_ROWS == ROWS,
42
1.39M
                "ReinterpretingDCT should only be called with LF == N");
43
1.39M
  static_assert(LF_COLS == COLS,
44
1.39M
                "ReinterpretingDCT should only be called with LF == N");
45
1.39M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.39M
                                 scratch_space);
47
1.39M
  if (ROWS < COLS) {
48
2.79M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.19M
      for (size_t x = 0; x < LF_COLS; x++) {
50
2.79M
        output[y * output_stride + x] =
51
2.79M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
2.79M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
2.79M
      }
54
1.39M
    }
55
1.39M
  } 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.39M
}
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
470k
                                  float* JXL_RESTRICT scratch_space) {
41
470k
  static_assert(LF_ROWS == ROWS,
42
470k
                "ReinterpretingDCT should only be called with LF == N");
43
470k
  static_assert(LF_COLS == COLS,
44
470k
                "ReinterpretingDCT should only be called with LF == N");
45
470k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
470k
                                 scratch_space);
47
470k
  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
470k
  } else {
56
1.41M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.82M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.88M
        output[y * output_stride + x] =
59
1.88M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.88M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.88M
      }
62
940k
    }
63
470k
  }
64
470k
}
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
5.64k
                                  float* JXL_RESTRICT scratch_space) {
41
5.64k
  static_assert(LF_ROWS == ROWS,
42
5.64k
                "ReinterpretingDCT should only be called with LF == N");
43
5.64k
  static_assert(LF_COLS == COLS,
44
5.64k
                "ReinterpretingDCT should only be called with LF == N");
45
5.64k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
5.64k
                                 scratch_space);
47
5.64k
  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
5.64k
  } else {
56
11.2k
    for (size_t y = 0; y < LF_COLS; y++) {
57
28.2k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
22.5k
        output[y * output_stride + x] =
59
22.5k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
22.5k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
22.5k
      }
62
5.64k
    }
63
5.64k
  }
64
5.64k
}
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.88k
                                  float* JXL_RESTRICT scratch_space) {
41
7.88k
  static_assert(LF_ROWS == ROWS,
42
7.88k
                "ReinterpretingDCT should only be called with LF == N");
43
7.88k
  static_assert(LF_COLS == COLS,
44
7.88k
                "ReinterpretingDCT should only be called with LF == N");
45
7.88k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
7.88k
                                 scratch_space);
47
7.88k
  if (ROWS < COLS) {
48
15.7k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
39.4k
      for (size_t x = 0; x < LF_COLS; x++) {
50
31.5k
        output[y * output_stride + x] =
51
31.5k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
31.5k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
31.5k
      }
54
7.88k
    }
55
7.88k
  } 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.88k
}
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
206k
                                  float* JXL_RESTRICT scratch_space) {
41
206k
  static_assert(LF_ROWS == ROWS,
42
206k
                "ReinterpretingDCT should only be called with LF == N");
43
206k
  static_assert(LF_COLS == COLS,
44
206k
                "ReinterpretingDCT should only be called with LF == N");
45
206k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
206k
                                 scratch_space);
47
206k
  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
206k
  } else {
56
619k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.06M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.65M
        output[y * output_stride + x] =
59
1.65M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.65M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.65M
      }
62
413k
    }
63
206k
  }
64
206k
}
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
337k
                                  float* JXL_RESTRICT scratch_space) {
41
337k
  static_assert(LF_ROWS == ROWS,
42
337k
                "ReinterpretingDCT should only be called with LF == N");
43
337k
  static_assert(LF_COLS == COLS,
44
337k
                "ReinterpretingDCT should only be called with LF == N");
45
337k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
337k
                                 scratch_space);
47
337k
  if (ROWS < COLS) {
48
1.01M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
3.37M
      for (size_t x = 0; x < LF_COLS; x++) {
50
2.69M
        output[y * output_stride + x] =
51
2.69M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
2.69M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
2.69M
      }
54
674k
    }
55
337k
  } 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
337k
}
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
659k
                                  float* JXL_RESTRICT scratch_space) {
41
659k
  static_assert(LF_ROWS == ROWS,
42
659k
                "ReinterpretingDCT should only be called with LF == N");
43
659k
  static_assert(LF_COLS == COLS,
44
659k
                "ReinterpretingDCT should only be called with LF == N");
45
659k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
659k
                                 scratch_space);
47
659k
  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
659k
  } else {
56
3.29M
    for (size_t y = 0; y < LF_COLS; y++) {
57
13.1M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
10.5M
        output[y * output_stride + x] =
59
10.5M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
10.5M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
10.5M
      }
62
2.63M
    }
63
659k
  }
64
659k
}
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
20.0k
                                  float* JXL_RESTRICT scratch_space) {
41
20.0k
  static_assert(LF_ROWS == ROWS,
42
20.0k
                "ReinterpretingDCT should only be called with LF == N");
43
20.0k
  static_assert(LF_COLS == COLS,
44
20.0k
                "ReinterpretingDCT should only be called with LF == N");
45
20.0k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
20.0k
                                 scratch_space);
47
20.0k
  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
20.0k
  } else {
56
100k
    for (size_t y = 0; y < LF_COLS; y++) {
57
723k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
643k
        output[y * output_stride + x] =
59
643k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
643k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
643k
      }
62
80.3k
    }
63
20.0k
  }
64
20.0k
}
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
27.6k
                                  float* JXL_RESTRICT scratch_space) {
41
27.6k
  static_assert(LF_ROWS == ROWS,
42
27.6k
                "ReinterpretingDCT should only be called with LF == N");
43
27.6k
  static_assert(LF_COLS == COLS,
44
27.6k
                "ReinterpretingDCT should only be called with LF == N");
45
27.6k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
27.6k
                                 scratch_space);
47
27.6k
  if (ROWS < COLS) {
48
138k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
994k
      for (size_t x = 0; x < LF_COLS; x++) {
50
884k
        output[y * output_stride + x] =
51
884k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
884k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
884k
      }
54
110k
    }
55
27.6k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
27.6k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
164k
                                  float* JXL_RESTRICT scratch_space) {
41
164k
  static_assert(LF_ROWS == ROWS,
42
164k
                "ReinterpretingDCT should only be called with LF == N");
43
164k
  static_assert(LF_COLS == COLS,
44
164k
                "ReinterpretingDCT should only be called with LF == N");
45
164k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
164k
                                 scratch_space);
47
164k
  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
164k
  } else {
56
1.48M
    for (size_t y = 0; y < LF_COLS; y++) {
57
11.8M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
10.5M
        output[y * output_stride + x] =
59
10.5M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
10.5M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
10.5M
      }
62
1.31M
    }
63
164k
  }
64
164k
}
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
60
                                  float* JXL_RESTRICT scratch_space) {
41
60
  static_assert(LF_ROWS == ROWS,
42
60
                "ReinterpretingDCT should only be called with LF == N");
43
60
  static_assert(LF_COLS == COLS,
44
60
                "ReinterpretingDCT should only be called with LF == N");
45
60
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
60
                                 scratch_space);
47
60
  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
60
  } else {
56
540
    for (size_t y = 0; y < LF_COLS; y++) {
57
8.16k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
7.68k
        output[y * output_stride + x] =
59
7.68k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
7.68k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
7.68k
      }
62
480
    }
63
60
  }
64
60
}
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
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
459
    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
27
  }
64
27
}
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
39
                                  float* JXL_RESTRICT scratch_space) {
41
39
  static_assert(LF_ROWS == ROWS,
42
39
                "ReinterpretingDCT should only be called with LF == N");
43
39
  static_assert(LF_COLS == COLS,
44
39
                "ReinterpretingDCT should only be called with LF == N");
45
39
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
39
                                 scratch_space);
47
39
  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
39
  } else {
56
1.28k
    for (size_t y = 0; y < LF_COLS; y++) {
57
41.1k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
39.9k
        output[y * output_stride + x] =
59
39.9k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
39.9k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
39.9k
      }
62
1.24k
    }
63
39
  }
64
39
}
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
61.7M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
61.7M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
61.7M
  static_assert(S % 2 == 0, "S should be even");
70
61.7M
  float temp[kDCTBlockSize];
71
61.7M
  constexpr size_t num_2x2 = S / 2;
72
205M
  for (size_t y = 0; y < num_2x2; y++) {
73
576M
    for (size_t x = 0; x < num_2x2; x++) {
74
432M
      float c00 = block[y * kBlockDim + x];
75
432M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
432M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
432M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
432M
      float r00 = c00 + c01 + c10 + c11;
79
432M
      float r01 = c00 + c01 - c10 - c11;
80
432M
      float r10 = c00 - c01 + c10 - c11;
81
432M
      float r11 = c00 - c01 - c10 + c11;
82
432M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
432M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
432M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
432M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
432M
    }
87
144M
  }
88
350M
  for (size_t y = 0; y < S; y++) {
89
2.01G
    for (size_t x = 0; x < S; x++) {
90
1.72G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.72G
    }
92
288M
  }
93
61.7M
}
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.29M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.29M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.29M
  static_assert(S % 2 == 0, "S should be even");
70
3.29M
  float temp[kDCTBlockSize];
71
3.29M
  constexpr size_t num_2x2 = S / 2;
72
6.58M
  for (size_t y = 0; y < num_2x2; y++) {
73
6.58M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.29M
      float c00 = block[y * kBlockDim + x];
75
3.29M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.29M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.29M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.29M
      float r00 = c00 + c01 + c10 + c11;
79
3.29M
      float r01 = c00 + c01 - c10 - c11;
80
3.29M
      float r10 = c00 - c01 + c10 - c11;
81
3.29M
      float r11 = c00 - c01 - c10 + c11;
82
3.29M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.29M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.29M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.29M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.29M
    }
87
3.29M
  }
88
9.87M
  for (size_t y = 0; y < S; y++) {
89
19.7M
    for (size_t x = 0; x < S; x++) {
90
13.1M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
13.1M
    }
92
6.58M
  }
93
3.29M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.29M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.29M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.29M
  static_assert(S % 2 == 0, "S should be even");
70
3.29M
  float temp[kDCTBlockSize];
71
3.29M
  constexpr size_t num_2x2 = S / 2;
72
9.87M
  for (size_t y = 0; y < num_2x2; y++) {
73
19.7M
    for (size_t x = 0; x < num_2x2; x++) {
74
13.1M
      float c00 = block[y * kBlockDim + x];
75
13.1M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
13.1M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
13.1M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
13.1M
      float r00 = c00 + c01 + c10 + c11;
79
13.1M
      float r01 = c00 + c01 - c10 - c11;
80
13.1M
      float r10 = c00 - c01 + c10 - c11;
81
13.1M
      float r11 = c00 - c01 - c10 + c11;
82
13.1M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
13.1M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
13.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
13.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
13.1M
    }
87
6.58M
  }
88
16.4M
  for (size_t y = 0; y < S; y++) {
89
65.8M
    for (size_t x = 0; x < S; x++) {
90
52.6M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
52.6M
    }
92
13.1M
  }
93
3.29M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.29M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.29M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.29M
  static_assert(S % 2 == 0, "S should be even");
70
3.29M
  float temp[kDCTBlockSize];
71
3.29M
  constexpr size_t num_2x2 = S / 2;
72
16.4M
  for (size_t y = 0; y < num_2x2; y++) {
73
65.8M
    for (size_t x = 0; x < num_2x2; x++) {
74
52.6M
      float c00 = block[y * kBlockDim + x];
75
52.6M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
52.6M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
52.6M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
52.6M
      float r00 = c00 + c01 + c10 + c11;
79
52.6M
      float r01 = c00 + c01 - c10 - c11;
80
52.6M
      float r10 = c00 - c01 + c10 - c11;
81
52.6M
      float r11 = c00 - c01 - c10 + c11;
82
52.6M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
52.6M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
52.6M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
52.6M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
52.6M
    }
87
13.1M
  }
88
29.6M
  for (size_t y = 0; y < S; y++) {
89
237M
    for (size_t x = 0; x < S; x++) {
90
210M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
210M
    }
92
26.3M
  }
93
3.29M
}
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.2M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
17.2M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
17.2M
  static_assert(S % 2 == 0, "S should be even");
70
17.2M
  float temp[kDCTBlockSize];
71
17.2M
  constexpr size_t num_2x2 = S / 2;
72
34.5M
  for (size_t y = 0; y < num_2x2; y++) {
73
34.5M
    for (size_t x = 0; x < num_2x2; x++) {
74
17.2M
      float c00 = block[y * kBlockDim + x];
75
17.2M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
17.2M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
17.2M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
17.2M
      float r00 = c00 + c01 + c10 + c11;
79
17.2M
      float r01 = c00 + c01 - c10 - c11;
80
17.2M
      float r10 = c00 - c01 + c10 - c11;
81
17.2M
      float r11 = c00 - c01 - c10 + c11;
82
17.2M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
17.2M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
17.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
17.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
17.2M
    }
87
17.2M
  }
88
51.8M
  for (size_t y = 0; y < S; y++) {
89
103M
    for (size_t x = 0; x < S; x++) {
90
69.1M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
69.1M
    }
92
34.5M
  }
93
17.2M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
17.2M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
17.2M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
17.2M
  static_assert(S % 2 == 0, "S should be even");
70
17.2M
  float temp[kDCTBlockSize];
71
17.2M
  constexpr size_t num_2x2 = S / 2;
72
51.8M
  for (size_t y = 0; y < num_2x2; y++) {
73
103M
    for (size_t x = 0; x < num_2x2; x++) {
74
69.1M
      float c00 = block[y * kBlockDim + x];
75
69.1M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
69.1M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
69.1M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
69.1M
      float r00 = c00 + c01 + c10 + c11;
79
69.1M
      float r01 = c00 + c01 - c10 - c11;
80
69.1M
      float r10 = c00 - c01 + c10 - c11;
81
69.1M
      float r11 = c00 - c01 - c10 + c11;
82
69.1M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
69.1M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
69.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
69.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
69.1M
    }
87
34.5M
  }
88
86.4M
  for (size_t y = 0; y < S; y++) {
89
345M
    for (size_t x = 0; x < S; x++) {
90
276M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
276M
    }
92
69.1M
  }
93
17.2M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
17.2M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
17.2M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
17.2M
  static_assert(S % 2 == 0, "S should be even");
70
17.2M
  float temp[kDCTBlockSize];
71
17.2M
  constexpr size_t num_2x2 = S / 2;
72
86.4M
  for (size_t y = 0; y < num_2x2; y++) {
73
345M
    for (size_t x = 0; x < num_2x2; x++) {
74
276M
      float c00 = block[y * kBlockDim + x];
75
276M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
276M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
276M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
276M
      float r00 = c00 + c01 + c10 + c11;
79
276M
      float r01 = c00 + c01 - c10 - c11;
80
276M
      float r10 = c00 - c01 + c10 - c11;
81
276M
      float r11 = c00 - c01 - c10 + c11;
82
276M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
276M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
276M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
276M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
276M
    }
87
69.1M
  }
88
155M
  for (size_t y = 0; y < S; y++) {
89
1.24G
    for (size_t x = 0; x < S; x++) {
90
1.10G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.10G
    }
92
138M
  }
93
17.2M
}
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
74.3M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
74.3M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
74.3M
      {
98
74.3M
          0.25,
99
74.3M
          0.25,
100
74.3M
          0.25,
101
74.3M
          0.25,
102
74.3M
          0.25,
103
74.3M
          0.25,
104
74.3M
          0.25,
105
74.3M
          0.25,
106
74.3M
          0.25,
107
74.3M
          0.25,
108
74.3M
          0.25,
109
74.3M
          0.25,
110
74.3M
          0.25,
111
74.3M
          0.25,
112
74.3M
          0.25,
113
74.3M
          0.25,
114
74.3M
      },
115
74.3M
      {
116
74.3M
          0.876902929799142f,
117
74.3M
          0.2206518106944235f,
118
74.3M
          -0.10140050393753763f,
119
74.3M
          -0.1014005039375375f,
120
74.3M
          0.2206518106944236f,
121
74.3M
          -0.10140050393753777f,
122
74.3M
          -0.10140050393753772f,
123
74.3M
          -0.10140050393753763f,
124
74.3M
          -0.10140050393753758f,
125
74.3M
          -0.10140050393753769f,
126
74.3M
          -0.1014005039375375f,
127
74.3M
          -0.10140050393753768f,
128
74.3M
          -0.10140050393753768f,
129
74.3M
          -0.10140050393753759f,
130
74.3M
          -0.10140050393753763f,
131
74.3M
          -0.10140050393753741f,
132
74.3M
      },
133
74.3M
      {
134
74.3M
          0.0,
135
74.3M
          0.0,
136
74.3M
          0.40670075830260755f,
137
74.3M
          0.44444816619734445f,
138
74.3M
          0.0,
139
74.3M
          0.0,
140
74.3M
          0.19574399372042936f,
141
74.3M
          0.2929100136981264f,
142
74.3M
          -0.40670075830260716f,
143
74.3M
          -0.19574399372042872f,
144
74.3M
          0.0,
145
74.3M
          0.11379074460448091f,
146
74.3M
          -0.44444816619734384f,
147
74.3M
          -0.29291001369812636f,
148
74.3M
          -0.1137907446044814f,
149
74.3M
          0.0,
150
74.3M
      },
151
74.3M
      {
152
74.3M
          0.0,
153
74.3M
          0.0,
154
74.3M
          -0.21255748058288748f,
155
74.3M
          0.3085497062849767f,
156
74.3M
          0.0,
157
74.3M
          0.4706702258572536f,
158
74.3M
          -0.1621205195722993f,
159
74.3M
          0.0,
160
74.3M
          -0.21255748058287047f,
161
74.3M
          -0.16212051957228327f,
162
74.3M
          -0.47067022585725277f,
163
74.3M
          -0.1464291867126764f,
164
74.3M
          0.3085497062849487f,
165
74.3M
          0.0,
166
74.3M
          -0.14642918671266536f,
167
74.3M
          0.4251149611657548f,
168
74.3M
      },
169
74.3M
      {
170
74.3M
          0.0,
171
74.3M
          -0.7071067811865474f,
172
74.3M
          0.0,
173
74.3M
          0.0,
174
74.3M
          0.7071067811865476f,
175
74.3M
          0.0,
176
74.3M
          0.0,
177
74.3M
          0.0,
178
74.3M
          0.0,
179
74.3M
          0.0,
180
74.3M
          0.0,
181
74.3M
          0.0,
182
74.3M
          0.0,
183
74.3M
          0.0,
184
74.3M
          0.0,
185
74.3M
          0.0,
186
74.3M
      },
187
74.3M
      {
188
74.3M
          -0.4105377591765233f,
189
74.3M
          0.6235485373547691f,
190
74.3M
          -0.06435071657946274f,
191
74.3M
          -0.06435071657946266f,
192
74.3M
          0.6235485373547694f,
193
74.3M
          -0.06435071657946284f,
194
74.3M
          -0.0643507165794628f,
195
74.3M
          -0.06435071657946274f,
196
74.3M
          -0.06435071657946272f,
197
74.3M
          -0.06435071657946279f,
198
74.3M
          -0.06435071657946266f,
199
74.3M
          -0.06435071657946277f,
200
74.3M
          -0.06435071657946277f,
201
74.3M
          -0.06435071657946273f,
202
74.3M
          -0.06435071657946274f,
203
74.3M
          -0.0643507165794626f,
204
74.3M
      },
205
74.3M
      {
206
74.3M
          0.0,
207
74.3M
          0.0,
208
74.3M
          -0.4517556589999482f,
209
74.3M
          0.15854503551840063f,
210
74.3M
          0.0,
211
74.3M
          -0.04038515160822202f,
212
74.3M
          0.0074182263792423875f,
213
74.3M
          0.39351034269210167f,
214
74.3M
          -0.45175565899994635f,
215
74.3M
          0.007418226379244351f,
216
74.3M
          0.1107416575309343f,
217
74.3M
          0.08298163094882051f,
218
74.3M
          0.15854503551839705f,
219
74.3M
          0.3935103426921022f,
220
74.3M
          0.0829816309488214f,
221
74.3M
          -0.45175565899994796f,
222
74.3M
      },
223
74.3M
      {
224
74.3M
          0.0,
225
74.3M
          0.0,
226
74.3M
          -0.304684750724869f,
227
74.3M
          0.5112616136591823f,
228
74.3M
          0.0,
229
74.3M
          0.0,
230
74.3M
          -0.290480129728998f,
231
74.3M
          -0.06578701549142804f,
232
74.3M
          0.304684750724884f,
233
74.3M
          0.2904801297290076f,
234
74.3M
          0.0,
235
74.3M
          -0.23889773523344604f,
236
74.3M
          -0.5112616136592012f,
237
74.3M
          0.06578701549142545f,
238
74.3M
          0.23889773523345467f,
239
74.3M
          0.0,
240
74.3M
      },
241
74.3M
      {
242
74.3M
          0.0,
243
74.3M
          0.0,
244
74.3M
          0.3017929516615495f,
245
74.3M
          0.25792362796341184f,
246
74.3M
          0.0,
247
74.3M
          0.16272340142866204f,
248
74.3M
          0.09520022653475037f,
249
74.3M
          0.0,
250
74.3M
          0.3017929516615503f,
251
74.3M
          0.09520022653475055f,
252
74.3M
          -0.16272340142866173f,
253
74.3M
          -0.35312385449816297f,
254
74.3M
          0.25792362796341295f,
255
74.3M
          0.0,
256
74.3M
          -0.3531238544981624f,
257
74.3M
          -0.6035859033230976f,
258
74.3M
      },
259
74.3M
      {
260
74.3M
          0.0,
261
74.3M
          0.0,
262
74.3M
          0.40824829046386274f,
263
74.3M
          0.0,
264
74.3M
          0.0,
265
74.3M
          0.0,
266
74.3M
          0.0,
267
74.3M
          -0.4082482904638628f,
268
74.3M
          -0.4082482904638635f,
269
74.3M
          0.0,
270
74.3M
          0.0,
271
74.3M
          -0.40824829046386296f,
272
74.3M
          0.0,
273
74.3M
          0.4082482904638634f,
274
74.3M
          0.408248290463863f,
275
74.3M
          0.0,
276
74.3M
      },
277
74.3M
      {
278
74.3M
          0.0,
279
74.3M
          0.0,
280
74.3M
          0.1747866975480809f,
281
74.3M
          0.0812611176717539f,
282
74.3M
          0.0,
283
74.3M
          0.0,
284
74.3M
          -0.3675398009862027f,
285
74.3M
          -0.307882213957909f,
286
74.3M
          -0.17478669754808135f,
287
74.3M
          0.3675398009862011f,
288
74.3M
          0.0,
289
74.3M
          0.4826689115059883f,
290
74.3M
          -0.08126111767175039f,
291
74.3M
          0.30788221395790305f,
292
74.3M
          -0.48266891150598584f,
293
74.3M
          0.0,
294
74.3M
      },
295
74.3M
      {
296
74.3M
          0.0,
297
74.3M
          0.0,
298
74.3M
          -0.21105601049335784f,
299
74.3M
          0.18567180916109802f,
300
74.3M
          0.0,
301
74.3M
          0.0,
302
74.3M
          0.49215859013738733f,
303
74.3M
          -0.38525013709251915f,
304
74.3M
          0.21105601049335806f,
305
74.3M
          -0.49215859013738905f,
306
74.3M
          0.0,
307
74.3M
          0.17419412659916217f,
308
74.3M
          -0.18567180916109904f,
309
74.3M
          0.3852501370925211f,
310
74.3M
          -0.1741941265991621f,
311
74.3M
          0.0,
312
74.3M
      },
313
74.3M
      {
314
74.3M
          0.0,
315
74.3M
          0.0,
316
74.3M
          -0.14266084808807264f,
317
74.3M
          -0.3416446842253372f,
318
74.3M
          0.0,
319
74.3M
          0.7367497537172237f,
320
74.3M
          0.24627107722075148f,
321
74.3M
          -0.08574019035519306f,
322
74.3M
          -0.14266084808807344f,
323
74.3M
          0.24627107722075137f,
324
74.3M
          0.14883399227113567f,
325
74.3M
          -0.04768680350229251f,
326
74.3M
          -0.3416446842253373f,
327
74.3M
          -0.08574019035519267f,
328
74.3M
          -0.047686803502292804f,
329
74.3M
          -0.14266084808807242f,
330
74.3M
      },
331
74.3M
      {
332
74.3M
          0.0,
333
74.3M
          0.0,
334
74.3M
          -0.13813540350758585f,
335
74.3M
          0.3302282550303788f,
336
74.3M
          0.0,
337
74.3M
          0.08755115000587084f,
338
74.3M
          -0.07946706605909573f,
339
74.3M
          -0.4613374887461511f,
340
74.3M
          -0.13813540350758294f,
341
74.3M
          -0.07946706605910261f,
342
74.3M
          0.49724647109535086f,
343
74.3M
          0.12538059448563663f,
344
74.3M
          0.3302282550303805f,
345
74.3M
          -0.4613374887461554f,
346
74.3M
          0.12538059448564315f,
347
74.3M
          -0.13813540350758452f,
348
74.3M
      },
349
74.3M
      {
350
74.3M
          0.0,
351
74.3M
          0.0,
352
74.3M
          -0.17437602599651067f,
353
74.3M
          0.0702790691196284f,
354
74.3M
          0.0,
355
74.3M
          -0.2921026642334881f,
356
74.3M
          0.3623817333531167f,
357
74.3M
          0.0,
358
74.3M
          -0.1743760259965108f,
359
74.3M
          0.36238173335311646f,
360
74.3M
          0.29210266423348785f,
361
74.3M
          -0.4326608024727445f,
362
74.3M
          0.07027906911962818f,
363
74.3M
          0.0,
364
74.3M
          -0.4326608024727457f,
365
74.3M
          0.34875205199302267f,
366
74.3M
      },
367
74.3M
      {
368
74.3M
          0.0,
369
74.3M
          0.0,
370
74.3M
          0.11354987314994337f,
371
74.3M
          -0.07417504595810355f,
372
74.3M
          0.0,
373
74.3M
          0.19402893032594343f,
374
74.3M
          -0.435190496523228f,
375
74.3M
          0.21918684838857466f,
376
74.3M
          0.11354987314994257f,
377
74.3M
          -0.4351904965232251f,
378
74.3M
          0.5550443808910661f,
379
74.3M
          -0.25468277124066463f,
380
74.3M
          -0.07417504595810233f,
381
74.3M
          0.2191868483885728f,
382
74.3M
          -0.25468277124066413f,
383
74.3M
          0.1135498731499429f,
384
74.3M
      },
385
74.3M
  };
386
387
74.3M
  const HWY_CAPPED(float, 16) d;
388
223M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
148M
    auto pixel = Zero(d);
390
2.52G
    for (size_t j = 0; j < 16; j++) {
391
2.38G
      auto cf = Set(d, coeffs[j]);
392
2.38G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.38G
      pixel = MulAdd(cf, basis, pixel);
394
2.38G
    }
395
148M
    Store(pixel, d, pixels + i);
396
148M
  }
397
74.3M
}
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
5.19M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
5.19M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
5.19M
      {
98
5.19M
          0.25,
99
5.19M
          0.25,
100
5.19M
          0.25,
101
5.19M
          0.25,
102
5.19M
          0.25,
103
5.19M
          0.25,
104
5.19M
          0.25,
105
5.19M
          0.25,
106
5.19M
          0.25,
107
5.19M
          0.25,
108
5.19M
          0.25,
109
5.19M
          0.25,
110
5.19M
          0.25,
111
5.19M
          0.25,
112
5.19M
          0.25,
113
5.19M
          0.25,
114
5.19M
      },
115
5.19M
      {
116
5.19M
          0.876902929799142f,
117
5.19M
          0.2206518106944235f,
118
5.19M
          -0.10140050393753763f,
119
5.19M
          -0.1014005039375375f,
120
5.19M
          0.2206518106944236f,
121
5.19M
          -0.10140050393753777f,
122
5.19M
          -0.10140050393753772f,
123
5.19M
          -0.10140050393753763f,
124
5.19M
          -0.10140050393753758f,
125
5.19M
          -0.10140050393753769f,
126
5.19M
          -0.1014005039375375f,
127
5.19M
          -0.10140050393753768f,
128
5.19M
          -0.10140050393753768f,
129
5.19M
          -0.10140050393753759f,
130
5.19M
          -0.10140050393753763f,
131
5.19M
          -0.10140050393753741f,
132
5.19M
      },
133
5.19M
      {
134
5.19M
          0.0,
135
5.19M
          0.0,
136
5.19M
          0.40670075830260755f,
137
5.19M
          0.44444816619734445f,
138
5.19M
          0.0,
139
5.19M
          0.0,
140
5.19M
          0.19574399372042936f,
141
5.19M
          0.2929100136981264f,
142
5.19M
          -0.40670075830260716f,
143
5.19M
          -0.19574399372042872f,
144
5.19M
          0.0,
145
5.19M
          0.11379074460448091f,
146
5.19M
          -0.44444816619734384f,
147
5.19M
          -0.29291001369812636f,
148
5.19M
          -0.1137907446044814f,
149
5.19M
          0.0,
150
5.19M
      },
151
5.19M
      {
152
5.19M
          0.0,
153
5.19M
          0.0,
154
5.19M
          -0.21255748058288748f,
155
5.19M
          0.3085497062849767f,
156
5.19M
          0.0,
157
5.19M
          0.4706702258572536f,
158
5.19M
          -0.1621205195722993f,
159
5.19M
          0.0,
160
5.19M
          -0.21255748058287047f,
161
5.19M
          -0.16212051957228327f,
162
5.19M
          -0.47067022585725277f,
163
5.19M
          -0.1464291867126764f,
164
5.19M
          0.3085497062849487f,
165
5.19M
          0.0,
166
5.19M
          -0.14642918671266536f,
167
5.19M
          0.4251149611657548f,
168
5.19M
      },
169
5.19M
      {
170
5.19M
          0.0,
171
5.19M
          -0.7071067811865474f,
172
5.19M
          0.0,
173
5.19M
          0.0,
174
5.19M
          0.7071067811865476f,
175
5.19M
          0.0,
176
5.19M
          0.0,
177
5.19M
          0.0,
178
5.19M
          0.0,
179
5.19M
          0.0,
180
5.19M
          0.0,
181
5.19M
          0.0,
182
5.19M
          0.0,
183
5.19M
          0.0,
184
5.19M
          0.0,
185
5.19M
          0.0,
186
5.19M
      },
187
5.19M
      {
188
5.19M
          -0.4105377591765233f,
189
5.19M
          0.6235485373547691f,
190
5.19M
          -0.06435071657946274f,
191
5.19M
          -0.06435071657946266f,
192
5.19M
          0.6235485373547694f,
193
5.19M
          -0.06435071657946284f,
194
5.19M
          -0.0643507165794628f,
195
5.19M
          -0.06435071657946274f,
196
5.19M
          -0.06435071657946272f,
197
5.19M
          -0.06435071657946279f,
198
5.19M
          -0.06435071657946266f,
199
5.19M
          -0.06435071657946277f,
200
5.19M
          -0.06435071657946277f,
201
5.19M
          -0.06435071657946273f,
202
5.19M
          -0.06435071657946274f,
203
5.19M
          -0.0643507165794626f,
204
5.19M
      },
205
5.19M
      {
206
5.19M
          0.0,
207
5.19M
          0.0,
208
5.19M
          -0.4517556589999482f,
209
5.19M
          0.15854503551840063f,
210
5.19M
          0.0,
211
5.19M
          -0.04038515160822202f,
212
5.19M
          0.0074182263792423875f,
213
5.19M
          0.39351034269210167f,
214
5.19M
          -0.45175565899994635f,
215
5.19M
          0.007418226379244351f,
216
5.19M
          0.1107416575309343f,
217
5.19M
          0.08298163094882051f,
218
5.19M
          0.15854503551839705f,
219
5.19M
          0.3935103426921022f,
220
5.19M
          0.0829816309488214f,
221
5.19M
          -0.45175565899994796f,
222
5.19M
      },
223
5.19M
      {
224
5.19M
          0.0,
225
5.19M
          0.0,
226
5.19M
          -0.304684750724869f,
227
5.19M
          0.5112616136591823f,
228
5.19M
          0.0,
229
5.19M
          0.0,
230
5.19M
          -0.290480129728998f,
231
5.19M
          -0.06578701549142804f,
232
5.19M
          0.304684750724884f,
233
5.19M
          0.2904801297290076f,
234
5.19M
          0.0,
235
5.19M
          -0.23889773523344604f,
236
5.19M
          -0.5112616136592012f,
237
5.19M
          0.06578701549142545f,
238
5.19M
          0.23889773523345467f,
239
5.19M
          0.0,
240
5.19M
      },
241
5.19M
      {
242
5.19M
          0.0,
243
5.19M
          0.0,
244
5.19M
          0.3017929516615495f,
245
5.19M
          0.25792362796341184f,
246
5.19M
          0.0,
247
5.19M
          0.16272340142866204f,
248
5.19M
          0.09520022653475037f,
249
5.19M
          0.0,
250
5.19M
          0.3017929516615503f,
251
5.19M
          0.09520022653475055f,
252
5.19M
          -0.16272340142866173f,
253
5.19M
          -0.35312385449816297f,
254
5.19M
          0.25792362796341295f,
255
5.19M
          0.0,
256
5.19M
          -0.3531238544981624f,
257
5.19M
          -0.6035859033230976f,
258
5.19M
      },
259
5.19M
      {
260
5.19M
          0.0,
261
5.19M
          0.0,
262
5.19M
          0.40824829046386274f,
263
5.19M
          0.0,
264
5.19M
          0.0,
265
5.19M
          0.0,
266
5.19M
          0.0,
267
5.19M
          -0.4082482904638628f,
268
5.19M
          -0.4082482904638635f,
269
5.19M
          0.0,
270
5.19M
          0.0,
271
5.19M
          -0.40824829046386296f,
272
5.19M
          0.0,
273
5.19M
          0.4082482904638634f,
274
5.19M
          0.408248290463863f,
275
5.19M
          0.0,
276
5.19M
      },
277
5.19M
      {
278
5.19M
          0.0,
279
5.19M
          0.0,
280
5.19M
          0.1747866975480809f,
281
5.19M
          0.0812611176717539f,
282
5.19M
          0.0,
283
5.19M
          0.0,
284
5.19M
          -0.3675398009862027f,
285
5.19M
          -0.307882213957909f,
286
5.19M
          -0.17478669754808135f,
287
5.19M
          0.3675398009862011f,
288
5.19M
          0.0,
289
5.19M
          0.4826689115059883f,
290
5.19M
          -0.08126111767175039f,
291
5.19M
          0.30788221395790305f,
292
5.19M
          -0.48266891150598584f,
293
5.19M
          0.0,
294
5.19M
      },
295
5.19M
      {
296
5.19M
          0.0,
297
5.19M
          0.0,
298
5.19M
          -0.21105601049335784f,
299
5.19M
          0.18567180916109802f,
300
5.19M
          0.0,
301
5.19M
          0.0,
302
5.19M
          0.49215859013738733f,
303
5.19M
          -0.38525013709251915f,
304
5.19M
          0.21105601049335806f,
305
5.19M
          -0.49215859013738905f,
306
5.19M
          0.0,
307
5.19M
          0.17419412659916217f,
308
5.19M
          -0.18567180916109904f,
309
5.19M
          0.3852501370925211f,
310
5.19M
          -0.1741941265991621f,
311
5.19M
          0.0,
312
5.19M
      },
313
5.19M
      {
314
5.19M
          0.0,
315
5.19M
          0.0,
316
5.19M
          -0.14266084808807264f,
317
5.19M
          -0.3416446842253372f,
318
5.19M
          0.0,
319
5.19M
          0.7367497537172237f,
320
5.19M
          0.24627107722075148f,
321
5.19M
          -0.08574019035519306f,
322
5.19M
          -0.14266084808807344f,
323
5.19M
          0.24627107722075137f,
324
5.19M
          0.14883399227113567f,
325
5.19M
          -0.04768680350229251f,
326
5.19M
          -0.3416446842253373f,
327
5.19M
          -0.08574019035519267f,
328
5.19M
          -0.047686803502292804f,
329
5.19M
          -0.14266084808807242f,
330
5.19M
      },
331
5.19M
      {
332
5.19M
          0.0,
333
5.19M
          0.0,
334
5.19M
          -0.13813540350758585f,
335
5.19M
          0.3302282550303788f,
336
5.19M
          0.0,
337
5.19M
          0.08755115000587084f,
338
5.19M
          -0.07946706605909573f,
339
5.19M
          -0.4613374887461511f,
340
5.19M
          -0.13813540350758294f,
341
5.19M
          -0.07946706605910261f,
342
5.19M
          0.49724647109535086f,
343
5.19M
          0.12538059448563663f,
344
5.19M
          0.3302282550303805f,
345
5.19M
          -0.4613374887461554f,
346
5.19M
          0.12538059448564315f,
347
5.19M
          -0.13813540350758452f,
348
5.19M
      },
349
5.19M
      {
350
5.19M
          0.0,
351
5.19M
          0.0,
352
5.19M
          -0.17437602599651067f,
353
5.19M
          0.0702790691196284f,
354
5.19M
          0.0,
355
5.19M
          -0.2921026642334881f,
356
5.19M
          0.3623817333531167f,
357
5.19M
          0.0,
358
5.19M
          -0.1743760259965108f,
359
5.19M
          0.36238173335311646f,
360
5.19M
          0.29210266423348785f,
361
5.19M
          -0.4326608024727445f,
362
5.19M
          0.07027906911962818f,
363
5.19M
          0.0,
364
5.19M
          -0.4326608024727457f,
365
5.19M
          0.34875205199302267f,
366
5.19M
      },
367
5.19M
      {
368
5.19M
          0.0,
369
5.19M
          0.0,
370
5.19M
          0.11354987314994337f,
371
5.19M
          -0.07417504595810355f,
372
5.19M
          0.0,
373
5.19M
          0.19402893032594343f,
374
5.19M
          -0.435190496523228f,
375
5.19M
          0.21918684838857466f,
376
5.19M
          0.11354987314994257f,
377
5.19M
          -0.4351904965232251f,
378
5.19M
          0.5550443808910661f,
379
5.19M
          -0.25468277124066463f,
380
5.19M
          -0.07417504595810233f,
381
5.19M
          0.2191868483885728f,
382
5.19M
          -0.25468277124066413f,
383
5.19M
          0.1135498731499429f,
384
5.19M
      },
385
5.19M
  };
386
387
5.19M
  const HWY_CAPPED(float, 16) d;
388
15.5M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
10.3M
    auto pixel = Zero(d);
390
176M
    for (size_t j = 0; j < 16; j++) {
391
166M
      auto cf = Set(d, coeffs[j]);
392
166M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
166M
      pixel = MulAdd(cf, basis, pixel);
394
166M
    }
395
10.3M
    Store(pixel, d, pixels + i);
396
10.3M
  }
397
5.19M
}
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
69.1M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
69.1M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
69.1M
      {
98
69.1M
          0.25,
99
69.1M
          0.25,
100
69.1M
          0.25,
101
69.1M
          0.25,
102
69.1M
          0.25,
103
69.1M
          0.25,
104
69.1M
          0.25,
105
69.1M
          0.25,
106
69.1M
          0.25,
107
69.1M
          0.25,
108
69.1M
          0.25,
109
69.1M
          0.25,
110
69.1M
          0.25,
111
69.1M
          0.25,
112
69.1M
          0.25,
113
69.1M
          0.25,
114
69.1M
      },
115
69.1M
      {
116
69.1M
          0.876902929799142f,
117
69.1M
          0.2206518106944235f,
118
69.1M
          -0.10140050393753763f,
119
69.1M
          -0.1014005039375375f,
120
69.1M
          0.2206518106944236f,
121
69.1M
          -0.10140050393753777f,
122
69.1M
          -0.10140050393753772f,
123
69.1M
          -0.10140050393753763f,
124
69.1M
          -0.10140050393753758f,
125
69.1M
          -0.10140050393753769f,
126
69.1M
          -0.1014005039375375f,
127
69.1M
          -0.10140050393753768f,
128
69.1M
          -0.10140050393753768f,
129
69.1M
          -0.10140050393753759f,
130
69.1M
          -0.10140050393753763f,
131
69.1M
          -0.10140050393753741f,
132
69.1M
      },
133
69.1M
      {
134
69.1M
          0.0,
135
69.1M
          0.0,
136
69.1M
          0.40670075830260755f,
137
69.1M
          0.44444816619734445f,
138
69.1M
          0.0,
139
69.1M
          0.0,
140
69.1M
          0.19574399372042936f,
141
69.1M
          0.2929100136981264f,
142
69.1M
          -0.40670075830260716f,
143
69.1M
          -0.19574399372042872f,
144
69.1M
          0.0,
145
69.1M
          0.11379074460448091f,
146
69.1M
          -0.44444816619734384f,
147
69.1M
          -0.29291001369812636f,
148
69.1M
          -0.1137907446044814f,
149
69.1M
          0.0,
150
69.1M
      },
151
69.1M
      {
152
69.1M
          0.0,
153
69.1M
          0.0,
154
69.1M
          -0.21255748058288748f,
155
69.1M
          0.3085497062849767f,
156
69.1M
          0.0,
157
69.1M
          0.4706702258572536f,
158
69.1M
          -0.1621205195722993f,
159
69.1M
          0.0,
160
69.1M
          -0.21255748058287047f,
161
69.1M
          -0.16212051957228327f,
162
69.1M
          -0.47067022585725277f,
163
69.1M
          -0.1464291867126764f,
164
69.1M
          0.3085497062849487f,
165
69.1M
          0.0,
166
69.1M
          -0.14642918671266536f,
167
69.1M
          0.4251149611657548f,
168
69.1M
      },
169
69.1M
      {
170
69.1M
          0.0,
171
69.1M
          -0.7071067811865474f,
172
69.1M
          0.0,
173
69.1M
          0.0,
174
69.1M
          0.7071067811865476f,
175
69.1M
          0.0,
176
69.1M
          0.0,
177
69.1M
          0.0,
178
69.1M
          0.0,
179
69.1M
          0.0,
180
69.1M
          0.0,
181
69.1M
          0.0,
182
69.1M
          0.0,
183
69.1M
          0.0,
184
69.1M
          0.0,
185
69.1M
          0.0,
186
69.1M
      },
187
69.1M
      {
188
69.1M
          -0.4105377591765233f,
189
69.1M
          0.6235485373547691f,
190
69.1M
          -0.06435071657946274f,
191
69.1M
          -0.06435071657946266f,
192
69.1M
          0.6235485373547694f,
193
69.1M
          -0.06435071657946284f,
194
69.1M
          -0.0643507165794628f,
195
69.1M
          -0.06435071657946274f,
196
69.1M
          -0.06435071657946272f,
197
69.1M
          -0.06435071657946279f,
198
69.1M
          -0.06435071657946266f,
199
69.1M
          -0.06435071657946277f,
200
69.1M
          -0.06435071657946277f,
201
69.1M
          -0.06435071657946273f,
202
69.1M
          -0.06435071657946274f,
203
69.1M
          -0.0643507165794626f,
204
69.1M
      },
205
69.1M
      {
206
69.1M
          0.0,
207
69.1M
          0.0,
208
69.1M
          -0.4517556589999482f,
209
69.1M
          0.15854503551840063f,
210
69.1M
          0.0,
211
69.1M
          -0.04038515160822202f,
212
69.1M
          0.0074182263792423875f,
213
69.1M
          0.39351034269210167f,
214
69.1M
          -0.45175565899994635f,
215
69.1M
          0.007418226379244351f,
216
69.1M
          0.1107416575309343f,
217
69.1M
          0.08298163094882051f,
218
69.1M
          0.15854503551839705f,
219
69.1M
          0.3935103426921022f,
220
69.1M
          0.0829816309488214f,
221
69.1M
          -0.45175565899994796f,
222
69.1M
      },
223
69.1M
      {
224
69.1M
          0.0,
225
69.1M
          0.0,
226
69.1M
          -0.304684750724869f,
227
69.1M
          0.5112616136591823f,
228
69.1M
          0.0,
229
69.1M
          0.0,
230
69.1M
          -0.290480129728998f,
231
69.1M
          -0.06578701549142804f,
232
69.1M
          0.304684750724884f,
233
69.1M
          0.2904801297290076f,
234
69.1M
          0.0,
235
69.1M
          -0.23889773523344604f,
236
69.1M
          -0.5112616136592012f,
237
69.1M
          0.06578701549142545f,
238
69.1M
          0.23889773523345467f,
239
69.1M
          0.0,
240
69.1M
      },
241
69.1M
      {
242
69.1M
          0.0,
243
69.1M
          0.0,
244
69.1M
          0.3017929516615495f,
245
69.1M
          0.25792362796341184f,
246
69.1M
          0.0,
247
69.1M
          0.16272340142866204f,
248
69.1M
          0.09520022653475037f,
249
69.1M
          0.0,
250
69.1M
          0.3017929516615503f,
251
69.1M
          0.09520022653475055f,
252
69.1M
          -0.16272340142866173f,
253
69.1M
          -0.35312385449816297f,
254
69.1M
          0.25792362796341295f,
255
69.1M
          0.0,
256
69.1M
          -0.3531238544981624f,
257
69.1M
          -0.6035859033230976f,
258
69.1M
      },
259
69.1M
      {
260
69.1M
          0.0,
261
69.1M
          0.0,
262
69.1M
          0.40824829046386274f,
263
69.1M
          0.0,
264
69.1M
          0.0,
265
69.1M
          0.0,
266
69.1M
          0.0,
267
69.1M
          -0.4082482904638628f,
268
69.1M
          -0.4082482904638635f,
269
69.1M
          0.0,
270
69.1M
          0.0,
271
69.1M
          -0.40824829046386296f,
272
69.1M
          0.0,
273
69.1M
          0.4082482904638634f,
274
69.1M
          0.408248290463863f,
275
69.1M
          0.0,
276
69.1M
      },
277
69.1M
      {
278
69.1M
          0.0,
279
69.1M
          0.0,
280
69.1M
          0.1747866975480809f,
281
69.1M
          0.0812611176717539f,
282
69.1M
          0.0,
283
69.1M
          0.0,
284
69.1M
          -0.3675398009862027f,
285
69.1M
          -0.307882213957909f,
286
69.1M
          -0.17478669754808135f,
287
69.1M
          0.3675398009862011f,
288
69.1M
          0.0,
289
69.1M
          0.4826689115059883f,
290
69.1M
          -0.08126111767175039f,
291
69.1M
          0.30788221395790305f,
292
69.1M
          -0.48266891150598584f,
293
69.1M
          0.0,
294
69.1M
      },
295
69.1M
      {
296
69.1M
          0.0,
297
69.1M
          0.0,
298
69.1M
          -0.21105601049335784f,
299
69.1M
          0.18567180916109802f,
300
69.1M
          0.0,
301
69.1M
          0.0,
302
69.1M
          0.49215859013738733f,
303
69.1M
          -0.38525013709251915f,
304
69.1M
          0.21105601049335806f,
305
69.1M
          -0.49215859013738905f,
306
69.1M
          0.0,
307
69.1M
          0.17419412659916217f,
308
69.1M
          -0.18567180916109904f,
309
69.1M
          0.3852501370925211f,
310
69.1M
          -0.1741941265991621f,
311
69.1M
          0.0,
312
69.1M
      },
313
69.1M
      {
314
69.1M
          0.0,
315
69.1M
          0.0,
316
69.1M
          -0.14266084808807264f,
317
69.1M
          -0.3416446842253372f,
318
69.1M
          0.0,
319
69.1M
          0.7367497537172237f,
320
69.1M
          0.24627107722075148f,
321
69.1M
          -0.08574019035519306f,
322
69.1M
          -0.14266084808807344f,
323
69.1M
          0.24627107722075137f,
324
69.1M
          0.14883399227113567f,
325
69.1M
          -0.04768680350229251f,
326
69.1M
          -0.3416446842253373f,
327
69.1M
          -0.08574019035519267f,
328
69.1M
          -0.047686803502292804f,
329
69.1M
          -0.14266084808807242f,
330
69.1M
      },
331
69.1M
      {
332
69.1M
          0.0,
333
69.1M
          0.0,
334
69.1M
          -0.13813540350758585f,
335
69.1M
          0.3302282550303788f,
336
69.1M
          0.0,
337
69.1M
          0.08755115000587084f,
338
69.1M
          -0.07946706605909573f,
339
69.1M
          -0.4613374887461511f,
340
69.1M
          -0.13813540350758294f,
341
69.1M
          -0.07946706605910261f,
342
69.1M
          0.49724647109535086f,
343
69.1M
          0.12538059448563663f,
344
69.1M
          0.3302282550303805f,
345
69.1M
          -0.4613374887461554f,
346
69.1M
          0.12538059448564315f,
347
69.1M
          -0.13813540350758452f,
348
69.1M
      },
349
69.1M
      {
350
69.1M
          0.0,
351
69.1M
          0.0,
352
69.1M
          -0.17437602599651067f,
353
69.1M
          0.0702790691196284f,
354
69.1M
          0.0,
355
69.1M
          -0.2921026642334881f,
356
69.1M
          0.3623817333531167f,
357
69.1M
          0.0,
358
69.1M
          -0.1743760259965108f,
359
69.1M
          0.36238173335311646f,
360
69.1M
          0.29210266423348785f,
361
69.1M
          -0.4326608024727445f,
362
69.1M
          0.07027906911962818f,
363
69.1M
          0.0,
364
69.1M
          -0.4326608024727457f,
365
69.1M
          0.34875205199302267f,
366
69.1M
      },
367
69.1M
      {
368
69.1M
          0.0,
369
69.1M
          0.0,
370
69.1M
          0.11354987314994337f,
371
69.1M
          -0.07417504595810355f,
372
69.1M
          0.0,
373
69.1M
          0.19402893032594343f,
374
69.1M
          -0.435190496523228f,
375
69.1M
          0.21918684838857466f,
376
69.1M
          0.11354987314994257f,
377
69.1M
          -0.4351904965232251f,
378
69.1M
          0.5550443808910661f,
379
69.1M
          -0.25468277124066463f,
380
69.1M
          -0.07417504595810233f,
381
69.1M
          0.2191868483885728f,
382
69.1M
          -0.25468277124066413f,
383
69.1M
          0.1135498731499429f,
384
69.1M
      },
385
69.1M
  };
386
387
69.1M
  const HWY_CAPPED(float, 16) d;
388
207M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
138M
    auto pixel = Zero(d);
390
2.35G
    for (size_t j = 0; j < 16; j++) {
391
2.21G
      auto cf = Set(d, coeffs[j]);
392
2.21G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.21G
      pixel = MulAdd(cf, basis, pixel);
394
2.21G
    }
395
138M
    Store(pixel, d, pixels + i);
396
138M
  }
397
69.1M
}
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
74.3M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
74.3M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
74.3M
  size_t afv_x = afv_kind & 1;
404
74.3M
  size_t afv_y = afv_kind / 2;
405
74.3M
  float dcs[3] = {};
406
74.3M
  float block00 = coefficients[0];
407
74.3M
  float block01 = coefficients[1];
408
74.3M
  float block10 = coefficients[8];
409
74.3M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
74.3M
  dcs[1] = (block00 + block10 - block01);
411
74.3M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
74.3M
  HWY_ALIGN float coeff[4 * 4];
414
74.3M
  coeff[0] = dcs[0];
415
371M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.48G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.19G
      if (ix == 0 && iy == 0) continue;
418
1.11G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.11G
    }
420
297M
  }
421
74.3M
  HWY_ALIGN float block[4 * 8];
422
74.3M
  AFVIDCT4x4(coeff, block);
423
371M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.48G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.19G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.19G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.19G
    }
428
297M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
74.3M
  block[0] = dcs[1];
431
371M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.48G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.19G
      if (ix == 0 && iy == 0) continue;
434
1.11G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.11G
    }
436
297M
  }
437
74.3M
  ComputeScaledIDCT<4, 4>()(
438
74.3M
      block,
439
74.3M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
74.3M
            pixels_stride),
441
74.3M
      scratch_space);
442
  // IDCT4x8.
443
74.3M
  block[0] = dcs[2];
444
371M
  for (size_t iy = 0; iy < 4; iy++) {
445
2.67G
    for (size_t ix = 0; ix < 8; ix++) {
446
2.38G
      if (ix == 0 && iy == 0) continue;
447
2.30G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
2.30G
    }
449
297M
  }
450
74.3M
  ComputeScaledIDCT<4, 8>()(
451
74.3M
      block,
452
74.3M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
74.3M
      scratch_space);
454
74.3M
}
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
946k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
946k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
946k
  size_t afv_x = afv_kind & 1;
404
946k
  size_t afv_y = afv_kind / 2;
405
946k
  float dcs[3] = {};
406
946k
  float block00 = coefficients[0];
407
946k
  float block01 = coefficients[1];
408
946k
  float block10 = coefficients[8];
409
946k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
946k
  dcs[1] = (block00 + block10 - block01);
411
946k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
946k
  HWY_ALIGN float coeff[4 * 4];
414
946k
  coeff[0] = dcs[0];
415
4.73M
  for (size_t iy = 0; iy < 4; iy++) {
416
18.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
15.1M
      if (ix == 0 && iy == 0) continue;
418
14.1M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
14.1M
    }
420
3.78M
  }
421
946k
  HWY_ALIGN float block[4 * 8];
422
946k
  AFVIDCT4x4(coeff, block);
423
4.73M
  for (size_t iy = 0; iy < 4; iy++) {
424
18.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
15.1M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
15.1M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
15.1M
    }
428
3.78M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
946k
  block[0] = dcs[1];
431
4.73M
  for (size_t iy = 0; iy < 4; iy++) {
432
18.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
15.1M
      if (ix == 0 && iy == 0) continue;
434
14.1M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
14.1M
    }
436
3.78M
  }
437
946k
  ComputeScaledIDCT<4, 4>()(
438
946k
      block,
439
946k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
946k
            pixels_stride),
441
946k
      scratch_space);
442
  // IDCT4x8.
443
946k
  block[0] = dcs[2];
444
4.73M
  for (size_t iy = 0; iy < 4; iy++) {
445
34.0M
    for (size_t ix = 0; ix < 8; ix++) {
446
30.2M
      if (ix == 0 && iy == 0) continue;
447
29.3M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
29.3M
    }
449
3.78M
  }
450
946k
  ComputeScaledIDCT<4, 8>()(
451
946k
      block,
452
946k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
946k
      scratch_space);
454
946k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
2.63M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
2.63M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
2.63M
  size_t afv_x = afv_kind & 1;
404
2.63M
  size_t afv_y = afv_kind / 2;
405
2.63M
  float dcs[3] = {};
406
2.63M
  float block00 = coefficients[0];
407
2.63M
  float block01 = coefficients[1];
408
2.63M
  float block10 = coefficients[8];
409
2.63M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
2.63M
  dcs[1] = (block00 + block10 - block01);
411
2.63M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
2.63M
  HWY_ALIGN float coeff[4 * 4];
414
2.63M
  coeff[0] = dcs[0];
415
13.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
52.6M
    for (size_t ix = 0; ix < 4; ix++) {
417
42.1M
      if (ix == 0 && iy == 0) continue;
418
39.5M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
39.5M
    }
420
10.5M
  }
421
2.63M
  HWY_ALIGN float block[4 * 8];
422
2.63M
  AFVIDCT4x4(coeff, block);
423
13.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
52.6M
    for (size_t ix = 0; ix < 4; ix++) {
425
42.1M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
42.1M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
42.1M
    }
428
10.5M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
2.63M
  block[0] = dcs[1];
431
13.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
52.6M
    for (size_t ix = 0; ix < 4; ix++) {
433
42.1M
      if (ix == 0 && iy == 0) continue;
434
39.5M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
39.5M
    }
436
10.5M
  }
437
2.63M
  ComputeScaledIDCT<4, 4>()(
438
2.63M
      block,
439
2.63M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
2.63M
            pixels_stride),
441
2.63M
      scratch_space);
442
  // IDCT4x8.
443
2.63M
  block[0] = dcs[2];
444
13.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
94.8M
    for (size_t ix = 0; ix < 8; ix++) {
446
84.2M
      if (ix == 0 && iy == 0) continue;
447
81.6M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
81.6M
    }
449
10.5M
  }
450
2.63M
  ComputeScaledIDCT<4, 8>()(
451
2.63M
      block,
452
2.63M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
2.63M
      scratch_space);
454
2.63M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
616k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
616k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
616k
  size_t afv_x = afv_kind & 1;
404
616k
  size_t afv_y = afv_kind / 2;
405
616k
  float dcs[3] = {};
406
616k
  float block00 = coefficients[0];
407
616k
  float block01 = coefficients[1];
408
616k
  float block10 = coefficients[8];
409
616k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
616k
  dcs[1] = (block00 + block10 - block01);
411
616k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
616k
  HWY_ALIGN float coeff[4 * 4];
414
616k
  coeff[0] = dcs[0];
415
3.08M
  for (size_t iy = 0; iy < 4; iy++) {
416
12.3M
    for (size_t ix = 0; ix < 4; ix++) {
417
9.87M
      if (ix == 0 && iy == 0) continue;
418
9.25M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
9.25M
    }
420
2.46M
  }
421
616k
  HWY_ALIGN float block[4 * 8];
422
616k
  AFVIDCT4x4(coeff, block);
423
3.08M
  for (size_t iy = 0; iy < 4; iy++) {
424
12.3M
    for (size_t ix = 0; ix < 4; ix++) {
425
9.87M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
9.87M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
9.87M
    }
428
2.46M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
616k
  block[0] = dcs[1];
431
3.08M
  for (size_t iy = 0; iy < 4; iy++) {
432
12.3M
    for (size_t ix = 0; ix < 4; ix++) {
433
9.87M
      if (ix == 0 && iy == 0) continue;
434
9.25M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
9.25M
    }
436
2.46M
  }
437
616k
  ComputeScaledIDCT<4, 4>()(
438
616k
      block,
439
616k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
616k
            pixels_stride),
441
616k
      scratch_space);
442
  // IDCT4x8.
443
616k
  block[0] = dcs[2];
444
3.08M
  for (size_t iy = 0; iy < 4; iy++) {
445
22.2M
    for (size_t ix = 0; ix < 8; ix++) {
446
19.7M
      if (ix == 0 && iy == 0) continue;
447
19.1M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
19.1M
    }
449
2.46M
  }
450
616k
  ComputeScaledIDCT<4, 8>()(
451
616k
      block,
452
616k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
616k
      scratch_space);
454
616k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
997k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
997k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
997k
  size_t afv_x = afv_kind & 1;
404
997k
  size_t afv_y = afv_kind / 2;
405
997k
  float dcs[3] = {};
406
997k
  float block00 = coefficients[0];
407
997k
  float block01 = coefficients[1];
408
997k
  float block10 = coefficients[8];
409
997k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
997k
  dcs[1] = (block00 + block10 - block01);
411
997k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
997k
  HWY_ALIGN float coeff[4 * 4];
414
997k
  coeff[0] = dcs[0];
415
4.98M
  for (size_t iy = 0; iy < 4; iy++) {
416
19.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
15.9M
      if (ix == 0 && iy == 0) continue;
418
14.9M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
14.9M
    }
420
3.98M
  }
421
997k
  HWY_ALIGN float block[4 * 8];
422
997k
  AFVIDCT4x4(coeff, block);
423
4.98M
  for (size_t iy = 0; iy < 4; iy++) {
424
19.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
15.9M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
15.9M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
15.9M
    }
428
3.98M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
997k
  block[0] = dcs[1];
431
4.98M
  for (size_t iy = 0; iy < 4; iy++) {
432
19.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
15.9M
      if (ix == 0 && iy == 0) continue;
434
14.9M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
14.9M
    }
436
3.98M
  }
437
997k
  ComputeScaledIDCT<4, 4>()(
438
997k
      block,
439
997k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
997k
            pixels_stride),
441
997k
      scratch_space);
442
  // IDCT4x8.
443
997k
  block[0] = dcs[2];
444
4.98M
  for (size_t iy = 0; iy < 4; iy++) {
445
35.9M
    for (size_t ix = 0; ix < 8; ix++) {
446
31.9M
      if (ix == 0 && iy == 0) continue;
447
30.9M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
30.9M
    }
449
3.98M
  }
450
997k
  ComputeScaledIDCT<4, 8>()(
451
997k
      block,
452
997k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
997k
      scratch_space);
454
997k
}
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.2M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.2M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.2M
  size_t afv_x = afv_kind & 1;
404
17.2M
  size_t afv_y = afv_kind / 2;
405
17.2M
  float dcs[3] = {};
406
17.2M
  float block00 = coefficients[0];
407
17.2M
  float block01 = coefficients[1];
408
17.2M
  float block10 = coefficients[8];
409
17.2M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.2M
  dcs[1] = (block00 + block10 - block01);
411
17.2M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.2M
  HWY_ALIGN float coeff[4 * 4];
414
17.2M
  coeff[0] = dcs[0];
415
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
416
345M
    for (size_t ix = 0; ix < 4; ix++) {
417
276M
      if (ix == 0 && iy == 0) continue;
418
259M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
259M
    }
420
69.1M
  }
421
17.2M
  HWY_ALIGN float block[4 * 8];
422
17.2M
  AFVIDCT4x4(coeff, block);
423
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
424
345M
    for (size_t ix = 0; ix < 4; ix++) {
425
276M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
276M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
276M
    }
428
69.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.2M
  block[0] = dcs[1];
431
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
432
345M
    for (size_t ix = 0; ix < 4; ix++) {
433
276M
      if (ix == 0 && iy == 0) continue;
434
259M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
259M
    }
436
69.1M
  }
437
17.2M
  ComputeScaledIDCT<4, 4>()(
438
17.2M
      block,
439
17.2M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.2M
            pixels_stride),
441
17.2M
      scratch_space);
442
  // IDCT4x8.
443
17.2M
  block[0] = dcs[2];
444
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
445
622M
    for (size_t ix = 0; ix < 8; ix++) {
446
553M
      if (ix == 0 && iy == 0) continue;
447
536M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
536M
    }
449
69.1M
  }
450
17.2M
  ComputeScaledIDCT<4, 8>()(
451
17.2M
      block,
452
17.2M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.2M
      scratch_space);
454
17.2M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
17.2M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.2M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.2M
  size_t afv_x = afv_kind & 1;
404
17.2M
  size_t afv_y = afv_kind / 2;
405
17.2M
  float dcs[3] = {};
406
17.2M
  float block00 = coefficients[0];
407
17.2M
  float block01 = coefficients[1];
408
17.2M
  float block10 = coefficients[8];
409
17.2M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.2M
  dcs[1] = (block00 + block10 - block01);
411
17.2M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.2M
  HWY_ALIGN float coeff[4 * 4];
414
17.2M
  coeff[0] = dcs[0];
415
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
416
345M
    for (size_t ix = 0; ix < 4; ix++) {
417
276M
      if (ix == 0 && iy == 0) continue;
418
259M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
259M
    }
420
69.1M
  }
421
17.2M
  HWY_ALIGN float block[4 * 8];
422
17.2M
  AFVIDCT4x4(coeff, block);
423
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
424
345M
    for (size_t ix = 0; ix < 4; ix++) {
425
276M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
276M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
276M
    }
428
69.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.2M
  block[0] = dcs[1];
431
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
432
345M
    for (size_t ix = 0; ix < 4; ix++) {
433
276M
      if (ix == 0 && iy == 0) continue;
434
259M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
259M
    }
436
69.1M
  }
437
17.2M
  ComputeScaledIDCT<4, 4>()(
438
17.2M
      block,
439
17.2M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.2M
            pixels_stride),
441
17.2M
      scratch_space);
442
  // IDCT4x8.
443
17.2M
  block[0] = dcs[2];
444
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
445
622M
    for (size_t ix = 0; ix < 8; ix++) {
446
553M
      if (ix == 0 && iy == 0) continue;
447
536M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
536M
    }
449
69.1M
  }
450
17.2M
  ComputeScaledIDCT<4, 8>()(
451
17.2M
      block,
452
17.2M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.2M
      scratch_space);
454
17.2M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
17.2M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.2M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.2M
  size_t afv_x = afv_kind & 1;
404
17.2M
  size_t afv_y = afv_kind / 2;
405
17.2M
  float dcs[3] = {};
406
17.2M
  float block00 = coefficients[0];
407
17.2M
  float block01 = coefficients[1];
408
17.2M
  float block10 = coefficients[8];
409
17.2M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.2M
  dcs[1] = (block00 + block10 - block01);
411
17.2M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.2M
  HWY_ALIGN float coeff[4 * 4];
414
17.2M
  coeff[0] = dcs[0];
415
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
416
345M
    for (size_t ix = 0; ix < 4; ix++) {
417
276M
      if (ix == 0 && iy == 0) continue;
418
259M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
259M
    }
420
69.1M
  }
421
17.2M
  HWY_ALIGN float block[4 * 8];
422
17.2M
  AFVIDCT4x4(coeff, block);
423
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
424
345M
    for (size_t ix = 0; ix < 4; ix++) {
425
276M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
276M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
276M
    }
428
69.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.2M
  block[0] = dcs[1];
431
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
432
345M
    for (size_t ix = 0; ix < 4; ix++) {
433
276M
      if (ix == 0 && iy == 0) continue;
434
259M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
259M
    }
436
69.1M
  }
437
17.2M
  ComputeScaledIDCT<4, 4>()(
438
17.2M
      block,
439
17.2M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.2M
            pixels_stride),
441
17.2M
      scratch_space);
442
  // IDCT4x8.
443
17.2M
  block[0] = dcs[2];
444
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
445
622M
    for (size_t ix = 0; ix < 8; ix++) {
446
553M
      if (ix == 0 && iy == 0) continue;
447
536M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
536M
    }
449
69.1M
  }
450
17.2M
  ComputeScaledIDCT<4, 8>()(
451
17.2M
      block,
452
17.2M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.2M
      scratch_space);
454
17.2M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
17.2M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
17.2M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
17.2M
  size_t afv_x = afv_kind & 1;
404
17.2M
  size_t afv_y = afv_kind / 2;
405
17.2M
  float dcs[3] = {};
406
17.2M
  float block00 = coefficients[0];
407
17.2M
  float block01 = coefficients[1];
408
17.2M
  float block10 = coefficients[8];
409
17.2M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
17.2M
  dcs[1] = (block00 + block10 - block01);
411
17.2M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
17.2M
  HWY_ALIGN float coeff[4 * 4];
414
17.2M
  coeff[0] = dcs[0];
415
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
416
345M
    for (size_t ix = 0; ix < 4; ix++) {
417
276M
      if (ix == 0 && iy == 0) continue;
418
259M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
259M
    }
420
69.1M
  }
421
17.2M
  HWY_ALIGN float block[4 * 8];
422
17.2M
  AFVIDCT4x4(coeff, block);
423
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
424
345M
    for (size_t ix = 0; ix < 4; ix++) {
425
276M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
276M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
276M
    }
428
69.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
17.2M
  block[0] = dcs[1];
431
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
432
345M
    for (size_t ix = 0; ix < 4; ix++) {
433
276M
      if (ix == 0 && iy == 0) continue;
434
259M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
259M
    }
436
69.1M
  }
437
17.2M
  ComputeScaledIDCT<4, 4>()(
438
17.2M
      block,
439
17.2M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
17.2M
            pixels_stride),
441
17.2M
      scratch_space);
442
  // IDCT4x8.
443
17.2M
  block[0] = dcs[2];
444
86.4M
  for (size_t iy = 0; iy < 4; iy++) {
445
622M
    for (size_t ix = 0; ix < 8; ix++) {
446
553M
      if (ix == 0 && iy == 0) continue;
447
536M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
536M
    }
449
69.1M
  }
450
17.2M
  ComputeScaledIDCT<4, 8>()(
451
17.2M
      block,
452
17.2M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
17.2M
      scratch_space);
454
17.2M
}
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
244M
                                        float* scratch_space) {
461
244M
  using Type = AcStrategyType;
462
244M
  switch (strategy) {
463
20.4M
    case Type::IDENTITY: {
464
20.4M
      float dcs[4] = {};
465
20.4M
      float block00 = coefficients[0];
466
20.4M
      float block01 = coefficients[1];
467
20.4M
      float block10 = coefficients[8];
468
20.4M
      float block11 = coefficients[9];
469
20.4M
      dcs[0] = block00 + block01 + block10 + block11;
470
20.4M
      dcs[1] = block00 + block01 - block10 - block11;
471
20.4M
      dcs[2] = block00 - block01 + block10 - block11;
472
20.4M
      dcs[3] = block00 - block01 - block10 + block11;
473
61.2M
      for (size_t y = 0; y < 2; y++) {
474
122M
        for (size_t x = 0; x < 2; x++) {
475
81.7M
          float block_dc = dcs[y * 2 + x];
476
81.7M
          float residual_sum = 0;
477
408M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.63G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.30G
              if (ix == 0 && iy == 0) continue;
480
1.22G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.22G
            }
482
326M
          }
483
81.7M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
81.7M
              block_dc - residual_sum * (1.0f / 16);
485
408M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.63G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.30G
              if (ix == 1 && iy == 1) continue;
488
1.22G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.22G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.22G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.22G
            }
492
326M
          }
493
81.7M
          pixels[y * 4 * pixels_stride + x * 4] =
494
81.7M
              coefficients[(y + 2) * 8 + x + 2] +
495
81.7M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
81.7M
        }
497
40.8M
      }
498
20.4M
      break;
499
0
    }
500
18.6M
    case Type::DCT8X4: {
501
18.6M
      float dcs[2] = {};
502
18.6M
      float block0 = coefficients[0];
503
18.6M
      float block1 = coefficients[8];
504
18.6M
      dcs[0] = block0 + block1;
505
18.6M
      dcs[1] = block0 - block1;
506
55.8M
      for (size_t x = 0; x < 2; x++) {
507
37.2M
        HWY_ALIGN float block[4 * 8];
508
37.2M
        block[0] = dcs[x];
509
186M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.33G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.19G
            if (ix == 0 && iy == 0) continue;
512
1.15G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.15G
          }
514
148M
        }
515
37.2M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
37.2M
                                  scratch_space);
517
37.2M
      }
518
18.6M
      break;
519
0
    }
520
18.3M
    case Type::DCT4X8: {
521
18.3M
      float dcs[2] = {};
522
18.3M
      float block0 = coefficients[0];
523
18.3M
      float block1 = coefficients[8];
524
18.3M
      dcs[0] = block0 + block1;
525
18.3M
      dcs[1] = block0 - block1;
526
54.9M
      for (size_t y = 0; y < 2; y++) {
527
36.6M
        HWY_ALIGN float block[4 * 8];
528
36.6M
        block[0] = dcs[y];
529
183M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.31G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.17G
            if (ix == 0 && iy == 0) continue;
532
1.13G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.13G
          }
534
146M
        }
535
36.6M
        ComputeScaledIDCT<4, 8>()(
536
36.6M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
36.6M
            scratch_space);
538
36.6M
      }
539
18.3M
      break;
540
0
    }
541
17.3M
    case Type::DCT4X4: {
542
17.3M
      float dcs[4] = {};
543
17.3M
      float block00 = coefficients[0];
544
17.3M
      float block01 = coefficients[1];
545
17.3M
      float block10 = coefficients[8];
546
17.3M
      float block11 = coefficients[9];
547
17.3M
      dcs[0] = block00 + block01 + block10 + block11;
548
17.3M
      dcs[1] = block00 + block01 - block10 - block11;
549
17.3M
      dcs[2] = block00 - block01 + block10 - block11;
550
17.3M
      dcs[3] = block00 - block01 - block10 + block11;
551
52.0M
      for (size_t y = 0; y < 2; y++) {
552
104M
        for (size_t x = 0; x < 2; x++) {
553
69.4M
          HWY_ALIGN float block[4 * 4];
554
69.4M
          block[0] = dcs[y * 2 + x];
555
347M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.38G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.11G
              if (ix == 0 && iy == 0) continue;
558
1.04G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.04G
            }
560
277M
          }
561
69.4M
          ComputeScaledIDCT<4, 4>()(
562
69.4M
              block,
563
69.4M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
69.4M
              scratch_space);
565
69.4M
        }
566
34.7M
      }
567
17.3M
      break;
568
0
    }
569
20.5M
    case Type::DCT2X2: {
570
20.5M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
20.5M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
20.5M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
20.5M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
20.5M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
185M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.48G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.31G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.31G
        }
579
164M
      }
580
20.5M
      break;
581
0
    }
582
7.60M
    case Type::DCT16X16: {
583
7.60M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
7.60M
                                  scratch_space);
585
7.60M
      break;
586
0
    }
587
14.8M
    case Type::DCT16X8: {
588
14.8M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
14.8M
                                 scratch_space);
590
14.8M
      break;
591
0
    }
592
15.4M
    case Type::DCT8X16: {
593
15.4M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
15.4M
                                 scratch_space);
595
15.4M
      break;
596
0
    }
597
5.64k
    case Type::DCT32X8: {
598
5.64k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
5.64k
                                 scratch_space);
600
5.64k
      break;
601
0
    }
602
7.88k
    case Type::DCT8X32: {
603
7.88k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
7.88k
                                 scratch_space);
605
7.88k
      break;
606
0
    }
607
2.95M
    case Type::DCT32X16: {
608
2.95M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
2.95M
                                  scratch_space);
610
2.95M
      break;
611
0
    }
612
3.12M
    case Type::DCT16X32: {
613
3.12M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.12M
                                  scratch_space);
615
3.12M
      break;
616
0
    }
617
2.06M
    case Type::DCT32X32: {
618
2.06M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
2.06M
                                  scratch_space);
620
2.06M
      break;
621
0
    }
622
27.0M
    case Type::DCT: {
623
27.0M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
27.0M
                                scratch_space);
625
27.0M
      break;
626
0
    }
627
18.2M
    case Type::AFV0: {
628
18.2M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
18.2M
      break;
630
0
    }
631
19.9M
    case Type::AFV1: {
632
19.9M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
19.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
18.2M
    case Type::AFV3: {
640
18.2M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
18.2M
      break;
642
0
    }
643
903k
    case Type::DCT64X32: {
644
903k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
903k
                                  scratch_space);
646
903k
      break;
647
0
    }
648
608k
    case Type::DCT32X64: {
649
608k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
608k
                                  scratch_space);
651
608k
      break;
652
0
    }
653
404k
    case Type::DCT64X64: {
654
404k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
404k
                                  scratch_space);
656
404k
      break;
657
0
    }
658
60
    case Type::DCT128X64: {
659
60
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
60
                                   scratch_space);
661
60
      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
27
    case Type::DCT128X128: {
669
27
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
27
                                    scratch_space);
671
27
      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
39
    case Type::DCT256X256: {
684
39
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
39
                                    scratch_space);
686
39
      break;
687
0
    }
688
244M
  }
689
244M
}
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
27.8M
                                        float* scratch_space) {
461
27.8M
  using Type = AcStrategyType;
462
27.8M
  switch (strategy) {
463
3.13M
    case Type::IDENTITY: {
464
3.13M
      float dcs[4] = {};
465
3.13M
      float block00 = coefficients[0];
466
3.13M
      float block01 = coefficients[1];
467
3.13M
      float block10 = coefficients[8];
468
3.13M
      float block11 = coefficients[9];
469
3.13M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.13M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.13M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.13M
      dcs[3] = block00 - block01 - block10 + block11;
473
9.39M
      for (size_t y = 0; y < 2; y++) {
474
18.7M
        for (size_t x = 0; x < 2; x++) {
475
12.5M
          float block_dc = dcs[y * 2 + x];
476
12.5M
          float residual_sum = 0;
477
62.6M
          for (size_t iy = 0; iy < 4; iy++) {
478
250M
            for (size_t ix = 0; ix < 4; ix++) {
479
200M
              if (ix == 0 && iy == 0) continue;
480
187M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
187M
            }
482
50.1M
          }
483
12.5M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
12.5M
              block_dc - residual_sum * (1.0f / 16);
485
62.6M
          for (size_t iy = 0; iy < 4; iy++) {
486
250M
            for (size_t ix = 0; ix < 4; ix++) {
487
200M
              if (ix == 1 && iy == 1) continue;
488
187M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
187M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
187M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
187M
            }
492
50.1M
          }
493
12.5M
          pixels[y * 4 * pixels_stride + x * 4] =
494
12.5M
              coefficients[(y + 2) * 8 + x + 2] +
495
12.5M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
12.5M
        }
497
6.26M
      }
498
3.13M
      break;
499
0
    }
500
1.30M
    case Type::DCT8X4: {
501
1.30M
      float dcs[2] = {};
502
1.30M
      float block0 = coefficients[0];
503
1.30M
      float block1 = coefficients[8];
504
1.30M
      dcs[0] = block0 + block1;
505
1.30M
      dcs[1] = block0 - block1;
506
3.90M
      for (size_t x = 0; x < 2; x++) {
507
2.60M
        HWY_ALIGN float block[4 * 8];
508
2.60M
        block[0] = dcs[x];
509
13.0M
        for (size_t iy = 0; iy < 4; iy++) {
510
93.7M
          for (size_t ix = 0; ix < 8; ix++) {
511
83.3M
            if (ix == 0 && iy == 0) continue;
512
80.7M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
80.7M
          }
514
10.4M
        }
515
2.60M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
2.60M
                                  scratch_space);
517
2.60M
      }
518
1.30M
      break;
519
0
    }
520
1.00M
    case Type::DCT4X8: {
521
1.00M
      float dcs[2] = {};
522
1.00M
      float block0 = coefficients[0];
523
1.00M
      float block1 = coefficients[8];
524
1.00M
      dcs[0] = block0 + block1;
525
1.00M
      dcs[1] = block0 - block1;
526
3.00M
      for (size_t y = 0; y < 2; y++) {
527
2.00M
        HWY_ALIGN float block[4 * 8];
528
2.00M
        block[0] = dcs[y];
529
10.0M
        for (size_t iy = 0; iy < 4; iy++) {
530
72.1M
          for (size_t ix = 0; ix < 8; ix++) {
531
64.1M
            if (ix == 0 && iy == 0) continue;
532
62.1M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
62.1M
          }
534
8.02M
        }
535
2.00M
        ComputeScaledIDCT<4, 8>()(
536
2.00M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.00M
            scratch_space);
538
2.00M
      }
539
1.00M
      break;
540
0
    }
541
56.3k
    case Type::DCT4X4: {
542
56.3k
      float dcs[4] = {};
543
56.3k
      float block00 = coefficients[0];
544
56.3k
      float block01 = coefficients[1];
545
56.3k
      float block10 = coefficients[8];
546
56.3k
      float block11 = coefficients[9];
547
56.3k
      dcs[0] = block00 + block01 + block10 + block11;
548
56.3k
      dcs[1] = block00 + block01 - block10 - block11;
549
56.3k
      dcs[2] = block00 - block01 + block10 - block11;
550
56.3k
      dcs[3] = block00 - block01 - block10 + block11;
551
169k
      for (size_t y = 0; y < 2; y++) {
552
338k
        for (size_t x = 0; x < 2; x++) {
553
225k
          HWY_ALIGN float block[4 * 4];
554
225k
          block[0] = dcs[y * 2 + x];
555
1.12M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.51M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.60M
              if (ix == 0 && iy == 0) continue;
558
3.38M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.38M
            }
560
902k
          }
561
225k
          ComputeScaledIDCT<4, 4>()(
562
225k
              block,
563
225k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
225k
              scratch_space);
565
225k
        }
566
112k
      }
567
56.3k
      break;
568
0
    }
569
3.29M
    case Type::DCT2X2: {
570
3.29M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.29M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.29M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.29M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.29M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
29.6M
      for (size_t y = 0; y < kBlockDim; y++) {
576
237M
        for (size_t x = 0; x < kBlockDim; x++) {
577
210M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
210M
        }
579
26.3M
      }
580
3.29M
      break;
581
0
    }
582
470k
    case Type::DCT16X16: {
583
470k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
470k
                                  scratch_space);
585
470k
      break;
586
0
    }
587
860k
    case Type::DCT16X8: {
588
860k
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
860k
                                 scratch_space);
590
860k
      break;
591
0
    }
592
1.39M
    case Type::DCT8X16: {
593
1.39M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.39M
                                 scratch_space);
595
1.39M
      break;
596
0
    }
597
5.64k
    case Type::DCT32X8: {
598
5.64k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
5.64k
                                 scratch_space);
600
5.64k
      break;
601
0
    }
602
7.88k
    case Type::DCT8X32: {
603
7.88k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
7.88k
                                 scratch_space);
605
7.88k
      break;
606
0
    }
607
206k
    case Type::DCT32X16: {
608
206k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
206k
                                  scratch_space);
610
206k
      break;
611
0
    }
612
337k
    case Type::DCT16X32: {
613
337k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
337k
                                  scratch_space);
615
337k
      break;
616
0
    }
617
659k
    case Type::DCT32X32: {
618
659k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
659k
                                  scratch_space);
620
659k
      break;
621
0
    }
622
9.71M
    case Type::DCT: {
623
9.71M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
9.71M
                                scratch_space);
625
9.71M
      break;
626
0
    }
627
946k
    case Type::AFV0: {
628
946k
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
946k
      break;
630
0
    }
631
2.63M
    case Type::AFV1: {
632
2.63M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
2.63M
      break;
634
0
    }
635
616k
    case Type::AFV2: {
636
616k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
616k
      break;
638
0
    }
639
997k
    case Type::AFV3: {
640
997k
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
997k
      break;
642
0
    }
643
20.0k
    case Type::DCT64X32: {
644
20.0k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
20.0k
                                  scratch_space);
646
20.0k
      break;
647
0
    }
648
27.6k
    case Type::DCT32X64: {
649
27.6k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
27.6k
                                  scratch_space);
651
27.6k
      break;
652
0
    }
653
164k
    case Type::DCT64X64: {
654
164k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
164k
                                  scratch_space);
656
164k
      break;
657
0
    }
658
60
    case Type::DCT128X64: {
659
60
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
60
                                   scratch_space);
661
60
      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
27
    case Type::DCT128X128: {
669
27
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
27
                                    scratch_space);
671
27
      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
39
    case Type::DCT256X256: {
684
39
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
39
                                    scratch_space);
686
39
      break;
687
0
    }
688
27.8M
  }
689
27.8M
}
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
216M
                                        float* scratch_space) {
461
216M
  using Type = AcStrategyType;
462
216M
  switch (strategy) {
463
17.2M
    case Type::IDENTITY: {
464
17.2M
      float dcs[4] = {};
465
17.2M
      float block00 = coefficients[0];
466
17.2M
      float block01 = coefficients[1];
467
17.2M
      float block10 = coefficients[8];
468
17.2M
      float block11 = coefficients[9];
469
17.2M
      dcs[0] = block00 + block01 + block10 + block11;
470
17.2M
      dcs[1] = block00 + block01 - block10 - block11;
471
17.2M
      dcs[2] = block00 - block01 + block10 - block11;
472
17.2M
      dcs[3] = block00 - block01 - block10 + block11;
473
51.8M
      for (size_t y = 0; y < 2; y++) {
474
103M
        for (size_t x = 0; x < 2; x++) {
475
69.1M
          float block_dc = dcs[y * 2 + x];
476
69.1M
          float residual_sum = 0;
477
345M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.38G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.10G
              if (ix == 0 && iy == 0) continue;
480
1.03G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.03G
            }
482
276M
          }
483
69.1M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
69.1M
              block_dc - residual_sum * (1.0f / 16);
485
345M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.38G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.10G
              if (ix == 1 && iy == 1) continue;
488
1.03G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.03G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.03G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.03G
            }
492
276M
          }
493
69.1M
          pixels[y * 4 * pixels_stride + x * 4] =
494
69.1M
              coefficients[(y + 2) * 8 + x + 2] +
495
69.1M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
69.1M
        }
497
34.5M
      }
498
17.2M
      break;
499
0
    }
500
17.2M
    case Type::DCT8X4: {
501
17.2M
      float dcs[2] = {};
502
17.2M
      float block0 = coefficients[0];
503
17.2M
      float block1 = coefficients[8];
504
17.2M
      dcs[0] = block0 + block1;
505
17.2M
      dcs[1] = block0 - block1;
506
51.8M
      for (size_t x = 0; x < 2; x++) {
507
34.5M
        HWY_ALIGN float block[4 * 8];
508
34.5M
        block[0] = dcs[x];
509
172M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.24G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.10G
            if (ix == 0 && iy == 0) continue;
512
1.07G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.07G
          }
514
138M
        }
515
34.5M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
34.5M
                                  scratch_space);
517
34.5M
      }
518
17.2M
      break;
519
0
    }
520
17.2M
    case Type::DCT4X8: {
521
17.2M
      float dcs[2] = {};
522
17.2M
      float block0 = coefficients[0];
523
17.2M
      float block1 = coefficients[8];
524
17.2M
      dcs[0] = block0 + block1;
525
17.2M
      dcs[1] = block0 - block1;
526
51.8M
      for (size_t y = 0; y < 2; y++) {
527
34.5M
        HWY_ALIGN float block[4 * 8];
528
34.5M
        block[0] = dcs[y];
529
172M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.24G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.10G
            if (ix == 0 && iy == 0) continue;
532
1.07G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.07G
          }
534
138M
        }
535
34.5M
        ComputeScaledIDCT<4, 8>()(
536
34.5M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
34.5M
            scratch_space);
538
34.5M
      }
539
17.2M
      break;
540
0
    }
541
17.2M
    case Type::DCT4X4: {
542
17.2M
      float dcs[4] = {};
543
17.2M
      float block00 = coefficients[0];
544
17.2M
      float block01 = coefficients[1];
545
17.2M
      float block10 = coefficients[8];
546
17.2M
      float block11 = coefficients[9];
547
17.2M
      dcs[0] = block00 + block01 + block10 + block11;
548
17.2M
      dcs[1] = block00 + block01 - block10 - block11;
549
17.2M
      dcs[2] = block00 - block01 + block10 - block11;
550
17.2M
      dcs[3] = block00 - block01 - block10 + block11;
551
51.8M
      for (size_t y = 0; y < 2; y++) {
552
103M
        for (size_t x = 0; x < 2; x++) {
553
69.1M
          HWY_ALIGN float block[4 * 4];
554
69.1M
          block[0] = dcs[y * 2 + x];
555
345M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.38G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.10G
              if (ix == 0 && iy == 0) continue;
558
1.03G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.03G
            }
560
276M
          }
561
69.1M
          ComputeScaledIDCT<4, 4>()(
562
69.1M
              block,
563
69.1M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
69.1M
              scratch_space);
565
69.1M
        }
566
34.5M
      }
567
17.2M
      break;
568
0
    }
569
17.2M
    case Type::DCT2X2: {
570
17.2M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
17.2M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
17.2M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
17.2M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
17.2M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
155M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.24G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.10G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.10G
        }
579
138M
      }
580
17.2M
      break;
581
0
    }
582
7.13M
    case Type::DCT16X16: {
583
7.13M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
7.13M
                                  scratch_space);
585
7.13M
      break;
586
0
    }
587
13.9M
    case Type::DCT16X8: {
588
13.9M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
13.9M
                                 scratch_space);
590
13.9M
      break;
591
0
    }
592
14.0M
    case Type::DCT8X16: {
593
14.0M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
14.0M
                                 scratch_space);
595
14.0M
      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.75M
    case Type::DCT32X16: {
608
2.75M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
2.75M
                                  scratch_space);
610
2.75M
      break;
611
0
    }
612
2.79M
    case Type::DCT16X32: {
613
2.79M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
2.79M
                                  scratch_space);
615
2.79M
      break;
616
0
    }
617
1.40M
    case Type::DCT32X32: {
618
1.40M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.40M
                                  scratch_space);
620
1.40M
      break;
621
0
    }
622
17.2M
    case Type::DCT: {
623
17.2M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
17.2M
                                scratch_space);
625
17.2M
      break;
626
0
    }
627
17.2M
    case Type::AFV0: {
628
17.2M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
17.2M
      break;
630
0
    }
631
17.2M
    case Type::AFV1: {
632
17.2M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
17.2M
      break;
634
0
    }
635
17.2M
    case Type::AFV2: {
636
17.2M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
17.2M
      break;
638
0
    }
639
17.2M
    case Type::AFV3: {
640
17.2M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
17.2M
      break;
642
0
    }
643
882k
    case Type::DCT64X32: {
644
882k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
882k
                                  scratch_space);
646
882k
      break;
647
0
    }
648
580k
    case Type::DCT32X64: {
649
580k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
580k
                                  scratch_space);
651
580k
      break;
652
0
    }
653
240k
    case Type::DCT64X64: {
654
240k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
240k
                                  scratch_space);
656
240k
      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
216M
  }
689
216M
}
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
27.8M
                                              float* JXL_RESTRICT scratch) {
695
27.8M
  using Type = AcStrategyType;
696
27.8M
  HWY_ALIGN float warm_block[4 * 4];
697
27.8M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
27.8M
  switch (strategy) {
699
860k
    case Type::DCT16X8: {
700
860k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
860k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
860k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
860k
      break;
704
0
    }
705
1.39M
    case Type::DCT8X16: {
706
1.39M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.39M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.39M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.39M
      break;
710
0
    }
711
470k
    case Type::DCT16X16: {
712
470k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
470k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
470k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
470k
      break;
716
0
    }
717
5.64k
    case Type::DCT32X8: {
718
5.64k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
5.64k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
5.64k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
5.64k
      break;
722
0
    }
723
7.88k
    case Type::DCT8X32: {
724
7.88k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
7.88k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
7.88k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
7.88k
      break;
728
0
    }
729
206k
    case Type::DCT32X16: {
730
206k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
206k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
206k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
206k
      break;
734
0
    }
735
337k
    case Type::DCT16X32: {
736
337k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
337k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
337k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
337k
      break;
740
0
    }
741
659k
    case Type::DCT32X32: {
742
659k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
659k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
659k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
659k
      break;
746
0
    }
747
20.0k
    case Type::DCT64X32: {
748
20.0k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
20.0k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
20.0k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
20.0k
      break;
752
0
    }
753
27.6k
    case Type::DCT32X64: {
754
27.6k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
27.6k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
27.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
27.6k
      break;
758
0
    }
759
164k
    case Type::DCT64X64: {
760
164k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
164k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
164k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
164k
      break;
764
0
    }
765
60
    case Type::DCT128X64: {
766
60
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
60
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
60
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
60
      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
27
    case Type::DCT128X128: {
778
27
      ReinterpretingDCT<
779
27
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
27
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
27
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
27
      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
39
    case Type::DCT256X256: {
799
39
      ReinterpretingDCT<
800
39
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
39
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
39
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
39
      break;
804
0
    }
805
9.72M
    case Type::DCT:
806
13.0M
    case Type::DCT2X2:
807
13.0M
    case Type::DCT4X4:
808
14.0M
    case Type::DCT4X8:
809
15.3M
    case Type::DCT8X4:
810
16.3M
    case Type::AFV0:
811
18.9M
    case Type::AFV1:
812
19.5M
    case Type::AFV2:
813
20.5M
    case Type::AFV3:
814
23.7M
    case Type::IDENTITY:
815
23.7M
      llf[0] = dc[0];
816
23.7M
      break;
817
27.8M
  };
818
27.8M
}
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
27.8M
                                              float* JXL_RESTRICT scratch) {
695
27.8M
  using Type = AcStrategyType;
696
27.8M
  HWY_ALIGN float warm_block[4 * 4];
697
27.8M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
27.8M
  switch (strategy) {
699
860k
    case Type::DCT16X8: {
700
860k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
860k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
860k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
860k
      break;
704
0
    }
705
1.39M
    case Type::DCT8X16: {
706
1.39M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.39M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.39M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.39M
      break;
710
0
    }
711
470k
    case Type::DCT16X16: {
712
470k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
470k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
470k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
470k
      break;
716
0
    }
717
5.64k
    case Type::DCT32X8: {
718
5.64k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
5.64k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
5.64k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
5.64k
      break;
722
0
    }
723
7.88k
    case Type::DCT8X32: {
724
7.88k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
7.88k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
7.88k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
7.88k
      break;
728
0
    }
729
206k
    case Type::DCT32X16: {
730
206k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
206k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
206k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
206k
      break;
734
0
    }
735
337k
    case Type::DCT16X32: {
736
337k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
337k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
337k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
337k
      break;
740
0
    }
741
659k
    case Type::DCT32X32: {
742
659k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
659k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
659k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
659k
      break;
746
0
    }
747
20.0k
    case Type::DCT64X32: {
748
20.0k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
20.0k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
20.0k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
20.0k
      break;
752
0
    }
753
27.6k
    case Type::DCT32X64: {
754
27.6k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
27.6k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
27.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
27.6k
      break;
758
0
    }
759
164k
    case Type::DCT64X64: {
760
164k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
164k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
164k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
164k
      break;
764
0
    }
765
60
    case Type::DCT128X64: {
766
60
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
60
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
60
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
60
      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
27
    case Type::DCT128X128: {
778
27
      ReinterpretingDCT<
779
27
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
27
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
27
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
27
      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
39
    case Type::DCT256X256: {
799
39
      ReinterpretingDCT<
800
39
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
39
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
39
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
39
      break;
804
0
    }
805
9.72M
    case Type::DCT:
806
13.0M
    case Type::DCT2X2:
807
13.0M
    case Type::DCT4X4:
808
14.0M
    case Type::DCT4X8:
809
15.3M
    case Type::DCT8X4:
810
16.3M
    case Type::AFV0:
811
18.9M
    case Type::AFV1:
812
19.5M
    case Type::AFV2:
813
20.5M
    case Type::AFV3:
814
23.7M
    case Type::IDENTITY:
815
23.7M
      llf[0] = dc[0];
816
23.7M
      break;
817
27.8M
  };
818
27.8M
}
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_