Coverage Report

Created: 2026-06-16 07:20

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.77M
                                  float* JXL_RESTRICT scratch_space) {
41
4.77M
  static_assert(LF_ROWS == ROWS,
42
4.77M
                "ReinterpretingDCT should only be called with LF == N");
43
4.77M
  static_assert(LF_COLS == COLS,
44
4.77M
                "ReinterpretingDCT should only be called with LF == N");
45
4.77M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
4.77M
                                 scratch_space);
47
4.77M
  if (ROWS < COLS) {
48
4.54M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
9.91M
      for (size_t x = 0; x < LF_COLS; x++) {
50
7.39M
        output[y * output_stride + x] =
51
7.39M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
7.39M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
7.39M
      }
54
2.51M
    }
55
2.74M
  } else {
56
10.2M
    for (size_t y = 0; y < LF_COLS; y++) {
57
40.5M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
33.0M
        output[y * output_stride + x] =
59
33.0M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
33.0M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
33.0M
      }
62
7.51M
    }
63
2.74M
  }
64
4.77M
}
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
925k
                                  float* JXL_RESTRICT scratch_space) {
41
925k
  static_assert(LF_ROWS == ROWS,
42
925k
                "ReinterpretingDCT should only be called with LF == N");
43
925k
  static_assert(LF_COLS == COLS,
44
925k
                "ReinterpretingDCT should only be called with LF == N");
45
925k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
925k
                                 scratch_space);
47
925k
  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
925k
  } else {
56
1.85M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.77M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.85M
        output[y * output_stride + x] =
59
1.85M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.85M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.85M
      }
62
925k
    }
63
925k
  }
64
925k
}
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.58M
                                  float* JXL_RESTRICT scratch_space) {
41
1.58M
  static_assert(LF_ROWS == ROWS,
42
1.58M
                "ReinterpretingDCT should only be called with LF == N");
43
1.58M
  static_assert(LF_COLS == COLS,
44
1.58M
                "ReinterpretingDCT should only be called with LF == N");
45
1.58M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.58M
                                 scratch_space);
47
1.58M
  if (ROWS < COLS) {
48
3.17M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.76M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.17M
        output[y * output_stride + x] =
51
3.17M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.17M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.17M
      }
54
1.58M
    }
55
1.58M
  } 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.58M
}
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
514k
                                  float* JXL_RESTRICT scratch_space) {
41
514k
  static_assert(LF_ROWS == ROWS,
42
514k
                "ReinterpretingDCT should only be called with LF == N");
43
514k
  static_assert(LF_COLS == COLS,
44
514k
                "ReinterpretingDCT should only be called with LF == N");
45
514k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
514k
                                 scratch_space);
47
514k
  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
514k
  } else {
56
1.54M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.08M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.05M
        output[y * output_stride + x] =
59
2.05M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.05M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.05M
      }
62
1.02M
    }
63
514k
  }
64
514k
}
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
236k
                                  float* JXL_RESTRICT scratch_space) {
41
236k
  static_assert(LF_ROWS == ROWS,
42
236k
                "ReinterpretingDCT should only be called with LF == N");
43
236k
  static_assert(LF_COLS == COLS,
44
236k
                "ReinterpretingDCT should only be called with LF == N");
45
236k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
236k
                                 scratch_space);
47
236k
  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
236k
  } else {
56
710k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.36M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.89M
        output[y * output_stride + x] =
59
1.89M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.89M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.89M
      }
62
473k
    }
63
236k
  }
64
236k
}
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
398k
                                  float* JXL_RESTRICT scratch_space) {
41
398k
  static_assert(LF_ROWS == ROWS,
42
398k
                "ReinterpretingDCT should only be called with LF == N");
43
398k
  static_assert(LF_COLS == COLS,
44
398k
                "ReinterpretingDCT should only be called with LF == N");
45
398k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
398k
                                 scratch_space);
47
398k
  if (ROWS < COLS) {
48
1.19M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
3.98M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.18M
        output[y * output_stride + x] =
51
3.18M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.18M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.18M
      }
54
796k
    }
55
398k
  } 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
398k
}
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
840k
                                  float* JXL_RESTRICT scratch_space) {
41
840k
  static_assert(LF_ROWS == ROWS,
42
840k
                "ReinterpretingDCT should only be called with LF == N");
43
840k
  static_assert(LF_COLS == COLS,
44
840k
                "ReinterpretingDCT should only be called with LF == N");
45
840k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
840k
                                 scratch_space);
47
840k
  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
840k
  } else {
56
4.20M
    for (size_t y = 0; y < LF_COLS; y++) {
57
16.8M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
13.4M
        output[y * output_stride + x] =
59
13.4M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
13.4M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
13.4M
      }
62
3.36M
    }
63
840k
  }
64
840k
}
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
24.3k
                                  float* JXL_RESTRICT scratch_space) {
41
24.3k
  static_assert(LF_ROWS == ROWS,
42
24.3k
                "ReinterpretingDCT should only be called with LF == N");
43
24.3k
  static_assert(LF_COLS == COLS,
44
24.3k
                "ReinterpretingDCT should only be called with LF == N");
45
24.3k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
24.3k
                                 scratch_space);
47
24.3k
  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
24.3k
  } else {
56
121k
    for (size_t y = 0; y < LF_COLS; y++) {
57
877k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
780k
        output[y * output_stride + x] =
59
780k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
780k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
780k
      }
62
97.5k
    }
63
24.3k
  }
64
24.3k
}
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
31.1k
                                  float* JXL_RESTRICT scratch_space) {
41
31.1k
  static_assert(LF_ROWS == ROWS,
42
31.1k
                "ReinterpretingDCT should only be called with LF == N");
43
31.1k
  static_assert(LF_COLS == COLS,
44
31.1k
                "ReinterpretingDCT should only be called with LF == N");
45
31.1k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
31.1k
                                 scratch_space);
47
31.1k
  if (ROWS < COLS) {
48
155k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.12M
      for (size_t x = 0; x < LF_COLS; x++) {
50
996k
        output[y * output_stride + x] =
51
996k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
996k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
996k
      }
54
124k
    }
55
31.1k
  } 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
31.1k
}
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
202k
                                  float* JXL_RESTRICT scratch_space) {
41
202k
  static_assert(LF_ROWS == ROWS,
42
202k
                "ReinterpretingDCT should only be called with LF == N");
43
202k
  static_assert(LF_COLS == COLS,
44
202k
                "ReinterpretingDCT should only be called with LF == N");
45
202k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
202k
                                 scratch_space);
47
202k
  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
202k
  } else {
56
1.82M
    for (size_t y = 0; y < LF_COLS; y++) {
57
14.5M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
12.9M
        output[y * output_stride + x] =
59
12.9M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
12.9M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
12.9M
      }
62
1.62M
    }
63
202k
  }
64
202k
}
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
66
                                  float* JXL_RESTRICT scratch_space) {
41
66
  static_assert(LF_ROWS == ROWS,
42
66
                "ReinterpretingDCT should only be called with LF == N");
43
66
  static_assert(LF_COLS == COLS,
44
66
                "ReinterpretingDCT should only be called with LF == N");
45
66
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
66
                                 scratch_space);
47
66
  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
66
  } else {
56
594
    for (size_t y = 0; y < LF_COLS; y++) {
57
8.97k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
8.44k
        output[y * output_stride + x] =
59
8.44k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
8.44k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
8.44k
      }
62
528
    }
63
66
  }
64
66
}
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
36
                                  float* JXL_RESTRICT scratch_space) {
41
36
  static_assert(LF_ROWS == ROWS,
42
36
                "ReinterpretingDCT should only be called with LF == N");
43
36
  static_assert(LF_COLS == COLS,
44
36
                "ReinterpretingDCT should only be called with LF == N");
45
36
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
36
                                 scratch_space);
47
36
  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
36
  } else {
56
1.18k
    for (size_t y = 0; y < LF_COLS; y++) {
57
38.0k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
36.8k
        output[y * output_stride + x] =
59
36.8k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
36.8k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
36.8k
      }
62
1.15k
    }
63
36
  }
64
36
}
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
72.6M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
72.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
72.6M
  static_assert(S % 2 == 0, "S should be even");
70
72.6M
  float temp[kDCTBlockSize];
71
72.6M
  constexpr size_t num_2x2 = S / 2;
72
242M
  for (size_t y = 0; y < num_2x2; y++) {
73
677M
    for (size_t x = 0; x < num_2x2; x++) {
74
508M
      float c00 = block[y * kBlockDim + x];
75
508M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
508M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
508M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
508M
      float r00 = c00 + c01 + c10 + c11;
79
508M
      float r01 = c00 + c01 - c10 - c11;
80
508M
      float r10 = c00 - c01 + c10 - c11;
81
508M
      float r11 = c00 - c01 - c10 + c11;
82
508M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
508M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
508M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
508M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
508M
    }
87
169M
  }
88
411M
  for (size_t y = 0; y < S; y++) {
89
2.37G
    for (size_t x = 0; x < S; x++) {
90
2.03G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
2.03G
    }
92
338M
  }
93
72.6M
}
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.66M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.66M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.66M
  static_assert(S % 2 == 0, "S should be even");
70
3.66M
  float temp[kDCTBlockSize];
71
3.66M
  constexpr size_t num_2x2 = S / 2;
72
7.33M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.33M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.66M
      float c00 = block[y * kBlockDim + x];
75
3.66M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.66M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.66M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.66M
      float r00 = c00 + c01 + c10 + c11;
79
3.66M
      float r01 = c00 + c01 - c10 - c11;
80
3.66M
      float r10 = c00 - c01 + c10 - c11;
81
3.66M
      float r11 = c00 - c01 - c10 + c11;
82
3.66M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.66M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.66M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.66M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.66M
    }
87
3.66M
  }
88
11.0M
  for (size_t y = 0; y < S; y++) {
89
22.0M
    for (size_t x = 0; x < S; x++) {
90
14.6M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
14.6M
    }
92
7.33M
  }
93
3.66M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.66M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.66M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.66M
  static_assert(S % 2 == 0, "S should be even");
70
3.66M
  float temp[kDCTBlockSize];
71
3.66M
  constexpr size_t num_2x2 = S / 2;
72
11.0M
  for (size_t y = 0; y < num_2x2; y++) {
73
22.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
14.6M
      float c00 = block[y * kBlockDim + x];
75
14.6M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
14.6M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
14.6M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
14.6M
      float r00 = c00 + c01 + c10 + c11;
79
14.6M
      float r01 = c00 + c01 - c10 - c11;
80
14.6M
      float r10 = c00 - c01 + c10 - c11;
81
14.6M
      float r11 = c00 - c01 - c10 + c11;
82
14.6M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
14.6M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
14.6M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
14.6M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
14.6M
    }
87
7.33M
  }
88
18.3M
  for (size_t y = 0; y < S; y++) {
89
73.3M
    for (size_t x = 0; x < S; x++) {
90
58.7M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
58.7M
    }
92
14.6M
  }
93
3.66M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.66M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.66M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.66M
  static_assert(S % 2 == 0, "S should be even");
70
3.66M
  float temp[kDCTBlockSize];
71
3.66M
  constexpr size_t num_2x2 = S / 2;
72
18.3M
  for (size_t y = 0; y < num_2x2; y++) {
73
73.3M
    for (size_t x = 0; x < num_2x2; x++) {
74
58.7M
      float c00 = block[y * kBlockDim + x];
75
58.7M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
58.7M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
58.7M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
58.7M
      float r00 = c00 + c01 + c10 + c11;
79
58.7M
      float r01 = c00 + c01 - c10 - c11;
80
58.7M
      float r10 = c00 - c01 + c10 - c11;
81
58.7M
      float r11 = c00 - c01 - c10 + c11;
82
58.7M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
58.7M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
58.7M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
58.7M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
58.7M
    }
87
14.6M
  }
88
33.0M
  for (size_t y = 0; y < S; y++) {
89
264M
    for (size_t x = 0; x < S; x++) {
90
234M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
234M
    }
92
29.3M
  }
93
3.66M
}
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
20.5M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
20.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
20.5M
  static_assert(S % 2 == 0, "S should be even");
70
20.5M
  float temp[kDCTBlockSize];
71
20.5M
  constexpr size_t num_2x2 = S / 2;
72
41.0M
  for (size_t y = 0; y < num_2x2; y++) {
73
41.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
20.5M
      float c00 = block[y * kBlockDim + x];
75
20.5M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
20.5M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
20.5M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
20.5M
      float r00 = c00 + c01 + c10 + c11;
79
20.5M
      float r01 = c00 + c01 - c10 - c11;
80
20.5M
      float r10 = c00 - c01 + c10 - c11;
81
20.5M
      float r11 = c00 - c01 - c10 + c11;
82
20.5M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
20.5M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
20.5M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
20.5M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
20.5M
    }
87
20.5M
  }
88
61.6M
  for (size_t y = 0; y < S; y++) {
89
123M
    for (size_t x = 0; x < S; x++) {
90
82.1M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
82.1M
    }
92
41.0M
  }
93
20.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
20.5M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
20.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
20.5M
  static_assert(S % 2 == 0, "S should be even");
70
20.5M
  float temp[kDCTBlockSize];
71
20.5M
  constexpr size_t num_2x2 = S / 2;
72
61.6M
  for (size_t y = 0; y < num_2x2; y++) {
73
123M
    for (size_t x = 0; x < num_2x2; x++) {
74
82.1M
      float c00 = block[y * kBlockDim + x];
75
82.1M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
82.1M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
82.1M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
82.1M
      float r00 = c00 + c01 + c10 + c11;
79
82.1M
      float r01 = c00 + c01 - c10 - c11;
80
82.1M
      float r10 = c00 - c01 + c10 - c11;
81
82.1M
      float r11 = c00 - c01 - c10 + c11;
82
82.1M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
82.1M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
82.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
82.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
82.1M
    }
87
41.0M
  }
88
102M
  for (size_t y = 0; y < S; y++) {
89
410M
    for (size_t x = 0; x < S; x++) {
90
328M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
328M
    }
92
82.1M
  }
93
20.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
20.5M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
20.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
20.5M
  static_assert(S % 2 == 0, "S should be even");
70
20.5M
  float temp[kDCTBlockSize];
71
20.5M
  constexpr size_t num_2x2 = S / 2;
72
102M
  for (size_t y = 0; y < num_2x2; y++) {
73
410M
    for (size_t x = 0; x < num_2x2; x++) {
74
328M
      float c00 = block[y * kBlockDim + x];
75
328M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
328M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
328M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
328M
      float r00 = c00 + c01 + c10 + c11;
79
328M
      float r01 = c00 + c01 - c10 - c11;
80
328M
      float r10 = c00 - c01 + c10 - c11;
81
328M
      float r11 = c00 - c01 - c10 + c11;
82
328M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
328M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
328M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
328M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
328M
    }
87
82.1M
  }
88
184M
  for (size_t y = 0; y < S; y++) {
89
1.47G
    for (size_t x = 0; x < S; x++) {
90
1.31G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.31G
    }
92
164M
  }
93
20.5M
}
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
88.5M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
88.5M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
88.5M
      {
98
88.5M
          0.25,
99
88.5M
          0.25,
100
88.5M
          0.25,
101
88.5M
          0.25,
102
88.5M
          0.25,
103
88.5M
          0.25,
104
88.5M
          0.25,
105
88.5M
          0.25,
106
88.5M
          0.25,
107
88.5M
          0.25,
108
88.5M
          0.25,
109
88.5M
          0.25,
110
88.5M
          0.25,
111
88.5M
          0.25,
112
88.5M
          0.25,
113
88.5M
          0.25,
114
88.5M
      },
115
88.5M
      {
116
88.5M
          0.876902929799142f,
117
88.5M
          0.2206518106944235f,
118
88.5M
          -0.10140050393753763f,
119
88.5M
          -0.1014005039375375f,
120
88.5M
          0.2206518106944236f,
121
88.5M
          -0.10140050393753777f,
122
88.5M
          -0.10140050393753772f,
123
88.5M
          -0.10140050393753763f,
124
88.5M
          -0.10140050393753758f,
125
88.5M
          -0.10140050393753769f,
126
88.5M
          -0.1014005039375375f,
127
88.5M
          -0.10140050393753768f,
128
88.5M
          -0.10140050393753768f,
129
88.5M
          -0.10140050393753759f,
130
88.5M
          -0.10140050393753763f,
131
88.5M
          -0.10140050393753741f,
132
88.5M
      },
133
88.5M
      {
134
88.5M
          0.0,
135
88.5M
          0.0,
136
88.5M
          0.40670075830260755f,
137
88.5M
          0.44444816619734445f,
138
88.5M
          0.0,
139
88.5M
          0.0,
140
88.5M
          0.19574399372042936f,
141
88.5M
          0.2929100136981264f,
142
88.5M
          -0.40670075830260716f,
143
88.5M
          -0.19574399372042872f,
144
88.5M
          0.0,
145
88.5M
          0.11379074460448091f,
146
88.5M
          -0.44444816619734384f,
147
88.5M
          -0.29291001369812636f,
148
88.5M
          -0.1137907446044814f,
149
88.5M
          0.0,
150
88.5M
      },
151
88.5M
      {
152
88.5M
          0.0,
153
88.5M
          0.0,
154
88.5M
          -0.21255748058288748f,
155
88.5M
          0.3085497062849767f,
156
88.5M
          0.0,
157
88.5M
          0.4706702258572536f,
158
88.5M
          -0.1621205195722993f,
159
88.5M
          0.0,
160
88.5M
          -0.21255748058287047f,
161
88.5M
          -0.16212051957228327f,
162
88.5M
          -0.47067022585725277f,
163
88.5M
          -0.1464291867126764f,
164
88.5M
          0.3085497062849487f,
165
88.5M
          0.0,
166
88.5M
          -0.14642918671266536f,
167
88.5M
          0.4251149611657548f,
168
88.5M
      },
169
88.5M
      {
170
88.5M
          0.0,
171
88.5M
          -0.7071067811865474f,
172
88.5M
          0.0,
173
88.5M
          0.0,
174
88.5M
          0.7071067811865476f,
175
88.5M
          0.0,
176
88.5M
          0.0,
177
88.5M
          0.0,
178
88.5M
          0.0,
179
88.5M
          0.0,
180
88.5M
          0.0,
181
88.5M
          0.0,
182
88.5M
          0.0,
183
88.5M
          0.0,
184
88.5M
          0.0,
185
88.5M
          0.0,
186
88.5M
      },
187
88.5M
      {
188
88.5M
          -0.4105377591765233f,
189
88.5M
          0.6235485373547691f,
190
88.5M
          -0.06435071657946274f,
191
88.5M
          -0.06435071657946266f,
192
88.5M
          0.6235485373547694f,
193
88.5M
          -0.06435071657946284f,
194
88.5M
          -0.0643507165794628f,
195
88.5M
          -0.06435071657946274f,
196
88.5M
          -0.06435071657946272f,
197
88.5M
          -0.06435071657946279f,
198
88.5M
          -0.06435071657946266f,
199
88.5M
          -0.06435071657946277f,
200
88.5M
          -0.06435071657946277f,
201
88.5M
          -0.06435071657946273f,
202
88.5M
          -0.06435071657946274f,
203
88.5M
          -0.0643507165794626f,
204
88.5M
      },
205
88.5M
      {
206
88.5M
          0.0,
207
88.5M
          0.0,
208
88.5M
          -0.4517556589999482f,
209
88.5M
          0.15854503551840063f,
210
88.5M
          0.0,
211
88.5M
          -0.04038515160822202f,
212
88.5M
          0.0074182263792423875f,
213
88.5M
          0.39351034269210167f,
214
88.5M
          -0.45175565899994635f,
215
88.5M
          0.007418226379244351f,
216
88.5M
          0.1107416575309343f,
217
88.5M
          0.08298163094882051f,
218
88.5M
          0.15854503551839705f,
219
88.5M
          0.3935103426921022f,
220
88.5M
          0.0829816309488214f,
221
88.5M
          -0.45175565899994796f,
222
88.5M
      },
223
88.5M
      {
224
88.5M
          0.0,
225
88.5M
          0.0,
226
88.5M
          -0.304684750724869f,
227
88.5M
          0.5112616136591823f,
228
88.5M
          0.0,
229
88.5M
          0.0,
230
88.5M
          -0.290480129728998f,
231
88.5M
          -0.06578701549142804f,
232
88.5M
          0.304684750724884f,
233
88.5M
          0.2904801297290076f,
234
88.5M
          0.0,
235
88.5M
          -0.23889773523344604f,
236
88.5M
          -0.5112616136592012f,
237
88.5M
          0.06578701549142545f,
238
88.5M
          0.23889773523345467f,
239
88.5M
          0.0,
240
88.5M
      },
241
88.5M
      {
242
88.5M
          0.0,
243
88.5M
          0.0,
244
88.5M
          0.3017929516615495f,
245
88.5M
          0.25792362796341184f,
246
88.5M
          0.0,
247
88.5M
          0.16272340142866204f,
248
88.5M
          0.09520022653475037f,
249
88.5M
          0.0,
250
88.5M
          0.3017929516615503f,
251
88.5M
          0.09520022653475055f,
252
88.5M
          -0.16272340142866173f,
253
88.5M
          -0.35312385449816297f,
254
88.5M
          0.25792362796341295f,
255
88.5M
          0.0,
256
88.5M
          -0.3531238544981624f,
257
88.5M
          -0.6035859033230976f,
258
88.5M
      },
259
88.5M
      {
260
88.5M
          0.0,
261
88.5M
          0.0,
262
88.5M
          0.40824829046386274f,
263
88.5M
          0.0,
264
88.5M
          0.0,
265
88.5M
          0.0,
266
88.5M
          0.0,
267
88.5M
          -0.4082482904638628f,
268
88.5M
          -0.4082482904638635f,
269
88.5M
          0.0,
270
88.5M
          0.0,
271
88.5M
          -0.40824829046386296f,
272
88.5M
          0.0,
273
88.5M
          0.4082482904638634f,
274
88.5M
          0.408248290463863f,
275
88.5M
          0.0,
276
88.5M
      },
277
88.5M
      {
278
88.5M
          0.0,
279
88.5M
          0.0,
280
88.5M
          0.1747866975480809f,
281
88.5M
          0.0812611176717539f,
282
88.5M
          0.0,
283
88.5M
          0.0,
284
88.5M
          -0.3675398009862027f,
285
88.5M
          -0.307882213957909f,
286
88.5M
          -0.17478669754808135f,
287
88.5M
          0.3675398009862011f,
288
88.5M
          0.0,
289
88.5M
          0.4826689115059883f,
290
88.5M
          -0.08126111767175039f,
291
88.5M
          0.30788221395790305f,
292
88.5M
          -0.48266891150598584f,
293
88.5M
          0.0,
294
88.5M
      },
295
88.5M
      {
296
88.5M
          0.0,
297
88.5M
          0.0,
298
88.5M
          -0.21105601049335784f,
299
88.5M
          0.18567180916109802f,
300
88.5M
          0.0,
301
88.5M
          0.0,
302
88.5M
          0.49215859013738733f,
303
88.5M
          -0.38525013709251915f,
304
88.5M
          0.21105601049335806f,
305
88.5M
          -0.49215859013738905f,
306
88.5M
          0.0,
307
88.5M
          0.17419412659916217f,
308
88.5M
          -0.18567180916109904f,
309
88.5M
          0.3852501370925211f,
310
88.5M
          -0.1741941265991621f,
311
88.5M
          0.0,
312
88.5M
      },
313
88.5M
      {
314
88.5M
          0.0,
315
88.5M
          0.0,
316
88.5M
          -0.14266084808807264f,
317
88.5M
          -0.3416446842253372f,
318
88.5M
          0.0,
319
88.5M
          0.7367497537172237f,
320
88.5M
          0.24627107722075148f,
321
88.5M
          -0.08574019035519306f,
322
88.5M
          -0.14266084808807344f,
323
88.5M
          0.24627107722075137f,
324
88.5M
          0.14883399227113567f,
325
88.5M
          -0.04768680350229251f,
326
88.5M
          -0.3416446842253373f,
327
88.5M
          -0.08574019035519267f,
328
88.5M
          -0.047686803502292804f,
329
88.5M
          -0.14266084808807242f,
330
88.5M
      },
331
88.5M
      {
332
88.5M
          0.0,
333
88.5M
          0.0,
334
88.5M
          -0.13813540350758585f,
335
88.5M
          0.3302282550303788f,
336
88.5M
          0.0,
337
88.5M
          0.08755115000587084f,
338
88.5M
          -0.07946706605909573f,
339
88.5M
          -0.4613374887461511f,
340
88.5M
          -0.13813540350758294f,
341
88.5M
          -0.07946706605910261f,
342
88.5M
          0.49724647109535086f,
343
88.5M
          0.12538059448563663f,
344
88.5M
          0.3302282550303805f,
345
88.5M
          -0.4613374887461554f,
346
88.5M
          0.12538059448564315f,
347
88.5M
          -0.13813540350758452f,
348
88.5M
      },
349
88.5M
      {
350
88.5M
          0.0,
351
88.5M
          0.0,
352
88.5M
          -0.17437602599651067f,
353
88.5M
          0.0702790691196284f,
354
88.5M
          0.0,
355
88.5M
          -0.2921026642334881f,
356
88.5M
          0.3623817333531167f,
357
88.5M
          0.0,
358
88.5M
          -0.1743760259965108f,
359
88.5M
          0.36238173335311646f,
360
88.5M
          0.29210266423348785f,
361
88.5M
          -0.4326608024727445f,
362
88.5M
          0.07027906911962818f,
363
88.5M
          0.0,
364
88.5M
          -0.4326608024727457f,
365
88.5M
          0.34875205199302267f,
366
88.5M
      },
367
88.5M
      {
368
88.5M
          0.0,
369
88.5M
          0.0,
370
88.5M
          0.11354987314994337f,
371
88.5M
          -0.07417504595810355f,
372
88.5M
          0.0,
373
88.5M
          0.19402893032594343f,
374
88.5M
          -0.435190496523228f,
375
88.5M
          0.21918684838857466f,
376
88.5M
          0.11354987314994257f,
377
88.5M
          -0.4351904965232251f,
378
88.5M
          0.5550443808910661f,
379
88.5M
          -0.25468277124066463f,
380
88.5M
          -0.07417504595810233f,
381
88.5M
          0.2191868483885728f,
382
88.5M
          -0.25468277124066413f,
383
88.5M
          0.1135498731499429f,
384
88.5M
      },
385
88.5M
  };
386
387
88.5M
  const HWY_CAPPED(float, 16) d;
388
265M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
177M
    auto pixel = Zero(d);
390
3.00G
    for (size_t j = 0; j < 16; j++) {
391
2.83G
      auto cf = Set(d, coeffs[j]);
392
2.83G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.83G
      pixel = MulAdd(cf, basis, pixel);
394
2.83G
    }
395
177M
    Store(pixel, d, pixels + i);
396
177M
  }
397
88.5M
}
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
6.38M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
6.38M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
6.38M
      {
98
6.38M
          0.25,
99
6.38M
          0.25,
100
6.38M
          0.25,
101
6.38M
          0.25,
102
6.38M
          0.25,
103
6.38M
          0.25,
104
6.38M
          0.25,
105
6.38M
          0.25,
106
6.38M
          0.25,
107
6.38M
          0.25,
108
6.38M
          0.25,
109
6.38M
          0.25,
110
6.38M
          0.25,
111
6.38M
          0.25,
112
6.38M
          0.25,
113
6.38M
          0.25,
114
6.38M
      },
115
6.38M
      {
116
6.38M
          0.876902929799142f,
117
6.38M
          0.2206518106944235f,
118
6.38M
          -0.10140050393753763f,
119
6.38M
          -0.1014005039375375f,
120
6.38M
          0.2206518106944236f,
121
6.38M
          -0.10140050393753777f,
122
6.38M
          -0.10140050393753772f,
123
6.38M
          -0.10140050393753763f,
124
6.38M
          -0.10140050393753758f,
125
6.38M
          -0.10140050393753769f,
126
6.38M
          -0.1014005039375375f,
127
6.38M
          -0.10140050393753768f,
128
6.38M
          -0.10140050393753768f,
129
6.38M
          -0.10140050393753759f,
130
6.38M
          -0.10140050393753763f,
131
6.38M
          -0.10140050393753741f,
132
6.38M
      },
133
6.38M
      {
134
6.38M
          0.0,
135
6.38M
          0.0,
136
6.38M
          0.40670075830260755f,
137
6.38M
          0.44444816619734445f,
138
6.38M
          0.0,
139
6.38M
          0.0,
140
6.38M
          0.19574399372042936f,
141
6.38M
          0.2929100136981264f,
142
6.38M
          -0.40670075830260716f,
143
6.38M
          -0.19574399372042872f,
144
6.38M
          0.0,
145
6.38M
          0.11379074460448091f,
146
6.38M
          -0.44444816619734384f,
147
6.38M
          -0.29291001369812636f,
148
6.38M
          -0.1137907446044814f,
149
6.38M
          0.0,
150
6.38M
      },
151
6.38M
      {
152
6.38M
          0.0,
153
6.38M
          0.0,
154
6.38M
          -0.21255748058288748f,
155
6.38M
          0.3085497062849767f,
156
6.38M
          0.0,
157
6.38M
          0.4706702258572536f,
158
6.38M
          -0.1621205195722993f,
159
6.38M
          0.0,
160
6.38M
          -0.21255748058287047f,
161
6.38M
          -0.16212051957228327f,
162
6.38M
          -0.47067022585725277f,
163
6.38M
          -0.1464291867126764f,
164
6.38M
          0.3085497062849487f,
165
6.38M
          0.0,
166
6.38M
          -0.14642918671266536f,
167
6.38M
          0.4251149611657548f,
168
6.38M
      },
169
6.38M
      {
170
6.38M
          0.0,
171
6.38M
          -0.7071067811865474f,
172
6.38M
          0.0,
173
6.38M
          0.0,
174
6.38M
          0.7071067811865476f,
175
6.38M
          0.0,
176
6.38M
          0.0,
177
6.38M
          0.0,
178
6.38M
          0.0,
179
6.38M
          0.0,
180
6.38M
          0.0,
181
6.38M
          0.0,
182
6.38M
          0.0,
183
6.38M
          0.0,
184
6.38M
          0.0,
185
6.38M
          0.0,
186
6.38M
      },
187
6.38M
      {
188
6.38M
          -0.4105377591765233f,
189
6.38M
          0.6235485373547691f,
190
6.38M
          -0.06435071657946274f,
191
6.38M
          -0.06435071657946266f,
192
6.38M
          0.6235485373547694f,
193
6.38M
          -0.06435071657946284f,
194
6.38M
          -0.0643507165794628f,
195
6.38M
          -0.06435071657946274f,
196
6.38M
          -0.06435071657946272f,
197
6.38M
          -0.06435071657946279f,
198
6.38M
          -0.06435071657946266f,
199
6.38M
          -0.06435071657946277f,
200
6.38M
          -0.06435071657946277f,
201
6.38M
          -0.06435071657946273f,
202
6.38M
          -0.06435071657946274f,
203
6.38M
          -0.0643507165794626f,
204
6.38M
      },
205
6.38M
      {
206
6.38M
          0.0,
207
6.38M
          0.0,
208
6.38M
          -0.4517556589999482f,
209
6.38M
          0.15854503551840063f,
210
6.38M
          0.0,
211
6.38M
          -0.04038515160822202f,
212
6.38M
          0.0074182263792423875f,
213
6.38M
          0.39351034269210167f,
214
6.38M
          -0.45175565899994635f,
215
6.38M
          0.007418226379244351f,
216
6.38M
          0.1107416575309343f,
217
6.38M
          0.08298163094882051f,
218
6.38M
          0.15854503551839705f,
219
6.38M
          0.3935103426921022f,
220
6.38M
          0.0829816309488214f,
221
6.38M
          -0.45175565899994796f,
222
6.38M
      },
223
6.38M
      {
224
6.38M
          0.0,
225
6.38M
          0.0,
226
6.38M
          -0.304684750724869f,
227
6.38M
          0.5112616136591823f,
228
6.38M
          0.0,
229
6.38M
          0.0,
230
6.38M
          -0.290480129728998f,
231
6.38M
          -0.06578701549142804f,
232
6.38M
          0.304684750724884f,
233
6.38M
          0.2904801297290076f,
234
6.38M
          0.0,
235
6.38M
          -0.23889773523344604f,
236
6.38M
          -0.5112616136592012f,
237
6.38M
          0.06578701549142545f,
238
6.38M
          0.23889773523345467f,
239
6.38M
          0.0,
240
6.38M
      },
241
6.38M
      {
242
6.38M
          0.0,
243
6.38M
          0.0,
244
6.38M
          0.3017929516615495f,
245
6.38M
          0.25792362796341184f,
246
6.38M
          0.0,
247
6.38M
          0.16272340142866204f,
248
6.38M
          0.09520022653475037f,
249
6.38M
          0.0,
250
6.38M
          0.3017929516615503f,
251
6.38M
          0.09520022653475055f,
252
6.38M
          -0.16272340142866173f,
253
6.38M
          -0.35312385449816297f,
254
6.38M
          0.25792362796341295f,
255
6.38M
          0.0,
256
6.38M
          -0.3531238544981624f,
257
6.38M
          -0.6035859033230976f,
258
6.38M
      },
259
6.38M
      {
260
6.38M
          0.0,
261
6.38M
          0.0,
262
6.38M
          0.40824829046386274f,
263
6.38M
          0.0,
264
6.38M
          0.0,
265
6.38M
          0.0,
266
6.38M
          0.0,
267
6.38M
          -0.4082482904638628f,
268
6.38M
          -0.4082482904638635f,
269
6.38M
          0.0,
270
6.38M
          0.0,
271
6.38M
          -0.40824829046386296f,
272
6.38M
          0.0,
273
6.38M
          0.4082482904638634f,
274
6.38M
          0.408248290463863f,
275
6.38M
          0.0,
276
6.38M
      },
277
6.38M
      {
278
6.38M
          0.0,
279
6.38M
          0.0,
280
6.38M
          0.1747866975480809f,
281
6.38M
          0.0812611176717539f,
282
6.38M
          0.0,
283
6.38M
          0.0,
284
6.38M
          -0.3675398009862027f,
285
6.38M
          -0.307882213957909f,
286
6.38M
          -0.17478669754808135f,
287
6.38M
          0.3675398009862011f,
288
6.38M
          0.0,
289
6.38M
          0.4826689115059883f,
290
6.38M
          -0.08126111767175039f,
291
6.38M
          0.30788221395790305f,
292
6.38M
          -0.48266891150598584f,
293
6.38M
          0.0,
294
6.38M
      },
295
6.38M
      {
296
6.38M
          0.0,
297
6.38M
          0.0,
298
6.38M
          -0.21105601049335784f,
299
6.38M
          0.18567180916109802f,
300
6.38M
          0.0,
301
6.38M
          0.0,
302
6.38M
          0.49215859013738733f,
303
6.38M
          -0.38525013709251915f,
304
6.38M
          0.21105601049335806f,
305
6.38M
          -0.49215859013738905f,
306
6.38M
          0.0,
307
6.38M
          0.17419412659916217f,
308
6.38M
          -0.18567180916109904f,
309
6.38M
          0.3852501370925211f,
310
6.38M
          -0.1741941265991621f,
311
6.38M
          0.0,
312
6.38M
      },
313
6.38M
      {
314
6.38M
          0.0,
315
6.38M
          0.0,
316
6.38M
          -0.14266084808807264f,
317
6.38M
          -0.3416446842253372f,
318
6.38M
          0.0,
319
6.38M
          0.7367497537172237f,
320
6.38M
          0.24627107722075148f,
321
6.38M
          -0.08574019035519306f,
322
6.38M
          -0.14266084808807344f,
323
6.38M
          0.24627107722075137f,
324
6.38M
          0.14883399227113567f,
325
6.38M
          -0.04768680350229251f,
326
6.38M
          -0.3416446842253373f,
327
6.38M
          -0.08574019035519267f,
328
6.38M
          -0.047686803502292804f,
329
6.38M
          -0.14266084808807242f,
330
6.38M
      },
331
6.38M
      {
332
6.38M
          0.0,
333
6.38M
          0.0,
334
6.38M
          -0.13813540350758585f,
335
6.38M
          0.3302282550303788f,
336
6.38M
          0.0,
337
6.38M
          0.08755115000587084f,
338
6.38M
          -0.07946706605909573f,
339
6.38M
          -0.4613374887461511f,
340
6.38M
          -0.13813540350758294f,
341
6.38M
          -0.07946706605910261f,
342
6.38M
          0.49724647109535086f,
343
6.38M
          0.12538059448563663f,
344
6.38M
          0.3302282550303805f,
345
6.38M
          -0.4613374887461554f,
346
6.38M
          0.12538059448564315f,
347
6.38M
          -0.13813540350758452f,
348
6.38M
      },
349
6.38M
      {
350
6.38M
          0.0,
351
6.38M
          0.0,
352
6.38M
          -0.17437602599651067f,
353
6.38M
          0.0702790691196284f,
354
6.38M
          0.0,
355
6.38M
          -0.2921026642334881f,
356
6.38M
          0.3623817333531167f,
357
6.38M
          0.0,
358
6.38M
          -0.1743760259965108f,
359
6.38M
          0.36238173335311646f,
360
6.38M
          0.29210266423348785f,
361
6.38M
          -0.4326608024727445f,
362
6.38M
          0.07027906911962818f,
363
6.38M
          0.0,
364
6.38M
          -0.4326608024727457f,
365
6.38M
          0.34875205199302267f,
366
6.38M
      },
367
6.38M
      {
368
6.38M
          0.0,
369
6.38M
          0.0,
370
6.38M
          0.11354987314994337f,
371
6.38M
          -0.07417504595810355f,
372
6.38M
          0.0,
373
6.38M
          0.19402893032594343f,
374
6.38M
          -0.435190496523228f,
375
6.38M
          0.21918684838857466f,
376
6.38M
          0.11354987314994257f,
377
6.38M
          -0.4351904965232251f,
378
6.38M
          0.5550443808910661f,
379
6.38M
          -0.25468277124066463f,
380
6.38M
          -0.07417504595810233f,
381
6.38M
          0.2191868483885728f,
382
6.38M
          -0.25468277124066413f,
383
6.38M
          0.1135498731499429f,
384
6.38M
      },
385
6.38M
  };
386
387
6.38M
  const HWY_CAPPED(float, 16) d;
388
19.1M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
12.7M
    auto pixel = Zero(d);
390
216M
    for (size_t j = 0; j < 16; j++) {
391
204M
      auto cf = Set(d, coeffs[j]);
392
204M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
204M
      pixel = MulAdd(cf, basis, pixel);
394
204M
    }
395
12.7M
    Store(pixel, d, pixels + i);
396
12.7M
  }
397
6.38M
}
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
82.1M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
82.1M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
82.1M
      {
98
82.1M
          0.25,
99
82.1M
          0.25,
100
82.1M
          0.25,
101
82.1M
          0.25,
102
82.1M
          0.25,
103
82.1M
          0.25,
104
82.1M
          0.25,
105
82.1M
          0.25,
106
82.1M
          0.25,
107
82.1M
          0.25,
108
82.1M
          0.25,
109
82.1M
          0.25,
110
82.1M
          0.25,
111
82.1M
          0.25,
112
82.1M
          0.25,
113
82.1M
          0.25,
114
82.1M
      },
115
82.1M
      {
116
82.1M
          0.876902929799142f,
117
82.1M
          0.2206518106944235f,
118
82.1M
          -0.10140050393753763f,
119
82.1M
          -0.1014005039375375f,
120
82.1M
          0.2206518106944236f,
121
82.1M
          -0.10140050393753777f,
122
82.1M
          -0.10140050393753772f,
123
82.1M
          -0.10140050393753763f,
124
82.1M
          -0.10140050393753758f,
125
82.1M
          -0.10140050393753769f,
126
82.1M
          -0.1014005039375375f,
127
82.1M
          -0.10140050393753768f,
128
82.1M
          -0.10140050393753768f,
129
82.1M
          -0.10140050393753759f,
130
82.1M
          -0.10140050393753763f,
131
82.1M
          -0.10140050393753741f,
132
82.1M
      },
133
82.1M
      {
134
82.1M
          0.0,
135
82.1M
          0.0,
136
82.1M
          0.40670075830260755f,
137
82.1M
          0.44444816619734445f,
138
82.1M
          0.0,
139
82.1M
          0.0,
140
82.1M
          0.19574399372042936f,
141
82.1M
          0.2929100136981264f,
142
82.1M
          -0.40670075830260716f,
143
82.1M
          -0.19574399372042872f,
144
82.1M
          0.0,
145
82.1M
          0.11379074460448091f,
146
82.1M
          -0.44444816619734384f,
147
82.1M
          -0.29291001369812636f,
148
82.1M
          -0.1137907446044814f,
149
82.1M
          0.0,
150
82.1M
      },
151
82.1M
      {
152
82.1M
          0.0,
153
82.1M
          0.0,
154
82.1M
          -0.21255748058288748f,
155
82.1M
          0.3085497062849767f,
156
82.1M
          0.0,
157
82.1M
          0.4706702258572536f,
158
82.1M
          -0.1621205195722993f,
159
82.1M
          0.0,
160
82.1M
          -0.21255748058287047f,
161
82.1M
          -0.16212051957228327f,
162
82.1M
          -0.47067022585725277f,
163
82.1M
          -0.1464291867126764f,
164
82.1M
          0.3085497062849487f,
165
82.1M
          0.0,
166
82.1M
          -0.14642918671266536f,
167
82.1M
          0.4251149611657548f,
168
82.1M
      },
169
82.1M
      {
170
82.1M
          0.0,
171
82.1M
          -0.7071067811865474f,
172
82.1M
          0.0,
173
82.1M
          0.0,
174
82.1M
          0.7071067811865476f,
175
82.1M
          0.0,
176
82.1M
          0.0,
177
82.1M
          0.0,
178
82.1M
          0.0,
179
82.1M
          0.0,
180
82.1M
          0.0,
181
82.1M
          0.0,
182
82.1M
          0.0,
183
82.1M
          0.0,
184
82.1M
          0.0,
185
82.1M
          0.0,
186
82.1M
      },
187
82.1M
      {
188
82.1M
          -0.4105377591765233f,
189
82.1M
          0.6235485373547691f,
190
82.1M
          -0.06435071657946274f,
191
82.1M
          -0.06435071657946266f,
192
82.1M
          0.6235485373547694f,
193
82.1M
          -0.06435071657946284f,
194
82.1M
          -0.0643507165794628f,
195
82.1M
          -0.06435071657946274f,
196
82.1M
          -0.06435071657946272f,
197
82.1M
          -0.06435071657946279f,
198
82.1M
          -0.06435071657946266f,
199
82.1M
          -0.06435071657946277f,
200
82.1M
          -0.06435071657946277f,
201
82.1M
          -0.06435071657946273f,
202
82.1M
          -0.06435071657946274f,
203
82.1M
          -0.0643507165794626f,
204
82.1M
      },
205
82.1M
      {
206
82.1M
          0.0,
207
82.1M
          0.0,
208
82.1M
          -0.4517556589999482f,
209
82.1M
          0.15854503551840063f,
210
82.1M
          0.0,
211
82.1M
          -0.04038515160822202f,
212
82.1M
          0.0074182263792423875f,
213
82.1M
          0.39351034269210167f,
214
82.1M
          -0.45175565899994635f,
215
82.1M
          0.007418226379244351f,
216
82.1M
          0.1107416575309343f,
217
82.1M
          0.08298163094882051f,
218
82.1M
          0.15854503551839705f,
219
82.1M
          0.3935103426921022f,
220
82.1M
          0.0829816309488214f,
221
82.1M
          -0.45175565899994796f,
222
82.1M
      },
223
82.1M
      {
224
82.1M
          0.0,
225
82.1M
          0.0,
226
82.1M
          -0.304684750724869f,
227
82.1M
          0.5112616136591823f,
228
82.1M
          0.0,
229
82.1M
          0.0,
230
82.1M
          -0.290480129728998f,
231
82.1M
          -0.06578701549142804f,
232
82.1M
          0.304684750724884f,
233
82.1M
          0.2904801297290076f,
234
82.1M
          0.0,
235
82.1M
          -0.23889773523344604f,
236
82.1M
          -0.5112616136592012f,
237
82.1M
          0.06578701549142545f,
238
82.1M
          0.23889773523345467f,
239
82.1M
          0.0,
240
82.1M
      },
241
82.1M
      {
242
82.1M
          0.0,
243
82.1M
          0.0,
244
82.1M
          0.3017929516615495f,
245
82.1M
          0.25792362796341184f,
246
82.1M
          0.0,
247
82.1M
          0.16272340142866204f,
248
82.1M
          0.09520022653475037f,
249
82.1M
          0.0,
250
82.1M
          0.3017929516615503f,
251
82.1M
          0.09520022653475055f,
252
82.1M
          -0.16272340142866173f,
253
82.1M
          -0.35312385449816297f,
254
82.1M
          0.25792362796341295f,
255
82.1M
          0.0,
256
82.1M
          -0.3531238544981624f,
257
82.1M
          -0.6035859033230976f,
258
82.1M
      },
259
82.1M
      {
260
82.1M
          0.0,
261
82.1M
          0.0,
262
82.1M
          0.40824829046386274f,
263
82.1M
          0.0,
264
82.1M
          0.0,
265
82.1M
          0.0,
266
82.1M
          0.0,
267
82.1M
          -0.4082482904638628f,
268
82.1M
          -0.4082482904638635f,
269
82.1M
          0.0,
270
82.1M
          0.0,
271
82.1M
          -0.40824829046386296f,
272
82.1M
          0.0,
273
82.1M
          0.4082482904638634f,
274
82.1M
          0.408248290463863f,
275
82.1M
          0.0,
276
82.1M
      },
277
82.1M
      {
278
82.1M
          0.0,
279
82.1M
          0.0,
280
82.1M
          0.1747866975480809f,
281
82.1M
          0.0812611176717539f,
282
82.1M
          0.0,
283
82.1M
          0.0,
284
82.1M
          -0.3675398009862027f,
285
82.1M
          -0.307882213957909f,
286
82.1M
          -0.17478669754808135f,
287
82.1M
          0.3675398009862011f,
288
82.1M
          0.0,
289
82.1M
          0.4826689115059883f,
290
82.1M
          -0.08126111767175039f,
291
82.1M
          0.30788221395790305f,
292
82.1M
          -0.48266891150598584f,
293
82.1M
          0.0,
294
82.1M
      },
295
82.1M
      {
296
82.1M
          0.0,
297
82.1M
          0.0,
298
82.1M
          -0.21105601049335784f,
299
82.1M
          0.18567180916109802f,
300
82.1M
          0.0,
301
82.1M
          0.0,
302
82.1M
          0.49215859013738733f,
303
82.1M
          -0.38525013709251915f,
304
82.1M
          0.21105601049335806f,
305
82.1M
          -0.49215859013738905f,
306
82.1M
          0.0,
307
82.1M
          0.17419412659916217f,
308
82.1M
          -0.18567180916109904f,
309
82.1M
          0.3852501370925211f,
310
82.1M
          -0.1741941265991621f,
311
82.1M
          0.0,
312
82.1M
      },
313
82.1M
      {
314
82.1M
          0.0,
315
82.1M
          0.0,
316
82.1M
          -0.14266084808807264f,
317
82.1M
          -0.3416446842253372f,
318
82.1M
          0.0,
319
82.1M
          0.7367497537172237f,
320
82.1M
          0.24627107722075148f,
321
82.1M
          -0.08574019035519306f,
322
82.1M
          -0.14266084808807344f,
323
82.1M
          0.24627107722075137f,
324
82.1M
          0.14883399227113567f,
325
82.1M
          -0.04768680350229251f,
326
82.1M
          -0.3416446842253373f,
327
82.1M
          -0.08574019035519267f,
328
82.1M
          -0.047686803502292804f,
329
82.1M
          -0.14266084808807242f,
330
82.1M
      },
331
82.1M
      {
332
82.1M
          0.0,
333
82.1M
          0.0,
334
82.1M
          -0.13813540350758585f,
335
82.1M
          0.3302282550303788f,
336
82.1M
          0.0,
337
82.1M
          0.08755115000587084f,
338
82.1M
          -0.07946706605909573f,
339
82.1M
          -0.4613374887461511f,
340
82.1M
          -0.13813540350758294f,
341
82.1M
          -0.07946706605910261f,
342
82.1M
          0.49724647109535086f,
343
82.1M
          0.12538059448563663f,
344
82.1M
          0.3302282550303805f,
345
82.1M
          -0.4613374887461554f,
346
82.1M
          0.12538059448564315f,
347
82.1M
          -0.13813540350758452f,
348
82.1M
      },
349
82.1M
      {
350
82.1M
          0.0,
351
82.1M
          0.0,
352
82.1M
          -0.17437602599651067f,
353
82.1M
          0.0702790691196284f,
354
82.1M
          0.0,
355
82.1M
          -0.2921026642334881f,
356
82.1M
          0.3623817333531167f,
357
82.1M
          0.0,
358
82.1M
          -0.1743760259965108f,
359
82.1M
          0.36238173335311646f,
360
82.1M
          0.29210266423348785f,
361
82.1M
          -0.4326608024727445f,
362
82.1M
          0.07027906911962818f,
363
82.1M
          0.0,
364
82.1M
          -0.4326608024727457f,
365
82.1M
          0.34875205199302267f,
366
82.1M
      },
367
82.1M
      {
368
82.1M
          0.0,
369
82.1M
          0.0,
370
82.1M
          0.11354987314994337f,
371
82.1M
          -0.07417504595810355f,
372
82.1M
          0.0,
373
82.1M
          0.19402893032594343f,
374
82.1M
          -0.435190496523228f,
375
82.1M
          0.21918684838857466f,
376
82.1M
          0.11354987314994257f,
377
82.1M
          -0.4351904965232251f,
378
82.1M
          0.5550443808910661f,
379
82.1M
          -0.25468277124066463f,
380
82.1M
          -0.07417504595810233f,
381
82.1M
          0.2191868483885728f,
382
82.1M
          -0.25468277124066413f,
383
82.1M
          0.1135498731499429f,
384
82.1M
      },
385
82.1M
  };
386
387
82.1M
  const HWY_CAPPED(float, 16) d;
388
246M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
164M
    auto pixel = Zero(d);
390
2.79G
    for (size_t j = 0; j < 16; j++) {
391
2.62G
      auto cf = Set(d, coeffs[j]);
392
2.62G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.62G
      pixel = MulAdd(cf, basis, pixel);
394
2.62G
    }
395
164M
    Store(pixel, d, pixels + i);
396
164M
  }
397
82.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
88.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
88.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
88.5M
  size_t afv_x = afv_kind & 1;
404
88.5M
  size_t afv_y = afv_kind / 2;
405
88.5M
  float dcs[3] = {};
406
88.5M
  float block00 = coefficients[0];
407
88.5M
  float block01 = coefficients[1];
408
88.5M
  float block10 = coefficients[8];
409
88.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
88.5M
  dcs[1] = (block00 + block10 - block01);
411
88.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
88.5M
  HWY_ALIGN float coeff[4 * 4];
414
88.5M
  coeff[0] = dcs[0];
415
442M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.77G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.41G
      if (ix == 0 && iy == 0) continue;
418
1.32G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.32G
    }
420
354M
  }
421
88.5M
  HWY_ALIGN float block[4 * 8];
422
88.5M
  AFVIDCT4x4(coeff, block);
423
442M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.77G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.41G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.41G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.41G
    }
428
354M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
88.5M
  block[0] = dcs[1];
431
442M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.77G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.41G
      if (ix == 0 && iy == 0) continue;
434
1.32G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.32G
    }
436
354M
  }
437
88.5M
  ComputeScaledIDCT<4, 4>()(
438
88.5M
      block,
439
88.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
88.5M
            pixels_stride),
441
88.5M
      scratch_space);
442
  // IDCT4x8.
443
88.5M
  block[0] = dcs[2];
444
442M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.18G
    for (size_t ix = 0; ix < 8; ix++) {
446
2.83G
      if (ix == 0 && iy == 0) continue;
447
2.74G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
2.74G
    }
449
354M
  }
450
88.5M
  ComputeScaledIDCT<4, 8>()(
451
88.5M
      block,
452
88.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
88.5M
      scratch_space);
454
88.5M
}
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
1.11M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.11M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.11M
  size_t afv_x = afv_kind & 1;
404
1.11M
  size_t afv_y = afv_kind / 2;
405
1.11M
  float dcs[3] = {};
406
1.11M
  float block00 = coefficients[0];
407
1.11M
  float block01 = coefficients[1];
408
1.11M
  float block10 = coefficients[8];
409
1.11M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.11M
  dcs[1] = (block00 + block10 - block01);
411
1.11M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.11M
  HWY_ALIGN float coeff[4 * 4];
414
1.11M
  coeff[0] = dcs[0];
415
5.58M
  for (size_t iy = 0; iy < 4; iy++) {
416
22.3M
    for (size_t ix = 0; ix < 4; ix++) {
417
17.8M
      if (ix == 0 && iy == 0) continue;
418
16.7M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
16.7M
    }
420
4.46M
  }
421
1.11M
  HWY_ALIGN float block[4 * 8];
422
1.11M
  AFVIDCT4x4(coeff, block);
423
5.58M
  for (size_t iy = 0; iy < 4; iy++) {
424
22.3M
    for (size_t ix = 0; ix < 4; ix++) {
425
17.8M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
17.8M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
17.8M
    }
428
4.46M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.11M
  block[0] = dcs[1];
431
5.58M
  for (size_t iy = 0; iy < 4; iy++) {
432
22.3M
    for (size_t ix = 0; ix < 4; ix++) {
433
17.8M
      if (ix == 0 && iy == 0) continue;
434
16.7M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
16.7M
    }
436
4.46M
  }
437
1.11M
  ComputeScaledIDCT<4, 4>()(
438
1.11M
      block,
439
1.11M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.11M
            pixels_stride),
441
1.11M
      scratch_space);
442
  // IDCT4x8.
443
1.11M
  block[0] = dcs[2];
444
5.58M
  for (size_t iy = 0; iy < 4; iy++) {
445
40.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
35.7M
      if (ix == 0 && iy == 0) continue;
447
34.6M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
34.6M
    }
449
4.46M
  }
450
1.11M
  ComputeScaledIDCT<4, 8>()(
451
1.11M
      block,
452
1.11M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.11M
      scratch_space);
454
1.11M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
3.42M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
3.42M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
3.42M
  size_t afv_x = afv_kind & 1;
404
3.42M
  size_t afv_y = afv_kind / 2;
405
3.42M
  float dcs[3] = {};
406
3.42M
  float block00 = coefficients[0];
407
3.42M
  float block01 = coefficients[1];
408
3.42M
  float block10 = coefficients[8];
409
3.42M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
3.42M
  dcs[1] = (block00 + block10 - block01);
411
3.42M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
3.42M
  HWY_ALIGN float coeff[4 * 4];
414
3.42M
  coeff[0] = dcs[0];
415
17.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
68.4M
    for (size_t ix = 0; ix < 4; ix++) {
417
54.7M
      if (ix == 0 && iy == 0) continue;
418
51.3M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
51.3M
    }
420
13.6M
  }
421
3.42M
  HWY_ALIGN float block[4 * 8];
422
3.42M
  AFVIDCT4x4(coeff, block);
423
17.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
68.4M
    for (size_t ix = 0; ix < 4; ix++) {
425
54.7M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
54.7M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
54.7M
    }
428
13.6M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
3.42M
  block[0] = dcs[1];
431
17.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
68.4M
    for (size_t ix = 0; ix < 4; ix++) {
433
54.7M
      if (ix == 0 && iy == 0) continue;
434
51.3M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
51.3M
    }
436
13.6M
  }
437
3.42M
  ComputeScaledIDCT<4, 4>()(
438
3.42M
      block,
439
3.42M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
3.42M
            pixels_stride),
441
3.42M
      scratch_space);
442
  // IDCT4x8.
443
3.42M
  block[0] = dcs[2];
444
17.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
123M
    for (size_t ix = 0; ix < 8; ix++) {
446
109M
      if (ix == 0 && iy == 0) continue;
447
106M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
106M
    }
449
13.6M
  }
450
3.42M
  ComputeScaledIDCT<4, 8>()(
451
3.42M
      block,
452
3.42M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
3.42M
      scratch_space);
454
3.42M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
662k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
662k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
662k
  size_t afv_x = afv_kind & 1;
404
662k
  size_t afv_y = afv_kind / 2;
405
662k
  float dcs[3] = {};
406
662k
  float block00 = coefficients[0];
407
662k
  float block01 = coefficients[1];
408
662k
  float block10 = coefficients[8];
409
662k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
662k
  dcs[1] = (block00 + block10 - block01);
411
662k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
662k
  HWY_ALIGN float coeff[4 * 4];
414
662k
  coeff[0] = dcs[0];
415
3.31M
  for (size_t iy = 0; iy < 4; iy++) {
416
13.2M
    for (size_t ix = 0; ix < 4; ix++) {
417
10.6M
      if (ix == 0 && iy == 0) continue;
418
9.94M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
9.94M
    }
420
2.65M
  }
421
662k
  HWY_ALIGN float block[4 * 8];
422
662k
  AFVIDCT4x4(coeff, block);
423
3.31M
  for (size_t iy = 0; iy < 4; iy++) {
424
13.2M
    for (size_t ix = 0; ix < 4; ix++) {
425
10.6M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
10.6M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
10.6M
    }
428
2.65M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
662k
  block[0] = dcs[1];
431
3.31M
  for (size_t iy = 0; iy < 4; iy++) {
432
13.2M
    for (size_t ix = 0; ix < 4; ix++) {
433
10.6M
      if (ix == 0 && iy == 0) continue;
434
9.94M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
9.94M
    }
436
2.65M
  }
437
662k
  ComputeScaledIDCT<4, 4>()(
438
662k
      block,
439
662k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
662k
            pixels_stride),
441
662k
      scratch_space);
442
  // IDCT4x8.
443
662k
  block[0] = dcs[2];
444
3.31M
  for (size_t iy = 0; iy < 4; iy++) {
445
23.8M
    for (size_t ix = 0; ix < 8; ix++) {
446
21.2M
      if (ix == 0 && iy == 0) continue;
447
20.5M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
20.5M
    }
449
2.65M
  }
450
662k
  ComputeScaledIDCT<4, 8>()(
451
662k
      block,
452
662k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
662k
      scratch_space);
454
662k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.17M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.17M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.17M
  size_t afv_x = afv_kind & 1;
404
1.17M
  size_t afv_y = afv_kind / 2;
405
1.17M
  float dcs[3] = {};
406
1.17M
  float block00 = coefficients[0];
407
1.17M
  float block01 = coefficients[1];
408
1.17M
  float block10 = coefficients[8];
409
1.17M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.17M
  dcs[1] = (block00 + block10 - block01);
411
1.17M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.17M
  HWY_ALIGN float coeff[4 * 4];
414
1.17M
  coeff[0] = dcs[0];
415
5.89M
  for (size_t iy = 0; iy < 4; iy++) {
416
23.5M
    for (size_t ix = 0; ix < 4; ix++) {
417
18.8M
      if (ix == 0 && iy == 0) continue;
418
17.6M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
17.6M
    }
420
4.71M
  }
421
1.17M
  HWY_ALIGN float block[4 * 8];
422
1.17M
  AFVIDCT4x4(coeff, block);
423
5.89M
  for (size_t iy = 0; iy < 4; iy++) {
424
23.5M
    for (size_t ix = 0; ix < 4; ix++) {
425
18.8M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
18.8M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
18.8M
    }
428
4.71M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.17M
  block[0] = dcs[1];
431
5.89M
  for (size_t iy = 0; iy < 4; iy++) {
432
23.5M
    for (size_t ix = 0; ix < 4; ix++) {
433
18.8M
      if (ix == 0 && iy == 0) continue;
434
17.6M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
17.6M
    }
436
4.71M
  }
437
1.17M
  ComputeScaledIDCT<4, 4>()(
438
1.17M
      block,
439
1.17M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.17M
            pixels_stride),
441
1.17M
      scratch_space);
442
  // IDCT4x8.
443
1.17M
  block[0] = dcs[2];
444
5.89M
  for (size_t iy = 0; iy < 4; iy++) {
445
42.4M
    for (size_t ix = 0; ix < 8; ix++) {
446
37.7M
      if (ix == 0 && iy == 0) continue;
447
36.5M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
36.5M
    }
449
4.71M
  }
450
1.17M
  ComputeScaledIDCT<4, 8>()(
451
1.17M
      block,
452
1.17M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.17M
      scratch_space);
454
1.17M
}
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
20.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
20.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
20.5M
  size_t afv_x = afv_kind & 1;
404
20.5M
  size_t afv_y = afv_kind / 2;
405
20.5M
  float dcs[3] = {};
406
20.5M
  float block00 = coefficients[0];
407
20.5M
  float block01 = coefficients[1];
408
20.5M
  float block10 = coefficients[8];
409
20.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
20.5M
  dcs[1] = (block00 + block10 - block01);
411
20.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
20.5M
  HWY_ALIGN float coeff[4 * 4];
414
20.5M
  coeff[0] = dcs[0];
415
102M
  for (size_t iy = 0; iy < 4; iy++) {
416
410M
    for (size_t ix = 0; ix < 4; ix++) {
417
328M
      if (ix == 0 && iy == 0) continue;
418
308M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
308M
    }
420
82.1M
  }
421
20.5M
  HWY_ALIGN float block[4 * 8];
422
20.5M
  AFVIDCT4x4(coeff, block);
423
102M
  for (size_t iy = 0; iy < 4; iy++) {
424
410M
    for (size_t ix = 0; ix < 4; ix++) {
425
328M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
328M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
328M
    }
428
82.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
20.5M
  block[0] = dcs[1];
431
102M
  for (size_t iy = 0; iy < 4; iy++) {
432
410M
    for (size_t ix = 0; ix < 4; ix++) {
433
328M
      if (ix == 0 && iy == 0) continue;
434
308M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
308M
    }
436
82.1M
  }
437
20.5M
  ComputeScaledIDCT<4, 4>()(
438
20.5M
      block,
439
20.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
20.5M
            pixels_stride),
441
20.5M
      scratch_space);
442
  // IDCT4x8.
443
20.5M
  block[0] = dcs[2];
444
102M
  for (size_t iy = 0; iy < 4; iy++) {
445
739M
    for (size_t ix = 0; ix < 8; ix++) {
446
657M
      if (ix == 0 && iy == 0) continue;
447
636M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
636M
    }
449
82.1M
  }
450
20.5M
  ComputeScaledIDCT<4, 8>()(
451
20.5M
      block,
452
20.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
20.5M
      scratch_space);
454
20.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
20.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
20.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
20.5M
  size_t afv_x = afv_kind & 1;
404
20.5M
  size_t afv_y = afv_kind / 2;
405
20.5M
  float dcs[3] = {};
406
20.5M
  float block00 = coefficients[0];
407
20.5M
  float block01 = coefficients[1];
408
20.5M
  float block10 = coefficients[8];
409
20.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
20.5M
  dcs[1] = (block00 + block10 - block01);
411
20.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
20.5M
  HWY_ALIGN float coeff[4 * 4];
414
20.5M
  coeff[0] = dcs[0];
415
102M
  for (size_t iy = 0; iy < 4; iy++) {
416
410M
    for (size_t ix = 0; ix < 4; ix++) {
417
328M
      if (ix == 0 && iy == 0) continue;
418
308M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
308M
    }
420
82.1M
  }
421
20.5M
  HWY_ALIGN float block[4 * 8];
422
20.5M
  AFVIDCT4x4(coeff, block);
423
102M
  for (size_t iy = 0; iy < 4; iy++) {
424
410M
    for (size_t ix = 0; ix < 4; ix++) {
425
328M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
328M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
328M
    }
428
82.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
20.5M
  block[0] = dcs[1];
431
102M
  for (size_t iy = 0; iy < 4; iy++) {
432
410M
    for (size_t ix = 0; ix < 4; ix++) {
433
328M
      if (ix == 0 && iy == 0) continue;
434
308M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
308M
    }
436
82.1M
  }
437
20.5M
  ComputeScaledIDCT<4, 4>()(
438
20.5M
      block,
439
20.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
20.5M
            pixels_stride),
441
20.5M
      scratch_space);
442
  // IDCT4x8.
443
20.5M
  block[0] = dcs[2];
444
102M
  for (size_t iy = 0; iy < 4; iy++) {
445
739M
    for (size_t ix = 0; ix < 8; ix++) {
446
657M
      if (ix == 0 && iy == 0) continue;
447
636M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
636M
    }
449
82.1M
  }
450
20.5M
  ComputeScaledIDCT<4, 8>()(
451
20.5M
      block,
452
20.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
20.5M
      scratch_space);
454
20.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
20.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
20.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
20.5M
  size_t afv_x = afv_kind & 1;
404
20.5M
  size_t afv_y = afv_kind / 2;
405
20.5M
  float dcs[3] = {};
406
20.5M
  float block00 = coefficients[0];
407
20.5M
  float block01 = coefficients[1];
408
20.5M
  float block10 = coefficients[8];
409
20.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
20.5M
  dcs[1] = (block00 + block10 - block01);
411
20.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
20.5M
  HWY_ALIGN float coeff[4 * 4];
414
20.5M
  coeff[0] = dcs[0];
415
102M
  for (size_t iy = 0; iy < 4; iy++) {
416
410M
    for (size_t ix = 0; ix < 4; ix++) {
417
328M
      if (ix == 0 && iy == 0) continue;
418
308M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
308M
    }
420
82.1M
  }
421
20.5M
  HWY_ALIGN float block[4 * 8];
422
20.5M
  AFVIDCT4x4(coeff, block);
423
102M
  for (size_t iy = 0; iy < 4; iy++) {
424
410M
    for (size_t ix = 0; ix < 4; ix++) {
425
328M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
328M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
328M
    }
428
82.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
20.5M
  block[0] = dcs[1];
431
102M
  for (size_t iy = 0; iy < 4; iy++) {
432
410M
    for (size_t ix = 0; ix < 4; ix++) {
433
328M
      if (ix == 0 && iy == 0) continue;
434
308M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
308M
    }
436
82.1M
  }
437
20.5M
  ComputeScaledIDCT<4, 4>()(
438
20.5M
      block,
439
20.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
20.5M
            pixels_stride),
441
20.5M
      scratch_space);
442
  // IDCT4x8.
443
20.5M
  block[0] = dcs[2];
444
102M
  for (size_t iy = 0; iy < 4; iy++) {
445
739M
    for (size_t ix = 0; ix < 8; ix++) {
446
657M
      if (ix == 0 && iy == 0) continue;
447
636M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
636M
    }
449
82.1M
  }
450
20.5M
  ComputeScaledIDCT<4, 8>()(
451
20.5M
      block,
452
20.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
20.5M
      scratch_space);
454
20.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
20.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
20.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
20.5M
  size_t afv_x = afv_kind & 1;
404
20.5M
  size_t afv_y = afv_kind / 2;
405
20.5M
  float dcs[3] = {};
406
20.5M
  float block00 = coefficients[0];
407
20.5M
  float block01 = coefficients[1];
408
20.5M
  float block10 = coefficients[8];
409
20.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
20.5M
  dcs[1] = (block00 + block10 - block01);
411
20.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
20.5M
  HWY_ALIGN float coeff[4 * 4];
414
20.5M
  coeff[0] = dcs[0];
415
102M
  for (size_t iy = 0; iy < 4; iy++) {
416
410M
    for (size_t ix = 0; ix < 4; ix++) {
417
328M
      if (ix == 0 && iy == 0) continue;
418
308M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
308M
    }
420
82.1M
  }
421
20.5M
  HWY_ALIGN float block[4 * 8];
422
20.5M
  AFVIDCT4x4(coeff, block);
423
102M
  for (size_t iy = 0; iy < 4; iy++) {
424
410M
    for (size_t ix = 0; ix < 4; ix++) {
425
328M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
328M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
328M
    }
428
82.1M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
20.5M
  block[0] = dcs[1];
431
102M
  for (size_t iy = 0; iy < 4; iy++) {
432
410M
    for (size_t ix = 0; ix < 4; ix++) {
433
328M
      if (ix == 0 && iy == 0) continue;
434
308M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
308M
    }
436
82.1M
  }
437
20.5M
  ComputeScaledIDCT<4, 4>()(
438
20.5M
      block,
439
20.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
20.5M
            pixels_stride),
441
20.5M
      scratch_space);
442
  // IDCT4x8.
443
20.5M
  block[0] = dcs[2];
444
102M
  for (size_t iy = 0; iy < 4; iy++) {
445
739M
    for (size_t ix = 0; ix < 8; ix++) {
446
657M
      if (ix == 0 && iy == 0) continue;
447
636M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
636M
    }
449
82.1M
  }
450
20.5M
  ComputeScaledIDCT<4, 8>()(
451
20.5M
      block,
452
20.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
20.5M
      scratch_space);
454
20.5M
}
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
289M
                                        float* scratch_space) {
461
289M
  using Type = AcStrategyType;
462
289M
  switch (strategy) {
463
23.9M
    case Type::IDENTITY: {
464
23.9M
      float dcs[4] = {};
465
23.9M
      float block00 = coefficients[0];
466
23.9M
      float block01 = coefficients[1];
467
23.9M
      float block10 = coefficients[8];
468
23.9M
      float block11 = coefficients[9];
469
23.9M
      dcs[0] = block00 + block01 + block10 + block11;
470
23.9M
      dcs[1] = block00 + block01 - block10 - block11;
471
23.9M
      dcs[2] = block00 - block01 + block10 - block11;
472
23.9M
      dcs[3] = block00 - block01 - block10 + block11;
473
71.8M
      for (size_t y = 0; y < 2; y++) {
474
143M
        for (size_t x = 0; x < 2; x++) {
475
95.8M
          float block_dc = dcs[y * 2 + x];
476
95.8M
          float residual_sum = 0;
477
479M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.91G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.53G
              if (ix == 0 && iy == 0) continue;
480
1.43G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.43G
            }
482
383M
          }
483
95.8M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
95.8M
              block_dc - residual_sum * (1.0f / 16);
485
479M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.91G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.53G
              if (ix == 1 && iy == 1) continue;
488
1.43G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.43G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.43G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.43G
            }
492
383M
          }
493
95.8M
          pixels[y * 4 * pixels_stride + x * 4] =
494
95.8M
              coefficients[(y + 2) * 8 + x + 2] +
495
95.8M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
95.8M
        }
497
47.9M
      }
498
23.9M
      break;
499
0
    }
500
21.9M
    case Type::DCT8X4: {
501
21.9M
      float dcs[2] = {};
502
21.9M
      float block0 = coefficients[0];
503
21.9M
      float block1 = coefficients[8];
504
21.9M
      dcs[0] = block0 + block1;
505
21.9M
      dcs[1] = block0 - block1;
506
65.9M
      for (size_t x = 0; x < 2; x++) {
507
43.9M
        HWY_ALIGN float block[4 * 8];
508
43.9M
        block[0] = dcs[x];
509
219M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.58G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.40G
            if (ix == 0 && iy == 0) continue;
512
1.36G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.36G
          }
514
175M
        }
515
43.9M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
43.9M
                                  scratch_space);
517
43.9M
      }
518
21.9M
      break;
519
0
    }
520
21.7M
    case Type::DCT4X8: {
521
21.7M
      float dcs[2] = {};
522
21.7M
      float block0 = coefficients[0];
523
21.7M
      float block1 = coefficients[8];
524
21.7M
      dcs[0] = block0 + block1;
525
21.7M
      dcs[1] = block0 - block1;
526
65.1M
      for (size_t y = 0; y < 2; y++) {
527
43.4M
        HWY_ALIGN float block[4 * 8];
528
43.4M
        block[0] = dcs[y];
529
217M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.56G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.39G
            if (ix == 0 && iy == 0) continue;
532
1.34G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.34G
          }
534
173M
        }
535
43.4M
        ComputeScaledIDCT<4, 8>()(
536
43.4M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
43.4M
            scratch_space);
538
43.4M
      }
539
21.7M
      break;
540
0
    }
541
20.5M
    case Type::DCT4X4: {
542
20.5M
      float dcs[4] = {};
543
20.5M
      float block00 = coefficients[0];
544
20.5M
      float block01 = coefficients[1];
545
20.5M
      float block10 = coefficients[8];
546
20.5M
      float block11 = coefficients[9];
547
20.5M
      dcs[0] = block00 + block01 + block10 + block11;
548
20.5M
      dcs[1] = block00 + block01 - block10 - block11;
549
20.5M
      dcs[2] = block00 - block01 + block10 - block11;
550
20.5M
      dcs[3] = block00 - block01 - block10 + block11;
551
61.7M
      for (size_t y = 0; y < 2; y++) {
552
123M
        for (size_t x = 0; x < 2; x++) {
553
82.3M
          HWY_ALIGN float block[4 * 4];
554
82.3M
          block[0] = dcs[y * 2 + x];
555
411M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.64G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.31G
              if (ix == 0 && iy == 0) continue;
558
1.23G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.23G
            }
560
329M
          }
561
82.3M
          ComputeScaledIDCT<4, 4>()(
562
82.3M
              block,
563
82.3M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
82.3M
              scratch_space);
565
82.3M
        }
566
41.1M
      }
567
20.5M
      break;
568
0
    }
569
24.2M
    case Type::DCT2X2: {
570
24.2M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
24.2M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
24.2M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
24.2M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
24.2M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
217M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.74G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.54G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.54G
        }
579
193M
      }
580
24.2M
      break;
581
0
    }
582
8.90M
    case Type::DCT16X16: {
583
8.90M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
8.90M
                                  scratch_space);
585
8.90M
      break;
586
0
    }
587
17.3M
    case Type::DCT16X8: {
588
17.3M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
17.3M
                                 scratch_space);
590
17.3M
      break;
591
0
    }
592
18.1M
    case Type::DCT8X16: {
593
18.1M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
18.1M
                                 scratch_space);
595
18.1M
      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
3.46M
    case Type::DCT32X16: {
608
3.46M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.46M
                                  scratch_space);
610
3.46M
      break;
611
0
    }
612
3.67M
    case Type::DCT16X32: {
613
3.67M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.67M
                                  scratch_space);
615
3.67M
      break;
616
0
    }
617
2.49M
    case Type::DCT32X32: {
618
2.49M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
2.49M
                                  scratch_space);
620
2.49M
      break;
621
0
    }
622
31.8M
    case Type::DCT: {
623
31.8M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
31.8M
                                scratch_space);
625
31.8M
      break;
626
0
    }
627
21.6M
    case Type::AFV0: {
628
21.6M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
21.6M
      break;
630
0
    }
631
23.9M
    case Type::AFV1: {
632
23.9M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
23.9M
      break;
634
0
    }
635
21.1M
    case Type::AFV2: {
636
21.1M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
21.1M
      break;
638
0
    }
639
21.7M
    case Type::AFV3: {
640
21.7M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
21.7M
      break;
642
0
    }
643
1.07M
    case Type::DCT64X32: {
644
1.07M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.07M
                                  scratch_space);
646
1.07M
      break;
647
0
    }
648
716k
    case Type::DCT32X64: {
649
716k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
716k
                                  scratch_space);
651
716k
      break;
652
0
    }
653
488k
    case Type::DCT64X64: {
654
488k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
488k
                                  scratch_space);
656
488k
      break;
657
0
    }
658
66
    case Type::DCT128X64: {
659
66
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
66
                                   scratch_space);
661
66
      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
36
    case Type::DCT256X256: {
684
36
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
36
                                    scratch_space);
686
36
      break;
687
0
    }
688
289M
  }
689
289M
}
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
32.2M
                                        float* scratch_space) {
461
32.2M
  using Type = AcStrategyType;
462
32.2M
  switch (strategy) {
463
3.42M
    case Type::IDENTITY: {
464
3.42M
      float dcs[4] = {};
465
3.42M
      float block00 = coefficients[0];
466
3.42M
      float block01 = coefficients[1];
467
3.42M
      float block10 = coefficients[8];
468
3.42M
      float block11 = coefficients[9];
469
3.42M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.42M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.42M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.42M
      dcs[3] = block00 - block01 - block10 + block11;
473
10.2M
      for (size_t y = 0; y < 2; y++) {
474
20.5M
        for (size_t x = 0; x < 2; x++) {
475
13.7M
          float block_dc = dcs[y * 2 + x];
476
13.7M
          float residual_sum = 0;
477
68.5M
          for (size_t iy = 0; iy < 4; iy++) {
478
274M
            for (size_t ix = 0; ix < 4; ix++) {
479
219M
              if (ix == 0 && iy == 0) continue;
480
205M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
205M
            }
482
54.8M
          }
483
13.7M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
13.7M
              block_dc - residual_sum * (1.0f / 16);
485
68.5M
          for (size_t iy = 0; iy < 4; iy++) {
486
274M
            for (size_t ix = 0; ix < 4; ix++) {
487
219M
              if (ix == 1 && iy == 1) continue;
488
205M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
205M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
205M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
205M
            }
492
54.8M
          }
493
13.7M
          pixels[y * 4 * pixels_stride + x * 4] =
494
13.7M
              coefficients[(y + 2) * 8 + x + 2] +
495
13.7M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
13.7M
        }
497
6.85M
      }
498
3.42M
      break;
499
0
    }
500
1.43M
    case Type::DCT8X4: {
501
1.43M
      float dcs[2] = {};
502
1.43M
      float block0 = coefficients[0];
503
1.43M
      float block1 = coefficients[8];
504
1.43M
      dcs[0] = block0 + block1;
505
1.43M
      dcs[1] = block0 - block1;
506
4.31M
      for (size_t x = 0; x < 2; x++) {
507
2.87M
        HWY_ALIGN float block[4 * 8];
508
2.87M
        block[0] = dcs[x];
509
14.3M
        for (size_t iy = 0; iy < 4; iy++) {
510
103M
          for (size_t ix = 0; ix < 8; ix++) {
511
92.1M
            if (ix == 0 && iy == 0) continue;
512
89.2M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
89.2M
          }
514
11.5M
        }
515
2.87M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
2.87M
                                  scratch_space);
517
2.87M
      }
518
1.43M
      break;
519
0
    }
520
1.19M
    case Type::DCT4X8: {
521
1.19M
      float dcs[2] = {};
522
1.19M
      float block0 = coefficients[0];
523
1.19M
      float block1 = coefficients[8];
524
1.19M
      dcs[0] = block0 + block1;
525
1.19M
      dcs[1] = block0 - block1;
526
3.57M
      for (size_t y = 0; y < 2; y++) {
527
2.38M
        HWY_ALIGN float block[4 * 8];
528
2.38M
        block[0] = dcs[y];
529
11.9M
        for (size_t iy = 0; iy < 4; iy++) {
530
85.8M
          for (size_t ix = 0; ix < 8; ix++) {
531
76.2M
            if (ix == 0 && iy == 0) continue;
532
73.9M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
73.9M
          }
534
9.53M
        }
535
2.38M
        ComputeScaledIDCT<4, 8>()(
536
2.38M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.38M
            scratch_space);
538
2.38M
      }
539
1.19M
      break;
540
0
    }
541
51.0k
    case Type::DCT4X4: {
542
51.0k
      float dcs[4] = {};
543
51.0k
      float block00 = coefficients[0];
544
51.0k
      float block01 = coefficients[1];
545
51.0k
      float block10 = coefficients[8];
546
51.0k
      float block11 = coefficients[9];
547
51.0k
      dcs[0] = block00 + block01 + block10 + block11;
548
51.0k
      dcs[1] = block00 + block01 - block10 - block11;
549
51.0k
      dcs[2] = block00 - block01 + block10 - block11;
550
51.0k
      dcs[3] = block00 - block01 - block10 + block11;
551
153k
      for (size_t y = 0; y < 2; y++) {
552
306k
        for (size_t x = 0; x < 2; x++) {
553
204k
          HWY_ALIGN float block[4 * 4];
554
204k
          block[0] = dcs[y * 2 + x];
555
1.02M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.08M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.26M
              if (ix == 0 && iy == 0) continue;
558
3.06M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.06M
            }
560
816k
          }
561
204k
          ComputeScaledIDCT<4, 4>()(
562
204k
              block,
563
204k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
204k
              scratch_space);
565
204k
        }
566
102k
      }
567
51.0k
      break;
568
0
    }
569
3.66M
    case Type::DCT2X2: {
570
3.66M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.66M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.66M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.66M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.66M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
33.0M
      for (size_t y = 0; y < kBlockDim; y++) {
576
264M
        for (size_t x = 0; x < kBlockDim; x++) {
577
234M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
234M
        }
579
29.3M
      }
580
3.66M
      break;
581
0
    }
582
514k
    case Type::DCT16X16: {
583
514k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
514k
                                  scratch_space);
585
514k
      break;
586
0
    }
587
925k
    case Type::DCT16X8: {
588
925k
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
925k
                                 scratch_space);
590
925k
      break;
591
0
    }
592
1.58M
    case Type::DCT8X16: {
593
1.58M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.58M
                                 scratch_space);
595
1.58M
      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
236k
    case Type::DCT32X16: {
608
236k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
236k
                                  scratch_space);
610
236k
      break;
611
0
    }
612
398k
    case Type::DCT16X32: {
613
398k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
398k
                                  scratch_space);
615
398k
      break;
616
0
    }
617
840k
    case Type::DCT32X32: {
618
840k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
840k
                                  scratch_space);
620
840k
      break;
621
0
    }
622
11.3M
    case Type::DCT: {
623
11.3M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
11.3M
                                scratch_space);
625
11.3M
      break;
626
0
    }
627
1.11M
    case Type::AFV0: {
628
1.11M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
1.11M
      break;
630
0
    }
631
3.42M
    case Type::AFV1: {
632
3.42M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
3.42M
      break;
634
0
    }
635
662k
    case Type::AFV2: {
636
662k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
662k
      break;
638
0
    }
639
1.17M
    case Type::AFV3: {
640
1.17M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
1.17M
      break;
642
0
    }
643
24.3k
    case Type::DCT64X32: {
644
24.3k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
24.3k
                                  scratch_space);
646
24.3k
      break;
647
0
    }
648
31.1k
    case Type::DCT32X64: {
649
31.1k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
31.1k
                                  scratch_space);
651
31.1k
      break;
652
0
    }
653
202k
    case Type::DCT64X64: {
654
202k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
202k
                                  scratch_space);
656
202k
      break;
657
0
    }
658
66
    case Type::DCT128X64: {
659
66
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
66
                                   scratch_space);
661
66
      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
36
    case Type::DCT256X256: {
684
36
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
36
                                    scratch_space);
686
36
      break;
687
0
    }
688
32.2M
  }
689
32.2M
}
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
256M
                                        float* scratch_space) {
461
256M
  using Type = AcStrategyType;
462
256M
  switch (strategy) {
463
20.5M
    case Type::IDENTITY: {
464
20.5M
      float dcs[4] = {};
465
20.5M
      float block00 = coefficients[0];
466
20.5M
      float block01 = coefficients[1];
467
20.5M
      float block10 = coefficients[8];
468
20.5M
      float block11 = coefficients[9];
469
20.5M
      dcs[0] = block00 + block01 + block10 + block11;
470
20.5M
      dcs[1] = block00 + block01 - block10 - block11;
471
20.5M
      dcs[2] = block00 - block01 + block10 - block11;
472
20.5M
      dcs[3] = block00 - block01 - block10 + block11;
473
61.6M
      for (size_t y = 0; y < 2; y++) {
474
123M
        for (size_t x = 0; x < 2; x++) {
475
82.1M
          float block_dc = dcs[y * 2 + x];
476
82.1M
          float residual_sum = 0;
477
410M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.64G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.31G
              if (ix == 0 && iy == 0) continue;
480
1.23G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.23G
            }
482
328M
          }
483
82.1M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
82.1M
              block_dc - residual_sum * (1.0f / 16);
485
410M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.64G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.31G
              if (ix == 1 && iy == 1) continue;
488
1.23G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.23G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.23G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.23G
            }
492
328M
          }
493
82.1M
          pixels[y * 4 * pixels_stride + x * 4] =
494
82.1M
              coefficients[(y + 2) * 8 + x + 2] +
495
82.1M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
82.1M
        }
497
41.0M
      }
498
20.5M
      break;
499
0
    }
500
20.5M
    case Type::DCT8X4: {
501
20.5M
      float dcs[2] = {};
502
20.5M
      float block0 = coefficients[0];
503
20.5M
      float block1 = coefficients[8];
504
20.5M
      dcs[0] = block0 + block1;
505
20.5M
      dcs[1] = block0 - block1;
506
61.6M
      for (size_t x = 0; x < 2; x++) {
507
41.0M
        HWY_ALIGN float block[4 * 8];
508
41.0M
        block[0] = dcs[x];
509
205M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.47G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.31G
            if (ix == 0 && iy == 0) continue;
512
1.27G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.27G
          }
514
164M
        }
515
41.0M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
41.0M
                                  scratch_space);
517
41.0M
      }
518
20.5M
      break;
519
0
    }
520
20.5M
    case Type::DCT4X8: {
521
20.5M
      float dcs[2] = {};
522
20.5M
      float block0 = coefficients[0];
523
20.5M
      float block1 = coefficients[8];
524
20.5M
      dcs[0] = block0 + block1;
525
20.5M
      dcs[1] = block0 - block1;
526
61.6M
      for (size_t y = 0; y < 2; y++) {
527
41.0M
        HWY_ALIGN float block[4 * 8];
528
41.0M
        block[0] = dcs[y];
529
205M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.47G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.31G
            if (ix == 0 && iy == 0) continue;
532
1.27G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.27G
          }
534
164M
        }
535
41.0M
        ComputeScaledIDCT<4, 8>()(
536
41.0M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
41.0M
            scratch_space);
538
41.0M
      }
539
20.5M
      break;
540
0
    }
541
20.5M
    case Type::DCT4X4: {
542
20.5M
      float dcs[4] = {};
543
20.5M
      float block00 = coefficients[0];
544
20.5M
      float block01 = coefficients[1];
545
20.5M
      float block10 = coefficients[8];
546
20.5M
      float block11 = coefficients[9];
547
20.5M
      dcs[0] = block00 + block01 + block10 + block11;
548
20.5M
      dcs[1] = block00 + block01 - block10 - block11;
549
20.5M
      dcs[2] = block00 - block01 + block10 - block11;
550
20.5M
      dcs[3] = block00 - block01 - block10 + block11;
551
61.6M
      for (size_t y = 0; y < 2; y++) {
552
123M
        for (size_t x = 0; x < 2; x++) {
553
82.1M
          HWY_ALIGN float block[4 * 4];
554
82.1M
          block[0] = dcs[y * 2 + x];
555
410M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.64G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.31G
              if (ix == 0 && iy == 0) continue;
558
1.23G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.23G
            }
560
328M
          }
561
82.1M
          ComputeScaledIDCT<4, 4>()(
562
82.1M
              block,
563
82.1M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
82.1M
              scratch_space);
565
82.1M
        }
566
41.0M
      }
567
20.5M
      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
184M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.47G
        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
8.38M
    case Type::DCT16X16: {
583
8.38M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
8.38M
                                  scratch_space);
585
8.38M
      break;
586
0
    }
587
16.4M
    case Type::DCT16X8: {
588
16.4M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
16.4M
                                 scratch_space);
590
16.4M
      break;
591
0
    }
592
16.5M
    case Type::DCT8X16: {
593
16.5M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
16.5M
                                 scratch_space);
595
16.5M
      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
3.22M
    case Type::DCT32X16: {
608
3.22M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.22M
                                  scratch_space);
610
3.22M
      break;
611
0
    }
612
3.27M
    case Type::DCT16X32: {
613
3.27M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.27M
                                  scratch_space);
615
3.27M
      break;
616
0
    }
617
1.65M
    case Type::DCT32X32: {
618
1.65M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.65M
                                  scratch_space);
620
1.65M
      break;
621
0
    }
622
20.5M
    case Type::DCT: {
623
20.5M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
20.5M
                                scratch_space);
625
20.5M
      break;
626
0
    }
627
20.5M
    case Type::AFV0: {
628
20.5M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
20.5M
      break;
630
0
    }
631
20.5M
    case Type::AFV1: {
632
20.5M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
20.5M
      break;
634
0
    }
635
20.5M
    case Type::AFV2: {
636
20.5M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
20.5M
      break;
638
0
    }
639
20.5M
    case Type::AFV3: {
640
20.5M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
20.5M
      break;
642
0
    }
643
1.04M
    case Type::DCT64X32: {
644
1.04M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.04M
                                  scratch_space);
646
1.04M
      break;
647
0
    }
648
685k
    case Type::DCT32X64: {
649
685k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
685k
                                  scratch_space);
651
685k
      break;
652
0
    }
653
285k
    case Type::DCT64X64: {
654
285k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
285k
                                  scratch_space);
656
285k
      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
256M
  }
689
256M
}
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
32.2M
                                              float* JXL_RESTRICT scratch) {
695
32.2M
  using Type = AcStrategyType;
696
32.2M
  HWY_ALIGN float warm_block[4 * 4];
697
32.2M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
32.2M
  switch (strategy) {
699
925k
    case Type::DCT16X8: {
700
925k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
925k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
925k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
925k
      break;
704
0
    }
705
1.58M
    case Type::DCT8X16: {
706
1.58M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.58M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.58M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.58M
      break;
710
0
    }
711
514k
    case Type::DCT16X16: {
712
514k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
514k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
514k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
514k
      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
236k
    case Type::DCT32X16: {
730
236k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
236k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
236k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
236k
      break;
734
0
    }
735
398k
    case Type::DCT16X32: {
736
398k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
398k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
398k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
398k
      break;
740
0
    }
741
840k
    case Type::DCT32X32: {
742
840k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
840k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
840k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
840k
      break;
746
0
    }
747
24.3k
    case Type::DCT64X32: {
748
24.3k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
24.3k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
24.3k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
24.3k
      break;
752
0
    }
753
31.1k
    case Type::DCT32X64: {
754
31.1k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
31.1k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
31.1k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
31.1k
      break;
758
0
    }
759
202k
    case Type::DCT64X64: {
760
202k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
202k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
202k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
202k
      break;
764
0
    }
765
66
    case Type::DCT128X64: {
766
66
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
66
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
66
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
66
      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
36
    case Type::DCT256X256: {
799
36
      ReinterpretingDCT<
800
36
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
36
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
36
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
36
      break;
804
0
    }
805
11.3M
    case Type::DCT:
806
14.9M
    case Type::DCT2X2:
807
15.0M
    case Type::DCT4X4:
808
16.2M
    case Type::DCT4X8:
809
17.6M
    case Type::DCT8X4:
810
18.7M
    case Type::AFV0:
811
22.2M
    case Type::AFV1:
812
22.8M
    case Type::AFV2:
813
24.0M
    case Type::AFV3:
814
27.4M
    case Type::IDENTITY:
815
27.4M
      llf[0] = dc[0];
816
27.4M
      break;
817
32.2M
  };
818
32.2M
}
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
32.2M
                                              float* JXL_RESTRICT scratch) {
695
32.2M
  using Type = AcStrategyType;
696
32.2M
  HWY_ALIGN float warm_block[4 * 4];
697
32.2M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
32.2M
  switch (strategy) {
699
925k
    case Type::DCT16X8: {
700
925k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
925k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
925k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
925k
      break;
704
0
    }
705
1.58M
    case Type::DCT8X16: {
706
1.58M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.58M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.58M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.58M
      break;
710
0
    }
711
514k
    case Type::DCT16X16: {
712
514k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
514k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
514k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
514k
      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
236k
    case Type::DCT32X16: {
730
236k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
236k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
236k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
236k
      break;
734
0
    }
735
398k
    case Type::DCT16X32: {
736
398k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
398k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
398k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
398k
      break;
740
0
    }
741
840k
    case Type::DCT32X32: {
742
840k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
840k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
840k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
840k
      break;
746
0
    }
747
24.3k
    case Type::DCT64X32: {
748
24.3k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
24.3k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
24.3k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
24.3k
      break;
752
0
    }
753
31.1k
    case Type::DCT32X64: {
754
31.1k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
31.1k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
31.1k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
31.1k
      break;
758
0
    }
759
202k
    case Type::DCT64X64: {
760
202k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
202k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
202k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
202k
      break;
764
0
    }
765
66
    case Type::DCT128X64: {
766
66
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
66
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
66
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
66
      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
36
    case Type::DCT256X256: {
799
36
      ReinterpretingDCT<
800
36
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
36
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
36
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
36
      break;
804
0
    }
805
11.3M
    case Type::DCT:
806
14.9M
    case Type::DCT2X2:
807
15.0M
    case Type::DCT4X4:
808
16.2M
    case Type::DCT4X8:
809
17.6M
    case Type::DCT8X4:
810
18.7M
    case Type::AFV0:
811
22.2M
    case Type::AFV1:
812
22.8M
    case Type::AFV2:
813
24.0M
    case Type::AFV3:
814
27.4M
    case Type::IDENTITY:
815
27.4M
      llf[0] = dc[0];
816
27.4M
      break;
817
32.2M
  };
818
32.2M
}
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_