Coverage Report

Created: 2026-09-06 07:31

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.29M
                                  float* JXL_RESTRICT scratch_space) {
41
5.29M
  static_assert(LF_ROWS == ROWS,
42
5.29M
                "ReinterpretingDCT should only be called with LF == N");
43
5.29M
  static_assert(LF_COLS == COLS,
44
5.29M
                "ReinterpretingDCT should only be called with LF == N");
45
5.29M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
5.29M
                                 scratch_space);
47
5.29M
  if (ROWS < COLS) {
48
5.06M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
11.1M
      for (size_t x = 0; x < LF_COLS; x++) {
50
8.29M
        output[y * output_stride + x] =
51
8.29M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
8.29M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
8.29M
      }
54
2.81M
    }
55
3.04M
  } else {
56
11.5M
    for (size_t y = 0; y < LF_COLS; y++) {
57
46.1M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
37.6M
        output[y * output_stride + x] =
59
37.6M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
37.6M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
37.6M
      }
62
8.49M
    }
63
3.04M
  }
64
5.29M
}
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
982k
                                  float* JXL_RESTRICT scratch_space) {
41
982k
  static_assert(LF_ROWS == ROWS,
42
982k
                "ReinterpretingDCT should only be called with LF == N");
43
982k
  static_assert(LF_COLS == COLS,
44
982k
                "ReinterpretingDCT should only be called with LF == N");
45
982k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
982k
                                 scratch_space);
47
982k
  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
982k
  } else {
56
1.96M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.94M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.96M
        output[y * output_stride + x] =
59
1.96M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.96M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.96M
      }
62
982k
    }
63
982k
  }
64
982k
}
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.75M
                                  float* JXL_RESTRICT scratch_space) {
41
1.75M
  static_assert(LF_ROWS == ROWS,
42
1.75M
                "ReinterpretingDCT should only be called with LF == N");
43
1.75M
  static_assert(LF_COLS == COLS,
44
1.75M
                "ReinterpretingDCT should only be called with LF == N");
45
1.75M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.75M
                                 scratch_space);
47
1.75M
  if (ROWS < COLS) {
48
3.50M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
5.25M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.50M
        output[y * output_stride + x] =
51
3.50M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.50M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.50M
      }
54
1.75M
    }
55
1.75M
  } 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.75M
}
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
551k
                                  float* JXL_RESTRICT scratch_space) {
41
551k
  static_assert(LF_ROWS == ROWS,
42
551k
                "ReinterpretingDCT should only be called with LF == N");
43
551k
  static_assert(LF_COLS == COLS,
44
551k
                "ReinterpretingDCT should only be called with LF == N");
45
551k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
551k
                                 scratch_space);
47
551k
  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
551k
  } else {
56
1.65M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.30M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.20M
        output[y * output_stride + x] =
59
2.20M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.20M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.20M
      }
62
1.10M
    }
63
551k
  }
64
551k
}
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
4.83k
                                  float* JXL_RESTRICT scratch_space) {
41
4.83k
  static_assert(LF_ROWS == ROWS,
42
4.83k
                "ReinterpretingDCT should only be called with LF == N");
43
4.83k
  static_assert(LF_COLS == COLS,
44
4.83k
                "ReinterpretingDCT should only be called with LF == N");
45
4.83k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
4.83k
                                 scratch_space);
47
4.83k
  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
4.83k
  } else {
56
9.67k
    for (size_t y = 0; y < LF_COLS; y++) {
57
24.1k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
19.3k
        output[y * output_stride + x] =
59
19.3k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
19.3k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
19.3k
      }
62
4.83k
    }
63
4.83k
  }
64
4.83k
}
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
6.45k
                                  float* JXL_RESTRICT scratch_space) {
41
6.45k
  static_assert(LF_ROWS == ROWS,
42
6.45k
                "ReinterpretingDCT should only be called with LF == N");
43
6.45k
  static_assert(LF_COLS == COLS,
44
6.45k
                "ReinterpretingDCT should only be called with LF == N");
45
6.45k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
6.45k
                                 scratch_space);
47
6.45k
  if (ROWS < COLS) {
48
12.9k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
32.2k
      for (size_t x = 0; x < LF_COLS; x++) {
50
25.8k
        output[y * output_stride + x] =
51
25.8k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
25.8k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
25.8k
      }
54
6.45k
    }
55
6.45k
  } 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
6.45k
}
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
275k
                                  float* JXL_RESTRICT scratch_space) {
41
275k
  static_assert(LF_ROWS == ROWS,
42
275k
                "ReinterpretingDCT should only be called with LF == N");
43
275k
  static_assert(LF_COLS == COLS,
44
275k
                "ReinterpretingDCT should only be called with LF == N");
45
275k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
275k
                                 scratch_space);
47
275k
  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
275k
  } else {
56
825k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.75M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.20M
        output[y * output_stride + x] =
59
2.20M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.20M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.20M
      }
62
550k
    }
63
275k
  }
64
275k
}
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
460k
                                  float* JXL_RESTRICT scratch_space) {
41
460k
  static_assert(LF_ROWS == ROWS,
42
460k
                "ReinterpretingDCT should only be called with LF == N");
43
460k
  static_assert(LF_COLS == COLS,
44
460k
                "ReinterpretingDCT should only be called with LF == N");
45
460k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
460k
                                 scratch_space);
47
460k
  if (ROWS < COLS) {
48
1.38M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.60M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.68M
        output[y * output_stride + x] =
51
3.68M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.68M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.68M
      }
54
920k
    }
55
460k
  } 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
460k
}
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
975k
                                  float* JXL_RESTRICT scratch_space) {
41
975k
  static_assert(LF_ROWS == ROWS,
42
975k
                "ReinterpretingDCT should only be called with LF == N");
43
975k
  static_assert(LF_COLS == COLS,
44
975k
                "ReinterpretingDCT should only be called with LF == N");
45
975k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
975k
                                 scratch_space);
47
975k
  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
975k
  } else {
56
4.87M
    for (size_t y = 0; y < LF_COLS; y++) {
57
19.5M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
15.6M
        output[y * output_stride + x] =
59
15.6M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
15.6M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
15.6M
      }
62
3.90M
    }
63
975k
  }
64
975k
}
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
28.8k
                                  float* JXL_RESTRICT scratch_space) {
41
28.8k
  static_assert(LF_ROWS == ROWS,
42
28.8k
                "ReinterpretingDCT should only be called with LF == N");
43
28.8k
  static_assert(LF_COLS == COLS,
44
28.8k
                "ReinterpretingDCT should only be called with LF == N");
45
28.8k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
28.8k
                                 scratch_space);
47
28.8k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
28.8k
  } else {
56
144k
    for (size_t y = 0; y < LF_COLS; y++) {
57
1.03M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
922k
        output[y * output_stride + x] =
59
922k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
922k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
922k
      }
62
115k
    }
63
28.8k
  }
64
28.8k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
33.7k
                                  float* JXL_RESTRICT scratch_space) {
41
33.7k
  static_assert(LF_ROWS == ROWS,
42
33.7k
                "ReinterpretingDCT should only be called with LF == N");
43
33.7k
  static_assert(LF_COLS == COLS,
44
33.7k
                "ReinterpretingDCT should only be called with LF == N");
45
33.7k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
33.7k
                                 scratch_space);
47
33.7k
  if (ROWS < COLS) {
48
168k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.21M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.08M
        output[y * output_stride + x] =
51
1.08M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.08M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.08M
      }
54
135k
    }
55
33.7k
  } 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
33.7k
}
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
229k
                                  float* JXL_RESTRICT scratch_space) {
41
229k
  static_assert(LF_ROWS == ROWS,
42
229k
                "ReinterpretingDCT should only be called with LF == N");
43
229k
  static_assert(LF_COLS == COLS,
44
229k
                "ReinterpretingDCT should only be called with LF == N");
45
229k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
229k
                                 scratch_space);
47
229k
  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
229k
  } else {
56
2.06M
    for (size_t y = 0; y < LF_COLS; y++) {
57
16.5M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
14.6M
        output[y * output_stride + x] =
59
14.6M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
14.6M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
14.6M
      }
62
1.83M
    }
63
229k
  }
64
229k
}
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
75
                                  float* JXL_RESTRICT scratch_space) {
41
75
  static_assert(LF_ROWS == ROWS,
42
75
                "ReinterpretingDCT should only be called with LF == N");
43
75
  static_assert(LF_COLS == COLS,
44
75
                "ReinterpretingDCT should only be called with LF == N");
45
75
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
75
                                 scratch_space);
47
75
  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
75
  } else {
56
675
    for (size_t y = 0; y < LF_COLS; y++) {
57
10.2k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
9.60k
        output[y * output_stride + x] =
59
9.60k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
9.60k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
9.60k
      }
62
600
    }
63
75
  }
64
75
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
12
                                  float* JXL_RESTRICT scratch_space) {
41
12
  static_assert(LF_ROWS == ROWS,
42
12
                "ReinterpretingDCT should only be called with LF == N");
43
12
  static_assert(LF_COLS == COLS,
44
12
                "ReinterpretingDCT should only be called with LF == N");
45
12
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
12
                                 scratch_space);
47
12
  if (ROWS < COLS) {
48
108
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.63k
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.53k
        output[y * output_stride + x] =
51
1.53k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.53k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.53k
      }
54
96
    }
55
12
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
12
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
21
                                  float* JXL_RESTRICT scratch_space) {
41
21
  static_assert(LF_ROWS == ROWS,
42
21
                "ReinterpretingDCT should only be called with LF == N");
43
21
  static_assert(LF_COLS == COLS,
44
21
                "ReinterpretingDCT should only be called with LF == N");
45
21
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
21
                                 scratch_space);
47
21
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
21
  } else {
56
357
    for (size_t y = 0; y < LF_COLS; y++) {
57
5.71k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
5.37k
        output[y * output_stride + x] =
59
5.37k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
5.37k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
5.37k
      }
62
336
    }
63
21
  }
64
21
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
48
                                  float* JXL_RESTRICT scratch_space) {
41
48
  static_assert(LF_ROWS == ROWS,
42
48
                "ReinterpretingDCT should only be called with LF == N");
43
48
  static_assert(LF_COLS == COLS,
44
48
                "ReinterpretingDCT should only be called with LF == N");
45
48
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
48
                                 scratch_space);
47
48
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
48
  } else {
56
1.58k
    for (size_t y = 0; y < LF_COLS; y++) {
57
50.6k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
49.1k
        output[y * output_stride + x] =
59
49.1k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
49.1k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
49.1k
      }
62
1.53k
    }
63
48
  }
64
48
}
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
80.7M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
80.7M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
80.7M
  static_assert(S % 2 == 0, "S should be even");
70
80.7M
  float temp[kDCTBlockSize];
71
80.7M
  constexpr size_t num_2x2 = S / 2;
72
269M
  for (size_t y = 0; y < num_2x2; y++) {
73
753M
    for (size_t x = 0; x < num_2x2; x++) {
74
565M
      float c00 = block[y * kBlockDim + x];
75
565M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
565M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
565M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
565M
      float r00 = c00 + c01 + c10 + c11;
79
565M
      float r01 = c00 + c01 - c10 - c11;
80
565M
      float r10 = c00 - c01 + c10 - c11;
81
565M
      float r11 = c00 - c01 - c10 + c11;
82
565M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
565M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
565M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
565M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
565M
    }
87
188M
  }
88
457M
  for (size_t y = 0; y < S; y++) {
89
2.63G
    for (size_t x = 0; x < S; x++) {
90
2.26G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
2.26G
    }
92
376M
  }
93
80.7M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.83M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.83M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.83M
  static_assert(S % 2 == 0, "S should be even");
70
3.83M
  float temp[kDCTBlockSize];
71
3.83M
  constexpr size_t num_2x2 = S / 2;
72
7.66M
  for (size_t y = 0; y < num_2x2; y++) {
73
7.66M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.83M
      float c00 = block[y * kBlockDim + x];
75
3.83M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.83M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.83M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.83M
      float r00 = c00 + c01 + c10 + c11;
79
3.83M
      float r01 = c00 + c01 - c10 - c11;
80
3.83M
      float r10 = c00 - c01 + c10 - c11;
81
3.83M
      float r11 = c00 - c01 - c10 + c11;
82
3.83M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.83M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.83M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.83M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.83M
    }
87
3.83M
  }
88
11.4M
  for (size_t y = 0; y < S; y++) {
89
22.9M
    for (size_t x = 0; x < S; x++) {
90
15.3M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
15.3M
    }
92
7.66M
  }
93
3.83M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.83M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.83M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.83M
  static_assert(S % 2 == 0, "S should be even");
70
3.83M
  float temp[kDCTBlockSize];
71
3.83M
  constexpr size_t num_2x2 = S / 2;
72
11.4M
  for (size_t y = 0; y < num_2x2; y++) {
73
22.9M
    for (size_t x = 0; x < num_2x2; x++) {
74
15.3M
      float c00 = block[y * kBlockDim + x];
75
15.3M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
15.3M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
15.3M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
15.3M
      float r00 = c00 + c01 + c10 + c11;
79
15.3M
      float r01 = c00 + c01 - c10 - c11;
80
15.3M
      float r10 = c00 - c01 + c10 - c11;
81
15.3M
      float r11 = c00 - c01 - c10 + c11;
82
15.3M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
15.3M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
15.3M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
15.3M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
15.3M
    }
87
7.66M
  }
88
19.1M
  for (size_t y = 0; y < S; y++) {
89
76.6M
    for (size_t x = 0; x < S; x++) {
90
61.2M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
61.2M
    }
92
15.3M
  }
93
3.83M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.83M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.83M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.83M
  static_assert(S % 2 == 0, "S should be even");
70
3.83M
  float temp[kDCTBlockSize];
71
3.83M
  constexpr size_t num_2x2 = S / 2;
72
19.1M
  for (size_t y = 0; y < num_2x2; y++) {
73
76.6M
    for (size_t x = 0; x < num_2x2; x++) {
74
61.2M
      float c00 = block[y * kBlockDim + x];
75
61.2M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
61.2M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
61.2M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
61.2M
      float r00 = c00 + c01 + c10 + c11;
79
61.2M
      float r01 = c00 + c01 - c10 - c11;
80
61.2M
      float r10 = c00 - c01 + c10 - c11;
81
61.2M
      float r11 = c00 - c01 - c10 + c11;
82
61.2M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
61.2M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
61.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
61.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
61.2M
    }
87
15.3M
  }
88
34.4M
  for (size_t y = 0; y < S; y++) {
89
275M
    for (size_t x = 0; x < S; x++) {
90
245M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
245M
    }
92
30.6M
  }
93
3.83M
}
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
23.0M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
23.0M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
23.0M
  static_assert(S % 2 == 0, "S should be even");
70
23.0M
  float temp[kDCTBlockSize];
71
23.0M
  constexpr size_t num_2x2 = S / 2;
72
46.1M
  for (size_t y = 0; y < num_2x2; y++) {
73
46.1M
    for (size_t x = 0; x < num_2x2; x++) {
74
23.0M
      float c00 = block[y * kBlockDim + x];
75
23.0M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
23.0M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
23.0M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
23.0M
      float r00 = c00 + c01 + c10 + c11;
79
23.0M
      float r01 = c00 + c01 - c10 - c11;
80
23.0M
      float r10 = c00 - c01 + c10 - c11;
81
23.0M
      float r11 = c00 - c01 - c10 + c11;
82
23.0M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
23.0M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
23.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
23.0M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
23.0M
    }
87
23.0M
  }
88
69.2M
  for (size_t y = 0; y < S; y++) {
89
138M
    for (size_t x = 0; x < S; x++) {
90
92.3M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
92.3M
    }
92
46.1M
  }
93
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
23.0M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
23.0M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
23.0M
  static_assert(S % 2 == 0, "S should be even");
70
23.0M
  float temp[kDCTBlockSize];
71
23.0M
  constexpr size_t num_2x2 = S / 2;
72
69.2M
  for (size_t y = 0; y < num_2x2; y++) {
73
138M
    for (size_t x = 0; x < num_2x2; x++) {
74
92.3M
      float c00 = block[y * kBlockDim + x];
75
92.3M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
92.3M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
92.3M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
92.3M
      float r00 = c00 + c01 + c10 + c11;
79
92.3M
      float r01 = c00 + c01 - c10 - c11;
80
92.3M
      float r10 = c00 - c01 + c10 - c11;
81
92.3M
      float r11 = c00 - c01 - c10 + c11;
82
92.3M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
92.3M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
92.3M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
92.3M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
92.3M
    }
87
46.1M
  }
88
115M
  for (size_t y = 0; y < S; y++) {
89
461M
    for (size_t x = 0; x < S; x++) {
90
369M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
369M
    }
92
92.3M
  }
93
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
23.0M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
23.0M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
23.0M
  static_assert(S % 2 == 0, "S should be even");
70
23.0M
  float temp[kDCTBlockSize];
71
23.0M
  constexpr size_t num_2x2 = S / 2;
72
115M
  for (size_t y = 0; y < num_2x2; y++) {
73
461M
    for (size_t x = 0; x < num_2x2; x++) {
74
369M
      float c00 = block[y * kBlockDim + x];
75
369M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
369M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
369M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
369M
      float r00 = c00 + c01 + c10 + c11;
79
369M
      float r01 = c00 + c01 - c10 - c11;
80
369M
      float r10 = c00 - c01 + c10 - c11;
81
369M
      float r11 = c00 - c01 - c10 + c11;
82
369M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
369M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
369M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
369M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
369M
    }
87
92.3M
  }
88
207M
  for (size_t y = 0; y < S; y++) {
89
1.66G
    for (size_t x = 0; x < S; x++) {
90
1.47G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.47G
    }
92
184M
  }
93
23.0M
}
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
99.6M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
99.6M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
99.6M
      {
98
99.6M
          0.25,
99
99.6M
          0.25,
100
99.6M
          0.25,
101
99.6M
          0.25,
102
99.6M
          0.25,
103
99.6M
          0.25,
104
99.6M
          0.25,
105
99.6M
          0.25,
106
99.6M
          0.25,
107
99.6M
          0.25,
108
99.6M
          0.25,
109
99.6M
          0.25,
110
99.6M
          0.25,
111
99.6M
          0.25,
112
99.6M
          0.25,
113
99.6M
          0.25,
114
99.6M
      },
115
99.6M
      {
116
99.6M
          0.876902929799142f,
117
99.6M
          0.2206518106944235f,
118
99.6M
          -0.10140050393753763f,
119
99.6M
          -0.1014005039375375f,
120
99.6M
          0.2206518106944236f,
121
99.6M
          -0.10140050393753777f,
122
99.6M
          -0.10140050393753772f,
123
99.6M
          -0.10140050393753763f,
124
99.6M
          -0.10140050393753758f,
125
99.6M
          -0.10140050393753769f,
126
99.6M
          -0.1014005039375375f,
127
99.6M
          -0.10140050393753768f,
128
99.6M
          -0.10140050393753768f,
129
99.6M
          -0.10140050393753759f,
130
99.6M
          -0.10140050393753763f,
131
99.6M
          -0.10140050393753741f,
132
99.6M
      },
133
99.6M
      {
134
99.6M
          0.0,
135
99.6M
          0.0,
136
99.6M
          0.40670075830260755f,
137
99.6M
          0.44444816619734445f,
138
99.6M
          0.0,
139
99.6M
          0.0,
140
99.6M
          0.19574399372042936f,
141
99.6M
          0.2929100136981264f,
142
99.6M
          -0.40670075830260716f,
143
99.6M
          -0.19574399372042872f,
144
99.6M
          0.0,
145
99.6M
          0.11379074460448091f,
146
99.6M
          -0.44444816619734384f,
147
99.6M
          -0.29291001369812636f,
148
99.6M
          -0.1137907446044814f,
149
99.6M
          0.0,
150
99.6M
      },
151
99.6M
      {
152
99.6M
          0.0,
153
99.6M
          0.0,
154
99.6M
          -0.21255748058288748f,
155
99.6M
          0.3085497062849767f,
156
99.6M
          0.0,
157
99.6M
          0.4706702258572536f,
158
99.6M
          -0.1621205195722993f,
159
99.6M
          0.0,
160
99.6M
          -0.21255748058287047f,
161
99.6M
          -0.16212051957228327f,
162
99.6M
          -0.47067022585725277f,
163
99.6M
          -0.1464291867126764f,
164
99.6M
          0.3085497062849487f,
165
99.6M
          0.0,
166
99.6M
          -0.14642918671266536f,
167
99.6M
          0.4251149611657548f,
168
99.6M
      },
169
99.6M
      {
170
99.6M
          0.0,
171
99.6M
          -0.7071067811865474f,
172
99.6M
          0.0,
173
99.6M
          0.0,
174
99.6M
          0.7071067811865476f,
175
99.6M
          0.0,
176
99.6M
          0.0,
177
99.6M
          0.0,
178
99.6M
          0.0,
179
99.6M
          0.0,
180
99.6M
          0.0,
181
99.6M
          0.0,
182
99.6M
          0.0,
183
99.6M
          0.0,
184
99.6M
          0.0,
185
99.6M
          0.0,
186
99.6M
      },
187
99.6M
      {
188
99.6M
          -0.4105377591765233f,
189
99.6M
          0.6235485373547691f,
190
99.6M
          -0.06435071657946274f,
191
99.6M
          -0.06435071657946266f,
192
99.6M
          0.6235485373547694f,
193
99.6M
          -0.06435071657946284f,
194
99.6M
          -0.0643507165794628f,
195
99.6M
          -0.06435071657946274f,
196
99.6M
          -0.06435071657946272f,
197
99.6M
          -0.06435071657946279f,
198
99.6M
          -0.06435071657946266f,
199
99.6M
          -0.06435071657946277f,
200
99.6M
          -0.06435071657946277f,
201
99.6M
          -0.06435071657946273f,
202
99.6M
          -0.06435071657946274f,
203
99.6M
          -0.0643507165794626f,
204
99.6M
      },
205
99.6M
      {
206
99.6M
          0.0,
207
99.6M
          0.0,
208
99.6M
          -0.4517556589999482f,
209
99.6M
          0.15854503551840063f,
210
99.6M
          0.0,
211
99.6M
          -0.04038515160822202f,
212
99.6M
          0.0074182263792423875f,
213
99.6M
          0.39351034269210167f,
214
99.6M
          -0.45175565899994635f,
215
99.6M
          0.007418226379244351f,
216
99.6M
          0.1107416575309343f,
217
99.6M
          0.08298163094882051f,
218
99.6M
          0.15854503551839705f,
219
99.6M
          0.3935103426921022f,
220
99.6M
          0.0829816309488214f,
221
99.6M
          -0.45175565899994796f,
222
99.6M
      },
223
99.6M
      {
224
99.6M
          0.0,
225
99.6M
          0.0,
226
99.6M
          -0.304684750724869f,
227
99.6M
          0.5112616136591823f,
228
99.6M
          0.0,
229
99.6M
          0.0,
230
99.6M
          -0.290480129728998f,
231
99.6M
          -0.06578701549142804f,
232
99.6M
          0.304684750724884f,
233
99.6M
          0.2904801297290076f,
234
99.6M
          0.0,
235
99.6M
          -0.23889773523344604f,
236
99.6M
          -0.5112616136592012f,
237
99.6M
          0.06578701549142545f,
238
99.6M
          0.23889773523345467f,
239
99.6M
          0.0,
240
99.6M
      },
241
99.6M
      {
242
99.6M
          0.0,
243
99.6M
          0.0,
244
99.6M
          0.3017929516615495f,
245
99.6M
          0.25792362796341184f,
246
99.6M
          0.0,
247
99.6M
          0.16272340142866204f,
248
99.6M
          0.09520022653475037f,
249
99.6M
          0.0,
250
99.6M
          0.3017929516615503f,
251
99.6M
          0.09520022653475055f,
252
99.6M
          -0.16272340142866173f,
253
99.6M
          -0.35312385449816297f,
254
99.6M
          0.25792362796341295f,
255
99.6M
          0.0,
256
99.6M
          -0.3531238544981624f,
257
99.6M
          -0.6035859033230976f,
258
99.6M
      },
259
99.6M
      {
260
99.6M
          0.0,
261
99.6M
          0.0,
262
99.6M
          0.40824829046386274f,
263
99.6M
          0.0,
264
99.6M
          0.0,
265
99.6M
          0.0,
266
99.6M
          0.0,
267
99.6M
          -0.4082482904638628f,
268
99.6M
          -0.4082482904638635f,
269
99.6M
          0.0,
270
99.6M
          0.0,
271
99.6M
          -0.40824829046386296f,
272
99.6M
          0.0,
273
99.6M
          0.4082482904638634f,
274
99.6M
          0.408248290463863f,
275
99.6M
          0.0,
276
99.6M
      },
277
99.6M
      {
278
99.6M
          0.0,
279
99.6M
          0.0,
280
99.6M
          0.1747866975480809f,
281
99.6M
          0.0812611176717539f,
282
99.6M
          0.0,
283
99.6M
          0.0,
284
99.6M
          -0.3675398009862027f,
285
99.6M
          -0.307882213957909f,
286
99.6M
          -0.17478669754808135f,
287
99.6M
          0.3675398009862011f,
288
99.6M
          0.0,
289
99.6M
          0.4826689115059883f,
290
99.6M
          -0.08126111767175039f,
291
99.6M
          0.30788221395790305f,
292
99.6M
          -0.48266891150598584f,
293
99.6M
          0.0,
294
99.6M
      },
295
99.6M
      {
296
99.6M
          0.0,
297
99.6M
          0.0,
298
99.6M
          -0.21105601049335784f,
299
99.6M
          0.18567180916109802f,
300
99.6M
          0.0,
301
99.6M
          0.0,
302
99.6M
          0.49215859013738733f,
303
99.6M
          -0.38525013709251915f,
304
99.6M
          0.21105601049335806f,
305
99.6M
          -0.49215859013738905f,
306
99.6M
          0.0,
307
99.6M
          0.17419412659916217f,
308
99.6M
          -0.18567180916109904f,
309
99.6M
          0.3852501370925211f,
310
99.6M
          -0.1741941265991621f,
311
99.6M
          0.0,
312
99.6M
      },
313
99.6M
      {
314
99.6M
          0.0,
315
99.6M
          0.0,
316
99.6M
          -0.14266084808807264f,
317
99.6M
          -0.3416446842253372f,
318
99.6M
          0.0,
319
99.6M
          0.7367497537172237f,
320
99.6M
          0.24627107722075148f,
321
99.6M
          -0.08574019035519306f,
322
99.6M
          -0.14266084808807344f,
323
99.6M
          0.24627107722075137f,
324
99.6M
          0.14883399227113567f,
325
99.6M
          -0.04768680350229251f,
326
99.6M
          -0.3416446842253373f,
327
99.6M
          -0.08574019035519267f,
328
99.6M
          -0.047686803502292804f,
329
99.6M
          -0.14266084808807242f,
330
99.6M
      },
331
99.6M
      {
332
99.6M
          0.0,
333
99.6M
          0.0,
334
99.6M
          -0.13813540350758585f,
335
99.6M
          0.3302282550303788f,
336
99.6M
          0.0,
337
99.6M
          0.08755115000587084f,
338
99.6M
          -0.07946706605909573f,
339
99.6M
          -0.4613374887461511f,
340
99.6M
          -0.13813540350758294f,
341
99.6M
          -0.07946706605910261f,
342
99.6M
          0.49724647109535086f,
343
99.6M
          0.12538059448563663f,
344
99.6M
          0.3302282550303805f,
345
99.6M
          -0.4613374887461554f,
346
99.6M
          0.12538059448564315f,
347
99.6M
          -0.13813540350758452f,
348
99.6M
      },
349
99.6M
      {
350
99.6M
          0.0,
351
99.6M
          0.0,
352
99.6M
          -0.17437602599651067f,
353
99.6M
          0.0702790691196284f,
354
99.6M
          0.0,
355
99.6M
          -0.2921026642334881f,
356
99.6M
          0.3623817333531167f,
357
99.6M
          0.0,
358
99.6M
          -0.1743760259965108f,
359
99.6M
          0.36238173335311646f,
360
99.6M
          0.29210266423348785f,
361
99.6M
          -0.4326608024727445f,
362
99.6M
          0.07027906911962818f,
363
99.6M
          0.0,
364
99.6M
          -0.4326608024727457f,
365
99.6M
          0.34875205199302267f,
366
99.6M
      },
367
99.6M
      {
368
99.6M
          0.0,
369
99.6M
          0.0,
370
99.6M
          0.11354987314994337f,
371
99.6M
          -0.07417504595810355f,
372
99.6M
          0.0,
373
99.6M
          0.19402893032594343f,
374
99.6M
          -0.435190496523228f,
375
99.6M
          0.21918684838857466f,
376
99.6M
          0.11354987314994257f,
377
99.6M
          -0.4351904965232251f,
378
99.6M
          0.5550443808910661f,
379
99.6M
          -0.25468277124066463f,
380
99.6M
          -0.07417504595810233f,
381
99.6M
          0.2191868483885728f,
382
99.6M
          -0.25468277124066413f,
383
99.6M
          0.1135498731499429f,
384
99.6M
      },
385
99.6M
  };
386
387
99.6M
  const HWY_CAPPED(float, 16) d;
388
299M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
199M
    auto pixel = Zero(d);
390
3.38G
    for (size_t j = 0; j < 16; j++) {
391
3.18G
      auto cf = Set(d, coeffs[j]);
392
3.18G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
3.18G
      pixel = MulAdd(cf, basis, pixel);
394
3.18G
    }
395
199M
    Store(pixel, d, pixels + i);
396
199M
  }
397
99.6M
}
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
7.35M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
7.35M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
7.35M
      {
98
7.35M
          0.25,
99
7.35M
          0.25,
100
7.35M
          0.25,
101
7.35M
          0.25,
102
7.35M
          0.25,
103
7.35M
          0.25,
104
7.35M
          0.25,
105
7.35M
          0.25,
106
7.35M
          0.25,
107
7.35M
          0.25,
108
7.35M
          0.25,
109
7.35M
          0.25,
110
7.35M
          0.25,
111
7.35M
          0.25,
112
7.35M
          0.25,
113
7.35M
          0.25,
114
7.35M
      },
115
7.35M
      {
116
7.35M
          0.876902929799142f,
117
7.35M
          0.2206518106944235f,
118
7.35M
          -0.10140050393753763f,
119
7.35M
          -0.1014005039375375f,
120
7.35M
          0.2206518106944236f,
121
7.35M
          -0.10140050393753777f,
122
7.35M
          -0.10140050393753772f,
123
7.35M
          -0.10140050393753763f,
124
7.35M
          -0.10140050393753758f,
125
7.35M
          -0.10140050393753769f,
126
7.35M
          -0.1014005039375375f,
127
7.35M
          -0.10140050393753768f,
128
7.35M
          -0.10140050393753768f,
129
7.35M
          -0.10140050393753759f,
130
7.35M
          -0.10140050393753763f,
131
7.35M
          -0.10140050393753741f,
132
7.35M
      },
133
7.35M
      {
134
7.35M
          0.0,
135
7.35M
          0.0,
136
7.35M
          0.40670075830260755f,
137
7.35M
          0.44444816619734445f,
138
7.35M
          0.0,
139
7.35M
          0.0,
140
7.35M
          0.19574399372042936f,
141
7.35M
          0.2929100136981264f,
142
7.35M
          -0.40670075830260716f,
143
7.35M
          -0.19574399372042872f,
144
7.35M
          0.0,
145
7.35M
          0.11379074460448091f,
146
7.35M
          -0.44444816619734384f,
147
7.35M
          -0.29291001369812636f,
148
7.35M
          -0.1137907446044814f,
149
7.35M
          0.0,
150
7.35M
      },
151
7.35M
      {
152
7.35M
          0.0,
153
7.35M
          0.0,
154
7.35M
          -0.21255748058288748f,
155
7.35M
          0.3085497062849767f,
156
7.35M
          0.0,
157
7.35M
          0.4706702258572536f,
158
7.35M
          -0.1621205195722993f,
159
7.35M
          0.0,
160
7.35M
          -0.21255748058287047f,
161
7.35M
          -0.16212051957228327f,
162
7.35M
          -0.47067022585725277f,
163
7.35M
          -0.1464291867126764f,
164
7.35M
          0.3085497062849487f,
165
7.35M
          0.0,
166
7.35M
          -0.14642918671266536f,
167
7.35M
          0.4251149611657548f,
168
7.35M
      },
169
7.35M
      {
170
7.35M
          0.0,
171
7.35M
          -0.7071067811865474f,
172
7.35M
          0.0,
173
7.35M
          0.0,
174
7.35M
          0.7071067811865476f,
175
7.35M
          0.0,
176
7.35M
          0.0,
177
7.35M
          0.0,
178
7.35M
          0.0,
179
7.35M
          0.0,
180
7.35M
          0.0,
181
7.35M
          0.0,
182
7.35M
          0.0,
183
7.35M
          0.0,
184
7.35M
          0.0,
185
7.35M
          0.0,
186
7.35M
      },
187
7.35M
      {
188
7.35M
          -0.4105377591765233f,
189
7.35M
          0.6235485373547691f,
190
7.35M
          -0.06435071657946274f,
191
7.35M
          -0.06435071657946266f,
192
7.35M
          0.6235485373547694f,
193
7.35M
          -0.06435071657946284f,
194
7.35M
          -0.0643507165794628f,
195
7.35M
          -0.06435071657946274f,
196
7.35M
          -0.06435071657946272f,
197
7.35M
          -0.06435071657946279f,
198
7.35M
          -0.06435071657946266f,
199
7.35M
          -0.06435071657946277f,
200
7.35M
          -0.06435071657946277f,
201
7.35M
          -0.06435071657946273f,
202
7.35M
          -0.06435071657946274f,
203
7.35M
          -0.0643507165794626f,
204
7.35M
      },
205
7.35M
      {
206
7.35M
          0.0,
207
7.35M
          0.0,
208
7.35M
          -0.4517556589999482f,
209
7.35M
          0.15854503551840063f,
210
7.35M
          0.0,
211
7.35M
          -0.04038515160822202f,
212
7.35M
          0.0074182263792423875f,
213
7.35M
          0.39351034269210167f,
214
7.35M
          -0.45175565899994635f,
215
7.35M
          0.007418226379244351f,
216
7.35M
          0.1107416575309343f,
217
7.35M
          0.08298163094882051f,
218
7.35M
          0.15854503551839705f,
219
7.35M
          0.3935103426921022f,
220
7.35M
          0.0829816309488214f,
221
7.35M
          -0.45175565899994796f,
222
7.35M
      },
223
7.35M
      {
224
7.35M
          0.0,
225
7.35M
          0.0,
226
7.35M
          -0.304684750724869f,
227
7.35M
          0.5112616136591823f,
228
7.35M
          0.0,
229
7.35M
          0.0,
230
7.35M
          -0.290480129728998f,
231
7.35M
          -0.06578701549142804f,
232
7.35M
          0.304684750724884f,
233
7.35M
          0.2904801297290076f,
234
7.35M
          0.0,
235
7.35M
          -0.23889773523344604f,
236
7.35M
          -0.5112616136592012f,
237
7.35M
          0.06578701549142545f,
238
7.35M
          0.23889773523345467f,
239
7.35M
          0.0,
240
7.35M
      },
241
7.35M
      {
242
7.35M
          0.0,
243
7.35M
          0.0,
244
7.35M
          0.3017929516615495f,
245
7.35M
          0.25792362796341184f,
246
7.35M
          0.0,
247
7.35M
          0.16272340142866204f,
248
7.35M
          0.09520022653475037f,
249
7.35M
          0.0,
250
7.35M
          0.3017929516615503f,
251
7.35M
          0.09520022653475055f,
252
7.35M
          -0.16272340142866173f,
253
7.35M
          -0.35312385449816297f,
254
7.35M
          0.25792362796341295f,
255
7.35M
          0.0,
256
7.35M
          -0.3531238544981624f,
257
7.35M
          -0.6035859033230976f,
258
7.35M
      },
259
7.35M
      {
260
7.35M
          0.0,
261
7.35M
          0.0,
262
7.35M
          0.40824829046386274f,
263
7.35M
          0.0,
264
7.35M
          0.0,
265
7.35M
          0.0,
266
7.35M
          0.0,
267
7.35M
          -0.4082482904638628f,
268
7.35M
          -0.4082482904638635f,
269
7.35M
          0.0,
270
7.35M
          0.0,
271
7.35M
          -0.40824829046386296f,
272
7.35M
          0.0,
273
7.35M
          0.4082482904638634f,
274
7.35M
          0.408248290463863f,
275
7.35M
          0.0,
276
7.35M
      },
277
7.35M
      {
278
7.35M
          0.0,
279
7.35M
          0.0,
280
7.35M
          0.1747866975480809f,
281
7.35M
          0.0812611176717539f,
282
7.35M
          0.0,
283
7.35M
          0.0,
284
7.35M
          -0.3675398009862027f,
285
7.35M
          -0.307882213957909f,
286
7.35M
          -0.17478669754808135f,
287
7.35M
          0.3675398009862011f,
288
7.35M
          0.0,
289
7.35M
          0.4826689115059883f,
290
7.35M
          -0.08126111767175039f,
291
7.35M
          0.30788221395790305f,
292
7.35M
          -0.48266891150598584f,
293
7.35M
          0.0,
294
7.35M
      },
295
7.35M
      {
296
7.35M
          0.0,
297
7.35M
          0.0,
298
7.35M
          -0.21105601049335784f,
299
7.35M
          0.18567180916109802f,
300
7.35M
          0.0,
301
7.35M
          0.0,
302
7.35M
          0.49215859013738733f,
303
7.35M
          -0.38525013709251915f,
304
7.35M
          0.21105601049335806f,
305
7.35M
          -0.49215859013738905f,
306
7.35M
          0.0,
307
7.35M
          0.17419412659916217f,
308
7.35M
          -0.18567180916109904f,
309
7.35M
          0.3852501370925211f,
310
7.35M
          -0.1741941265991621f,
311
7.35M
          0.0,
312
7.35M
      },
313
7.35M
      {
314
7.35M
          0.0,
315
7.35M
          0.0,
316
7.35M
          -0.14266084808807264f,
317
7.35M
          -0.3416446842253372f,
318
7.35M
          0.0,
319
7.35M
          0.7367497537172237f,
320
7.35M
          0.24627107722075148f,
321
7.35M
          -0.08574019035519306f,
322
7.35M
          -0.14266084808807344f,
323
7.35M
          0.24627107722075137f,
324
7.35M
          0.14883399227113567f,
325
7.35M
          -0.04768680350229251f,
326
7.35M
          -0.3416446842253373f,
327
7.35M
          -0.08574019035519267f,
328
7.35M
          -0.047686803502292804f,
329
7.35M
          -0.14266084808807242f,
330
7.35M
      },
331
7.35M
      {
332
7.35M
          0.0,
333
7.35M
          0.0,
334
7.35M
          -0.13813540350758585f,
335
7.35M
          0.3302282550303788f,
336
7.35M
          0.0,
337
7.35M
          0.08755115000587084f,
338
7.35M
          -0.07946706605909573f,
339
7.35M
          -0.4613374887461511f,
340
7.35M
          -0.13813540350758294f,
341
7.35M
          -0.07946706605910261f,
342
7.35M
          0.49724647109535086f,
343
7.35M
          0.12538059448563663f,
344
7.35M
          0.3302282550303805f,
345
7.35M
          -0.4613374887461554f,
346
7.35M
          0.12538059448564315f,
347
7.35M
          -0.13813540350758452f,
348
7.35M
      },
349
7.35M
      {
350
7.35M
          0.0,
351
7.35M
          0.0,
352
7.35M
          -0.17437602599651067f,
353
7.35M
          0.0702790691196284f,
354
7.35M
          0.0,
355
7.35M
          -0.2921026642334881f,
356
7.35M
          0.3623817333531167f,
357
7.35M
          0.0,
358
7.35M
          -0.1743760259965108f,
359
7.35M
          0.36238173335311646f,
360
7.35M
          0.29210266423348785f,
361
7.35M
          -0.4326608024727445f,
362
7.35M
          0.07027906911962818f,
363
7.35M
          0.0,
364
7.35M
          -0.4326608024727457f,
365
7.35M
          0.34875205199302267f,
366
7.35M
      },
367
7.35M
      {
368
7.35M
          0.0,
369
7.35M
          0.0,
370
7.35M
          0.11354987314994337f,
371
7.35M
          -0.07417504595810355f,
372
7.35M
          0.0,
373
7.35M
          0.19402893032594343f,
374
7.35M
          -0.435190496523228f,
375
7.35M
          0.21918684838857466f,
376
7.35M
          0.11354987314994257f,
377
7.35M
          -0.4351904965232251f,
378
7.35M
          0.5550443808910661f,
379
7.35M
          -0.25468277124066463f,
380
7.35M
          -0.07417504595810233f,
381
7.35M
          0.2191868483885728f,
382
7.35M
          -0.25468277124066413f,
383
7.35M
          0.1135498731499429f,
384
7.35M
      },
385
7.35M
  };
386
387
7.35M
  const HWY_CAPPED(float, 16) d;
388
22.0M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
14.7M
    auto pixel = Zero(d);
390
250M
    for (size_t j = 0; j < 16; j++) {
391
235M
      auto cf = Set(d, coeffs[j]);
392
235M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
235M
      pixel = MulAdd(cf, basis, pixel);
394
235M
    }
395
14.7M
    Store(pixel, d, pixels + i);
396
14.7M
  }
397
7.35M
}
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
92.3M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
92.3M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
92.3M
      {
98
92.3M
          0.25,
99
92.3M
          0.25,
100
92.3M
          0.25,
101
92.3M
          0.25,
102
92.3M
          0.25,
103
92.3M
          0.25,
104
92.3M
          0.25,
105
92.3M
          0.25,
106
92.3M
          0.25,
107
92.3M
          0.25,
108
92.3M
          0.25,
109
92.3M
          0.25,
110
92.3M
          0.25,
111
92.3M
          0.25,
112
92.3M
          0.25,
113
92.3M
          0.25,
114
92.3M
      },
115
92.3M
      {
116
92.3M
          0.876902929799142f,
117
92.3M
          0.2206518106944235f,
118
92.3M
          -0.10140050393753763f,
119
92.3M
          -0.1014005039375375f,
120
92.3M
          0.2206518106944236f,
121
92.3M
          -0.10140050393753777f,
122
92.3M
          -0.10140050393753772f,
123
92.3M
          -0.10140050393753763f,
124
92.3M
          -0.10140050393753758f,
125
92.3M
          -0.10140050393753769f,
126
92.3M
          -0.1014005039375375f,
127
92.3M
          -0.10140050393753768f,
128
92.3M
          -0.10140050393753768f,
129
92.3M
          -0.10140050393753759f,
130
92.3M
          -0.10140050393753763f,
131
92.3M
          -0.10140050393753741f,
132
92.3M
      },
133
92.3M
      {
134
92.3M
          0.0,
135
92.3M
          0.0,
136
92.3M
          0.40670075830260755f,
137
92.3M
          0.44444816619734445f,
138
92.3M
          0.0,
139
92.3M
          0.0,
140
92.3M
          0.19574399372042936f,
141
92.3M
          0.2929100136981264f,
142
92.3M
          -0.40670075830260716f,
143
92.3M
          -0.19574399372042872f,
144
92.3M
          0.0,
145
92.3M
          0.11379074460448091f,
146
92.3M
          -0.44444816619734384f,
147
92.3M
          -0.29291001369812636f,
148
92.3M
          -0.1137907446044814f,
149
92.3M
          0.0,
150
92.3M
      },
151
92.3M
      {
152
92.3M
          0.0,
153
92.3M
          0.0,
154
92.3M
          -0.21255748058288748f,
155
92.3M
          0.3085497062849767f,
156
92.3M
          0.0,
157
92.3M
          0.4706702258572536f,
158
92.3M
          -0.1621205195722993f,
159
92.3M
          0.0,
160
92.3M
          -0.21255748058287047f,
161
92.3M
          -0.16212051957228327f,
162
92.3M
          -0.47067022585725277f,
163
92.3M
          -0.1464291867126764f,
164
92.3M
          0.3085497062849487f,
165
92.3M
          0.0,
166
92.3M
          -0.14642918671266536f,
167
92.3M
          0.4251149611657548f,
168
92.3M
      },
169
92.3M
      {
170
92.3M
          0.0,
171
92.3M
          -0.7071067811865474f,
172
92.3M
          0.0,
173
92.3M
          0.0,
174
92.3M
          0.7071067811865476f,
175
92.3M
          0.0,
176
92.3M
          0.0,
177
92.3M
          0.0,
178
92.3M
          0.0,
179
92.3M
          0.0,
180
92.3M
          0.0,
181
92.3M
          0.0,
182
92.3M
          0.0,
183
92.3M
          0.0,
184
92.3M
          0.0,
185
92.3M
          0.0,
186
92.3M
      },
187
92.3M
      {
188
92.3M
          -0.4105377591765233f,
189
92.3M
          0.6235485373547691f,
190
92.3M
          -0.06435071657946274f,
191
92.3M
          -0.06435071657946266f,
192
92.3M
          0.6235485373547694f,
193
92.3M
          -0.06435071657946284f,
194
92.3M
          -0.0643507165794628f,
195
92.3M
          -0.06435071657946274f,
196
92.3M
          -0.06435071657946272f,
197
92.3M
          -0.06435071657946279f,
198
92.3M
          -0.06435071657946266f,
199
92.3M
          -0.06435071657946277f,
200
92.3M
          -0.06435071657946277f,
201
92.3M
          -0.06435071657946273f,
202
92.3M
          -0.06435071657946274f,
203
92.3M
          -0.0643507165794626f,
204
92.3M
      },
205
92.3M
      {
206
92.3M
          0.0,
207
92.3M
          0.0,
208
92.3M
          -0.4517556589999482f,
209
92.3M
          0.15854503551840063f,
210
92.3M
          0.0,
211
92.3M
          -0.04038515160822202f,
212
92.3M
          0.0074182263792423875f,
213
92.3M
          0.39351034269210167f,
214
92.3M
          -0.45175565899994635f,
215
92.3M
          0.007418226379244351f,
216
92.3M
          0.1107416575309343f,
217
92.3M
          0.08298163094882051f,
218
92.3M
          0.15854503551839705f,
219
92.3M
          0.3935103426921022f,
220
92.3M
          0.0829816309488214f,
221
92.3M
          -0.45175565899994796f,
222
92.3M
      },
223
92.3M
      {
224
92.3M
          0.0,
225
92.3M
          0.0,
226
92.3M
          -0.304684750724869f,
227
92.3M
          0.5112616136591823f,
228
92.3M
          0.0,
229
92.3M
          0.0,
230
92.3M
          -0.290480129728998f,
231
92.3M
          -0.06578701549142804f,
232
92.3M
          0.304684750724884f,
233
92.3M
          0.2904801297290076f,
234
92.3M
          0.0,
235
92.3M
          -0.23889773523344604f,
236
92.3M
          -0.5112616136592012f,
237
92.3M
          0.06578701549142545f,
238
92.3M
          0.23889773523345467f,
239
92.3M
          0.0,
240
92.3M
      },
241
92.3M
      {
242
92.3M
          0.0,
243
92.3M
          0.0,
244
92.3M
          0.3017929516615495f,
245
92.3M
          0.25792362796341184f,
246
92.3M
          0.0,
247
92.3M
          0.16272340142866204f,
248
92.3M
          0.09520022653475037f,
249
92.3M
          0.0,
250
92.3M
          0.3017929516615503f,
251
92.3M
          0.09520022653475055f,
252
92.3M
          -0.16272340142866173f,
253
92.3M
          -0.35312385449816297f,
254
92.3M
          0.25792362796341295f,
255
92.3M
          0.0,
256
92.3M
          -0.3531238544981624f,
257
92.3M
          -0.6035859033230976f,
258
92.3M
      },
259
92.3M
      {
260
92.3M
          0.0,
261
92.3M
          0.0,
262
92.3M
          0.40824829046386274f,
263
92.3M
          0.0,
264
92.3M
          0.0,
265
92.3M
          0.0,
266
92.3M
          0.0,
267
92.3M
          -0.4082482904638628f,
268
92.3M
          -0.4082482904638635f,
269
92.3M
          0.0,
270
92.3M
          0.0,
271
92.3M
          -0.40824829046386296f,
272
92.3M
          0.0,
273
92.3M
          0.4082482904638634f,
274
92.3M
          0.408248290463863f,
275
92.3M
          0.0,
276
92.3M
      },
277
92.3M
      {
278
92.3M
          0.0,
279
92.3M
          0.0,
280
92.3M
          0.1747866975480809f,
281
92.3M
          0.0812611176717539f,
282
92.3M
          0.0,
283
92.3M
          0.0,
284
92.3M
          -0.3675398009862027f,
285
92.3M
          -0.307882213957909f,
286
92.3M
          -0.17478669754808135f,
287
92.3M
          0.3675398009862011f,
288
92.3M
          0.0,
289
92.3M
          0.4826689115059883f,
290
92.3M
          -0.08126111767175039f,
291
92.3M
          0.30788221395790305f,
292
92.3M
          -0.48266891150598584f,
293
92.3M
          0.0,
294
92.3M
      },
295
92.3M
      {
296
92.3M
          0.0,
297
92.3M
          0.0,
298
92.3M
          -0.21105601049335784f,
299
92.3M
          0.18567180916109802f,
300
92.3M
          0.0,
301
92.3M
          0.0,
302
92.3M
          0.49215859013738733f,
303
92.3M
          -0.38525013709251915f,
304
92.3M
          0.21105601049335806f,
305
92.3M
          -0.49215859013738905f,
306
92.3M
          0.0,
307
92.3M
          0.17419412659916217f,
308
92.3M
          -0.18567180916109904f,
309
92.3M
          0.3852501370925211f,
310
92.3M
          -0.1741941265991621f,
311
92.3M
          0.0,
312
92.3M
      },
313
92.3M
      {
314
92.3M
          0.0,
315
92.3M
          0.0,
316
92.3M
          -0.14266084808807264f,
317
92.3M
          -0.3416446842253372f,
318
92.3M
          0.0,
319
92.3M
          0.7367497537172237f,
320
92.3M
          0.24627107722075148f,
321
92.3M
          -0.08574019035519306f,
322
92.3M
          -0.14266084808807344f,
323
92.3M
          0.24627107722075137f,
324
92.3M
          0.14883399227113567f,
325
92.3M
          -0.04768680350229251f,
326
92.3M
          -0.3416446842253373f,
327
92.3M
          -0.08574019035519267f,
328
92.3M
          -0.047686803502292804f,
329
92.3M
          -0.14266084808807242f,
330
92.3M
      },
331
92.3M
      {
332
92.3M
          0.0,
333
92.3M
          0.0,
334
92.3M
          -0.13813540350758585f,
335
92.3M
          0.3302282550303788f,
336
92.3M
          0.0,
337
92.3M
          0.08755115000587084f,
338
92.3M
          -0.07946706605909573f,
339
92.3M
          -0.4613374887461511f,
340
92.3M
          -0.13813540350758294f,
341
92.3M
          -0.07946706605910261f,
342
92.3M
          0.49724647109535086f,
343
92.3M
          0.12538059448563663f,
344
92.3M
          0.3302282550303805f,
345
92.3M
          -0.4613374887461554f,
346
92.3M
          0.12538059448564315f,
347
92.3M
          -0.13813540350758452f,
348
92.3M
      },
349
92.3M
      {
350
92.3M
          0.0,
351
92.3M
          0.0,
352
92.3M
          -0.17437602599651067f,
353
92.3M
          0.0702790691196284f,
354
92.3M
          0.0,
355
92.3M
          -0.2921026642334881f,
356
92.3M
          0.3623817333531167f,
357
92.3M
          0.0,
358
92.3M
          -0.1743760259965108f,
359
92.3M
          0.36238173335311646f,
360
92.3M
          0.29210266423348785f,
361
92.3M
          -0.4326608024727445f,
362
92.3M
          0.07027906911962818f,
363
92.3M
          0.0,
364
92.3M
          -0.4326608024727457f,
365
92.3M
          0.34875205199302267f,
366
92.3M
      },
367
92.3M
      {
368
92.3M
          0.0,
369
92.3M
          0.0,
370
92.3M
          0.11354987314994337f,
371
92.3M
          -0.07417504595810355f,
372
92.3M
          0.0,
373
92.3M
          0.19402893032594343f,
374
92.3M
          -0.435190496523228f,
375
92.3M
          0.21918684838857466f,
376
92.3M
          0.11354987314994257f,
377
92.3M
          -0.4351904965232251f,
378
92.3M
          0.5550443808910661f,
379
92.3M
          -0.25468277124066463f,
380
92.3M
          -0.07417504595810233f,
381
92.3M
          0.2191868483885728f,
382
92.3M
          -0.25468277124066413f,
383
92.3M
          0.1135498731499429f,
384
92.3M
      },
385
92.3M
  };
386
387
92.3M
  const HWY_CAPPED(float, 16) d;
388
276M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
184M
    auto pixel = Zero(d);
390
3.13G
    for (size_t j = 0; j < 16; j++) {
391
2.95G
      auto cf = Set(d, coeffs[j]);
392
2.95G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
2.95G
      pixel = MulAdd(cf, basis, pixel);
394
2.95G
    }
395
184M
    Store(pixel, d, pixels + i);
396
184M
  }
397
92.3M
}
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
99.6M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
99.6M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
99.6M
  size_t afv_x = afv_kind & 1;
404
99.6M
  size_t afv_y = afv_kind / 2;
405
99.6M
  float dcs[3] = {};
406
99.6M
  float block00 = coefficients[0];
407
99.6M
  float block01 = coefficients[1];
408
99.6M
  float block10 = coefficients[8];
409
99.6M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
99.6M
  dcs[1] = (block00 + block10 - block01);
411
99.6M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
99.6M
  HWY_ALIGN float coeff[4 * 4];
414
99.6M
  coeff[0] = dcs[0];
415
498M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.99G
    for (size_t ix = 0; ix < 4; ix++) {
417
1.59G
      if (ix == 0 && iy == 0) continue;
418
1.49G
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
1.49G
    }
420
398M
  }
421
99.6M
  HWY_ALIGN float block[4 * 8];
422
99.6M
  AFVIDCT4x4(coeff, block);
423
498M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.99G
    for (size_t ix = 0; ix < 4; ix++) {
425
1.59G
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
1.59G
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
1.59G
    }
428
398M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
99.6M
  block[0] = dcs[1];
431
498M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.99G
    for (size_t ix = 0; ix < 4; ix++) {
433
1.59G
      if (ix == 0 && iy == 0) continue;
434
1.49G
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
1.49G
    }
436
398M
  }
437
99.6M
  ComputeScaledIDCT<4, 4>()(
438
99.6M
      block,
439
99.6M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
99.6M
            pixels_stride),
441
99.6M
      scratch_space);
442
  // IDCT4x8.
443
99.6M
  block[0] = dcs[2];
444
498M
  for (size_t iy = 0; iy < 4; iy++) {
445
3.58G
    for (size_t ix = 0; ix < 8; ix++) {
446
3.18G
      if (ix == 0 && iy == 0) continue;
447
3.09G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
3.09G
    }
449
398M
  }
450
99.6M
  ComputeScaledIDCT<4, 8>()(
451
99.6M
      block,
452
99.6M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
99.6M
      scratch_space);
454
99.6M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<0ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.22M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.22M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.22M
  size_t afv_x = afv_kind & 1;
404
1.22M
  size_t afv_y = afv_kind / 2;
405
1.22M
  float dcs[3] = {};
406
1.22M
  float block00 = coefficients[0];
407
1.22M
  float block01 = coefficients[1];
408
1.22M
  float block10 = coefficients[8];
409
1.22M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.22M
  dcs[1] = (block00 + block10 - block01);
411
1.22M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.22M
  HWY_ALIGN float coeff[4 * 4];
414
1.22M
  coeff[0] = dcs[0];
415
6.13M
  for (size_t iy = 0; iy < 4; iy++) {
416
24.5M
    for (size_t ix = 0; ix < 4; ix++) {
417
19.6M
      if (ix == 0 && iy == 0) continue;
418
18.4M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
18.4M
    }
420
4.91M
  }
421
1.22M
  HWY_ALIGN float block[4 * 8];
422
1.22M
  AFVIDCT4x4(coeff, block);
423
6.13M
  for (size_t iy = 0; iy < 4; iy++) {
424
24.5M
    for (size_t ix = 0; ix < 4; ix++) {
425
19.6M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
19.6M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
19.6M
    }
428
4.91M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.22M
  block[0] = dcs[1];
431
6.13M
  for (size_t iy = 0; iy < 4; iy++) {
432
24.5M
    for (size_t ix = 0; ix < 4; ix++) {
433
19.6M
      if (ix == 0 && iy == 0) continue;
434
18.4M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
18.4M
    }
436
4.91M
  }
437
1.22M
  ComputeScaledIDCT<4, 4>()(
438
1.22M
      block,
439
1.22M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.22M
            pixels_stride),
441
1.22M
      scratch_space);
442
  // IDCT4x8.
443
1.22M
  block[0] = dcs[2];
444
6.13M
  for (size_t iy = 0; iy < 4; iy++) {
445
44.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
39.2M
      if (ix == 0 && iy == 0) continue;
447
38.0M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
38.0M
    }
449
4.91M
  }
450
1.22M
  ComputeScaledIDCT<4, 8>()(
451
1.22M
      block,
452
1.22M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.22M
      scratch_space);
454
1.22M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
3.93M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
3.93M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
3.93M
  size_t afv_x = afv_kind & 1;
404
3.93M
  size_t afv_y = afv_kind / 2;
405
3.93M
  float dcs[3] = {};
406
3.93M
  float block00 = coefficients[0];
407
3.93M
  float block01 = coefficients[1];
408
3.93M
  float block10 = coefficients[8];
409
3.93M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
3.93M
  dcs[1] = (block00 + block10 - block01);
411
3.93M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
3.93M
  HWY_ALIGN float coeff[4 * 4];
414
3.93M
  coeff[0] = dcs[0];
415
19.6M
  for (size_t iy = 0; iy < 4; iy++) {
416
78.6M
    for (size_t ix = 0; ix < 4; ix++) {
417
62.9M
      if (ix == 0 && iy == 0) continue;
418
59.0M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
59.0M
    }
420
15.7M
  }
421
3.93M
  HWY_ALIGN float block[4 * 8];
422
3.93M
  AFVIDCT4x4(coeff, block);
423
19.6M
  for (size_t iy = 0; iy < 4; iy++) {
424
78.6M
    for (size_t ix = 0; ix < 4; ix++) {
425
62.9M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
62.9M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
62.9M
    }
428
15.7M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
3.93M
  block[0] = dcs[1];
431
19.6M
  for (size_t iy = 0; iy < 4; iy++) {
432
78.6M
    for (size_t ix = 0; ix < 4; ix++) {
433
62.9M
      if (ix == 0 && iy == 0) continue;
434
59.0M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
59.0M
    }
436
15.7M
  }
437
3.93M
  ComputeScaledIDCT<4, 4>()(
438
3.93M
      block,
439
3.93M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
3.93M
            pixels_stride),
441
3.93M
      scratch_space);
442
  // IDCT4x8.
443
3.93M
  block[0] = dcs[2];
444
19.6M
  for (size_t iy = 0; iy < 4; iy++) {
445
141M
    for (size_t ix = 0; ix < 8; ix++) {
446
125M
      if (ix == 0 && iy == 0) continue;
447
121M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
121M
    }
449
15.7M
  }
450
3.93M
  ComputeScaledIDCT<4, 8>()(
451
3.93M
      block,
452
3.93M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
3.93M
      scratch_space);
454
3.93M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
748k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
748k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
748k
  size_t afv_x = afv_kind & 1;
404
748k
  size_t afv_y = afv_kind / 2;
405
748k
  float dcs[3] = {};
406
748k
  float block00 = coefficients[0];
407
748k
  float block01 = coefficients[1];
408
748k
  float block10 = coefficients[8];
409
748k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
748k
  dcs[1] = (block00 + block10 - block01);
411
748k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
748k
  HWY_ALIGN float coeff[4 * 4];
414
748k
  coeff[0] = dcs[0];
415
3.74M
  for (size_t iy = 0; iy < 4; iy++) {
416
14.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
11.9M
      if (ix == 0 && iy == 0) continue;
418
11.2M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
11.2M
    }
420
2.99M
  }
421
748k
  HWY_ALIGN float block[4 * 8];
422
748k
  AFVIDCT4x4(coeff, block);
423
3.74M
  for (size_t iy = 0; iy < 4; iy++) {
424
14.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
11.9M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
11.9M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
11.9M
    }
428
2.99M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
748k
  block[0] = dcs[1];
431
3.74M
  for (size_t iy = 0; iy < 4; iy++) {
432
14.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
11.9M
      if (ix == 0 && iy == 0) continue;
434
11.2M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
11.2M
    }
436
2.99M
  }
437
748k
  ComputeScaledIDCT<4, 4>()(
438
748k
      block,
439
748k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
748k
            pixels_stride),
441
748k
      scratch_space);
442
  // IDCT4x8.
443
748k
  block[0] = dcs[2];
444
3.74M
  for (size_t iy = 0; iy < 4; iy++) {
445
26.9M
    for (size_t ix = 0; ix < 8; ix++) {
446
23.9M
      if (ix == 0 && iy == 0) continue;
447
23.2M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
23.2M
    }
449
2.99M
  }
450
748k
  ComputeScaledIDCT<4, 8>()(
451
748k
      block,
452
748k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
748k
      scratch_space);
454
748k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
1.44M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
1.44M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
1.44M
  size_t afv_x = afv_kind & 1;
404
1.44M
  size_t afv_y = afv_kind / 2;
405
1.44M
  float dcs[3] = {};
406
1.44M
  float block00 = coefficients[0];
407
1.44M
  float block01 = coefficients[1];
408
1.44M
  float block10 = coefficients[8];
409
1.44M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
1.44M
  dcs[1] = (block00 + block10 - block01);
411
1.44M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
1.44M
  HWY_ALIGN float coeff[4 * 4];
414
1.44M
  coeff[0] = dcs[0];
415
7.21M
  for (size_t iy = 0; iy < 4; iy++) {
416
28.8M
    for (size_t ix = 0; ix < 4; ix++) {
417
23.1M
      if (ix == 0 && iy == 0) continue;
418
21.6M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
21.6M
    }
420
5.77M
  }
421
1.44M
  HWY_ALIGN float block[4 * 8];
422
1.44M
  AFVIDCT4x4(coeff, block);
423
7.21M
  for (size_t iy = 0; iy < 4; iy++) {
424
28.8M
    for (size_t ix = 0; ix < 4; ix++) {
425
23.1M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
23.1M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
23.1M
    }
428
5.77M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
1.44M
  block[0] = dcs[1];
431
7.21M
  for (size_t iy = 0; iy < 4; iy++) {
432
28.8M
    for (size_t ix = 0; ix < 4; ix++) {
433
23.1M
      if (ix == 0 && iy == 0) continue;
434
21.6M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
21.6M
    }
436
5.77M
  }
437
1.44M
  ComputeScaledIDCT<4, 4>()(
438
1.44M
      block,
439
1.44M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
1.44M
            pixels_stride),
441
1.44M
      scratch_space);
442
  // IDCT4x8.
443
1.44M
  block[0] = dcs[2];
444
7.21M
  for (size_t iy = 0; iy < 4; iy++) {
445
51.9M
    for (size_t ix = 0; ix < 8; ix++) {
446
46.2M
      if (ix == 0 && iy == 0) continue;
447
44.7M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
44.7M
    }
449
5.77M
  }
450
1.44M
  ComputeScaledIDCT<4, 8>()(
451
1.44M
      block,
452
1.44M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
1.44M
      scratch_space);
454
1.44M
}
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
23.0M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
23.0M
  size_t afv_x = afv_kind & 1;
404
23.0M
  size_t afv_y = afv_kind / 2;
405
23.0M
  float dcs[3] = {};
406
23.0M
  float block00 = coefficients[0];
407
23.0M
  float block01 = coefficients[1];
408
23.0M
  float block10 = coefficients[8];
409
23.0M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
23.0M
  dcs[1] = (block00 + block10 - block01);
411
23.0M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
23.0M
  HWY_ALIGN float coeff[4 * 4];
414
23.0M
  coeff[0] = dcs[0];
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      if (ix == 0 && iy == 0) continue;
418
346M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
346M
    }
420
92.3M
  }
421
23.0M
  HWY_ALIGN float block[4 * 8];
422
23.0M
  AFVIDCT4x4(coeff, block);
423
115M
  for (size_t iy = 0; iy < 4; iy++) {
424
461M
    for (size_t ix = 0; ix < 4; ix++) {
425
369M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
369M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
369M
    }
428
92.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
23.0M
  block[0] = dcs[1];
431
115M
  for (size_t iy = 0; iy < 4; iy++) {
432
461M
    for (size_t ix = 0; ix < 4; ix++) {
433
369M
      if (ix == 0 && iy == 0) continue;
434
346M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
346M
    }
436
92.3M
  }
437
23.0M
  ComputeScaledIDCT<4, 4>()(
438
23.0M
      block,
439
23.0M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
23.0M
            pixels_stride),
441
23.0M
      scratch_space);
442
  // IDCT4x8.
443
23.0M
  block[0] = dcs[2];
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      if (ix == 0 && iy == 0) continue;
447
715M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
715M
    }
449
92.3M
  }
450
23.0M
  ComputeScaledIDCT<4, 8>()(
451
23.0M
      block,
452
23.0M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
23.0M
      scratch_space);
454
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
23.0M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
23.0M
  size_t afv_x = afv_kind & 1;
404
23.0M
  size_t afv_y = afv_kind / 2;
405
23.0M
  float dcs[3] = {};
406
23.0M
  float block00 = coefficients[0];
407
23.0M
  float block01 = coefficients[1];
408
23.0M
  float block10 = coefficients[8];
409
23.0M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
23.0M
  dcs[1] = (block00 + block10 - block01);
411
23.0M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
23.0M
  HWY_ALIGN float coeff[4 * 4];
414
23.0M
  coeff[0] = dcs[0];
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      if (ix == 0 && iy == 0) continue;
418
346M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
346M
    }
420
92.3M
  }
421
23.0M
  HWY_ALIGN float block[4 * 8];
422
23.0M
  AFVIDCT4x4(coeff, block);
423
115M
  for (size_t iy = 0; iy < 4; iy++) {
424
461M
    for (size_t ix = 0; ix < 4; ix++) {
425
369M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
369M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
369M
    }
428
92.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
23.0M
  block[0] = dcs[1];
431
115M
  for (size_t iy = 0; iy < 4; iy++) {
432
461M
    for (size_t ix = 0; ix < 4; ix++) {
433
369M
      if (ix == 0 && iy == 0) continue;
434
346M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
346M
    }
436
92.3M
  }
437
23.0M
  ComputeScaledIDCT<4, 4>()(
438
23.0M
      block,
439
23.0M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
23.0M
            pixels_stride),
441
23.0M
      scratch_space);
442
  // IDCT4x8.
443
23.0M
  block[0] = dcs[2];
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      if (ix == 0 && iy == 0) continue;
447
715M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
715M
    }
449
92.3M
  }
450
23.0M
  ComputeScaledIDCT<4, 8>()(
451
23.0M
      block,
452
23.0M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
23.0M
      scratch_space);
454
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
23.0M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
23.0M
  size_t afv_x = afv_kind & 1;
404
23.0M
  size_t afv_y = afv_kind / 2;
405
23.0M
  float dcs[3] = {};
406
23.0M
  float block00 = coefficients[0];
407
23.0M
  float block01 = coefficients[1];
408
23.0M
  float block10 = coefficients[8];
409
23.0M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
23.0M
  dcs[1] = (block00 + block10 - block01);
411
23.0M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
23.0M
  HWY_ALIGN float coeff[4 * 4];
414
23.0M
  coeff[0] = dcs[0];
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      if (ix == 0 && iy == 0) continue;
418
346M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
346M
    }
420
92.3M
  }
421
23.0M
  HWY_ALIGN float block[4 * 8];
422
23.0M
  AFVIDCT4x4(coeff, block);
423
115M
  for (size_t iy = 0; iy < 4; iy++) {
424
461M
    for (size_t ix = 0; ix < 4; ix++) {
425
369M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
369M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
369M
    }
428
92.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
23.0M
  block[0] = dcs[1];
431
115M
  for (size_t iy = 0; iy < 4; iy++) {
432
461M
    for (size_t ix = 0; ix < 4; ix++) {
433
369M
      if (ix == 0 && iy == 0) continue;
434
346M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
346M
    }
436
92.3M
  }
437
23.0M
  ComputeScaledIDCT<4, 4>()(
438
23.0M
      block,
439
23.0M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
23.0M
            pixels_stride),
441
23.0M
      scratch_space);
442
  // IDCT4x8.
443
23.0M
  block[0] = dcs[2];
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      if (ix == 0 && iy == 0) continue;
447
715M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
715M
    }
449
92.3M
  }
450
23.0M
  ComputeScaledIDCT<4, 8>()(
451
23.0M
      block,
452
23.0M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
23.0M
      scratch_space);
454
23.0M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
23.0M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
23.0M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
23.0M
  size_t afv_x = afv_kind & 1;
404
23.0M
  size_t afv_y = afv_kind / 2;
405
23.0M
  float dcs[3] = {};
406
23.0M
  float block00 = coefficients[0];
407
23.0M
  float block01 = coefficients[1];
408
23.0M
  float block10 = coefficients[8];
409
23.0M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
23.0M
  dcs[1] = (block00 + block10 - block01);
411
23.0M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
23.0M
  HWY_ALIGN float coeff[4 * 4];
414
23.0M
  coeff[0] = dcs[0];
415
115M
  for (size_t iy = 0; iy < 4; iy++) {
416
461M
    for (size_t ix = 0; ix < 4; ix++) {
417
369M
      if (ix == 0 && iy == 0) continue;
418
346M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
346M
    }
420
92.3M
  }
421
23.0M
  HWY_ALIGN float block[4 * 8];
422
23.0M
  AFVIDCT4x4(coeff, block);
423
115M
  for (size_t iy = 0; iy < 4; iy++) {
424
461M
    for (size_t ix = 0; ix < 4; ix++) {
425
369M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
369M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
369M
    }
428
92.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
23.0M
  block[0] = dcs[1];
431
115M
  for (size_t iy = 0; iy < 4; iy++) {
432
461M
    for (size_t ix = 0; ix < 4; ix++) {
433
369M
      if (ix == 0 && iy == 0) continue;
434
346M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
346M
    }
436
92.3M
  }
437
23.0M
  ComputeScaledIDCT<4, 4>()(
438
23.0M
      block,
439
23.0M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
23.0M
            pixels_stride),
441
23.0M
      scratch_space);
442
  // IDCT4x8.
443
23.0M
  block[0] = dcs[2];
444
115M
  for (size_t iy = 0; iy < 4; iy++) {
445
830M
    for (size_t ix = 0; ix < 8; ix++) {
446
738M
      if (ix == 0 && iy == 0) continue;
447
715M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
715M
    }
449
92.3M
  }
450
23.0M
  ComputeScaledIDCT<4, 8>()(
451
23.0M
      block,
452
23.0M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
23.0M
      scratch_space);
454
23.0M
}
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
325M
                                        float* scratch_space) {
461
325M
  using Type = AcStrategyType;
462
325M
  switch (strategy) {
463
26.7M
    case Type::IDENTITY: {
464
26.7M
      float dcs[4] = {};
465
26.7M
      float block00 = coefficients[0];
466
26.7M
      float block01 = coefficients[1];
467
26.7M
      float block10 = coefficients[8];
468
26.7M
      float block11 = coefficients[9];
469
26.7M
      dcs[0] = block00 + block01 + block10 + block11;
470
26.7M
      dcs[1] = block00 + block01 - block10 - block11;
471
26.7M
      dcs[2] = block00 - block01 + block10 - block11;
472
26.7M
      dcs[3] = block00 - block01 - block10 + block11;
473
80.2M
      for (size_t y = 0; y < 2; y++) {
474
160M
        for (size_t x = 0; x < 2; x++) {
475
106M
          float block_dc = dcs[y * 2 + x];
476
106M
          float residual_sum = 0;
477
534M
          for (size_t iy = 0; iy < 4; iy++) {
478
2.13G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.71G
              if (ix == 0 && iy == 0) continue;
480
1.60G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.60G
            }
482
427M
          }
483
106M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
106M
              block_dc - residual_sum * (1.0f / 16);
485
534M
          for (size_t iy = 0; iy < 4; iy++) {
486
2.13G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.71G
              if (ix == 1 && iy == 1) continue;
488
1.60G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.60G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.60G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.60G
            }
492
427M
          }
493
106M
          pixels[y * 4 * pixels_stride + x * 4] =
494
106M
              coefficients[(y + 2) * 8 + x + 2] +
495
106M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
106M
        }
497
53.4M
      }
498
26.7M
      break;
499
0
    }
500
24.7M
    case Type::DCT8X4: {
501
24.7M
      float dcs[2] = {};
502
24.7M
      float block0 = coefficients[0];
503
24.7M
      float block1 = coefficients[8];
504
24.7M
      dcs[0] = block0 + block1;
505
24.7M
      dcs[1] = block0 - block1;
506
74.2M
      for (size_t x = 0; x < 2; x++) {
507
49.4M
        HWY_ALIGN float block[4 * 8];
508
49.4M
        block[0] = dcs[x];
509
247M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.78G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.58G
            if (ix == 0 && iy == 0) continue;
512
1.53G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.53G
          }
514
197M
        }
515
49.4M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
49.4M
                                  scratch_space);
517
49.4M
      }
518
24.7M
      break;
519
0
    }
520
24.4M
    case Type::DCT4X8: {
521
24.4M
      float dcs[2] = {};
522
24.4M
      float block0 = coefficients[0];
523
24.4M
      float block1 = coefficients[8];
524
24.4M
      dcs[0] = block0 + block1;
525
24.4M
      dcs[1] = block0 - block1;
526
73.2M
      for (size_t y = 0; y < 2; y++) {
527
48.8M
        HWY_ALIGN float block[4 * 8];
528
48.8M
        block[0] = dcs[y];
529
244M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.75G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.56G
            if (ix == 0 && iy == 0) continue;
532
1.51G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.51G
          }
534
195M
        }
535
48.8M
        ComputeScaledIDCT<4, 8>()(
536
48.8M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
48.8M
            scratch_space);
538
48.8M
      }
539
24.4M
      break;
540
0
    }
541
23.1M
    case Type::DCT4X4: {
542
23.1M
      float dcs[4] = {};
543
23.1M
      float block00 = coefficients[0];
544
23.1M
      float block01 = coefficients[1];
545
23.1M
      float block10 = coefficients[8];
546
23.1M
      float block11 = coefficients[9];
547
23.1M
      dcs[0] = block00 + block01 + block10 + block11;
548
23.1M
      dcs[1] = block00 + block01 - block10 - block11;
549
23.1M
      dcs[2] = block00 - block01 + block10 - block11;
550
23.1M
      dcs[3] = block00 - block01 - block10 + block11;
551
69.3M
      for (size_t y = 0; y < 2; y++) {
552
138M
        for (size_t x = 0; x < 2; x++) {
553
92.5M
          HWY_ALIGN float block[4 * 4];
554
92.5M
          block[0] = dcs[y * 2 + x];
555
462M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.85G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.48G
              if (ix == 0 && iy == 0) continue;
558
1.38G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.38G
            }
560
370M
          }
561
92.5M
          ComputeScaledIDCT<4, 4>()(
562
92.5M
              block,
563
92.5M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
92.5M
              scratch_space);
565
92.5M
        }
566
46.2M
      }
567
23.1M
      break;
568
0
    }
569
26.9M
    case Type::DCT2X2: {
570
26.9M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
26.9M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
26.9M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
26.9M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
26.9M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
242M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.93G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.72G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.72G
        }
579
215M
      }
580
26.9M
      break;
581
0
    }
582
9.97M
    case Type::DCT16X16: {
583
9.97M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
9.97M
                                  scratch_space);
585
9.97M
      break;
586
0
    }
587
19.5M
    case Type::DCT16X8: {
588
19.5M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
19.5M
                                 scratch_space);
590
19.5M
      break;
591
0
    }
592
20.3M
    case Type::DCT8X16: {
593
20.3M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
20.3M
                                 scratch_space);
595
20.3M
      break;
596
0
    }
597
4.83k
    case Type::DCT32X8: {
598
4.83k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
4.83k
                                 scratch_space);
600
4.83k
      break;
601
0
    }
602
6.45k
    case Type::DCT8X32: {
603
6.45k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
6.45k
                                 scratch_space);
605
6.45k
      break;
606
0
    }
607
3.87M
    case Type::DCT32X16: {
608
3.87M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.87M
                                  scratch_space);
610
3.87M
      break;
611
0
    }
612
4.11M
    case Type::DCT16X32: {
613
4.11M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
4.11M
                                  scratch_space);
615
4.11M
      break;
616
0
    }
617
2.82M
    case Type::DCT32X32: {
618
2.82M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
2.82M
                                  scratch_space);
620
2.82M
      break;
621
0
    }
622
36.3M
    case Type::DCT: {
623
36.3M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
36.3M
                                scratch_space);
625
36.3M
      break;
626
0
    }
627
24.3M
    case Type::AFV0: {
628
24.3M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
24.3M
      break;
630
0
    }
631
27.0M
    case Type::AFV1: {
632
27.0M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
27.0M
      break;
634
0
    }
635
23.8M
    case Type::AFV2: {
636
23.8M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
23.8M
      break;
638
0
    }
639
24.5M
    case Type::AFV3: {
640
24.5M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
24.5M
      break;
642
0
    }
643
1.19M
    case Type::DCT64X32: {
644
1.19M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.19M
                                  scratch_space);
646
1.19M
      break;
647
0
    }
648
796k
    case Type::DCT32X64: {
649
796k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
796k
                                  scratch_space);
651
796k
      break;
652
0
    }
653
548k
    case Type::DCT64X64: {
654
548k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
548k
                                  scratch_space);
656
548k
      break;
657
0
    }
658
75
    case Type::DCT128X64: {
659
75
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
75
                                   scratch_space);
661
75
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
21
    case Type::DCT128X128: {
669
21
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
21
                                    scratch_space);
671
21
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
48
    case Type::DCT256X256: {
684
48
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
48
                                    scratch_space);
686
48
      break;
687
0
    }
688
325M
  }
689
325M
}
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
36.4M
                                        float* scratch_space) {
461
36.4M
  using Type = AcStrategyType;
462
36.4M
  switch (strategy) {
463
3.65M
    case Type::IDENTITY: {
464
3.65M
      float dcs[4] = {};
465
3.65M
      float block00 = coefficients[0];
466
3.65M
      float block01 = coefficients[1];
467
3.65M
      float block10 = coefficients[8];
468
3.65M
      float block11 = coefficients[9];
469
3.65M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.65M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.65M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.65M
      dcs[3] = block00 - block01 - block10 + block11;
473
10.9M
      for (size_t y = 0; y < 2; y++) {
474
21.9M
        for (size_t x = 0; x < 2; x++) {
475
14.6M
          float block_dc = dcs[y * 2 + x];
476
14.6M
          float residual_sum = 0;
477
73.1M
          for (size_t iy = 0; iy < 4; iy++) {
478
292M
            for (size_t ix = 0; ix < 4; ix++) {
479
234M
              if (ix == 0 && iy == 0) continue;
480
219M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
219M
            }
482
58.5M
          }
483
14.6M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
14.6M
              block_dc - residual_sum * (1.0f / 16);
485
73.1M
          for (size_t iy = 0; iy < 4; iy++) {
486
292M
            for (size_t ix = 0; ix < 4; ix++) {
487
234M
              if (ix == 1 && iy == 1) continue;
488
219M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
219M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
219M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
219M
            }
492
58.5M
          }
493
14.6M
          pixels[y * 4 * pixels_stride + x * 4] =
494
14.6M
              coefficients[(y + 2) * 8 + x + 2] +
495
14.6M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
14.6M
        }
497
7.31M
      }
498
3.65M
      break;
499
0
    }
500
1.65M
    case Type::DCT8X4: {
501
1.65M
      float dcs[2] = {};
502
1.65M
      float block0 = coefficients[0];
503
1.65M
      float block1 = coefficients[8];
504
1.65M
      dcs[0] = block0 + block1;
505
1.65M
      dcs[1] = block0 - block1;
506
4.96M
      for (size_t x = 0; x < 2; x++) {
507
3.30M
        HWY_ALIGN float block[4 * 8];
508
3.30M
        block[0] = dcs[x];
509
16.5M
        for (size_t iy = 0; iy < 4; iy++) {
510
119M
          for (size_t ix = 0; ix < 8; ix++) {
511
105M
            if (ix == 0 && iy == 0) continue;
512
102M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
102M
          }
514
13.2M
        }
515
3.30M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
3.30M
                                  scratch_space);
517
3.30M
      }
518
1.65M
      break;
519
0
    }
520
1.33M
    case Type::DCT4X8: {
521
1.33M
      float dcs[2] = {};
522
1.33M
      float block0 = coefficients[0];
523
1.33M
      float block1 = coefficients[8];
524
1.33M
      dcs[0] = block0 + block1;
525
1.33M
      dcs[1] = block0 - block1;
526
4.01M
      for (size_t y = 0; y < 2; y++) {
527
2.67M
        HWY_ALIGN float block[4 * 8];
528
2.67M
        block[0] = dcs[y];
529
13.3M
        for (size_t iy = 0; iy < 4; iy++) {
530
96.3M
          for (size_t ix = 0; ix < 8; ix++) {
531
85.6M
            if (ix == 0 && iy == 0) continue;
532
82.9M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
82.9M
          }
534
10.7M
        }
535
2.67M
        ComputeScaledIDCT<4, 8>()(
536
2.67M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
2.67M
            scratch_space);
538
2.67M
      }
539
1.33M
      break;
540
0
    }
541
51.3k
    case Type::DCT4X4: {
542
51.3k
      float dcs[4] = {};
543
51.3k
      float block00 = coefficients[0];
544
51.3k
      float block01 = coefficients[1];
545
51.3k
      float block10 = coefficients[8];
546
51.3k
      float block11 = coefficients[9];
547
51.3k
      dcs[0] = block00 + block01 + block10 + block11;
548
51.3k
      dcs[1] = block00 + block01 - block10 - block11;
549
51.3k
      dcs[2] = block00 - block01 + block10 - block11;
550
51.3k
      dcs[3] = block00 - block01 - block10 + block11;
551
153k
      for (size_t y = 0; y < 2; y++) {
552
307k
        for (size_t x = 0; x < 2; x++) {
553
205k
          HWY_ALIGN float block[4 * 4];
554
205k
          block[0] = dcs[y * 2 + x];
555
1.02M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.10M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.28M
              if (ix == 0 && iy == 0) continue;
558
3.07M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.07M
            }
560
821k
          }
561
205k
          ComputeScaledIDCT<4, 4>()(
562
205k
              block,
563
205k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
205k
              scratch_space);
565
205k
        }
566
102k
      }
567
51.3k
      break;
568
0
    }
569
3.83M
    case Type::DCT2X2: {
570
3.83M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.83M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.83M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.83M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.83M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
34.4M
      for (size_t y = 0; y < kBlockDim; y++) {
576
275M
        for (size_t x = 0; x < kBlockDim; x++) {
577
245M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
245M
        }
579
30.6M
      }
580
3.83M
      break;
581
0
    }
582
551k
    case Type::DCT16X16: {
583
551k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
551k
                                  scratch_space);
585
551k
      break;
586
0
    }
587
982k
    case Type::DCT16X8: {
588
982k
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
982k
                                 scratch_space);
590
982k
      break;
591
0
    }
592
1.75M
    case Type::DCT8X16: {
593
1.75M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.75M
                                 scratch_space);
595
1.75M
      break;
596
0
    }
597
4.83k
    case Type::DCT32X8: {
598
4.83k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
4.83k
                                 scratch_space);
600
4.83k
      break;
601
0
    }
602
6.45k
    case Type::DCT8X32: {
603
6.45k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
6.45k
                                 scratch_space);
605
6.45k
      break;
606
0
    }
607
275k
    case Type::DCT32X16: {
608
275k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
275k
                                  scratch_space);
610
275k
      break;
611
0
    }
612
460k
    case Type::DCT16X32: {
613
460k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
460k
                                  scratch_space);
615
460k
      break;
616
0
    }
617
975k
    case Type::DCT32X32: {
618
975k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
975k
                                  scratch_space);
620
975k
      break;
621
0
    }
622
13.2M
    case Type::DCT: {
623
13.2M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
13.2M
                                scratch_space);
625
13.2M
      break;
626
0
    }
627
1.22M
    case Type::AFV0: {
628
1.22M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
1.22M
      break;
630
0
    }
631
3.93M
    case Type::AFV1: {
632
3.93M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
3.93M
      break;
634
0
    }
635
748k
    case Type::AFV2: {
636
748k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
748k
      break;
638
0
    }
639
1.44M
    case Type::AFV3: {
640
1.44M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
1.44M
      break;
642
0
    }
643
28.8k
    case Type::DCT64X32: {
644
28.8k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
28.8k
                                  scratch_space);
646
28.8k
      break;
647
0
    }
648
33.7k
    case Type::DCT32X64: {
649
33.7k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
33.7k
                                  scratch_space);
651
33.7k
      break;
652
0
    }
653
229k
    case Type::DCT64X64: {
654
229k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
229k
                                  scratch_space);
656
229k
      break;
657
0
    }
658
75
    case Type::DCT128X64: {
659
75
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
75
                                   scratch_space);
661
75
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
21
    case Type::DCT128X128: {
669
21
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
21
                                    scratch_space);
671
21
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
48
    case Type::DCT256X256: {
684
48
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
48
                                    scratch_space);
686
48
      break;
687
0
    }
688
36.4M
  }
689
36.4M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::TransformToPixels(jxl::AcStrategyType, float*, float*, unsigned long, float*)
Line
Count
Source
460
288M
                                        float* scratch_space) {
461
288M
  using Type = AcStrategyType;
462
288M
  switch (strategy) {
463
23.0M
    case Type::IDENTITY: {
464
23.0M
      float dcs[4] = {};
465
23.0M
      float block00 = coefficients[0];
466
23.0M
      float block01 = coefficients[1];
467
23.0M
      float block10 = coefficients[8];
468
23.0M
      float block11 = coefficients[9];
469
23.0M
      dcs[0] = block00 + block01 + block10 + block11;
470
23.0M
      dcs[1] = block00 + block01 - block10 - block11;
471
23.0M
      dcs[2] = block00 - block01 + block10 - block11;
472
23.0M
      dcs[3] = block00 - block01 - block10 + block11;
473
69.2M
      for (size_t y = 0; y < 2; y++) {
474
138M
        for (size_t x = 0; x < 2; x++) {
475
92.3M
          float block_dc = dcs[y * 2 + x];
476
92.3M
          float residual_sum = 0;
477
461M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.84G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.47G
              if (ix == 0 && iy == 0) continue;
480
1.38G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.38G
            }
482
369M
          }
483
92.3M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
92.3M
              block_dc - residual_sum * (1.0f / 16);
485
461M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.84G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.47G
              if (ix == 1 && iy == 1) continue;
488
1.38G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.38G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.38G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.38G
            }
492
369M
          }
493
92.3M
          pixels[y * 4 * pixels_stride + x * 4] =
494
92.3M
              coefficients[(y + 2) * 8 + x + 2] +
495
92.3M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
92.3M
        }
497
46.1M
      }
498
23.0M
      break;
499
0
    }
500
23.0M
    case Type::DCT8X4: {
501
23.0M
      float dcs[2] = {};
502
23.0M
      float block0 = coefficients[0];
503
23.0M
      float block1 = coefficients[8];
504
23.0M
      dcs[0] = block0 + block1;
505
23.0M
      dcs[1] = block0 - block1;
506
69.2M
      for (size_t x = 0; x < 2; x++) {
507
46.1M
        HWY_ALIGN float block[4 * 8];
508
46.1M
        block[0] = dcs[x];
509
230M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.66G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.47G
            if (ix == 0 && iy == 0) continue;
512
1.43G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.43G
          }
514
184M
        }
515
46.1M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
46.1M
                                  scratch_space);
517
46.1M
      }
518
23.0M
      break;
519
0
    }
520
23.0M
    case Type::DCT4X8: {
521
23.0M
      float dcs[2] = {};
522
23.0M
      float block0 = coefficients[0];
523
23.0M
      float block1 = coefficients[8];
524
23.0M
      dcs[0] = block0 + block1;
525
23.0M
      dcs[1] = block0 - block1;
526
69.2M
      for (size_t y = 0; y < 2; y++) {
527
46.1M
        HWY_ALIGN float block[4 * 8];
528
46.1M
        block[0] = dcs[y];
529
230M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.66G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.47G
            if (ix == 0 && iy == 0) continue;
532
1.43G
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
1.43G
          }
534
184M
        }
535
46.1M
        ComputeScaledIDCT<4, 8>()(
536
46.1M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
46.1M
            scratch_space);
538
46.1M
      }
539
23.0M
      break;
540
0
    }
541
23.0M
    case Type::DCT4X4: {
542
23.0M
      float dcs[4] = {};
543
23.0M
      float block00 = coefficients[0];
544
23.0M
      float block01 = coefficients[1];
545
23.0M
      float block10 = coefficients[8];
546
23.0M
      float block11 = coefficients[9];
547
23.0M
      dcs[0] = block00 + block01 + block10 + block11;
548
23.0M
      dcs[1] = block00 + block01 - block10 - block11;
549
23.0M
      dcs[2] = block00 - block01 + block10 - block11;
550
23.0M
      dcs[3] = block00 - block01 - block10 + block11;
551
69.2M
      for (size_t y = 0; y < 2; y++) {
552
138M
        for (size_t x = 0; x < 2; x++) {
553
92.3M
          HWY_ALIGN float block[4 * 4];
554
92.3M
          block[0] = dcs[y * 2 + x];
555
461M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.84G
            for (size_t ix = 0; ix < 4; ix++) {
557
1.47G
              if (ix == 0 && iy == 0) continue;
558
1.38G
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
1.38G
            }
560
369M
          }
561
92.3M
          ComputeScaledIDCT<4, 4>()(
562
92.3M
              block,
563
92.3M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
92.3M
              scratch_space);
565
92.3M
        }
566
46.1M
      }
567
23.0M
      break;
568
0
    }
569
23.0M
    case Type::DCT2X2: {
570
23.0M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
23.0M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
23.0M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
23.0M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
23.0M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
207M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.66G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.47G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.47G
        }
579
184M
      }
580
23.0M
      break;
581
0
    }
582
9.42M
    case Type::DCT16X16: {
583
9.42M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
9.42M
                                  scratch_space);
585
9.42M
      break;
586
0
    }
587
18.5M
    case Type::DCT16X8: {
588
18.5M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
18.5M
                                 scratch_space);
590
18.5M
      break;
591
0
    }
592
18.6M
    case Type::DCT8X16: {
593
18.6M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
18.6M
                                 scratch_space);
595
18.6M
      break;
596
0
    }
597
0
    case Type::DCT32X8: {
598
0
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
0
                                 scratch_space);
600
0
      break;
601
0
    }
602
0
    case Type::DCT8X32: {
603
0
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
0
                                 scratch_space);
605
0
      break;
606
0
    }
607
3.59M
    case Type::DCT32X16: {
608
3.59M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
3.59M
                                  scratch_space);
610
3.59M
      break;
611
0
    }
612
3.65M
    case Type::DCT16X32: {
613
3.65M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
3.65M
                                  scratch_space);
615
3.65M
      break;
616
0
    }
617
1.84M
    case Type::DCT32X32: {
618
1.84M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.84M
                                  scratch_space);
620
1.84M
      break;
621
0
    }
622
23.0M
    case Type::DCT: {
623
23.0M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
23.0M
                                scratch_space);
625
23.0M
      break;
626
0
    }
627
23.0M
    case Type::AFV0: {
628
23.0M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
23.0M
      break;
630
0
    }
631
23.0M
    case Type::AFV1: {
632
23.0M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
23.0M
      break;
634
0
    }
635
23.0M
    case Type::AFV2: {
636
23.0M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
23.0M
      break;
638
0
    }
639
23.0M
    case Type::AFV3: {
640
23.0M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
23.0M
      break;
642
0
    }
643
1.16M
    case Type::DCT64X32: {
644
1.16M
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
1.16M
                                  scratch_space);
646
1.16M
      break;
647
0
    }
648
762k
    case Type::DCT32X64: {
649
762k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
762k
                                  scratch_space);
651
762k
      break;
652
0
    }
653
318k
    case Type::DCT64X64: {
654
318k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
318k
                                  scratch_space);
656
318k
      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
288M
  }
689
288M
}
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
36.4M
                                              float* JXL_RESTRICT scratch) {
695
36.4M
  using Type = AcStrategyType;
696
36.4M
  HWY_ALIGN float warm_block[4 * 4];
697
36.4M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
36.4M
  switch (strategy) {
699
982k
    case Type::DCT16X8: {
700
982k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
982k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
982k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
982k
      break;
704
0
    }
705
1.75M
    case Type::DCT8X16: {
706
1.75M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.75M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.75M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.75M
      break;
710
0
    }
711
551k
    case Type::DCT16X16: {
712
551k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
551k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
551k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
551k
      break;
716
0
    }
717
4.83k
    case Type::DCT32X8: {
718
4.83k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
4.83k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
4.83k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
4.83k
      break;
722
0
    }
723
6.45k
    case Type::DCT8X32: {
724
6.45k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
6.45k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
6.45k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
6.45k
      break;
728
0
    }
729
275k
    case Type::DCT32X16: {
730
275k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
275k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
275k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
275k
      break;
734
0
    }
735
460k
    case Type::DCT16X32: {
736
460k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
460k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
460k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
460k
      break;
740
0
    }
741
975k
    case Type::DCT32X32: {
742
975k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
975k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
975k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
975k
      break;
746
0
    }
747
28.8k
    case Type::DCT64X32: {
748
28.8k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
28.8k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
28.8k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
28.8k
      break;
752
0
    }
753
33.7k
    case Type::DCT32X64: {
754
33.7k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
33.7k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
33.7k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
33.7k
      break;
758
0
    }
759
229k
    case Type::DCT64X64: {
760
229k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
229k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
229k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
229k
      break;
764
0
    }
765
75
    case Type::DCT128X64: {
766
75
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
75
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
75
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
75
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
21
    case Type::DCT128X128: {
778
21
      ReinterpretingDCT<
779
21
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
21
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
21
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
21
      break;
783
0
    }
784
0
    case Type::DCT256X128: {
785
0
      ReinterpretingDCT<
786
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
787
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
788
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 16);
789
0
      break;
790
0
    }
791
0
    case Type::DCT128X256: {
792
0
      ReinterpretingDCT<
793
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
794
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
795
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 16 * 32);
796
0
      break;
797
0
    }
798
48
    case Type::DCT256X256: {
799
48
      ReinterpretingDCT<
800
48
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
48
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
48
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
48
      break;
804
0
    }
805
13.2M
    case Type::DCT:
806
17.1M
    case Type::DCT2X2:
807
17.1M
    case Type::DCT4X4:
808
18.5M
    case Type::DCT4X8:
809
20.1M
    case Type::DCT8X4:
810
21.3M
    case Type::AFV0:
811
25.3M
    case Type::AFV1:
812
26.0M
    case Type::AFV2:
813
27.5M
    case Type::AFV3:
814
31.1M
    case Type::IDENTITY:
815
31.1M
      llf[0] = dc[0];
816
31.1M
      break;
817
36.4M
  };
818
36.4M
}
Unexecuted instantiation: enc_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
dec_group.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Line
Count
Source
694
36.4M
                                              float* JXL_RESTRICT scratch) {
695
36.4M
  using Type = AcStrategyType;
696
36.4M
  HWY_ALIGN float warm_block[4 * 4];
697
36.4M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
36.4M
  switch (strategy) {
699
982k
    case Type::DCT16X8: {
700
982k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
982k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
982k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
982k
      break;
704
0
    }
705
1.75M
    case Type::DCT8X16: {
706
1.75M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.75M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.75M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.75M
      break;
710
0
    }
711
551k
    case Type::DCT16X16: {
712
551k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
551k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
551k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
551k
      break;
716
0
    }
717
4.83k
    case Type::DCT32X8: {
718
4.83k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
4.83k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
4.83k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
4.83k
      break;
722
0
    }
723
6.45k
    case Type::DCT8X32: {
724
6.45k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
6.45k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
6.45k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
6.45k
      break;
728
0
    }
729
275k
    case Type::DCT32X16: {
730
275k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
275k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
275k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
275k
      break;
734
0
    }
735
460k
    case Type::DCT16X32: {
736
460k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
460k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
460k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
460k
      break;
740
0
    }
741
975k
    case Type::DCT32X32: {
742
975k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
975k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
975k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
975k
      break;
746
0
    }
747
28.8k
    case Type::DCT64X32: {
748
28.8k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
28.8k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
28.8k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
28.8k
      break;
752
0
    }
753
33.7k
    case Type::DCT32X64: {
754
33.7k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
33.7k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
33.7k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
33.7k
      break;
758
0
    }
759
229k
    case Type::DCT64X64: {
760
229k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
229k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
229k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
229k
      break;
764
0
    }
765
75
    case Type::DCT128X64: {
766
75
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
75
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
75
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
75
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
21
    case Type::DCT128X128: {
778
21
      ReinterpretingDCT<
779
21
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
21
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
21
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
21
      break;
783
0
    }
784
0
    case Type::DCT256X128: {
785
0
      ReinterpretingDCT<
786
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
787
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
788
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 16);
789
0
      break;
790
0
    }
791
0
    case Type::DCT128X256: {
792
0
      ReinterpretingDCT<
793
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
794
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
795
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 16 * 32);
796
0
      break;
797
0
    }
798
48
    case Type::DCT256X256: {
799
48
      ReinterpretingDCT<
800
48
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
48
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
48
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
48
      break;
804
0
    }
805
13.2M
    case Type::DCT:
806
17.1M
    case Type::DCT2X2:
807
17.1M
    case Type::DCT4X4:
808
18.5M
    case Type::DCT4X8:
809
20.1M
    case Type::DCT8X4:
810
21.3M
    case Type::AFV0:
811
25.3M
    case Type::AFV1:
812
26.0M
    case Type::AFV2:
813
27.5M
    case Type::AFV3:
814
31.1M
    case Type::IDENTITY:
815
31.1M
      llf[0] = dc[0];
816
31.1M
      break;
817
36.4M
  };
818
36.4M
}
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_ZEN4::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_AVX3_SPR::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::N_SSE2::(anonymous namespace)::LowestFrequenciesFromDC(jxl::AcStrategyType, float const*, unsigned long, float*, float*)
819
820
}  // namespace
821
// NOLINTNEXTLINE(google-readability-namespace-comments)
822
}  // namespace HWY_NAMESPACE
823
}  // namespace jxl
824
HWY_AFTER_NAMESPACE();
825
826
#endif  // LIB_JXL_DEC_TRANSFORMS_INL_H_