Coverage Report

Created: 2026-04-01 07:49

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
5.06M
                                  float* JXL_RESTRICT scratch_space) {
41
5.06M
  static_assert(LF_ROWS == ROWS,
42
5.06M
                "ReinterpretingDCT should only be called with LF == N");
43
5.06M
  static_assert(LF_COLS == COLS,
44
5.06M
                "ReinterpretingDCT should only be called with LF == N");
45
5.06M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
5.06M
                                 scratch_space);
47
5.06M
  if (ROWS < COLS) {
48
4.88M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
10.9M
      for (size_t x = 0; x < LF_COLS; x++) {
50
8.24M
        output[y * output_stride + x] =
51
8.24M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
8.24M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
8.24M
      }
54
2.73M
    }
55
2.91M
  } else {
56
10.5M
    for (size_t y = 0; y < LF_COLS; y++) {
57
40.2M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
32.5M
        output[y * output_stride + x] =
59
32.5M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
32.5M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
32.5M
      }
62
7.62M
    }
63
2.91M
  }
64
5.06M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
1.00M
                                  float* JXL_RESTRICT scratch_space) {
41
1.00M
  static_assert(LF_ROWS == ROWS,
42
1.00M
                "ReinterpretingDCT should only be called with LF == N");
43
1.00M
  static_assert(LF_COLS == COLS,
44
1.00M
                "ReinterpretingDCT should only be called with LF == N");
45
1.00M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.00M
                                 scratch_space);
47
1.00M
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
1.00M
  } else {
56
2.01M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.02M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.01M
        output[y * output_stride + x] =
59
2.01M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.01M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.01M
      }
62
1.00M
    }
63
1.00M
  }
64
1.00M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
1.63M
                                  float* JXL_RESTRICT scratch_space) {
41
1.63M
  static_assert(LF_ROWS == ROWS,
42
1.63M
                "ReinterpretingDCT should only be called with LF == N");
43
1.63M
  static_assert(LF_COLS == COLS,
44
1.63M
                "ReinterpretingDCT should only be called with LF == N");
45
1.63M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.63M
                                 scratch_space);
47
1.63M
  if (ROWS < COLS) {
48
3.26M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.89M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.26M
        output[y * output_stride + x] =
51
3.26M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.26M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.26M
      }
54
1.63M
    }
55
1.63M
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
1.63M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
533k
                                  float* JXL_RESTRICT scratch_space) {
41
533k
  static_assert(LF_ROWS == ROWS,
42
533k
                "ReinterpretingDCT should only be called with LF == N");
43
533k
  static_assert(LF_COLS == COLS,
44
533k
                "ReinterpretingDCT should only be called with LF == N");
45
533k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
533k
                                 scratch_space);
47
533k
  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
533k
  } else {
56
1.60M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.20M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.13M
        output[y * output_stride + x] =
59
2.13M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.13M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.13M
      }
62
1.06M
    }
63
533k
  }
64
533k
}
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.65k
                                  float* JXL_RESTRICT scratch_space) {
41
5.65k
  static_assert(LF_ROWS == ROWS,
42
5.65k
                "ReinterpretingDCT should only be called with LF == N");
43
5.65k
  static_assert(LF_COLS == COLS,
44
5.65k
                "ReinterpretingDCT should only be called with LF == N");
45
5.65k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
5.65k
                                 scratch_space);
47
5.65k
  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.65k
  } else {
56
11.3k
    for (size_t y = 0; y < LF_COLS; y++) {
57
28.2k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
22.6k
        output[y * output_stride + x] =
59
22.6k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
22.6k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
22.6k
      }
62
5.65k
    }
63
5.65k
  }
64
5.65k
}
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
312k
                                  float* JXL_RESTRICT scratch_space) {
41
312k
  static_assert(LF_ROWS == ROWS,
42
312k
                "ReinterpretingDCT should only be called with LF == N");
43
312k
  static_assert(LF_COLS == COLS,
44
312k
                "ReinterpretingDCT should only be called with LF == N");
45
312k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
312k
                                 scratch_space);
47
312k
  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
312k
  } else {
56
936k
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.12M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.49M
        output[y * output_stride + x] =
59
2.49M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.49M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.49M
      }
62
624k
    }
63
312k
  }
64
312k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
476k
                                  float* JXL_RESTRICT scratch_space) {
41
476k
  static_assert(LF_ROWS == ROWS,
42
476k
                "ReinterpretingDCT should only be called with LF == N");
43
476k
  static_assert(LF_COLS == COLS,
44
476k
                "ReinterpretingDCT should only be called with LF == N");
45
476k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
476k
                                 scratch_space);
47
476k
  if (ROWS < COLS) {
48
1.42M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.76M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.81M
        output[y * output_stride + x] =
51
3.81M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.81M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.81M
      }
54
952k
    }
55
476k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
476k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
844k
                                  float* JXL_RESTRICT scratch_space) {
41
844k
  static_assert(LF_ROWS == ROWS,
42
844k
                "ReinterpretingDCT should only be called with LF == N");
43
844k
  static_assert(LF_COLS == COLS,
44
844k
                "ReinterpretingDCT should only be called with LF == N");
45
844k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
844k
                                 scratch_space);
47
844k
  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
844k
  } else {
56
4.22M
    for (size_t y = 0; y < LF_COLS; y++) {
57
16.8M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
13.5M
        output[y * output_stride + x] =
59
13.5M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
13.5M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
13.5M
      }
62
3.37M
    }
63
844k
  }
64
844k
}
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
26.6k
                                  float* JXL_RESTRICT scratch_space) {
41
26.6k
  static_assert(LF_ROWS == ROWS,
42
26.6k
                "ReinterpretingDCT should only be called with LF == N");
43
26.6k
  static_assert(LF_COLS == COLS,
44
26.6k
                "ReinterpretingDCT should only be called with LF == N");
45
26.6k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
26.6k
                                 scratch_space);
47
26.6k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
26.6k
  } else {
56
133k
    for (size_t y = 0; y < LF_COLS; y++) {
57
960k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
853k
        output[y * output_stride + x] =
59
853k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
853k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
853k
      }
62
106k
    }
63
26.6k
  }
64
26.6k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
35.4k
                                  float* JXL_RESTRICT scratch_space) {
41
35.4k
  static_assert(LF_ROWS == ROWS,
42
35.4k
                "ReinterpretingDCT should only be called with LF == N");
43
35.4k
  static_assert(LF_COLS == COLS,
44
35.4k
                "ReinterpretingDCT should only be called with LF == N");
45
35.4k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
35.4k
                                 scratch_space);
47
35.4k
  if (ROWS < COLS) {
48
177k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.27M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.13M
        output[y * output_stride + x] =
51
1.13M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.13M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.13M
      }
54
141k
    }
55
35.4k
  } 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
35.4k
}
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
179k
                                  float* JXL_RESTRICT scratch_space) {
41
179k
  static_assert(LF_ROWS == ROWS,
42
179k
                "ReinterpretingDCT should only be called with LF == N");
43
179k
  static_assert(LF_COLS == COLS,
44
179k
                "ReinterpretingDCT should only be called with LF == N");
45
179k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
179k
                                 scratch_space);
47
179k
  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
179k
  } else {
56
1.61M
    for (size_t y = 0; y < LF_COLS; y++) {
57
12.9M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
11.4M
        output[y * output_stride + x] =
59
11.4M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
11.4M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
11.4M
      }
62
1.43M
    }
63
179k
  }
64
179k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
54
                                  float* JXL_RESTRICT scratch_space) {
41
54
  static_assert(LF_ROWS == ROWS,
42
54
                "ReinterpretingDCT should only be called with LF == N");
43
54
  static_assert(LF_COLS == COLS,
44
54
                "ReinterpretingDCT should only be called with LF == N");
45
54
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
54
                                 scratch_space);
47
54
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
54
  } else {
56
486
    for (size_t y = 0; y < LF_COLS; y++) {
57
7.34k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
6.91k
        output[y * output_stride + x] =
59
6.91k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
6.91k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
6.91k
      }
62
432
    }
63
54
  }
64
54
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
12
                                  float* JXL_RESTRICT scratch_space) {
41
12
  static_assert(LF_ROWS == ROWS,
42
12
                "ReinterpretingDCT should only be called with LF == N");
43
12
  static_assert(LF_COLS == COLS,
44
12
                "ReinterpretingDCT should only be called with LF == N");
45
12
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
12
                                 scratch_space);
47
12
  if (ROWS < COLS) {
48
108
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.63k
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.53k
        output[y * output_stride + x] =
51
1.53k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.53k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.53k
      }
54
96
    }
55
12
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
12
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
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
30
                                  float* JXL_RESTRICT scratch_space) {
41
30
  static_assert(LF_ROWS == ROWS,
42
30
                "ReinterpretingDCT should only be called with LF == N");
43
30
  static_assert(LF_COLS == COLS,
44
30
                "ReinterpretingDCT should only be called with LF == N");
45
30
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
30
                                 scratch_space);
47
30
  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
30
  } else {
56
990
    for (size_t y = 0; y < LF_COLS; y++) {
57
31.6k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
30.7k
        output[y * output_stride + x] =
59
30.7k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
30.7k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
30.7k
      }
62
960
    }
63
30
  }
64
30
}
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
68.1M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
68.1M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
68.1M
  static_assert(S % 2 == 0, "S should be even");
70
68.1M
  float temp[kDCTBlockSize];
71
68.1M
  constexpr size_t num_2x2 = S / 2;
72
227M
  for (size_t y = 0; y < num_2x2; y++) {
73
635M
    for (size_t x = 0; x < num_2x2; x++) {
74
476M
      float c00 = block[y * kBlockDim + x];
75
476M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
476M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
476M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
476M
      float r00 = c00 + c01 + c10 + c11;
79
476M
      float r01 = c00 + c01 - c10 - c11;
80
476M
      float r10 = c00 - c01 + c10 - c11;
81
476M
      float r11 = c00 - c01 - c10 + c11;
82
476M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
476M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
476M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
476M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
476M
    }
87
158M
  }
88
385M
  for (size_t y = 0; y < S; y++) {
89
2.22G
    for (size_t x = 0; x < S; x++) {
90
1.90G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.90G
    }
92
317M
  }
93
68.1M
}
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.17M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.17M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.17M
  static_assert(S % 2 == 0, "S should be even");
70
3.17M
  float temp[kDCTBlockSize];
71
3.17M
  constexpr size_t num_2x2 = S / 2;
72
6.35M
  for (size_t y = 0; y < num_2x2; y++) {
73
6.35M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.17M
      float c00 = block[y * kBlockDim + x];
75
3.17M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.17M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.17M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.17M
      float r00 = c00 + c01 + c10 + c11;
79
3.17M
      float r01 = c00 + c01 - c10 - c11;
80
3.17M
      float r10 = c00 - c01 + c10 - c11;
81
3.17M
      float r11 = c00 - c01 - c10 + c11;
82
3.17M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.17M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.17M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.17M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.17M
    }
87
3.17M
  }
88
9.53M
  for (size_t y = 0; y < S; y++) {
89
19.0M
    for (size_t x = 0; x < S; x++) {
90
12.7M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
12.7M
    }
92
6.35M
  }
93
3.17M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.17M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.17M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.17M
  static_assert(S % 2 == 0, "S should be even");
70
3.17M
  float temp[kDCTBlockSize];
71
3.17M
  constexpr size_t num_2x2 = S / 2;
72
9.53M
  for (size_t y = 0; y < num_2x2; y++) {
73
19.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
12.7M
      float c00 = block[y * kBlockDim + x];
75
12.7M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
12.7M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
12.7M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
12.7M
      float r00 = c00 + c01 + c10 + c11;
79
12.7M
      float r01 = c00 + c01 - c10 - c11;
80
12.7M
      float r10 = c00 - c01 + c10 - c11;
81
12.7M
      float r11 = c00 - c01 - c10 + c11;
82
12.7M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
12.7M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
12.7M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
12.7M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
12.7M
    }
87
6.35M
  }
88
15.8M
  for (size_t y = 0; y < S; y++) {
89
63.5M
    for (size_t x = 0; x < S; x++) {
90
50.8M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
50.8M
    }
92
12.7M
  }
93
3.17M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.17M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.17M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.17M
  static_assert(S % 2 == 0, "S should be even");
70
3.17M
  float temp[kDCTBlockSize];
71
3.17M
  constexpr size_t num_2x2 = S / 2;
72
15.8M
  for (size_t y = 0; y < num_2x2; y++) {
73
63.5M
    for (size_t x = 0; x < num_2x2; x++) {
74
50.8M
      float c00 = block[y * kBlockDim + x];
75
50.8M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
50.8M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
50.8M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
50.8M
      float r00 = c00 + c01 + c10 + c11;
79
50.8M
      float r01 = c00 + c01 - c10 - c11;
80
50.8M
      float r10 = c00 - c01 + c10 - c11;
81
50.8M
      float r11 = c00 - c01 - c10 + c11;
82
50.8M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
50.8M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
50.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
50.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
50.8M
    }
87
12.7M
  }
88
28.6M
  for (size_t y = 0; y < S; y++) {
89
228M
    for (size_t x = 0; x < S; x++) {
90
203M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
203M
    }
92
25.4M
  }
93
3.17M
}
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
19.5M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
19.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
19.5M
  static_assert(S % 2 == 0, "S should be even");
70
19.5M
  float temp[kDCTBlockSize];
71
19.5M
  constexpr size_t num_2x2 = S / 2;
72
39.0M
  for (size_t y = 0; y < num_2x2; y++) {
73
39.0M
    for (size_t x = 0; x < num_2x2; x++) {
74
19.5M
      float c00 = block[y * kBlockDim + x];
75
19.5M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
19.5M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
19.5M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
19.5M
      float r00 = c00 + c01 + c10 + c11;
79
19.5M
      float r01 = c00 + c01 - c10 - c11;
80
19.5M
      float r10 = c00 - c01 + c10 - c11;
81
19.5M
      float r11 = c00 - c01 - c10 + c11;
82
19.5M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
19.5M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
19.5M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
19.5M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
19.5M
    }
87
19.5M
  }
88
58.5M
  for (size_t y = 0; y < S; y++) {
89
117M
    for (size_t x = 0; x < S; x++) {
90
78.0M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
78.0M
    }
92
39.0M
  }
93
19.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
19.5M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
19.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
19.5M
  static_assert(S % 2 == 0, "S should be even");
70
19.5M
  float temp[kDCTBlockSize];
71
19.5M
  constexpr size_t num_2x2 = S / 2;
72
58.5M
  for (size_t y = 0; y < num_2x2; y++) {
73
117M
    for (size_t x = 0; x < num_2x2; x++) {
74
78.0M
      float c00 = block[y * kBlockDim + x];
75
78.0M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
78.0M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
78.0M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
78.0M
      float r00 = c00 + c01 + c10 + c11;
79
78.0M
      float r01 = c00 + c01 - c10 - c11;
80
78.0M
      float r10 = c00 - c01 + c10 - c11;
81
78.0M
      float r11 = c00 - c01 - c10 + c11;
82
78.0M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
78.0M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
78.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
78.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
78.0M
    }
87
39.0M
  }
88
97.6M
  for (size_t y = 0; y < S; y++) {
89
390M
    for (size_t x = 0; x < S; x++) {
90
312M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
312M
    }
92
78.0M
  }
93
19.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
19.5M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
19.5M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
19.5M
  static_assert(S % 2 == 0, "S should be even");
70
19.5M
  float temp[kDCTBlockSize];
71
19.5M
  constexpr size_t num_2x2 = S / 2;
72
97.6M
  for (size_t y = 0; y < num_2x2; y++) {
73
390M
    for (size_t x = 0; x < num_2x2; x++) {
74
312M
      float c00 = block[y * kBlockDim + x];
75
312M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
312M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
312M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
312M
      float r00 = c00 + c01 + c10 + c11;
79
312M
      float r01 = c00 + c01 - c10 - c11;
80
312M
      float r10 = c00 - c01 + c10 - c11;
81
312M
      float r11 = c00 - c01 - c10 + c11;
82
312M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
312M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
312M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
312M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
312M
    }
87
78.0M
  }
88
175M
  for (size_t y = 0; y < S; y++) {
89
1.40G
    for (size_t x = 0; x < S; x++) {
90
1.24G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.24G
    }
92
156M
  }
93
19.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
83.3M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
83.3M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
83.3M
      {
98
83.3M
          0.25,
99
83.3M
          0.25,
100
83.3M
          0.25,
101
83.3M
          0.25,
102
83.3M
          0.25,
103
83.3M
          0.25,
104
83.3M
          0.25,
105
83.3M
          0.25,
106
83.3M
          0.25,
107
83.3M
          0.25,
108
83.3M
          0.25,
109
83.3M
          0.25,
110
83.3M
          0.25,
111
83.3M
          0.25,
112
83.3M
          0.25,
113
83.3M
          0.25,
114
83.3M
      },
115
83.3M
      {
116
83.3M
          0.876902929799142f,
117
83.3M
          0.2206518106944235f,
118
83.3M
          -0.10140050393753763f,
119
83.3M
          -0.1014005039375375f,
120
83.3M
          0.2206518106944236f,
121
83.3M
          -0.10140050393753777f,
122
83.3M
          -0.10140050393753772f,
123
83.3M
          -0.10140050393753763f,
124
83.3M
          -0.10140050393753758f,
125
83.3M
          -0.10140050393753769f,
126
83.3M
          -0.1014005039375375f,
127
83.3M
          -0.10140050393753768f,
128
83.3M
          -0.10140050393753768f,
129
83.3M
          -0.10140050393753759f,
130
83.3M
          -0.10140050393753763f,
131
83.3M
          -0.10140050393753741f,
132
83.3M
      },
133
83.3M
      {
134
83.3M
          0.0,
135
83.3M
          0.0,
136
83.3M
          0.40670075830260755f,
137
83.3M
          0.44444816619734445f,
138
83.3M
          0.0,
139
83.3M
          0.0,
140
83.3M
          0.19574399372042936f,
141
83.3M
          0.2929100136981264f,
142
83.3M
          -0.40670075830260716f,
143
83.3M
          -0.19574399372042872f,
144
83.3M
          0.0,
145
83.3M
          0.11379074460448091f,
146
83.3M
          -0.44444816619734384f,
147
83.3M
          -0.29291001369812636f,
148
83.3M
          -0.1137907446044814f,
149
83.3M
          0.0,
150
83.3M
      },
151
83.3M
      {
152
83.3M
          0.0,
153
83.3M
          0.0,
154
83.3M
          -0.21255748058288748f,
155
83.3M
          0.3085497062849767f,
156
83.3M
          0.0,
157
83.3M
          0.4706702258572536f,
158
83.3M
          -0.1621205195722993f,
159
83.3M
          0.0,
160
83.3M
          -0.21255748058287047f,
161
83.3M
          -0.16212051957228327f,
162
83.3M
          -0.47067022585725277f,
163
83.3M
          -0.1464291867126764f,
164
83.3M
          0.3085497062849487f,
165
83.3M
          0.0,
166
83.3M
          -0.14642918671266536f,
167
83.3M
          0.4251149611657548f,
168
83.3M
      },
169
83.3M
      {
170
83.3M
          0.0,
171
83.3M
          -0.7071067811865474f,
172
83.3M
          0.0,
173
83.3M
          0.0,
174
83.3M
          0.7071067811865476f,
175
83.3M
          0.0,
176
83.3M
          0.0,
177
83.3M
          0.0,
178
83.3M
          0.0,
179
83.3M
          0.0,
180
83.3M
          0.0,
181
83.3M
          0.0,
182
83.3M
          0.0,
183
83.3M
          0.0,
184
83.3M
          0.0,
185
83.3M
          0.0,
186
83.3M
      },
187
83.3M
      {
188
83.3M
          -0.4105377591765233f,
189
83.3M
          0.6235485373547691f,
190
83.3M
          -0.06435071657946274f,
191
83.3M
          -0.06435071657946266f,
192
83.3M
          0.6235485373547694f,
193
83.3M
          -0.06435071657946284f,
194
83.3M
          -0.0643507165794628f,
195
83.3M
          -0.06435071657946274f,
196
83.3M
          -0.06435071657946272f,
197
83.3M
          -0.06435071657946279f,
198
83.3M
          -0.06435071657946266f,
199
83.3M
          -0.06435071657946277f,
200
83.3M
          -0.06435071657946277f,
201
83.3M
          -0.06435071657946273f,
202
83.3M
          -0.06435071657946274f,
203
83.3M
          -0.0643507165794626f,
204
83.3M
      },
205
83.3M
      {
206
83.3M
          0.0,
207
83.3M
          0.0,
208
83.3M
          -0.4517556589999482f,
209
83.3M
          0.15854503551840063f,
210
83.3M
          0.0,
211
83.3M
          -0.04038515160822202f,
212
83.3M
          0.0074182263792423875f,
213
83.3M
          0.39351034269210167f,
214
83.3M
          -0.45175565899994635f,
215
83.3M
          0.007418226379244351f,
216
83.3M
          0.1107416575309343f,
217
83.3M
          0.08298163094882051f,
218
83.3M
          0.15854503551839705f,
219
83.3M
          0.3935103426921022f,
220
83.3M
          0.0829816309488214f,
221
83.3M
          -0.45175565899994796f,
222
83.3M
      },
223
83.3M
      {
224
83.3M
          0.0,
225
83.3M
          0.0,
226
83.3M
          -0.304684750724869f,
227
83.3M
          0.5112616136591823f,
228
83.3M
          0.0,
229
83.3M
          0.0,
230
83.3M
          -0.290480129728998f,
231
83.3M
          -0.06578701549142804f,
232
83.3M
          0.304684750724884f,
233
83.3M
          0.2904801297290076f,
234
83.3M
          0.0,
235
83.3M
          -0.23889773523344604f,
236
83.3M
          -0.5112616136592012f,
237
83.3M
          0.06578701549142545f,
238
83.3M
          0.23889773523345467f,
239
83.3M
          0.0,
240
83.3M
      },
241
83.3M
      {
242
83.3M
          0.0,
243
83.3M
          0.0,
244
83.3M
          0.3017929516615495f,
245
83.3M
          0.25792362796341184f,
246
83.3M
          0.0,
247
83.3M
          0.16272340142866204f,
248
83.3M
          0.09520022653475037f,
249
83.3M
          0.0,
250
83.3M
          0.3017929516615503f,
251
83.3M
          0.09520022653475055f,
252
83.3M
          -0.16272340142866173f,
253
83.3M
          -0.35312385449816297f,
254
83.3M
          0.25792362796341295f,
255
83.3M
          0.0,
256
83.3M
          -0.3531238544981624f,
257
83.3M
          -0.6035859033230976f,
258
83.3M
      },
259
83.3M
      {
260
83.3M
          0.0,
261
83.3M
          0.0,
262
83.3M
          0.40824829046386274f,
263
83.3M
          0.0,
264
83.3M
          0.0,
265
83.3M
          0.0,
266
83.3M
          0.0,
267
83.3M
          -0.4082482904638628f,
268
83.3M
          -0.4082482904638635f,
269
83.3M
          0.0,
270
83.3M
          0.0,
271
83.3M
          -0.40824829046386296f,
272
83.3M
          0.0,
273
83.3M
          0.4082482904638634f,
274
83.3M
          0.408248290463863f,
275
83.3M
          0.0,
276
83.3M
      },
277
83.3M
      {
278
83.3M
          0.0,
279
83.3M
          0.0,
280
83.3M
          0.1747866975480809f,
281
83.3M
          0.0812611176717539f,
282
83.3M
          0.0,
283
83.3M
          0.0,
284
83.3M
          -0.3675398009862027f,
285
83.3M
          -0.307882213957909f,
286
83.3M
          -0.17478669754808135f,
287
83.3M
          0.3675398009862011f,
288
83.3M
          0.0,
289
83.3M
          0.4826689115059883f,
290
83.3M
          -0.08126111767175039f,
291
83.3M
          0.30788221395790305f,
292
83.3M
          -0.48266891150598584f,
293
83.3M
          0.0,
294
83.3M
      },
295
83.3M
      {
296
83.3M
          0.0,
297
83.3M
          0.0,
298
83.3M
          -0.21105601049335784f,
299
83.3M
          0.18567180916109802f,
300
83.3M
          0.0,
301
83.3M
          0.0,
302
83.3M
          0.49215859013738733f,
303
83.3M
          -0.38525013709251915f,
304
83.3M
          0.21105601049335806f,
305
83.3M
          -0.49215859013738905f,
306
83.3M
          0.0,
307
83.3M
          0.17419412659916217f,
308
83.3M
          -0.18567180916109904f,
309
83.3M
          0.3852501370925211f,
310
83.3M
          -0.1741941265991621f,
311
83.3M
          0.0,
312
83.3M
      },
313
83.3M
      {
314
83.3M
          0.0,
315
83.3M
          0.0,
316
83.3M
          -0.14266084808807264f,
317
83.3M
          -0.3416446842253372f,
318
83.3M
          0.0,
319
83.3M
          0.7367497537172237f,
320
83.3M
          0.24627107722075148f,
321
83.3M
          -0.08574019035519306f,
322
83.3M
          -0.14266084808807344f,
323
83.3M
          0.24627107722075137f,
324
83.3M
          0.14883399227113567f,
325
83.3M
          -0.04768680350229251f,
326
83.3M
          -0.3416446842253373f,
327
83.3M
          -0.08574019035519267f,
328
83.3M
          -0.047686803502292804f,
329
83.3M
          -0.14266084808807242f,
330
83.3M
      },
331
83.3M
      {
332
83.3M
          0.0,
333
83.3M
          0.0,
334
83.3M
          -0.13813540350758585f,
335
83.3M
          0.3302282550303788f,
336
83.3M
          0.0,
337
83.3M
          0.08755115000587084f,
338
83.3M
          -0.07946706605909573f,
339
83.3M
          -0.4613374887461511f,
340
83.3M
          -0.13813540350758294f,
341
83.3M
          -0.07946706605910261f,
342
83.3M
          0.49724647109535086f,
343
83.3M
          0.12538059448563663f,
344
83.3M
          0.3302282550303805f,
345
83.3M
          -0.4613374887461554f,
346
83.3M
          0.12538059448564315f,
347
83.3M
          -0.13813540350758452f,
348
83.3M
      },
349
83.3M
      {
350
83.3M
          0.0,
351
83.3M
          0.0,
352
83.3M
          -0.17437602599651067f,
353
83.3M
          0.0702790691196284f,
354
83.3M
          0.0,
355
83.3M
          -0.2921026642334881f,
356
83.3M
          0.3623817333531167f,
357
83.3M
          0.0,
358
83.3M
          -0.1743760259965108f,
359
83.3M
          0.36238173335311646f,
360
83.3M
          0.29210266423348785f,
361
83.3M
          -0.4326608024727445f,
362
83.3M
          0.07027906911962818f,
363
83.3M
          0.0,
364
83.3M
          -0.4326608024727457f,
365
83.3M
          0.34875205199302267f,
366
83.3M
      },
367
83.3M
      {
368
83.3M
          0.0,
369
83.3M
          0.0,
370
83.3M
          0.11354987314994337f,
371
83.3M
          -0.07417504595810355f,
372
83.3M
          0.0,
373
83.3M
          0.19402893032594343f,
374
83.3M
          -0.435190496523228f,
375
83.3M
          0.21918684838857466f,
376
83.3M
          0.11354987314994257f,
377
83.3M
          -0.4351904965232251f,
378
83.3M
          0.5550443808910661f,
379
83.3M
          -0.25468277124066463f,
380
83.3M
          -0.07417504595810233f,
381
83.3M
          0.2191868483885728f,
382
83.3M
          -0.25468277124066413f,
383
83.3M
          0.1135498731499429f,
384
83.3M
      },
385
83.3M
  };
386
387
83.3M
  const HWY_CAPPED(float, 16) d;
388
249M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
166M
    auto pixel = Zero(d);
390
2.83G
    for (size_t j = 0; j < 16; j++) {
391
2.66G
      auto cf = Set(d, coeffs[j]);
392
2.66G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.66G
      pixel = MulAdd(cf, basis, pixel);
394
2.66G
    }
395
166M
    Store(pixel, d, pixels + i);
396
166M
  }
397
83.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::AFVIDCT4x4(float const*, float*)
Line
Count
Source
95
5.20M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
5.20M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
5.20M
      {
98
5.20M
          0.25,
99
5.20M
          0.25,
100
5.20M
          0.25,
101
5.20M
          0.25,
102
5.20M
          0.25,
103
5.20M
          0.25,
104
5.20M
          0.25,
105
5.20M
          0.25,
106
5.20M
          0.25,
107
5.20M
          0.25,
108
5.20M
          0.25,
109
5.20M
          0.25,
110
5.20M
          0.25,
111
5.20M
          0.25,
112
5.20M
          0.25,
113
5.20M
          0.25,
114
5.20M
      },
115
5.20M
      {
116
5.20M
          0.876902929799142f,
117
5.20M
          0.2206518106944235f,
118
5.20M
          -0.10140050393753763f,
119
5.20M
          -0.1014005039375375f,
120
5.20M
          0.2206518106944236f,
121
5.20M
          -0.10140050393753777f,
122
5.20M
          -0.10140050393753772f,
123
5.20M
          -0.10140050393753763f,
124
5.20M
          -0.10140050393753758f,
125
5.20M
          -0.10140050393753769f,
126
5.20M
          -0.1014005039375375f,
127
5.20M
          -0.10140050393753768f,
128
5.20M
          -0.10140050393753768f,
129
5.20M
          -0.10140050393753759f,
130
5.20M
          -0.10140050393753763f,
131
5.20M
          -0.10140050393753741f,
132
5.20M
      },
133
5.20M
      {
134
5.20M
          0.0,
135
5.20M
          0.0,
136
5.20M
          0.40670075830260755f,
137
5.20M
          0.44444816619734445f,
138
5.20M
          0.0,
139
5.20M
          0.0,
140
5.20M
          0.19574399372042936f,
141
5.20M
          0.2929100136981264f,
142
5.20M
          -0.40670075830260716f,
143
5.20M
          -0.19574399372042872f,
144
5.20M
          0.0,
145
5.20M
          0.11379074460448091f,
146
5.20M
          -0.44444816619734384f,
147
5.20M
          -0.29291001369812636f,
148
5.20M
          -0.1137907446044814f,
149
5.20M
          0.0,
150
5.20M
      },
151
5.20M
      {
152
5.20M
          0.0,
153
5.20M
          0.0,
154
5.20M
          -0.21255748058288748f,
155
5.20M
          0.3085497062849767f,
156
5.20M
          0.0,
157
5.20M
          0.4706702258572536f,
158
5.20M
          -0.1621205195722993f,
159
5.20M
          0.0,
160
5.20M
          -0.21255748058287047f,
161
5.20M
          -0.16212051957228327f,
162
5.20M
          -0.47067022585725277f,
163
5.20M
          -0.1464291867126764f,
164
5.20M
          0.3085497062849487f,
165
5.20M
          0.0,
166
5.20M
          -0.14642918671266536f,
167
5.20M
          0.4251149611657548f,
168
5.20M
      },
169
5.20M
      {
170
5.20M
          0.0,
171
5.20M
          -0.7071067811865474f,
172
5.20M
          0.0,
173
5.20M
          0.0,
174
5.20M
          0.7071067811865476f,
175
5.20M
          0.0,
176
5.20M
          0.0,
177
5.20M
          0.0,
178
5.20M
          0.0,
179
5.20M
          0.0,
180
5.20M
          0.0,
181
5.20M
          0.0,
182
5.20M
          0.0,
183
5.20M
          0.0,
184
5.20M
          0.0,
185
5.20M
          0.0,
186
5.20M
      },
187
5.20M
      {
188
5.20M
          -0.4105377591765233f,
189
5.20M
          0.6235485373547691f,
190
5.20M
          -0.06435071657946274f,
191
5.20M
          -0.06435071657946266f,
192
5.20M
          0.6235485373547694f,
193
5.20M
          -0.06435071657946284f,
194
5.20M
          -0.0643507165794628f,
195
5.20M
          -0.06435071657946274f,
196
5.20M
          -0.06435071657946272f,
197
5.20M
          -0.06435071657946279f,
198
5.20M
          -0.06435071657946266f,
199
5.20M
          -0.06435071657946277f,
200
5.20M
          -0.06435071657946277f,
201
5.20M
          -0.06435071657946273f,
202
5.20M
          -0.06435071657946274f,
203
5.20M
          -0.0643507165794626f,
204
5.20M
      },
205
5.20M
      {
206
5.20M
          0.0,
207
5.20M
          0.0,
208
5.20M
          -0.4517556589999482f,
209
5.20M
          0.15854503551840063f,
210
5.20M
          0.0,
211
5.20M
          -0.04038515160822202f,
212
5.20M
          0.0074182263792423875f,
213
5.20M
          0.39351034269210167f,
214
5.20M
          -0.45175565899994635f,
215
5.20M
          0.007418226379244351f,
216
5.20M
          0.1107416575309343f,
217
5.20M
          0.08298163094882051f,
218
5.20M
          0.15854503551839705f,
219
5.20M
          0.3935103426921022f,
220
5.20M
          0.0829816309488214f,
221
5.20M
          -0.45175565899994796f,
222
5.20M
      },
223
5.20M
      {
224
5.20M
          0.0,
225
5.20M
          0.0,
226
5.20M
          -0.304684750724869f,
227
5.20M
          0.5112616136591823f,
228
5.20M
          0.0,
229
5.20M
          0.0,
230
5.20M
          -0.290480129728998f,
231
5.20M
          -0.06578701549142804f,
232
5.20M
          0.304684750724884f,
233
5.20M
          0.2904801297290076f,
234
5.20M
          0.0,
235
5.20M
          -0.23889773523344604f,
236
5.20M
          -0.5112616136592012f,
237
5.20M
          0.06578701549142545f,
238
5.20M
          0.23889773523345467f,
239
5.20M
          0.0,
240
5.20M
      },
241
5.20M
      {
242
5.20M
          0.0,
243
5.20M
          0.0,
244
5.20M
          0.3017929516615495f,
245
5.20M
          0.25792362796341184f,
246
5.20M
          0.0,
247
5.20M
          0.16272340142866204f,
248
5.20M
          0.09520022653475037f,
249
5.20M
          0.0,
250
5.20M
          0.3017929516615503f,
251
5.20M
          0.09520022653475055f,
252
5.20M
          -0.16272340142866173f,
253
5.20M
          -0.35312385449816297f,
254
5.20M
          0.25792362796341295f,
255
5.20M
          0.0,
256
5.20M
          -0.3531238544981624f,
257
5.20M
          -0.6035859033230976f,
258
5.20M
      },
259
5.20M
      {
260
5.20M
          0.0,
261
5.20M
          0.0,
262
5.20M
          0.40824829046386274f,
263
5.20M
          0.0,
264
5.20M
          0.0,
265
5.20M
          0.0,
266
5.20M
          0.0,
267
5.20M
          -0.4082482904638628f,
268
5.20M
          -0.4082482904638635f,
269
5.20M
          0.0,
270
5.20M
          0.0,
271
5.20M
          -0.40824829046386296f,
272
5.20M
          0.0,
273
5.20M
          0.4082482904638634f,
274
5.20M
          0.408248290463863f,
275
5.20M
          0.0,
276
5.20M
      },
277
5.20M
      {
278
5.20M
          0.0,
279
5.20M
          0.0,
280
5.20M
          0.1747866975480809f,
281
5.20M
          0.0812611176717539f,
282
5.20M
          0.0,
283
5.20M
          0.0,
284
5.20M
          -0.3675398009862027f,
285
5.20M
          -0.307882213957909f,
286
5.20M
          -0.17478669754808135f,
287
5.20M
          0.3675398009862011f,
288
5.20M
          0.0,
289
5.20M
          0.4826689115059883f,
290
5.20M
          -0.08126111767175039f,
291
5.20M
          0.30788221395790305f,
292
5.20M
          -0.48266891150598584f,
293
5.20M
          0.0,
294
5.20M
      },
295
5.20M
      {
296
5.20M
          0.0,
297
5.20M
          0.0,
298
5.20M
          -0.21105601049335784f,
299
5.20M
          0.18567180916109802f,
300
5.20M
          0.0,
301
5.20M
          0.0,
302
5.20M
          0.49215859013738733f,
303
5.20M
          -0.38525013709251915f,
304
5.20M
          0.21105601049335806f,
305
5.20M
          -0.49215859013738905f,
306
5.20M
          0.0,
307
5.20M
          0.17419412659916217f,
308
5.20M
          -0.18567180916109904f,
309
5.20M
          0.3852501370925211f,
310
5.20M
          -0.1741941265991621f,
311
5.20M
          0.0,
312
5.20M
      },
313
5.20M
      {
314
5.20M
          0.0,
315
5.20M
          0.0,
316
5.20M
          -0.14266084808807264f,
317
5.20M
          -0.3416446842253372f,
318
5.20M
          0.0,
319
5.20M
          0.7367497537172237f,
320
5.20M
          0.24627107722075148f,
321
5.20M
          -0.08574019035519306f,
322
5.20M
          -0.14266084808807344f,
323
5.20M
          0.24627107722075137f,
324
5.20M
          0.14883399227113567f,
325
5.20M
          -0.04768680350229251f,
326
5.20M
          -0.3416446842253373f,
327
5.20M
          -0.08574019035519267f,
328
5.20M
          -0.047686803502292804f,
329
5.20M
          -0.14266084808807242f,
330
5.20M
      },
331
5.20M
      {
332
5.20M
          0.0,
333
5.20M
          0.0,
334
5.20M
          -0.13813540350758585f,
335
5.20M
          0.3302282550303788f,
336
5.20M
          0.0,
337
5.20M
          0.08755115000587084f,
338
5.20M
          -0.07946706605909573f,
339
5.20M
          -0.4613374887461511f,
340
5.20M
          -0.13813540350758294f,
341
5.20M
          -0.07946706605910261f,
342
5.20M
          0.49724647109535086f,
343
5.20M
          0.12538059448563663f,
344
5.20M
          0.3302282550303805f,
345
5.20M
          -0.4613374887461554f,
346
5.20M
          0.12538059448564315f,
347
5.20M
          -0.13813540350758452f,
348
5.20M
      },
349
5.20M
      {
350
5.20M
          0.0,
351
5.20M
          0.0,
352
5.20M
          -0.17437602599651067f,
353
5.20M
          0.0702790691196284f,
354
5.20M
          0.0,
355
5.20M
          -0.2921026642334881f,
356
5.20M
          0.3623817333531167f,
357
5.20M
          0.0,
358
5.20M
          -0.1743760259965108f,
359
5.20M
          0.36238173335311646f,
360
5.20M
          0.29210266423348785f,
361
5.20M
          -0.4326608024727445f,
362
5.20M
          0.07027906911962818f,
363
5.20M
          0.0,
364
5.20M
          -0.4326608024727457f,
365
5.20M
          0.34875205199302267f,
366
5.20M
      },
367
5.20M
      {
368
5.20M
          0.0,
369
5.20M
          0.0,
370
5.20M
          0.11354987314994337f,
371
5.20M
          -0.07417504595810355f,
372
5.20M
          0.0,
373
5.20M
          0.19402893032594343f,
374
5.20M
          -0.435190496523228f,
375
5.20M
          0.21918684838857466f,
376
5.20M
          0.11354987314994257f,
377
5.20M
          -0.4351904965232251f,
378
5.20M
          0.5550443808910661f,
379
5.20M
          -0.25468277124066463f,
380
5.20M
          -0.07417504595810233f,
381
5.20M
          0.2191868483885728f,
382
5.20M
          -0.25468277124066413f,
383
5.20M
          0.1135498731499429f,
384
5.20M
      },
385
5.20M
  };
386
387
5.20M
  const HWY_CAPPED(float, 16) d;
388
15.6M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
10.4M
    auto pixel = Zero(d);
390
176M
    for (size_t j = 0; j < 16; j++) {
391
166M
      auto cf = Set(d, coeffs[j]);
392
166M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
166M
      pixel = MulAdd(cf, basis, pixel);
394
166M
    }
395
10.4M
    Store(pixel, d, pixels + i);
396
10.4M
  }
397
5.20M
}
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
78.0M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
78.0M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
78.0M
      {
98
78.0M
          0.25,
99
78.0M
          0.25,
100
78.0M
          0.25,
101
78.0M
          0.25,
102
78.0M
          0.25,
103
78.0M
          0.25,
104
78.0M
          0.25,
105
78.0M
          0.25,
106
78.0M
          0.25,
107
78.0M
          0.25,
108
78.0M
          0.25,
109
78.0M
          0.25,
110
78.0M
          0.25,
111
78.0M
          0.25,
112
78.0M
          0.25,
113
78.0M
          0.25,
114
78.0M
      },
115
78.0M
      {
116
78.0M
          0.876902929799142f,
117
78.0M
          0.2206518106944235f,
118
78.0M
          -0.10140050393753763f,
119
78.0M
          -0.1014005039375375f,
120
78.0M
          0.2206518106944236f,
121
78.0M
          -0.10140050393753777f,
122
78.0M
          -0.10140050393753772f,
123
78.0M
          -0.10140050393753763f,
124
78.0M
          -0.10140050393753758f,
125
78.0M
          -0.10140050393753769f,
126
78.0M
          -0.1014005039375375f,
127
78.0M
          -0.10140050393753768f,
128
78.0M
          -0.10140050393753768f,
129
78.0M
          -0.10140050393753759f,
130
78.0M
          -0.10140050393753763f,
131
78.0M
          -0.10140050393753741f,
132
78.0M
      },
133
78.0M
      {
134
78.0M
          0.0,
135
78.0M
          0.0,
136
78.0M
          0.40670075830260755f,
137
78.0M
          0.44444816619734445f,
138
78.0M
          0.0,
139
78.0M
          0.0,
140
78.0M
          0.19574399372042936f,
141
78.0M
          0.2929100136981264f,
142
78.0M
          -0.40670075830260716f,
143
78.0M
          -0.19574399372042872f,
144
78.0M
          0.0,
145
78.0M
          0.11379074460448091f,
146
78.0M
          -0.44444816619734384f,
147
78.0M
          -0.29291001369812636f,
148
78.0M
          -0.1137907446044814f,
149
78.0M
          0.0,
150
78.0M
      },
151
78.0M
      {
152
78.0M
          0.0,
153
78.0M
          0.0,
154
78.0M
          -0.21255748058288748f,
155
78.0M
          0.3085497062849767f,
156
78.0M
          0.0,
157
78.0M
          0.4706702258572536f,
158
78.0M
          -0.1621205195722993f,
159
78.0M
          0.0,
160
78.0M
          -0.21255748058287047f,
161
78.0M
          -0.16212051957228327f,
162
78.0M
          -0.47067022585725277f,
163
78.0M
          -0.1464291867126764f,
164
78.0M
          0.3085497062849487f,
165
78.0M
          0.0,
166
78.0M
          -0.14642918671266536f,
167
78.0M
          0.4251149611657548f,
168
78.0M
      },
169
78.0M
      {
170
78.0M
          0.0,
171
78.0M
          -0.7071067811865474f,
172
78.0M
          0.0,
173
78.0M
          0.0,
174
78.0M
          0.7071067811865476f,
175
78.0M
          0.0,
176
78.0M
          0.0,
177
78.0M
          0.0,
178
78.0M
          0.0,
179
78.0M
          0.0,
180
78.0M
          0.0,
181
78.0M
          0.0,
182
78.0M
          0.0,
183
78.0M
          0.0,
184
78.0M
          0.0,
185
78.0M
          0.0,
186
78.0M
      },
187
78.0M
      {
188
78.0M
          -0.4105377591765233f,
189
78.0M
          0.6235485373547691f,
190
78.0M
          -0.06435071657946274f,
191
78.0M
          -0.06435071657946266f,
192
78.0M
          0.6235485373547694f,
193
78.0M
          -0.06435071657946284f,
194
78.0M
          -0.0643507165794628f,
195
78.0M
          -0.06435071657946274f,
196
78.0M
          -0.06435071657946272f,
197
78.0M
          -0.06435071657946279f,
198
78.0M
          -0.06435071657946266f,
199
78.0M
          -0.06435071657946277f,
200
78.0M
          -0.06435071657946277f,
201
78.0M
          -0.06435071657946273f,
202
78.0M
          -0.06435071657946274f,
203
78.0M
          -0.0643507165794626f,
204
78.0M
      },
205
78.0M
      {
206
78.0M
          0.0,
207
78.0M
          0.0,
208
78.0M
          -0.4517556589999482f,
209
78.0M
          0.15854503551840063f,
210
78.0M
          0.0,
211
78.0M
          -0.04038515160822202f,
212
78.0M
          0.0074182263792423875f,
213
78.0M
          0.39351034269210167f,
214
78.0M
          -0.45175565899994635f,
215
78.0M
          0.007418226379244351f,
216
78.0M
          0.1107416575309343f,
217
78.0M
          0.08298163094882051f,
218
78.0M
          0.15854503551839705f,
219
78.0M
          0.3935103426921022f,
220
78.0M
          0.0829816309488214f,
221
78.0M
          -0.45175565899994796f,
222
78.0M
      },
223
78.0M
      {
224
78.0M
          0.0,
225
78.0M
          0.0,
226
78.0M
          -0.304684750724869f,
227
78.0M
          0.5112616136591823f,
228
78.0M
          0.0,
229
78.0M
          0.0,
230
78.0M
          -0.290480129728998f,
231
78.0M
          -0.06578701549142804f,
232
78.0M
          0.304684750724884f,
233
78.0M
          0.2904801297290076f,
234
78.0M
          0.0,
235
78.0M
          -0.23889773523344604f,
236
78.0M
          -0.5112616136592012f,
237
78.0M
          0.06578701549142545f,
238
78.0M
          0.23889773523345467f,
239
78.0M
          0.0,
240
78.0M
      },
241
78.0M
      {
242
78.0M
          0.0,
243
78.0M
          0.0,
244
78.0M
          0.3017929516615495f,
245
78.0M
          0.25792362796341184f,
246
78.0M
          0.0,
247
78.0M
          0.16272340142866204f,
248
78.0M
          0.09520022653475037f,
249
78.0M
          0.0,
250
78.0M
          0.3017929516615503f,
251
78.0M
          0.09520022653475055f,
252
78.0M
          -0.16272340142866173f,
253
78.0M
          -0.35312385449816297f,
254
78.0M
          0.25792362796341295f,
255
78.0M
          0.0,
256
78.0M
          -0.3531238544981624f,
257
78.0M
          -0.6035859033230976f,
258
78.0M
      },
259
78.0M
      {
260
78.0M
          0.0,
261
78.0M
          0.0,
262
78.0M
          0.40824829046386274f,
263
78.0M
          0.0,
264
78.0M
          0.0,
265
78.0M
          0.0,
266
78.0M
          0.0,
267
78.0M
          -0.4082482904638628f,
268
78.0M
          -0.4082482904638635f,
269
78.0M
          0.0,
270
78.0M
          0.0,
271
78.0M
          -0.40824829046386296f,
272
78.0M
          0.0,
273
78.0M
          0.4082482904638634f,
274
78.0M
          0.408248290463863f,
275
78.0M
          0.0,
276
78.0M
      },
277
78.0M
      {
278
78.0M
          0.0,
279
78.0M
          0.0,
280
78.0M
          0.1747866975480809f,
281
78.0M
          0.0812611176717539f,
282
78.0M
          0.0,
283
78.0M
          0.0,
284
78.0M
          -0.3675398009862027f,
285
78.0M
          -0.307882213957909f,
286
78.0M
          -0.17478669754808135f,
287
78.0M
          0.3675398009862011f,
288
78.0M
          0.0,
289
78.0M
          0.4826689115059883f,
290
78.0M
          -0.08126111767175039f,
291
78.0M
          0.30788221395790305f,
292
78.0M
          -0.48266891150598584f,
293
78.0M
          0.0,
294
78.0M
      },
295
78.0M
      {
296
78.0M
          0.0,
297
78.0M
          0.0,
298
78.0M
          -0.21105601049335784f,
299
78.0M
          0.18567180916109802f,
300
78.0M
          0.0,
301
78.0M
          0.0,
302
78.0M
          0.49215859013738733f,
303
78.0M
          -0.38525013709251915f,
304
78.0M
          0.21105601049335806f,
305
78.0M
          -0.49215859013738905f,
306
78.0M
          0.0,
307
78.0M
          0.17419412659916217f,
308
78.0M
          -0.18567180916109904f,
309
78.0M
          0.3852501370925211f,
310
78.0M
          -0.1741941265991621f,
311
78.0M
          0.0,
312
78.0M
      },
313
78.0M
      {
314
78.0M
          0.0,
315
78.0M
          0.0,
316
78.0M
          -0.14266084808807264f,
317
78.0M
          -0.3416446842253372f,
318
78.0M
          0.0,
319
78.0M
          0.7367497537172237f,
320
78.0M
          0.24627107722075148f,
321
78.0M
          -0.08574019035519306f,
322
78.0M
          -0.14266084808807344f,
323
78.0M
          0.24627107722075137f,
324
78.0M
          0.14883399227113567f,
325
78.0M
          -0.04768680350229251f,
326
78.0M
          -0.3416446842253373f,
327
78.0M
          -0.08574019035519267f,
328
78.0M
          -0.047686803502292804f,
329
78.0M
          -0.14266084808807242f,
330
78.0M
      },
331
78.0M
      {
332
78.0M
          0.0,
333
78.0M
          0.0,
334
78.0M
          -0.13813540350758585f,
335
78.0M
          0.3302282550303788f,
336
78.0M
          0.0,
337
78.0M
          0.08755115000587084f,
338
78.0M
          -0.07946706605909573f,
339
78.0M
          -0.4613374887461511f,
340
78.0M
          -0.13813540350758294f,
341
78.0M
          -0.07946706605910261f,
342
78.0M
          0.49724647109535086f,
343
78.0M
          0.12538059448563663f,
344
78.0M
          0.3302282550303805f,
345
78.0M
          -0.4613374887461554f,
346
78.0M
          0.12538059448564315f,
347
78.0M
          -0.13813540350758452f,
348
78.0M
      },
349
78.0M
      {
350
78.0M
          0.0,
351
78.0M
          0.0,
352
78.0M
          -0.17437602599651067f,
353
78.0M
          0.0702790691196284f,
354
78.0M
          0.0,
355
78.0M
          -0.2921026642334881f,
356
78.0M
          0.3623817333531167f,
357
78.0M
          0.0,
358
78.0M
          -0.1743760259965108f,
359
78.0M
          0.36238173335311646f,
360
78.0M
          0.29210266423348785f,
361
78.0M
          -0.4326608024727445f,
362
78.0M
          0.07027906911962818f,
363
78.0M
          0.0,
364
78.0M
          -0.4326608024727457f,
365
78.0M
          0.34875205199302267f,
366
78.0M
      },
367
78.0M
      {
368
78.0M
          0.0,
369
78.0M
          0.0,
370
78.0M
          0.11354987314994337f,
371
78.0M
          -0.07417504595810355f,
372
78.0M
          0.0,
373
78.0M
          0.19402893032594343f,
374
78.0M
          -0.435190496523228f,
375
78.0M
          0.21918684838857466f,
376
78.0M
          0.11354987314994257f,
377
78.0M
          -0.4351904965232251f,
378
78.0M
          0.5550443808910661f,
379
78.0M
          -0.25468277124066463f,
380
78.0M
          -0.07417504595810233f,
381
78.0M
          0.2191868483885728f,
382
78.0M
          -0.25468277124066413f,
383
78.0M
          0.1135498731499429f,
384
78.0M
      },
385
78.0M
  };
386
387
78.0M
  const HWY_CAPPED(float, 16) d;
388
234M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
156M
    auto pixel = Zero(d);
390
2.65G
    for (size_t j = 0; j < 16; j++) {
391
2.49G
      auto cf = Set(d, coeffs[j]);
392
2.49G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.49G
      pixel = MulAdd(cf, basis, pixel);
394
2.49G
    }
395
156M
    Store(pixel, d, pixels + i);
396
156M
  }
397
78.0M
}
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
83.3M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
83.3M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
83.3M
  size_t afv_x = afv_kind & 1;
404
83.3M
  size_t afv_y = afv_kind / 2;
405
83.3M
  float dcs[3] = {};
406
83.3M
  float block00 = coefficients[0];
407
83.3M
  float block01 = coefficients[1];
408
83.3M
  float block10 = coefficients[8];
409
83.3M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
83.3M
  dcs[1] = (block00 + block10 - block01);
411
83.3M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
83.3M
  HWY_ALIGN float coeff[4 * 4];
414
83.3M
  coeff[0] = dcs[0];
415
416M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.66G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.33G
      if (ix == 0 && iy == 0) continue;
418
1.24G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.24G
    }
420
333M
  }
421
83.3M
  HWY_ALIGN float block[4 * 8];
422
83.3M
  AFVIDCT4x4(coeff, block);
423
416M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.66G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.33G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.33G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.33G
    }
428
333M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
83.3M
  block[0] = dcs[1];
431
416M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.66G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.33G
      if (ix == 0 && iy == 0) continue;
434
1.24G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.24G
    }
436
333M
  }
437
83.3M
  ComputeScaledIDCT<4, 4>()(
438
83.3M
      block,
439
83.3M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
83.3M
            pixels_stride),
441
83.3M
      scratch_space);
442
  // IDCT4x8.
443
83.3M
  block[0] = dcs[2];
444
416M
  for (size_t iy = 0; iy < 4; iy++) {
445
2.99G
    for (size_t ix = 0; ix < 8; ix++) {
446
2.66G
      if (ix == 0 && iy == 0) continue;
447
2.58G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
2.58G
    }
449
333M
  }
450
83.3M
  ComputeScaledIDCT<4, 8>()(
451
83.3M
      block,
452
83.3M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
83.3M
      scratch_space);
454
83.3M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Line
Count
Source
401
949k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
949k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
949k
  size_t afv_x = afv_kind & 1;
404
949k
  size_t afv_y = afv_kind / 2;
405
949k
  float dcs[3] = {};
406
949k
  float block00 = coefficients[0];
407
949k
  float block01 = coefficients[1];
408
949k
  float block10 = coefficients[8];
409
949k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
949k
  dcs[1] = (block00 + block10 - block01);
411
949k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
949k
  HWY_ALIGN float coeff[4 * 4];
414
949k
  coeff[0] = dcs[0];
415
4.74M
  for (size_t iy = 0; iy < 4; iy++) {
416
18.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
15.1M
      if (ix == 0 && iy == 0) continue;
418
14.2M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
14.2M
    }
420
3.79M
  }
421
949k
  HWY_ALIGN float block[4 * 8];
422
949k
  AFVIDCT4x4(coeff, block);
423
4.74M
  for (size_t iy = 0; iy < 4; iy++) {
424
18.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
15.1M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
15.1M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
15.1M
    }
428
3.79M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
949k
  block[0] = dcs[1];
431
4.74M
  for (size_t iy = 0; iy < 4; iy++) {
432
18.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
15.1M
      if (ix == 0 && iy == 0) continue;
434
14.2M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
14.2M
    }
436
3.79M
  }
437
949k
  ComputeScaledIDCT<4, 4>()(
438
949k
      block,
439
949k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
949k
            pixels_stride),
441
949k
      scratch_space);
442
  // IDCT4x8.
443
949k
  block[0] = dcs[2];
444
4.74M
  for (size_t iy = 0; iy < 4; iy++) {
445
34.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
30.3M
      if (ix == 0 && iy == 0) continue;
447
29.4M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
29.4M
    }
449
3.79M
  }
450
949k
  ComputeScaledIDCT<4, 8>()(
451
949k
      block,
452
949k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
949k
      scratch_space);
454
949k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
2.24M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
2.24M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
2.24M
  size_t afv_x = afv_kind & 1;
404
2.24M
  size_t afv_y = afv_kind / 2;
405
2.24M
  float dcs[3] = {};
406
2.24M
  float block00 = coefficients[0];
407
2.24M
  float block01 = coefficients[1];
408
2.24M
  float block10 = coefficients[8];
409
2.24M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
2.24M
  dcs[1] = (block00 + block10 - block01);
411
2.24M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
2.24M
  HWY_ALIGN float coeff[4 * 4];
414
2.24M
  coeff[0] = dcs[0];
415
11.2M
  for (size_t iy = 0; iy < 4; iy++) {
416
44.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
35.9M
      if (ix == 0 && iy == 0) continue;
418
33.7M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
33.7M
    }
420
8.98M
  }
421
2.24M
  HWY_ALIGN float block[4 * 8];
422
2.24M
  AFVIDCT4x4(coeff, block);
423
11.2M
  for (size_t iy = 0; iy < 4; iy++) {
424
44.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
35.9M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
35.9M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
35.9M
    }
428
8.98M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
2.24M
  block[0] = dcs[1];
431
11.2M
  for (size_t iy = 0; iy < 4; iy++) {
432
44.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
35.9M
      if (ix == 0 && iy == 0) continue;
434
33.7M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
33.7M
    }
436
8.98M
  }
437
2.24M
  ComputeScaledIDCT<4, 4>()(
438
2.24M
      block,
439
2.24M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
2.24M
            pixels_stride),
441
2.24M
      scratch_space);
442
  // IDCT4x8.
443
2.24M
  block[0] = dcs[2];
444
11.2M
  for (size_t iy = 0; iy < 4; iy++) {
445
80.9M
    for (size_t ix = 0; ix < 8; ix++) {
446
71.9M
      if (ix == 0 && iy == 0) continue;
447
69.6M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
69.6M
    }
449
8.98M
  }
450
2.24M
  ComputeScaledIDCT<4, 8>()(
451
2.24M
      block,
452
2.24M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
2.24M
      scratch_space);
454
2.24M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
751k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
751k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
751k
  size_t afv_x = afv_kind & 1;
404
751k
  size_t afv_y = afv_kind / 2;
405
751k
  float dcs[3] = {};
406
751k
  float block00 = coefficients[0];
407
751k
  float block01 = coefficients[1];
408
751k
  float block10 = coefficients[8];
409
751k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
751k
  dcs[1] = (block00 + block10 - block01);
411
751k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
751k
  HWY_ALIGN float coeff[4 * 4];
414
751k
  coeff[0] = dcs[0];
415
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
416
15.0M
    for (size_t ix = 0; ix < 4; ix++) {
417
12.0M
      if (ix == 0 && iy == 0) continue;
418
11.2M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
11.2M
    }
420
3.00M
  }
421
751k
  HWY_ALIGN float block[4 * 8];
422
751k
  AFVIDCT4x4(coeff, block);
423
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
424
15.0M
    for (size_t ix = 0; ix < 4; ix++) {
425
12.0M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
12.0M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
12.0M
    }
428
3.00M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
751k
  block[0] = dcs[1];
431
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
432
15.0M
    for (size_t ix = 0; ix < 4; ix++) {
433
12.0M
      if (ix == 0 && iy == 0) continue;
434
11.2M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
11.2M
    }
436
3.00M
  }
437
751k
  ComputeScaledIDCT<4, 4>()(
438
751k
      block,
439
751k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
751k
            pixels_stride),
441
751k
      scratch_space);
442
  // IDCT4x8.
443
751k
  block[0] = dcs[2];
444
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
445
27.0M
    for (size_t ix = 0; ix < 8; ix++) {
446
24.0M
      if (ix == 0 && iy == 0) continue;
447
23.2M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
23.2M
    }
449
3.00M
  }
450
751k
  ComputeScaledIDCT<4, 8>()(
451
751k
      block,
452
751k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
751k
      scratch_space);
454
751k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.25M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.25M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.25M
  size_t afv_x = afv_kind & 1;
404
1.25M
  size_t afv_y = afv_kind / 2;
405
1.25M
  float dcs[3] = {};
406
1.25M
  float block00 = coefficients[0];
407
1.25M
  float block01 = coefficients[1];
408
1.25M
  float block10 = coefficients[8];
409
1.25M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.25M
  dcs[1] = (block00 + block10 - block01);
411
1.25M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.25M
  HWY_ALIGN float coeff[4 * 4];
414
1.25M
  coeff[0] = dcs[0];
415
6.27M
  for (size_t iy = 0; iy < 4; iy++) {
416
25.1M
    for (size_t ix = 0; ix < 4; ix++) {
417
20.0M
      if (ix == 0 && iy == 0) continue;
418
18.8M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
18.8M
    }
420
5.02M
  }
421
1.25M
  HWY_ALIGN float block[4 * 8];
422
1.25M
  AFVIDCT4x4(coeff, block);
423
6.27M
  for (size_t iy = 0; iy < 4; iy++) {
424
25.1M
    for (size_t ix = 0; ix < 4; ix++) {
425
20.0M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
20.0M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
20.0M
    }
428
5.02M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.25M
  block[0] = dcs[1];
431
6.27M
  for (size_t iy = 0; iy < 4; iy++) {
432
25.1M
    for (size_t ix = 0; ix < 4; ix++) {
433
20.0M
      if (ix == 0 && iy == 0) continue;
434
18.8M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
18.8M
    }
436
5.02M
  }
437
1.25M
  ComputeScaledIDCT<4, 4>()(
438
1.25M
      block,
439
1.25M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.25M
            pixels_stride),
441
1.25M
      scratch_space);
442
  // IDCT4x8.
443
1.25M
  block[0] = dcs[2];
444
6.27M
  for (size_t iy = 0; iy < 4; iy++) {
445
45.2M
    for (size_t ix = 0; ix < 8; ix++) {
446
40.1M
      if (ix == 0 && iy == 0) continue;
447
38.9M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
38.9M
    }
449
5.02M
  }
450
1.25M
  ComputeScaledIDCT<4, 8>()(
451
1.25M
      block,
452
1.25M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.25M
      scratch_space);
454
1.25M
}
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
19.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
19.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
19.5M
  size_t afv_x = afv_kind & 1;
404
19.5M
  size_t afv_y = afv_kind / 2;
405
19.5M
  float dcs[3] = {};
406
19.5M
  float block00 = coefficients[0];
407
19.5M
  float block01 = coefficients[1];
408
19.5M
  float block10 = coefficients[8];
409
19.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
19.5M
  dcs[1] = (block00 + block10 - block01);
411
19.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
19.5M
  HWY_ALIGN float coeff[4 * 4];
414
19.5M
  coeff[0] = dcs[0];
415
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
416
390M
    for (size_t ix = 0; ix < 4; ix++) {
417
312M
      if (ix == 0 && iy == 0) continue;
418
292M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
292M
    }
420
78.0M
  }
421
19.5M
  HWY_ALIGN float block[4 * 8];
422
19.5M
  AFVIDCT4x4(coeff, block);
423
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
424
390M
    for (size_t ix = 0; ix < 4; ix++) {
425
312M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
312M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
312M
    }
428
78.0M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
19.5M
  block[0] = dcs[1];
431
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
432
390M
    for (size_t ix = 0; ix < 4; ix++) {
433
312M
      if (ix == 0 && iy == 0) continue;
434
292M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
292M
    }
436
78.0M
  }
437
19.5M
  ComputeScaledIDCT<4, 4>()(
438
19.5M
      block,
439
19.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
19.5M
            pixels_stride),
441
19.5M
      scratch_space);
442
  // IDCT4x8.
443
19.5M
  block[0] = dcs[2];
444
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
445
702M
    for (size_t ix = 0; ix < 8; ix++) {
446
624M
      if (ix == 0 && iy == 0) continue;
447
605M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
605M
    }
449
78.0M
  }
450
19.5M
  ComputeScaledIDCT<4, 8>()(
451
19.5M
      block,
452
19.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
19.5M
      scratch_space);
454
19.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
19.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
19.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
19.5M
  size_t afv_x = afv_kind & 1;
404
19.5M
  size_t afv_y = afv_kind / 2;
405
19.5M
  float dcs[3] = {};
406
19.5M
  float block00 = coefficients[0];
407
19.5M
  float block01 = coefficients[1];
408
19.5M
  float block10 = coefficients[8];
409
19.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
19.5M
  dcs[1] = (block00 + block10 - block01);
411
19.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
19.5M
  HWY_ALIGN float coeff[4 * 4];
414
19.5M
  coeff[0] = dcs[0];
415
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
416
390M
    for (size_t ix = 0; ix < 4; ix++) {
417
312M
      if (ix == 0 && iy == 0) continue;
418
292M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
292M
    }
420
78.0M
  }
421
19.5M
  HWY_ALIGN float block[4 * 8];
422
19.5M
  AFVIDCT4x4(coeff, block);
423
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
424
390M
    for (size_t ix = 0; ix < 4; ix++) {
425
312M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
312M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
312M
    }
428
78.0M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
19.5M
  block[0] = dcs[1];
431
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
432
390M
    for (size_t ix = 0; ix < 4; ix++) {
433
312M
      if (ix == 0 && iy == 0) continue;
434
292M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
292M
    }
436
78.0M
  }
437
19.5M
  ComputeScaledIDCT<4, 4>()(
438
19.5M
      block,
439
19.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
19.5M
            pixels_stride),
441
19.5M
      scratch_space);
442
  // IDCT4x8.
443
19.5M
  block[0] = dcs[2];
444
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
445
702M
    for (size_t ix = 0; ix < 8; ix++) {
446
624M
      if (ix == 0 && iy == 0) continue;
447
605M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
605M
    }
449
78.0M
  }
450
19.5M
  ComputeScaledIDCT<4, 8>()(
451
19.5M
      block,
452
19.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
19.5M
      scratch_space);
454
19.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
19.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
19.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
19.5M
  size_t afv_x = afv_kind & 1;
404
19.5M
  size_t afv_y = afv_kind / 2;
405
19.5M
  float dcs[3] = {};
406
19.5M
  float block00 = coefficients[0];
407
19.5M
  float block01 = coefficients[1];
408
19.5M
  float block10 = coefficients[8];
409
19.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
19.5M
  dcs[1] = (block00 + block10 - block01);
411
19.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
19.5M
  HWY_ALIGN float coeff[4 * 4];
414
19.5M
  coeff[0] = dcs[0];
415
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
416
390M
    for (size_t ix = 0; ix < 4; ix++) {
417
312M
      if (ix == 0 && iy == 0) continue;
418
292M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
292M
    }
420
78.0M
  }
421
19.5M
  HWY_ALIGN float block[4 * 8];
422
19.5M
  AFVIDCT4x4(coeff, block);
423
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
424
390M
    for (size_t ix = 0; ix < 4; ix++) {
425
312M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
312M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
312M
    }
428
78.0M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
19.5M
  block[0] = dcs[1];
431
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
432
390M
    for (size_t ix = 0; ix < 4; ix++) {
433
312M
      if (ix == 0 && iy == 0) continue;
434
292M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
292M
    }
436
78.0M
  }
437
19.5M
  ComputeScaledIDCT<4, 4>()(
438
19.5M
      block,
439
19.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
19.5M
            pixels_stride),
441
19.5M
      scratch_space);
442
  // IDCT4x8.
443
19.5M
  block[0] = dcs[2];
444
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
445
702M
    for (size_t ix = 0; ix < 8; ix++) {
446
624M
      if (ix == 0 && iy == 0) continue;
447
605M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
605M
    }
449
78.0M
  }
450
19.5M
  ComputeScaledIDCT<4, 8>()(
451
19.5M
      block,
452
19.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
19.5M
      scratch_space);
454
19.5M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
19.5M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
19.5M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
19.5M
  size_t afv_x = afv_kind & 1;
404
19.5M
  size_t afv_y = afv_kind / 2;
405
19.5M
  float dcs[3] = {};
406
19.5M
  float block00 = coefficients[0];
407
19.5M
  float block01 = coefficients[1];
408
19.5M
  float block10 = coefficients[8];
409
19.5M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
19.5M
  dcs[1] = (block00 + block10 - block01);
411
19.5M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
19.5M
  HWY_ALIGN float coeff[4 * 4];
414
19.5M
  coeff[0] = dcs[0];
415
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
416
390M
    for (size_t ix = 0; ix < 4; ix++) {
417
312M
      if (ix == 0 && iy == 0) continue;
418
292M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
292M
    }
420
78.0M
  }
421
19.5M
  HWY_ALIGN float block[4 * 8];
422
19.5M
  AFVIDCT4x4(coeff, block);
423
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
424
390M
    for (size_t ix = 0; ix < 4; ix++) {
425
312M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
312M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
312M
    }
428
78.0M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
19.5M
  block[0] = dcs[1];
431
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
432
390M
    for (size_t ix = 0; ix < 4; ix++) {
433
312M
      if (ix == 0 && iy == 0) continue;
434
292M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
292M
    }
436
78.0M
  }
437
19.5M
  ComputeScaledIDCT<4, 4>()(
438
19.5M
      block,
439
19.5M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
19.5M
            pixels_stride),
441
19.5M
      scratch_space);
442
  // IDCT4x8.
443
19.5M
  block[0] = dcs[2];
444
97.6M
  for (size_t iy = 0; iy < 4; iy++) {
445
702M
    for (size_t ix = 0; ix < 8; ix++) {
446
624M
      if (ix == 0 && iy == 0) continue;
447
605M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
605M
    }
449
78.0M
  }
450
19.5M
  ComputeScaledIDCT<4, 8>()(
451
19.5M
      block,
452
19.5M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
19.5M
      scratch_space);
454
19.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
273M
                                        float* scratch_space) {
461
273M
  using Type = AcStrategyType;
462
273M
  switch (strategy) {
463
22.8M
    case Type::IDENTITY: {
464
22.8M
      float dcs[4] = {};
465
22.8M
      float block00 = coefficients[0];
466
22.8M
      float block01 = coefficients[1];
467
22.8M
      float block10 = coefficients[8];
468
22.8M
      float block11 = coefficients[9];
469
22.8M
      dcs[0] = block00 + block01 + block10 + block11;
470
22.8M
      dcs[1] = block00 + block01 - block10 - block11;
471
22.8M
      dcs[2] = block00 - block01 + block10 - block11;
472
22.8M
      dcs[3] = block00 - block01 - block10 + block11;
473
68.4M
      for (size_t y = 0; y < 2; y++) {
474
136M
        for (size_t x = 0; x < 2; x++) {
475
91.2M
          float block_dc = dcs[y * 2 + x];
476
91.2M
          float residual_sum = 0;
477
456M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.82G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.46G
              if (ix == 0 && iy == 0) continue;
480
1.36G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.36G
            }
482
365M
          }
483
91.2M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
91.2M
              block_dc - residual_sum * (1.0f / 16);
485
456M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.82G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.46G
              if (ix == 1 && iy == 1) continue;
488
1.36G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.36G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.36G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.36G
            }
492
365M
          }
493
91.2M
          pixels[y * 4 * pixels_stride + x * 4] =
494
91.2M
              coefficients[(y + 2) * 8 + x + 2] +
495
91.2M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
91.2M
        }
497
45.6M
      }
498
22.8M
      break;
499
0
    }
500
21.0M
    case Type::DCT8X4: {
501
21.0M
      float dcs[2] = {};
502
21.0M
      float block0 = coefficients[0];
503
21.0M
      float block1 = coefficients[8];
504
21.0M
      dcs[0] = block0 + block1;
505
21.0M
      dcs[1] = block0 - block1;
506
63.1M
      for (size_t x = 0; x < 2; x++) {
507
42.0M
        HWY_ALIGN float block[4 * 8];
508
42.0M
        block[0] = dcs[x];
509
210M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.51G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.34G
            if (ix == 0 && iy == 0) continue;
512
1.30G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.30G
          }
514
168M
        }
515
42.0M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
42.0M
                                  scratch_space);
517
42.0M
      }
518
21.0M
      break;
519
0
    }
520
20.6M
    case Type::DCT4X8: {
521
20.6M
      float dcs[2] = {};
522
20.6M
      float block0 = coefficients[0];
523
20.6M
      float block1 = coefficients[8];
524
20.6M
      dcs[0] = block0 + block1;
525
20.6M
      dcs[1] = block0 - block1;
526
61.8M
      for (size_t y = 0; y < 2; y++) {
527
41.2M
        HWY_ALIGN float block[4 * 8];
528
41.2M
        block[0] = dcs[y];
529
206M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.48G
          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.2M
        ComputeScaledIDCT<4, 8>()(
536
41.2M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
41.2M
            scratch_space);
538
41.2M
      }
539
20.6M
      break;
540
0
    }
541
19.5M
    case Type::DCT4X4: {
542
19.5M
      float dcs[4] = {};
543
19.5M
      float block00 = coefficients[0];
544
19.5M
      float block01 = coefficients[1];
545
19.5M
      float block10 = coefficients[8];
546
19.5M
      float block11 = coefficients[9];
547
19.5M
      dcs[0] = block00 + block01 + block10 + block11;
548
19.5M
      dcs[1] = block00 + block01 - block10 - block11;
549
19.5M
      dcs[2] = block00 - block01 + block10 - block11;
550
19.5M
      dcs[3] = block00 - block01 - block10 + block11;
551
58.7M
      for (size_t y = 0; y < 2; y++) {
552
117M
        for (size_t x = 0; x < 2; x++) {
553
78.3M
          HWY_ALIGN float block[4 * 4];
554
78.3M
          block[0] = dcs[y * 2 + x];
555
391M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.56G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.25G
              if (ix == 0 && iy == 0) continue;
558
1.17G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.17G
            }
560
313M
          }
561
78.3M
          ComputeScaledIDCT<4, 4>()(
562
78.3M
              block,
563
78.3M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
78.3M
              scratch_space);
565
78.3M
        }
566
39.1M
      }
567
19.5M
      break;
568
0
    }
569
22.7M
    case Type::DCT2X2: {
570
22.7M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
22.7M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
22.7M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
22.7M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
22.7M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
204M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.63G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.45G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.45G
        }
579
181M
      }
580
22.7M
      break;
581
0
    }
582
8.28M
    case Type::DCT16X16: {
583
8.28M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
8.28M
                                  scratch_space);
585
8.28M
      break;
586
0
    }
587
16.1M
    case Type::DCT16X8: {
588
16.1M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
16.1M
                                 scratch_space);
590
16.1M
      break;
591
0
    }
592
16.9M
    case Type::DCT8X16: {
593
16.9M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
16.9M
                                 scratch_space);
595
16.9M
      break;
596
0
    }
597
5.65k
    case Type::DCT32X8: {
598
5.65k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
5.65k
                                 scratch_space);
600
5.65k
      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.32M
    case Type::DCT32X16: {
608
3.32M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.32M
                                  scratch_space);
610
3.32M
      break;
611
0
    }
612
3.51M
    case Type::DCT16X32: {
613
3.51M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.51M
                                  scratch_space);
615
3.51M
      break;
616
0
    }
617
2.38M
    case Type::DCT32X32: {
618
2.38M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
2.38M
                                  scratch_space);
620
2.38M
      break;
621
0
    }
622
30.4M
    case Type::DCT: {
623
30.4M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
30.4M
                                scratch_space);
625
30.4M
      break;
626
0
    }
627
20.4M
    case Type::AFV0: {
628
20.4M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
20.4M
      break;
630
0
    }
631
21.7M
    case Type::AFV1: {
632
21.7M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
21.7M
      break;
634
0
    }
635
20.2M
    case Type::AFV2: {
636
20.2M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
20.2M
      break;
638
0
    }
639
20.7M
    case Type::AFV3: {
640
20.7M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
20.7M
      break;
642
0
    }
643
1.00M
    case Type::DCT64X32: {
644
1.00M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.00M
                                  scratch_space);
646
1.00M
      break;
647
0
    }
648
680k
    case Type::DCT32X64: {
649
680k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
680k
                                  scratch_space);
651
680k
      break;
652
0
    }
653
441k
    case Type::DCT64X64: {
654
441k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
441k
                                  scratch_space);
656
441k
      break;
657
0
    }
658
54
    case Type::DCT128X64: {
659
54
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
54
                                   scratch_space);
661
54
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
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
30
    case Type::DCT256X256: {
684
30
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
30
                                    scratch_space);
686
30
      break;
687
0
    }
688
273M
  }
689
273M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
30.3M
                                        float* scratch_space) {
461
30.3M
  using Type = AcStrategyType;
462
30.3M
  switch (strategy) {
463
3.29M
    case Type::IDENTITY: {
464
3.29M
      float dcs[4] = {};
465
3.29M
      float block00 = coefficients[0];
466
3.29M
      float block01 = coefficients[1];
467
3.29M
      float block10 = coefficients[8];
468
3.29M
      float block11 = coefficients[9];
469
3.29M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.29M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.29M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.29M
      dcs[3] = block00 - block01 - block10 + block11;
473
9.88M
      for (size_t y = 0; y < 2; y++) {
474
19.7M
        for (size_t x = 0; x < 2; x++) {
475
13.1M
          float block_dc = dcs[y * 2 + x];
476
13.1M
          float residual_sum = 0;
477
65.9M
          for (size_t iy = 0; iy < 4; iy++) {
478
263M
            for (size_t ix = 0; ix < 4; ix++) {
479
210M
              if (ix == 0 && iy == 0) continue;
480
197M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
197M
            }
482
52.7M
          }
483
13.1M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
13.1M
              block_dc - residual_sum * (1.0f / 16);
485
65.9M
          for (size_t iy = 0; iy < 4; iy++) {
486
263M
            for (size_t ix = 0; ix < 4; ix++) {
487
210M
              if (ix == 1 && iy == 1) continue;
488
197M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
197M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
197M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
197M
            }
492
52.7M
          }
493
13.1M
          pixels[y * 4 * pixels_stride + x * 4] =
494
13.1M
              coefficients[(y + 2) * 8 + x + 2] +
495
13.1M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
13.1M
        }
497
6.59M
      }
498
3.29M
      break;
499
0
    }
500
1.51M
    case Type::DCT8X4: {
501
1.51M
      float dcs[2] = {};
502
1.51M
      float block0 = coefficients[0];
503
1.51M
      float block1 = coefficients[8];
504
1.51M
      dcs[0] = block0 + block1;
505
1.51M
      dcs[1] = block0 - block1;
506
4.53M
      for (size_t x = 0; x < 2; x++) {
507
3.02M
        HWY_ALIGN float block[4 * 8];
508
3.02M
        block[0] = dcs[x];
509
15.1M
        for (size_t iy = 0; iy < 4; iy++) {
510
108M
          for (size_t ix = 0; ix < 8; ix++) {
511
96.8M
            if (ix == 0 && iy == 0) continue;
512
93.8M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
93.8M
          }
514
12.1M
        }
515
3.02M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
3.02M
                                  scratch_space);
517
3.02M
      }
518
1.51M
      break;
519
0
    }
520
1.09M
    case Type::DCT4X8: {
521
1.09M
      float dcs[2] = {};
522
1.09M
      float block0 = coefficients[0];
523
1.09M
      float block1 = coefficients[8];
524
1.09M
      dcs[0] = block0 + block1;
525
1.09M
      dcs[1] = block0 - block1;
526
3.28M
      for (size_t y = 0; y < 2; y++) {
527
2.19M
        HWY_ALIGN float block[4 * 8];
528
2.19M
        block[0] = dcs[y];
529
10.9M
        for (size_t iy = 0; iy < 4; iy++) {
530
78.9M
          for (size_t ix = 0; ix < 8; ix++) {
531
70.1M
            if (ix == 0 && iy == 0) continue;
532
67.9M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
67.9M
          }
534
8.76M
        }
535
2.19M
        ComputeScaledIDCT<4, 8>()(
536
2.19M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.19M
            scratch_space);
538
2.19M
      }
539
1.09M
      break;
540
0
    }
541
55.3k
    case Type::DCT4X4: {
542
55.3k
      float dcs[4] = {};
543
55.3k
      float block00 = coefficients[0];
544
55.3k
      float block01 = coefficients[1];
545
55.3k
      float block10 = coefficients[8];
546
55.3k
      float block11 = coefficients[9];
547
55.3k
      dcs[0] = block00 + block01 + block10 + block11;
548
55.3k
      dcs[1] = block00 + block01 - block10 - block11;
549
55.3k
      dcs[2] = block00 - block01 + block10 - block11;
550
55.3k
      dcs[3] = block00 - block01 - block10 + block11;
551
166k
      for (size_t y = 0; y < 2; y++) {
552
332k
        for (size_t x = 0; x < 2; x++) {
553
221k
          HWY_ALIGN float block[4 * 4];
554
221k
          block[0] = dcs[y * 2 + x];
555
1.10M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.43M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.54M
              if (ix == 0 && iy == 0) continue;
558
3.32M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.32M
            }
560
886k
          }
561
221k
          ComputeScaledIDCT<4, 4>()(
562
221k
              block,
563
221k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
221k
              scratch_space);
565
221k
        }
566
110k
      }
567
55.3k
      break;
568
0
    }
569
3.17M
    case Type::DCT2X2: {
570
3.17M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.17M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.17M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.17M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.17M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
28.6M
      for (size_t y = 0; y < kBlockDim; y++) {
576
228M
        for (size_t x = 0; x < kBlockDim; x++) {
577
203M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
203M
        }
579
25.4M
      }
580
3.17M
      break;
581
0
    }
582
533k
    case Type::DCT16X16: {
583
533k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
533k
                                  scratch_space);
585
533k
      break;
586
0
    }
587
1.00M
    case Type::DCT16X8: {
588
1.00M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
1.00M
                                 scratch_space);
590
1.00M
      break;
591
0
    }
592
1.63M
    case Type::DCT8X16: {
593
1.63M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.63M
                                 scratch_space);
595
1.63M
      break;
596
0
    }
597
5.65k
    case Type::DCT32X8: {
598
5.65k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
5.65k
                                 scratch_space);
600
5.65k
      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
312k
    case Type::DCT32X16: {
608
312k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
312k
                                  scratch_space);
610
312k
      break;
611
0
    }
612
476k
    case Type::DCT16X32: {
613
476k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
476k
                                  scratch_space);
615
476k
      break;
616
0
    }
617
844k
    case Type::DCT32X32: {
618
844k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
844k
                                  scratch_space);
620
844k
      break;
621
0
    }
622
10.9M
    case Type::DCT: {
623
10.9M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
10.9M
                                scratch_space);
625
10.9M
      break;
626
0
    }
627
949k
    case Type::AFV0: {
628
949k
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
949k
      break;
630
0
    }
631
2.24M
    case Type::AFV1: {
632
2.24M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
2.24M
      break;
634
0
    }
635
751k
    case Type::AFV2: {
636
751k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
751k
      break;
638
0
    }
639
1.25M
    case Type::AFV3: {
640
1.25M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
1.25M
      break;
642
0
    }
643
26.6k
    case Type::DCT64X32: {
644
26.6k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
26.6k
                                  scratch_space);
646
26.6k
      break;
647
0
    }
648
35.4k
    case Type::DCT32X64: {
649
35.4k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
35.4k
                                  scratch_space);
651
35.4k
      break;
652
0
    }
653
179k
    case Type::DCT64X64: {
654
179k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
179k
                                  scratch_space);
656
179k
      break;
657
0
    }
658
54
    case Type::DCT128X64: {
659
54
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
54
                                   scratch_space);
661
54
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
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
30
    case Type::DCT256X256: {
684
30
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
30
                                    scratch_space);
686
30
      break;
687
0
    }
688
30.3M
  }
689
30.3M
}
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
242M
                                        float* scratch_space) {
461
242M
  using Type = AcStrategyType;
462
242M
  switch (strategy) {
463
19.5M
    case Type::IDENTITY: {
464
19.5M
      float dcs[4] = {};
465
19.5M
      float block00 = coefficients[0];
466
19.5M
      float block01 = coefficients[1];
467
19.5M
      float block10 = coefficients[8];
468
19.5M
      float block11 = coefficients[9];
469
19.5M
      dcs[0] = block00 + block01 + block10 + block11;
470
19.5M
      dcs[1] = block00 + block01 - block10 - block11;
471
19.5M
      dcs[2] = block00 - block01 + block10 - block11;
472
19.5M
      dcs[3] = block00 - block01 - block10 + block11;
473
58.5M
      for (size_t y = 0; y < 2; y++) {
474
117M
        for (size_t x = 0; x < 2; x++) {
475
78.0M
          float block_dc = dcs[y * 2 + x];
476
78.0M
          float residual_sum = 0;
477
390M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.56G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.24G
              if (ix == 0 && iy == 0) continue;
480
1.17G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.17G
            }
482
312M
          }
483
78.0M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
78.0M
              block_dc - residual_sum * (1.0f / 16);
485
390M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.56G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.24G
              if (ix == 1 && iy == 1) continue;
488
1.17G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.17G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.17G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.17G
            }
492
312M
          }
493
78.0M
          pixels[y * 4 * pixels_stride + x * 4] =
494
78.0M
              coefficients[(y + 2) * 8 + x + 2] +
495
78.0M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
78.0M
        }
497
39.0M
      }
498
19.5M
      break;
499
0
    }
500
19.5M
    case Type::DCT8X4: {
501
19.5M
      float dcs[2] = {};
502
19.5M
      float block0 = coefficients[0];
503
19.5M
      float block1 = coefficients[8];
504
19.5M
      dcs[0] = block0 + block1;
505
19.5M
      dcs[1] = block0 - block1;
506
58.5M
      for (size_t x = 0; x < 2; x++) {
507
39.0M
        HWY_ALIGN float block[4 * 8];
508
39.0M
        block[0] = dcs[x];
509
195M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.40G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.24G
            if (ix == 0 && iy == 0) continue;
512
1.21G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.21G
          }
514
156M
        }
515
39.0M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
39.0M
                                  scratch_space);
517
39.0M
      }
518
19.5M
      break;
519
0
    }
520
19.5M
    case Type::DCT4X8: {
521
19.5M
      float dcs[2] = {};
522
19.5M
      float block0 = coefficients[0];
523
19.5M
      float block1 = coefficients[8];
524
19.5M
      dcs[0] = block0 + block1;
525
19.5M
      dcs[1] = block0 - block1;
526
58.5M
      for (size_t y = 0; y < 2; y++) {
527
39.0M
        HWY_ALIGN float block[4 * 8];
528
39.0M
        block[0] = dcs[y];
529
195M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.40G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.24G
            if (ix == 0 && iy == 0) continue;
532
1.21G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.21G
          }
534
156M
        }
535
39.0M
        ComputeScaledIDCT<4, 8>()(
536
39.0M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
39.0M
            scratch_space);
538
39.0M
      }
539
19.5M
      break;
540
0
    }
541
19.5M
    case Type::DCT4X4: {
542
19.5M
      float dcs[4] = {};
543
19.5M
      float block00 = coefficients[0];
544
19.5M
      float block01 = coefficients[1];
545
19.5M
      float block10 = coefficients[8];
546
19.5M
      float block11 = coefficients[9];
547
19.5M
      dcs[0] = block00 + block01 + block10 + block11;
548
19.5M
      dcs[1] = block00 + block01 - block10 - block11;
549
19.5M
      dcs[2] = block00 - block01 + block10 - block11;
550
19.5M
      dcs[3] = block00 - block01 - block10 + block11;
551
58.5M
      for (size_t y = 0; y < 2; y++) {
552
117M
        for (size_t x = 0; x < 2; x++) {
553
78.0M
          HWY_ALIGN float block[4 * 4];
554
78.0M
          block[0] = dcs[y * 2 + x];
555
390M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.56G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.24G
              if (ix == 0 && iy == 0) continue;
558
1.17G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.17G
            }
560
312M
          }
561
78.0M
          ComputeScaledIDCT<4, 4>()(
562
78.0M
              block,
563
78.0M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
78.0M
              scratch_space);
565
78.0M
        }
566
39.0M
      }
567
19.5M
      break;
568
0
    }
569
19.5M
    case Type::DCT2X2: {
570
19.5M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
19.5M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
19.5M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
19.5M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
19.5M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
175M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.40G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.24G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.24G
        }
579
156M
      }
580
19.5M
      break;
581
0
    }
582
7.74M
    case Type::DCT16X16: {
583
7.74M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
7.74M
                                  scratch_space);
585
7.74M
      break;
586
0
    }
587
15.1M
    case Type::DCT16X8: {
588
15.1M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
15.1M
                                 scratch_space);
590
15.1M
      break;
591
0
    }
592
15.2M
    case Type::DCT8X16: {
593
15.2M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
15.2M
                                 scratch_space);
595
15.2M
      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.01M
    case Type::DCT32X16: {
608
3.01M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.01M
                                  scratch_space);
610
3.01M
      break;
611
0
    }
612
3.03M
    case Type::DCT16X32: {
613
3.03M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.03M
                                  scratch_space);
615
3.03M
      break;
616
0
    }
617
1.53M
    case Type::DCT32X32: {
618
1.53M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.53M
                                  scratch_space);
620
1.53M
      break;
621
0
    }
622
19.5M
    case Type::DCT: {
623
19.5M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
19.5M
                                scratch_space);
625
19.5M
      break;
626
0
    }
627
19.5M
    case Type::AFV0: {
628
19.5M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
19.5M
      break;
630
0
    }
631
19.5M
    case Type::AFV1: {
632
19.5M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
19.5M
      break;
634
0
    }
635
19.5M
    case Type::AFV2: {
636
19.5M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
19.5M
      break;
638
0
    }
639
19.5M
    case Type::AFV3: {
640
19.5M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
19.5M
      break;
642
0
    }
643
980k
    case Type::DCT64X32: {
644
980k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
980k
                                  scratch_space);
646
980k
      break;
647
0
    }
648
644k
    case Type::DCT32X64: {
649
644k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
644k
                                  scratch_space);
651
644k
      break;
652
0
    }
653
261k
    case Type::DCT64X64: {
654
261k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
261k
                                  scratch_space);
656
261k
      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
242M
  }
689
242M
}
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
690
691
HWY_MAYBE_UNUSED void LowestFrequenciesFromDC(const AcStrategyType strategy,
692
                                              const float* dc, size_t dc_stride,
693
                                              float* llf,
694
30.3M
                                              float* JXL_RESTRICT scratch) {
695
30.3M
  using Type = AcStrategyType;
696
30.3M
  HWY_ALIGN float warm_block[4 * 4];
697
30.3M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
30.3M
  switch (strategy) {
699
1.00M
    case Type::DCT16X8: {
700
1.00M
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
1.00M
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
1.00M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
1.00M
      break;
704
0
    }
705
1.63M
    case Type::DCT8X16: {
706
1.63M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.63M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.63M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.63M
      break;
710
0
    }
711
533k
    case Type::DCT16X16: {
712
533k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
533k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
533k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
533k
      break;
716
0
    }
717
5.65k
    case Type::DCT32X8: {
718
5.65k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
5.65k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
5.65k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
5.65k
      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
312k
    case Type::DCT32X16: {
730
312k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
312k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
312k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
312k
      break;
734
0
    }
735
476k
    case Type::DCT16X32: {
736
476k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
476k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
476k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
476k
      break;
740
0
    }
741
844k
    case Type::DCT32X32: {
742
844k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
844k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
844k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
844k
      break;
746
0
    }
747
26.6k
    case Type::DCT64X32: {
748
26.6k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
26.6k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
26.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
26.6k
      break;
752
0
    }
753
35.4k
    case Type::DCT32X64: {
754
35.4k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
35.4k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
35.4k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
35.4k
      break;
758
0
    }
759
179k
    case Type::DCT64X64: {
760
179k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
179k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
179k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
179k
      break;
764
0
    }
765
54
    case Type::DCT128X64: {
766
54
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
54
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
54
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
54
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
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
30
    case Type::DCT256X256: {
799
30
      ReinterpretingDCT<
800
30
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
30
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
30
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
30
      break;
804
0
    }
805
10.9M
    case Type::DCT:
806
14.0M
    case Type::DCT2X2:
807
14.1M
    case Type::DCT4X4:
808
15.2M
    case Type::DCT4X8:
809
16.7M
    case Type::DCT8X4:
810
17.6M
    case Type::AFV0:
811
19.9M
    case Type::AFV1:
812
20.6M
    case Type::AFV2:
813
21.9M
    case Type::AFV3:
814
25.2M
    case Type::IDENTITY:
815
25.2M
      llf[0] = dc[0];
816
25.2M
      break;
817
30.3M
  };
818
30.3M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
694
30.3M
                                              float* JXL_RESTRICT scratch) {
695
30.3M
  using Type = AcStrategyType;
696
30.3M
  HWY_ALIGN float warm_block[4 * 4];
697
30.3M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
30.3M
  switch (strategy) {
699
1.00M
    case Type::DCT16X8: {
700
1.00M
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
1.00M
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
1.00M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
1.00M
      break;
704
0
    }
705
1.63M
    case Type::DCT8X16: {
706
1.63M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.63M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.63M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.63M
      break;
710
0
    }
711
533k
    case Type::DCT16X16: {
712
533k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
533k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
533k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
533k
      break;
716
0
    }
717
5.65k
    case Type::DCT32X8: {
718
5.65k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
5.65k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
5.65k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
5.65k
      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
312k
    case Type::DCT32X16: {
730
312k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
312k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
312k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
312k
      break;
734
0
    }
735
476k
    case Type::DCT16X32: {
736
476k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
476k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
476k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
476k
      break;
740
0
    }
741
844k
    case Type::DCT32X32: {
742
844k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
844k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
844k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
844k
      break;
746
0
    }
747
26.6k
    case Type::DCT64X32: {
748
26.6k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
26.6k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
26.6k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
26.6k
      break;
752
0
    }
753
35.4k
    case Type::DCT32X64: {
754
35.4k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
35.4k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
35.4k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
35.4k
      break;
758
0
    }
759
179k
    case Type::DCT64X64: {
760
179k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
179k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
179k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
179k
      break;
764
0
    }
765
54
    case Type::DCT128X64: {
766
54
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
54
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
54
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
54
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
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
30
    case Type::DCT256X256: {
799
30
      ReinterpretingDCT<
800
30
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
30
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
30
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
30
      break;
804
0
    }
805
10.9M
    case Type::DCT:
806
14.0M
    case Type::DCT2X2:
807
14.1M
    case Type::DCT4X4:
808
15.2M
    case Type::DCT4X8:
809
16.7M
    case Type::DCT8X4:
810
17.6M
    case Type::AFV0:
811
19.9M
    case Type::AFV1:
812
20.6M
    case Type::AFV2:
813
21.9M
    case Type::AFV3:
814
25.2M
    case Type::IDENTITY:
815
25.2M
      llf[0] = dc[0];
816
25.2M
      break;
817
30.3M
  };
818
30.3M
}
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_