Coverage Report

Created: 2025-11-16 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/dec_transforms-inl.h
Line
Count
Source
1
// Copyright (c) the JPEG XL Project Authors. All rights reserved.
2
//
3
// Use of this source code is governed by a BSD-style
4
// license that can be found in the LICENSE file.
5
6
#include <cstring>
7
8
#include "lib/jxl/base/compiler_specific.h"
9
#include "lib/jxl/frame_dimensions.h"
10
11
#if defined(LIB_JXL_DEC_TRANSFORMS_INL_H_) == defined(HWY_TARGET_TOGGLE)
12
#ifdef LIB_JXL_DEC_TRANSFORMS_INL_H_
13
#undef LIB_JXL_DEC_TRANSFORMS_INL_H_
14
#else
15
#define LIB_JXL_DEC_TRANSFORMS_INL_H_
16
#endif
17
18
#include <cstddef>
19
#include <hwy/highway.h>
20
21
#include "lib/jxl/ac_strategy.h"
22
#include "lib/jxl/dct-inl.h"
23
#include "lib/jxl/dct_scales.h"
24
HWY_BEFORE_NAMESPACE();
25
namespace jxl {
26
namespace HWY_NAMESPACE {
27
namespace {
28
29
// These templates are not found via ADL.
30
using hwy::HWY_NAMESPACE::MulAdd;
31
32
// Computes the lowest-frequency LF_ROWSxLF_COLS-sized square in output, which
33
// is a DCT_ROWS*DCT_COLS-sized DCT block, by doing a ROWS*COLS DCT on the
34
// input block.
35
template <size_t DCT_ROWS, size_t DCT_COLS, size_t LF_ROWS, size_t LF_COLS,
36
          size_t ROWS, size_t COLS>
37
JXL_INLINE void ReinterpretingDCT(const float* input, const size_t input_stride,
38
                                  float* output, const size_t output_stride,
39
                                  float* JXL_RESTRICT block,
40
4.23M
                                  float* JXL_RESTRICT scratch_space) {
41
4.23M
  static_assert(LF_ROWS == ROWS,
42
4.23M
                "ReinterpretingDCT should only be called with LF == N");
43
4.23M
  static_assert(LF_COLS == COLS,
44
4.23M
                "ReinterpretingDCT should only be called with LF == N");
45
4.23M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
4.23M
                                 scratch_space);
47
4.23M
  if (ROWS < COLS) {
48
4.12M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
9.46M
      for (size_t x = 0; x < LF_COLS; x++) {
50
7.13M
        output[y * output_stride + x] =
51
7.13M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
7.13M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
7.13M
      }
54
2.32M
    }
55
2.42M
  } else {
56
7.99M
    for (size_t y = 0; y < LF_COLS; y++) {
57
27.8M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
22.2M
        output[y * output_stride + x] =
59
22.2M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
22.2M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
22.2M
      }
62
5.56M
    }
63
2.42M
  }
64
4.23M
}
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
987k
                                  float* JXL_RESTRICT scratch_space) {
41
987k
  static_assert(LF_ROWS == ROWS,
42
987k
                "ReinterpretingDCT should only be called with LF == N");
43
987k
  static_assert(LF_COLS == COLS,
44
987k
                "ReinterpretingDCT should only be called with LF == N");
45
987k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
987k
                                 scratch_space);
47
987k
  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
987k
  } else {
56
1.97M
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.96M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
1.97M
        output[y * output_stride + x] =
59
1.97M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
1.97M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
1.97M
      }
62
987k
    }
63
987k
  }
64
987k
}
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.35M
                                  float* JXL_RESTRICT scratch_space) {
41
1.35M
  static_assert(LF_ROWS == ROWS,
42
1.35M
                "ReinterpretingDCT should only be called with LF == N");
43
1.35M
  static_assert(LF_COLS == COLS,
44
1.35M
                "ReinterpretingDCT should only be called with LF == N");
45
1.35M
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
1.35M
                                 scratch_space);
47
1.35M
  if (ROWS < COLS) {
48
2.71M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.06M
      for (size_t x = 0; x < LF_COLS; x++) {
50
2.71M
        output[y * output_stride + x] =
51
2.71M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
2.71M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
2.71M
      }
54
1.35M
    }
55
1.35M
  } 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.35M
}
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
554k
                                  float* JXL_RESTRICT scratch_space) {
41
554k
  static_assert(LF_ROWS == ROWS,
42
554k
                "ReinterpretingDCT should only be called with LF == N");
43
554k
  static_assert(LF_COLS == COLS,
44
554k
                "ReinterpretingDCT should only be called with LF == N");
45
554k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
554k
                                 scratch_space);
47
554k
  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
554k
  } else {
56
1.66M
    for (size_t y = 0; y < LF_COLS; y++) {
57
3.32M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.21M
        output[y * output_stride + x] =
59
2.21M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.21M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.21M
      }
62
1.10M
    }
63
554k
  }
64
554k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
6.36k
                                  float* JXL_RESTRICT scratch_space) {
41
6.36k
  static_assert(LF_ROWS == ROWS,
42
6.36k
                "ReinterpretingDCT should only be called with LF == N");
43
6.36k
  static_assert(LF_COLS == COLS,
44
6.36k
                "ReinterpretingDCT should only be called with LF == N");
45
6.36k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
6.36k
                                 scratch_space);
47
6.36k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
6.36k
  } else {
56
12.7k
    for (size_t y = 0; y < LF_COLS; y++) {
57
31.8k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
25.4k
        output[y * output_stride + x] =
59
25.4k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
25.4k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
25.4k
      }
62
6.36k
    }
63
6.36k
  }
64
6.36k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
7.75k
                                  float* JXL_RESTRICT scratch_space) {
41
7.75k
  static_assert(LF_ROWS == ROWS,
42
7.75k
                "ReinterpretingDCT should only be called with LF == N");
43
7.75k
  static_assert(LF_COLS == COLS,
44
7.75k
                "ReinterpretingDCT should only be called with LF == N");
45
7.75k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
7.75k
                                 scratch_space);
47
7.75k
  if (ROWS < COLS) {
48
15.5k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
38.7k
      for (size_t x = 0; x < LF_COLS; x++) {
50
31.0k
        output[y * output_stride + x] =
51
31.0k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
31.0k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
31.0k
      }
54
7.75k
    }
55
7.75k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
7.75k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
270k
                                  float* JXL_RESTRICT scratch_space) {
41
270k
  static_assert(LF_ROWS == ROWS,
42
270k
                "ReinterpretingDCT should only be called with LF == N");
43
270k
  static_assert(LF_COLS == COLS,
44
270k
                "ReinterpretingDCT should only be called with LF == N");
45
270k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
270k
                                 scratch_space);
47
270k
  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
270k
  } else {
56
810k
    for (size_t y = 0; y < LF_COLS; y++) {
57
2.70M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
2.16M
        output[y * output_stride + x] =
59
2.16M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
2.16M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
2.16M
      }
62
540k
    }
63
270k
  }
64
270k
}
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
408k
                                  float* JXL_RESTRICT scratch_space) {
41
408k
  static_assert(LF_ROWS == ROWS,
42
408k
                "ReinterpretingDCT should only be called with LF == N");
43
408k
  static_assert(LF_COLS == COLS,
44
408k
                "ReinterpretingDCT should only be called with LF == N");
45
408k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
408k
                                 scratch_space);
47
408k
  if (ROWS < COLS) {
48
1.22M
    for (size_t y = 0; y < LF_ROWS; y++) {
49
4.08M
      for (size_t x = 0; x < LF_COLS; x++) {
50
3.27M
        output[y * output_stride + x] =
51
3.27M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
3.27M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
3.27M
      }
54
817k
    }
55
408k
  } 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
408k
}
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
470k
                                  float* JXL_RESTRICT scratch_space) {
41
470k
  static_assert(LF_ROWS == ROWS,
42
470k
                "ReinterpretingDCT should only be called with LF == N");
43
470k
  static_assert(LF_COLS == COLS,
44
470k
                "ReinterpretingDCT should only be called with LF == N");
45
470k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
470k
                                 scratch_space);
47
470k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
470k
  } else {
56
2.35M
    for (size_t y = 0; y < LF_COLS; y++) {
57
9.40M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
7.52M
        output[y * output_stride + x] =
59
7.52M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
7.52M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
7.52M
      }
62
1.88M
    }
63
470k
  }
64
470k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
19.0k
                                  float* JXL_RESTRICT scratch_space) {
41
19.0k
  static_assert(LF_ROWS == ROWS,
42
19.0k
                "ReinterpretingDCT should only be called with LF == N");
43
19.0k
  static_assert(LF_COLS == COLS,
44
19.0k
                "ReinterpretingDCT should only be called with LF == N");
45
19.0k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
19.0k
                                 scratch_space);
47
19.0k
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
19.0k
  } else {
56
95.3k
    for (size_t y = 0; y < LF_COLS; y++) {
57
686k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
610k
        output[y * output_stride + x] =
59
610k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
610k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
610k
      }
62
76.2k
    }
63
19.0k
  }
64
19.0k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
35.1k
                                  float* JXL_RESTRICT scratch_space) {
41
35.1k
  static_assert(LF_ROWS == ROWS,
42
35.1k
                "ReinterpretingDCT should only be called with LF == N");
43
35.1k
  static_assert(LF_COLS == COLS,
44
35.1k
                "ReinterpretingDCT should only be called with LF == N");
45
35.1k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
35.1k
                                 scratch_space);
47
35.1k
  if (ROWS < COLS) {
48
175k
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.26M
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.12M
        output[y * output_stride + x] =
51
1.12M
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.12M
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.12M
      }
54
140k
    }
55
35.1k
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
35.1k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
120k
                                  float* JXL_RESTRICT scratch_space) {
41
120k
  static_assert(LF_ROWS == ROWS,
42
120k
                "ReinterpretingDCT should only be called with LF == N");
43
120k
  static_assert(LF_COLS == COLS,
44
120k
                "ReinterpretingDCT should only be called with LF == N");
45
120k
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
120k
                                 scratch_space);
47
120k
  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
120k
  } else {
56
1.08M
    for (size_t y = 0; y < LF_COLS; y++) {
57
8.68M
      for (size_t x = 0; x < LF_ROWS; x++) {
58
7.71M
        output[y * output_stride + x] =
59
7.71M
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
7.71M
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
7.71M
      }
62
964k
    }
63
120k
  }
64
120k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
54
                                  float* JXL_RESTRICT scratch_space) {
41
54
  static_assert(LF_ROWS == ROWS,
42
54
                "ReinterpretingDCT should only be called with LF == N");
43
54
  static_assert(LF_COLS == COLS,
44
54
                "ReinterpretingDCT should only be called with LF == N");
45
54
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
54
                                 scratch_space);
47
54
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
54
  } else {
56
486
    for (size_t y = 0; y < LF_COLS; y++) {
57
7.34k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
6.91k
        output[y * output_stride + x] =
59
6.91k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
6.91k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
6.91k
      }
62
432
    }
63
54
  }
64
54
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
12
                                  float* JXL_RESTRICT scratch_space) {
41
12
  static_assert(LF_ROWS == ROWS,
42
12
                "ReinterpretingDCT should only be called with LF == N");
43
12
  static_assert(LF_COLS == COLS,
44
12
                "ReinterpretingDCT should only be called with LF == N");
45
12
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
12
                                 scratch_space);
47
12
  if (ROWS < COLS) {
48
108
    for (size_t y = 0; y < LF_ROWS; y++) {
49
1.63k
      for (size_t x = 0; x < LF_COLS; x++) {
50
1.53k
        output[y * output_stride + x] =
51
1.53k
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
1.53k
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
1.53k
      }
54
96
    }
55
12
  } else {
56
0
    for (size_t y = 0; y < LF_COLS; y++) {
57
0
      for (size_t x = 0; x < LF_ROWS; x++) {
58
0
        output[y * output_stride + x] =
59
0
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
0
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
0
      }
62
0
    }
63
0
  }
64
12
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
21
                                  float* JXL_RESTRICT scratch_space) {
41
21
  static_assert(LF_ROWS == ROWS,
42
21
                "ReinterpretingDCT should only be called with LF == N");
43
21
  static_assert(LF_COLS == COLS,
44
21
                "ReinterpretingDCT should only be called with LF == N");
45
21
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
21
                                 scratch_space);
47
21
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
21
  } else {
56
357
    for (size_t y = 0; y < LF_COLS; y++) {
57
5.71k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
5.37k
        output[y * output_stride + x] =
59
5.37k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
5.37k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
5.37k
      }
62
336
    }
63
21
  }
64
21
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Line
Count
Source
40
27
                                  float* JXL_RESTRICT scratch_space) {
41
27
  static_assert(LF_ROWS == ROWS,
42
27
                "ReinterpretingDCT should only be called with LF == N");
43
27
  static_assert(LF_COLS == COLS,
44
27
                "ReinterpretingDCT should only be called with LF == N");
45
27
  ComputeScaledDCT<ROWS, COLS>()(DCTFrom(input, input_stride), block,
46
27
                                 scratch_space);
47
27
  if (ROWS < COLS) {
48
0
    for (size_t y = 0; y < LF_ROWS; y++) {
49
0
      for (size_t x = 0; x < LF_COLS; x++) {
50
0
        output[y * output_stride + x] =
51
0
            block[y * COLS + x] * DCTTotalResampleScale<ROWS, DCT_ROWS>(y) *
52
0
            DCTTotalResampleScale<COLS, DCT_COLS>(x);
53
0
      }
54
0
    }
55
27
  } else {
56
891
    for (size_t y = 0; y < LF_COLS; y++) {
57
28.5k
      for (size_t x = 0; x < LF_ROWS; x++) {
58
27.6k
        output[y * output_stride + x] =
59
27.6k
            block[y * ROWS + x] * DCTTotalResampleScale<COLS, DCT_COLS>(y) *
60
27.6k
            DCTTotalResampleScale<ROWS, DCT_ROWS>(x);
61
27.6k
      }
62
864
    }
63
27
  }
64
27
}
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_ac_strategy.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 8ul, 2ul, 1ul, 2ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 16ul, 1ul, 2ul, 1ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 16ul, 2ul, 2ul, 2ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 8ul, 4ul, 1ul, 4ul, 1ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<8ul, 32ul, 1ul, 4ul, 1ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 16ul, 4ul, 2ul, 4ul, 2ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<16ul, 32ul, 2ul, 4ul, 2ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 32ul, 4ul, 4ul, 4ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 32ul, 8ul, 4ul, 8ul, 4ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<32ul, 64ul, 4ul, 8ul, 4ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 64ul, 8ul, 8ul, 8ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 64ul, 16ul, 8ul, 16ul, 8ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<64ul, 128ul, 8ul, 16ul, 8ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 128ul, 16ul, 16ul, 16ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 128ul, 32ul, 16ul, 32ul, 16ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<128ul, 256ul, 16ul, 32ul, 16ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
Unexecuted instantiation: enc_chroma_from_luma.cc:void jxl::N_SSE2::(anonymous namespace)::ReinterpretingDCT<256ul, 256ul, 32ul, 32ul, 32ul, 32ul>(float const*, unsigned long, float*, unsigned long, float*, float*)
65
66
template <size_t S>
67
53.6M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
53.6M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
53.6M
  static_assert(S % 2 == 0, "S should be even");
70
53.6M
  float temp[kDCTBlockSize];
71
53.6M
  constexpr size_t num_2x2 = S / 2;
72
178M
  for (size_t y = 0; y < num_2x2; y++) {
73
501M
    for (size_t x = 0; x < num_2x2; x++) {
74
375M
      float c00 = block[y * kBlockDim + x];
75
375M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
375M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
375M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
375M
      float r00 = c00 + c01 + c10 + c11;
79
375M
      float r01 = c00 + c01 - c10 - c11;
80
375M
      float r10 = c00 - c01 + c10 - c11;
81
375M
      float r11 = c00 - c01 - c10 + c11;
82
375M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
375M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
375M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
375M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
375M
    }
87
125M
  }
88
304M
  for (size_t y = 0; y < S; y++) {
89
1.75G
    for (size_t x = 0; x < S; x++) {
90
1.50G
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
1.50G
    }
92
250M
  }
93
53.6M
}
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_ZEN4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_AVX3_SPR::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: enc_group.cc:void jxl::N_SSE2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Unexecuted instantiation: dec_group.cc:void jxl::N_SSE4::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<2ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.06M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.06M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.06M
  static_assert(S % 2 == 0, "S should be even");
70
3.06M
  float temp[kDCTBlockSize];
71
3.06M
  constexpr size_t num_2x2 = S / 2;
72
6.13M
  for (size_t y = 0; y < num_2x2; y++) {
73
6.13M
    for (size_t x = 0; x < num_2x2; x++) {
74
3.06M
      float c00 = block[y * kBlockDim + x];
75
3.06M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
3.06M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
3.06M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
3.06M
      float r00 = c00 + c01 + c10 + c11;
79
3.06M
      float r01 = c00 + c01 - c10 - c11;
80
3.06M
      float r10 = c00 - c01 + c10 - c11;
81
3.06M
      float r11 = c00 - c01 - c10 + c11;
82
3.06M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
3.06M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
3.06M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
3.06M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
3.06M
    }
87
3.06M
  }
88
9.20M
  for (size_t y = 0; y < S; y++) {
89
18.4M
    for (size_t x = 0; x < S; x++) {
90
12.2M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
12.2M
    }
92
6.13M
  }
93
3.06M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.06M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.06M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.06M
  static_assert(S % 2 == 0, "S should be even");
70
3.06M
  float temp[kDCTBlockSize];
71
3.06M
  constexpr size_t num_2x2 = S / 2;
72
9.20M
  for (size_t y = 0; y < num_2x2; y++) {
73
18.4M
    for (size_t x = 0; x < num_2x2; x++) {
74
12.2M
      float c00 = block[y * kBlockDim + x];
75
12.2M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
12.2M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
12.2M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
12.2M
      float r00 = c00 + c01 + c10 + c11;
79
12.2M
      float r01 = c00 + c01 - c10 - c11;
80
12.2M
      float r10 = c00 - c01 + c10 - c11;
81
12.2M
      float r11 = c00 - c01 - c10 + c11;
82
12.2M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
12.2M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
12.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
12.2M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
12.2M
    }
87
6.13M
  }
88
15.3M
  for (size_t y = 0; y < S; y++) {
89
61.3M
    for (size_t x = 0; x < S; x++) {
90
49.1M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
49.1M
    }
92
12.2M
  }
93
3.06M
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
3.06M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
3.06M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
3.06M
  static_assert(S % 2 == 0, "S should be even");
70
3.06M
  float temp[kDCTBlockSize];
71
3.06M
  constexpr size_t num_2x2 = S / 2;
72
15.3M
  for (size_t y = 0; y < num_2x2; y++) {
73
61.3M
    for (size_t x = 0; x < num_2x2; x++) {
74
49.1M
      float c00 = block[y * kBlockDim + x];
75
49.1M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
49.1M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
49.1M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
49.1M
      float r00 = c00 + c01 + c10 + c11;
79
49.1M
      float r01 = c00 + c01 - c10 - c11;
80
49.1M
      float r10 = c00 - c01 + c10 - c11;
81
49.1M
      float r11 = c00 - c01 - c10 + c11;
82
49.1M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
49.1M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
49.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
49.1M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
49.1M
    }
87
12.2M
  }
88
27.6M
  for (size_t y = 0; y < S; y++) {
89
220M
    for (size_t x = 0; x < S; x++) {
90
196M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
196M
    }
92
24.5M
  }
93
3.06M
}
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
14.8M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
14.8M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
14.8M
  static_assert(S % 2 == 0, "S should be even");
70
14.8M
  float temp[kDCTBlockSize];
71
14.8M
  constexpr size_t num_2x2 = S / 2;
72
29.6M
  for (size_t y = 0; y < num_2x2; y++) {
73
29.6M
    for (size_t x = 0; x < num_2x2; x++) {
74
14.8M
      float c00 = block[y * kBlockDim + x];
75
14.8M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
14.8M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
14.8M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
14.8M
      float r00 = c00 + c01 + c10 + c11;
79
14.8M
      float r01 = c00 + c01 - c10 - c11;
80
14.8M
      float r10 = c00 - c01 + c10 - c11;
81
14.8M
      float r11 = c00 - c01 - c10 + c11;
82
14.8M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
14.8M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
14.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
14.8M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
14.8M
    }
87
14.8M
  }
88
44.4M
  for (size_t y = 0; y < S; y++) {
89
88.9M
    for (size_t x = 0; x < S; x++) {
90
59.3M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
59.3M
    }
92
29.6M
  }
93
14.8M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<4ul>(float const*, unsigned long, float*)
Line
Count
Source
67
14.8M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
14.8M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
14.8M
  static_assert(S % 2 == 0, "S should be even");
70
14.8M
  float temp[kDCTBlockSize];
71
14.8M
  constexpr size_t num_2x2 = S / 2;
72
44.4M
  for (size_t y = 0; y < num_2x2; y++) {
73
88.9M
    for (size_t x = 0; x < num_2x2; x++) {
74
59.3M
      float c00 = block[y * kBlockDim + x];
75
59.3M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
59.3M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
59.3M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
59.3M
      float r00 = c00 + c01 + c10 + c11;
79
59.3M
      float r01 = c00 + c01 - c10 - c11;
80
59.3M
      float r10 = c00 - c01 + c10 - c11;
81
59.3M
      float r11 = c00 - c01 - c10 + c11;
82
59.3M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
59.3M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
59.3M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
59.3M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
59.3M
    }
87
29.6M
  }
88
74.1M
  for (size_t y = 0; y < S; y++) {
89
296M
    for (size_t x = 0; x < S; x++) {
90
237M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
237M
    }
92
59.3M
  }
93
14.8M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::IDCT2TopBlock<8ul>(float const*, unsigned long, float*)
Line
Count
Source
67
14.8M
void IDCT2TopBlock(const float* block, size_t stride_out, float* out) {
68
14.8M
  static_assert(kBlockDim % S == 0, "S should be a divisor of kBlockDim");
69
14.8M
  static_assert(S % 2 == 0, "S should be even");
70
14.8M
  float temp[kDCTBlockSize];
71
14.8M
  constexpr size_t num_2x2 = S / 2;
72
74.1M
  for (size_t y = 0; y < num_2x2; y++) {
73
296M
    for (size_t x = 0; x < num_2x2; x++) {
74
237M
      float c00 = block[y * kBlockDim + x];
75
237M
      float c01 = block[y * kBlockDim + num_2x2 + x];
76
237M
      float c10 = block[(y + num_2x2) * kBlockDim + x];
77
237M
      float c11 = block[(y + num_2x2) * kBlockDim + num_2x2 + x];
78
237M
      float r00 = c00 + c01 + c10 + c11;
79
237M
      float r01 = c00 + c01 - c10 - c11;
80
237M
      float r10 = c00 - c01 + c10 - c11;
81
237M
      float r11 = c00 - c01 - c10 + c11;
82
237M
      temp[y * 2 * kBlockDim + x * 2] = r00;
83
237M
      temp[y * 2 * kBlockDim + x * 2 + 1] = r01;
84
237M
      temp[(y * 2 + 1) * kBlockDim + x * 2] = r10;
85
237M
      temp[(y * 2 + 1) * kBlockDim + x * 2 + 1] = r11;
86
237M
    }
87
59.3M
  }
88
133M
  for (size_t y = 0; y < S; y++) {
89
1.06G
    for (size_t x = 0; x < S; x++) {
90
949M
      out[y * stride_out + x] = temp[y * kBlockDim + x];
91
949M
    }
92
118M
  }
93
14.8M
}
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
62.2M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
62.2M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
62.2M
      {
98
62.2M
          0.25,
99
62.2M
          0.25,
100
62.2M
          0.25,
101
62.2M
          0.25,
102
62.2M
          0.25,
103
62.2M
          0.25,
104
62.2M
          0.25,
105
62.2M
          0.25,
106
62.2M
          0.25,
107
62.2M
          0.25,
108
62.2M
          0.25,
109
62.2M
          0.25,
110
62.2M
          0.25,
111
62.2M
          0.25,
112
62.2M
          0.25,
113
62.2M
          0.25,
114
62.2M
      },
115
62.2M
      {
116
62.2M
          0.876902929799142f,
117
62.2M
          0.2206518106944235f,
118
62.2M
          -0.10140050393753763f,
119
62.2M
          -0.1014005039375375f,
120
62.2M
          0.2206518106944236f,
121
62.2M
          -0.10140050393753777f,
122
62.2M
          -0.10140050393753772f,
123
62.2M
          -0.10140050393753763f,
124
62.2M
          -0.10140050393753758f,
125
62.2M
          -0.10140050393753769f,
126
62.2M
          -0.1014005039375375f,
127
62.2M
          -0.10140050393753768f,
128
62.2M
          -0.10140050393753768f,
129
62.2M
          -0.10140050393753759f,
130
62.2M
          -0.10140050393753763f,
131
62.2M
          -0.10140050393753741f,
132
62.2M
      },
133
62.2M
      {
134
62.2M
          0.0,
135
62.2M
          0.0,
136
62.2M
          0.40670075830260755f,
137
62.2M
          0.44444816619734445f,
138
62.2M
          0.0,
139
62.2M
          0.0,
140
62.2M
          0.19574399372042936f,
141
62.2M
          0.2929100136981264f,
142
62.2M
          -0.40670075830260716f,
143
62.2M
          -0.19574399372042872f,
144
62.2M
          0.0,
145
62.2M
          0.11379074460448091f,
146
62.2M
          -0.44444816619734384f,
147
62.2M
          -0.29291001369812636f,
148
62.2M
          -0.1137907446044814f,
149
62.2M
          0.0,
150
62.2M
      },
151
62.2M
      {
152
62.2M
          0.0,
153
62.2M
          0.0,
154
62.2M
          -0.21255748058288748f,
155
62.2M
          0.3085497062849767f,
156
62.2M
          0.0,
157
62.2M
          0.4706702258572536f,
158
62.2M
          -0.1621205195722993f,
159
62.2M
          0.0,
160
62.2M
          -0.21255748058287047f,
161
62.2M
          -0.16212051957228327f,
162
62.2M
          -0.47067022585725277f,
163
62.2M
          -0.1464291867126764f,
164
62.2M
          0.3085497062849487f,
165
62.2M
          0.0,
166
62.2M
          -0.14642918671266536f,
167
62.2M
          0.4251149611657548f,
168
62.2M
      },
169
62.2M
      {
170
62.2M
          0.0,
171
62.2M
          -0.7071067811865474f,
172
62.2M
          0.0,
173
62.2M
          0.0,
174
62.2M
          0.7071067811865476f,
175
62.2M
          0.0,
176
62.2M
          0.0,
177
62.2M
          0.0,
178
62.2M
          0.0,
179
62.2M
          0.0,
180
62.2M
          0.0,
181
62.2M
          0.0,
182
62.2M
          0.0,
183
62.2M
          0.0,
184
62.2M
          0.0,
185
62.2M
          0.0,
186
62.2M
      },
187
62.2M
      {
188
62.2M
          -0.4105377591765233f,
189
62.2M
          0.6235485373547691f,
190
62.2M
          -0.06435071657946274f,
191
62.2M
          -0.06435071657946266f,
192
62.2M
          0.6235485373547694f,
193
62.2M
          -0.06435071657946284f,
194
62.2M
          -0.0643507165794628f,
195
62.2M
          -0.06435071657946274f,
196
62.2M
          -0.06435071657946272f,
197
62.2M
          -0.06435071657946279f,
198
62.2M
          -0.06435071657946266f,
199
62.2M
          -0.06435071657946277f,
200
62.2M
          -0.06435071657946277f,
201
62.2M
          -0.06435071657946273f,
202
62.2M
          -0.06435071657946274f,
203
62.2M
          -0.0643507165794626f,
204
62.2M
      },
205
62.2M
      {
206
62.2M
          0.0,
207
62.2M
          0.0,
208
62.2M
          -0.4517556589999482f,
209
62.2M
          0.15854503551840063f,
210
62.2M
          0.0,
211
62.2M
          -0.04038515160822202f,
212
62.2M
          0.0074182263792423875f,
213
62.2M
          0.39351034269210167f,
214
62.2M
          -0.45175565899994635f,
215
62.2M
          0.007418226379244351f,
216
62.2M
          0.1107416575309343f,
217
62.2M
          0.08298163094882051f,
218
62.2M
          0.15854503551839705f,
219
62.2M
          0.3935103426921022f,
220
62.2M
          0.0829816309488214f,
221
62.2M
          -0.45175565899994796f,
222
62.2M
      },
223
62.2M
      {
224
62.2M
          0.0,
225
62.2M
          0.0,
226
62.2M
          -0.304684750724869f,
227
62.2M
          0.5112616136591823f,
228
62.2M
          0.0,
229
62.2M
          0.0,
230
62.2M
          -0.290480129728998f,
231
62.2M
          -0.06578701549142804f,
232
62.2M
          0.304684750724884f,
233
62.2M
          0.2904801297290076f,
234
62.2M
          0.0,
235
62.2M
          -0.23889773523344604f,
236
62.2M
          -0.5112616136592012f,
237
62.2M
          0.06578701549142545f,
238
62.2M
          0.23889773523345467f,
239
62.2M
          0.0,
240
62.2M
      },
241
62.2M
      {
242
62.2M
          0.0,
243
62.2M
          0.0,
244
62.2M
          0.3017929516615495f,
245
62.2M
          0.25792362796341184f,
246
62.2M
          0.0,
247
62.2M
          0.16272340142866204f,
248
62.2M
          0.09520022653475037f,
249
62.2M
          0.0,
250
62.2M
          0.3017929516615503f,
251
62.2M
          0.09520022653475055f,
252
62.2M
          -0.16272340142866173f,
253
62.2M
          -0.35312385449816297f,
254
62.2M
          0.25792362796341295f,
255
62.2M
          0.0,
256
62.2M
          -0.3531238544981624f,
257
62.2M
          -0.6035859033230976f,
258
62.2M
      },
259
62.2M
      {
260
62.2M
          0.0,
261
62.2M
          0.0,
262
62.2M
          0.40824829046386274f,
263
62.2M
          0.0,
264
62.2M
          0.0,
265
62.2M
          0.0,
266
62.2M
          0.0,
267
62.2M
          -0.4082482904638628f,
268
62.2M
          -0.4082482904638635f,
269
62.2M
          0.0,
270
62.2M
          0.0,
271
62.2M
          -0.40824829046386296f,
272
62.2M
          0.0,
273
62.2M
          0.4082482904638634f,
274
62.2M
          0.408248290463863f,
275
62.2M
          0.0,
276
62.2M
      },
277
62.2M
      {
278
62.2M
          0.0,
279
62.2M
          0.0,
280
62.2M
          0.1747866975480809f,
281
62.2M
          0.0812611176717539f,
282
62.2M
          0.0,
283
62.2M
          0.0,
284
62.2M
          -0.3675398009862027f,
285
62.2M
          -0.307882213957909f,
286
62.2M
          -0.17478669754808135f,
287
62.2M
          0.3675398009862011f,
288
62.2M
          0.0,
289
62.2M
          0.4826689115059883f,
290
62.2M
          -0.08126111767175039f,
291
62.2M
          0.30788221395790305f,
292
62.2M
          -0.48266891150598584f,
293
62.2M
          0.0,
294
62.2M
      },
295
62.2M
      {
296
62.2M
          0.0,
297
62.2M
          0.0,
298
62.2M
          -0.21105601049335784f,
299
62.2M
          0.18567180916109802f,
300
62.2M
          0.0,
301
62.2M
          0.0,
302
62.2M
          0.49215859013738733f,
303
62.2M
          -0.38525013709251915f,
304
62.2M
          0.21105601049335806f,
305
62.2M
          -0.49215859013738905f,
306
62.2M
          0.0,
307
62.2M
          0.17419412659916217f,
308
62.2M
          -0.18567180916109904f,
309
62.2M
          0.3852501370925211f,
310
62.2M
          -0.1741941265991621f,
311
62.2M
          0.0,
312
62.2M
      },
313
62.2M
      {
314
62.2M
          0.0,
315
62.2M
          0.0,
316
62.2M
          -0.14266084808807264f,
317
62.2M
          -0.3416446842253372f,
318
62.2M
          0.0,
319
62.2M
          0.7367497537172237f,
320
62.2M
          0.24627107722075148f,
321
62.2M
          -0.08574019035519306f,
322
62.2M
          -0.14266084808807344f,
323
62.2M
          0.24627107722075137f,
324
62.2M
          0.14883399227113567f,
325
62.2M
          -0.04768680350229251f,
326
62.2M
          -0.3416446842253373f,
327
62.2M
          -0.08574019035519267f,
328
62.2M
          -0.047686803502292804f,
329
62.2M
          -0.14266084808807242f,
330
62.2M
      },
331
62.2M
      {
332
62.2M
          0.0,
333
62.2M
          0.0,
334
62.2M
          -0.13813540350758585f,
335
62.2M
          0.3302282550303788f,
336
62.2M
          0.0,
337
62.2M
          0.08755115000587084f,
338
62.2M
          -0.07946706605909573f,
339
62.2M
          -0.4613374887461511f,
340
62.2M
          -0.13813540350758294f,
341
62.2M
          -0.07946706605910261f,
342
62.2M
          0.49724647109535086f,
343
62.2M
          0.12538059448563663f,
344
62.2M
          0.3302282550303805f,
345
62.2M
          -0.4613374887461554f,
346
62.2M
          0.12538059448564315f,
347
62.2M
          -0.13813540350758452f,
348
62.2M
      },
349
62.2M
      {
350
62.2M
          0.0,
351
62.2M
          0.0,
352
62.2M
          -0.17437602599651067f,
353
62.2M
          0.0702790691196284f,
354
62.2M
          0.0,
355
62.2M
          -0.2921026642334881f,
356
62.2M
          0.3623817333531167f,
357
62.2M
          0.0,
358
62.2M
          -0.1743760259965108f,
359
62.2M
          0.36238173335311646f,
360
62.2M
          0.29210266423348785f,
361
62.2M
          -0.4326608024727445f,
362
62.2M
          0.07027906911962818f,
363
62.2M
          0.0,
364
62.2M
          -0.4326608024727457f,
365
62.2M
          0.34875205199302267f,
366
62.2M
      },
367
62.2M
      {
368
62.2M
          0.0,
369
62.2M
          0.0,
370
62.2M
          0.11354987314994337f,
371
62.2M
          -0.07417504595810355f,
372
62.2M
          0.0,
373
62.2M
          0.19402893032594343f,
374
62.2M
          -0.435190496523228f,
375
62.2M
          0.21918684838857466f,
376
62.2M
          0.11354987314994257f,
377
62.2M
          -0.4351904965232251f,
378
62.2M
          0.5550443808910661f,
379
62.2M
          -0.25468277124066463f,
380
62.2M
          -0.07417504595810233f,
381
62.2M
          0.2191868483885728f,
382
62.2M
          -0.25468277124066413f,
383
62.2M
          0.1135498731499429f,
384
62.2M
      },
385
62.2M
  };
386
387
62.2M
  const HWY_CAPPED(float, 16) d;
388
186M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
124M
    auto pixel = Zero(d);
390
2.11G
    for (size_t j = 0; j < 16; j++) {
391
1.99G
      auto cf = Set(d, coeffs[j]);
392
1.99G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
1.99G
      pixel = MulAdd(cf, basis, pixel);
394
1.99G
    }
395
124M
    Store(pixel, d, pixels + i);
396
124M
  }
397
62.2M
}
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
2.93M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
2.93M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
2.93M
      {
98
2.93M
          0.25,
99
2.93M
          0.25,
100
2.93M
          0.25,
101
2.93M
          0.25,
102
2.93M
          0.25,
103
2.93M
          0.25,
104
2.93M
          0.25,
105
2.93M
          0.25,
106
2.93M
          0.25,
107
2.93M
          0.25,
108
2.93M
          0.25,
109
2.93M
          0.25,
110
2.93M
          0.25,
111
2.93M
          0.25,
112
2.93M
          0.25,
113
2.93M
          0.25,
114
2.93M
      },
115
2.93M
      {
116
2.93M
          0.876902929799142f,
117
2.93M
          0.2206518106944235f,
118
2.93M
          -0.10140050393753763f,
119
2.93M
          -0.1014005039375375f,
120
2.93M
          0.2206518106944236f,
121
2.93M
          -0.10140050393753777f,
122
2.93M
          -0.10140050393753772f,
123
2.93M
          -0.10140050393753763f,
124
2.93M
          -0.10140050393753758f,
125
2.93M
          -0.10140050393753769f,
126
2.93M
          -0.1014005039375375f,
127
2.93M
          -0.10140050393753768f,
128
2.93M
          -0.10140050393753768f,
129
2.93M
          -0.10140050393753759f,
130
2.93M
          -0.10140050393753763f,
131
2.93M
          -0.10140050393753741f,
132
2.93M
      },
133
2.93M
      {
134
2.93M
          0.0,
135
2.93M
          0.0,
136
2.93M
          0.40670075830260755f,
137
2.93M
          0.44444816619734445f,
138
2.93M
          0.0,
139
2.93M
          0.0,
140
2.93M
          0.19574399372042936f,
141
2.93M
          0.2929100136981264f,
142
2.93M
          -0.40670075830260716f,
143
2.93M
          -0.19574399372042872f,
144
2.93M
          0.0,
145
2.93M
          0.11379074460448091f,
146
2.93M
          -0.44444816619734384f,
147
2.93M
          -0.29291001369812636f,
148
2.93M
          -0.1137907446044814f,
149
2.93M
          0.0,
150
2.93M
      },
151
2.93M
      {
152
2.93M
          0.0,
153
2.93M
          0.0,
154
2.93M
          -0.21255748058288748f,
155
2.93M
          0.3085497062849767f,
156
2.93M
          0.0,
157
2.93M
          0.4706702258572536f,
158
2.93M
          -0.1621205195722993f,
159
2.93M
          0.0,
160
2.93M
          -0.21255748058287047f,
161
2.93M
          -0.16212051957228327f,
162
2.93M
          -0.47067022585725277f,
163
2.93M
          -0.1464291867126764f,
164
2.93M
          0.3085497062849487f,
165
2.93M
          0.0,
166
2.93M
          -0.14642918671266536f,
167
2.93M
          0.4251149611657548f,
168
2.93M
      },
169
2.93M
      {
170
2.93M
          0.0,
171
2.93M
          -0.7071067811865474f,
172
2.93M
          0.0,
173
2.93M
          0.0,
174
2.93M
          0.7071067811865476f,
175
2.93M
          0.0,
176
2.93M
          0.0,
177
2.93M
          0.0,
178
2.93M
          0.0,
179
2.93M
          0.0,
180
2.93M
          0.0,
181
2.93M
          0.0,
182
2.93M
          0.0,
183
2.93M
          0.0,
184
2.93M
          0.0,
185
2.93M
          0.0,
186
2.93M
      },
187
2.93M
      {
188
2.93M
          -0.4105377591765233f,
189
2.93M
          0.6235485373547691f,
190
2.93M
          -0.06435071657946274f,
191
2.93M
          -0.06435071657946266f,
192
2.93M
          0.6235485373547694f,
193
2.93M
          -0.06435071657946284f,
194
2.93M
          -0.0643507165794628f,
195
2.93M
          -0.06435071657946274f,
196
2.93M
          -0.06435071657946272f,
197
2.93M
          -0.06435071657946279f,
198
2.93M
          -0.06435071657946266f,
199
2.93M
          -0.06435071657946277f,
200
2.93M
          -0.06435071657946277f,
201
2.93M
          -0.06435071657946273f,
202
2.93M
          -0.06435071657946274f,
203
2.93M
          -0.0643507165794626f,
204
2.93M
      },
205
2.93M
      {
206
2.93M
          0.0,
207
2.93M
          0.0,
208
2.93M
          -0.4517556589999482f,
209
2.93M
          0.15854503551840063f,
210
2.93M
          0.0,
211
2.93M
          -0.04038515160822202f,
212
2.93M
          0.0074182263792423875f,
213
2.93M
          0.39351034269210167f,
214
2.93M
          -0.45175565899994635f,
215
2.93M
          0.007418226379244351f,
216
2.93M
          0.1107416575309343f,
217
2.93M
          0.08298163094882051f,
218
2.93M
          0.15854503551839705f,
219
2.93M
          0.3935103426921022f,
220
2.93M
          0.0829816309488214f,
221
2.93M
          -0.45175565899994796f,
222
2.93M
      },
223
2.93M
      {
224
2.93M
          0.0,
225
2.93M
          0.0,
226
2.93M
          -0.304684750724869f,
227
2.93M
          0.5112616136591823f,
228
2.93M
          0.0,
229
2.93M
          0.0,
230
2.93M
          -0.290480129728998f,
231
2.93M
          -0.06578701549142804f,
232
2.93M
          0.304684750724884f,
233
2.93M
          0.2904801297290076f,
234
2.93M
          0.0,
235
2.93M
          -0.23889773523344604f,
236
2.93M
          -0.5112616136592012f,
237
2.93M
          0.06578701549142545f,
238
2.93M
          0.23889773523345467f,
239
2.93M
          0.0,
240
2.93M
      },
241
2.93M
      {
242
2.93M
          0.0,
243
2.93M
          0.0,
244
2.93M
          0.3017929516615495f,
245
2.93M
          0.25792362796341184f,
246
2.93M
          0.0,
247
2.93M
          0.16272340142866204f,
248
2.93M
          0.09520022653475037f,
249
2.93M
          0.0,
250
2.93M
          0.3017929516615503f,
251
2.93M
          0.09520022653475055f,
252
2.93M
          -0.16272340142866173f,
253
2.93M
          -0.35312385449816297f,
254
2.93M
          0.25792362796341295f,
255
2.93M
          0.0,
256
2.93M
          -0.3531238544981624f,
257
2.93M
          -0.6035859033230976f,
258
2.93M
      },
259
2.93M
      {
260
2.93M
          0.0,
261
2.93M
          0.0,
262
2.93M
          0.40824829046386274f,
263
2.93M
          0.0,
264
2.93M
          0.0,
265
2.93M
          0.0,
266
2.93M
          0.0,
267
2.93M
          -0.4082482904638628f,
268
2.93M
          -0.4082482904638635f,
269
2.93M
          0.0,
270
2.93M
          0.0,
271
2.93M
          -0.40824829046386296f,
272
2.93M
          0.0,
273
2.93M
          0.4082482904638634f,
274
2.93M
          0.408248290463863f,
275
2.93M
          0.0,
276
2.93M
      },
277
2.93M
      {
278
2.93M
          0.0,
279
2.93M
          0.0,
280
2.93M
          0.1747866975480809f,
281
2.93M
          0.0812611176717539f,
282
2.93M
          0.0,
283
2.93M
          0.0,
284
2.93M
          -0.3675398009862027f,
285
2.93M
          -0.307882213957909f,
286
2.93M
          -0.17478669754808135f,
287
2.93M
          0.3675398009862011f,
288
2.93M
          0.0,
289
2.93M
          0.4826689115059883f,
290
2.93M
          -0.08126111767175039f,
291
2.93M
          0.30788221395790305f,
292
2.93M
          -0.48266891150598584f,
293
2.93M
          0.0,
294
2.93M
      },
295
2.93M
      {
296
2.93M
          0.0,
297
2.93M
          0.0,
298
2.93M
          -0.21105601049335784f,
299
2.93M
          0.18567180916109802f,
300
2.93M
          0.0,
301
2.93M
          0.0,
302
2.93M
          0.49215859013738733f,
303
2.93M
          -0.38525013709251915f,
304
2.93M
          0.21105601049335806f,
305
2.93M
          -0.49215859013738905f,
306
2.93M
          0.0,
307
2.93M
          0.17419412659916217f,
308
2.93M
          -0.18567180916109904f,
309
2.93M
          0.3852501370925211f,
310
2.93M
          -0.1741941265991621f,
311
2.93M
          0.0,
312
2.93M
      },
313
2.93M
      {
314
2.93M
          0.0,
315
2.93M
          0.0,
316
2.93M
          -0.14266084808807264f,
317
2.93M
          -0.3416446842253372f,
318
2.93M
          0.0,
319
2.93M
          0.7367497537172237f,
320
2.93M
          0.24627107722075148f,
321
2.93M
          -0.08574019035519306f,
322
2.93M
          -0.14266084808807344f,
323
2.93M
          0.24627107722075137f,
324
2.93M
          0.14883399227113567f,
325
2.93M
          -0.04768680350229251f,
326
2.93M
          -0.3416446842253373f,
327
2.93M
          -0.08574019035519267f,
328
2.93M
          -0.047686803502292804f,
329
2.93M
          -0.14266084808807242f,
330
2.93M
      },
331
2.93M
      {
332
2.93M
          0.0,
333
2.93M
          0.0,
334
2.93M
          -0.13813540350758585f,
335
2.93M
          0.3302282550303788f,
336
2.93M
          0.0,
337
2.93M
          0.08755115000587084f,
338
2.93M
          -0.07946706605909573f,
339
2.93M
          -0.4613374887461511f,
340
2.93M
          -0.13813540350758294f,
341
2.93M
          -0.07946706605910261f,
342
2.93M
          0.49724647109535086f,
343
2.93M
          0.12538059448563663f,
344
2.93M
          0.3302282550303805f,
345
2.93M
          -0.4613374887461554f,
346
2.93M
          0.12538059448564315f,
347
2.93M
          -0.13813540350758452f,
348
2.93M
      },
349
2.93M
      {
350
2.93M
          0.0,
351
2.93M
          0.0,
352
2.93M
          -0.17437602599651067f,
353
2.93M
          0.0702790691196284f,
354
2.93M
          0.0,
355
2.93M
          -0.2921026642334881f,
356
2.93M
          0.3623817333531167f,
357
2.93M
          0.0,
358
2.93M
          -0.1743760259965108f,
359
2.93M
          0.36238173335311646f,
360
2.93M
          0.29210266423348785f,
361
2.93M
          -0.4326608024727445f,
362
2.93M
          0.07027906911962818f,
363
2.93M
          0.0,
364
2.93M
          -0.4326608024727457f,
365
2.93M
          0.34875205199302267f,
366
2.93M
      },
367
2.93M
      {
368
2.93M
          0.0,
369
2.93M
          0.0,
370
2.93M
          0.11354987314994337f,
371
2.93M
          -0.07417504595810355f,
372
2.93M
          0.0,
373
2.93M
          0.19402893032594343f,
374
2.93M
          -0.435190496523228f,
375
2.93M
          0.21918684838857466f,
376
2.93M
          0.11354987314994257f,
377
2.93M
          -0.4351904965232251f,
378
2.93M
          0.5550443808910661f,
379
2.93M
          -0.25468277124066463f,
380
2.93M
          -0.07417504595810233f,
381
2.93M
          0.2191868483885728f,
382
2.93M
          -0.25468277124066413f,
383
2.93M
          0.1135498731499429f,
384
2.93M
      },
385
2.93M
  };
386
387
2.93M
  const HWY_CAPPED(float, 16) d;
388
8.80M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
5.86M
    auto pixel = Zero(d);
390
99.7M
    for (size_t j = 0; j < 16; j++) {
391
93.9M
      auto cf = Set(d, coeffs[j]);
392
93.9M
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
93.9M
      pixel = MulAdd(cf, basis, pixel);
394
93.9M
    }
395
5.86M
    Store(pixel, d, pixels + i);
396
5.86M
  }
397
2.93M
}
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
59.3M
void AFVIDCT4x4(const float* JXL_RESTRICT coeffs, float* JXL_RESTRICT pixels) {
96
59.3M
  HWY_ALIGN static constexpr float k4x4AFVBasis[16][16] = {
97
59.3M
      {
98
59.3M
          0.25,
99
59.3M
          0.25,
100
59.3M
          0.25,
101
59.3M
          0.25,
102
59.3M
          0.25,
103
59.3M
          0.25,
104
59.3M
          0.25,
105
59.3M
          0.25,
106
59.3M
          0.25,
107
59.3M
          0.25,
108
59.3M
          0.25,
109
59.3M
          0.25,
110
59.3M
          0.25,
111
59.3M
          0.25,
112
59.3M
          0.25,
113
59.3M
          0.25,
114
59.3M
      },
115
59.3M
      {
116
59.3M
          0.876902929799142f,
117
59.3M
          0.2206518106944235f,
118
59.3M
          -0.10140050393753763f,
119
59.3M
          -0.1014005039375375f,
120
59.3M
          0.2206518106944236f,
121
59.3M
          -0.10140050393753777f,
122
59.3M
          -0.10140050393753772f,
123
59.3M
          -0.10140050393753763f,
124
59.3M
          -0.10140050393753758f,
125
59.3M
          -0.10140050393753769f,
126
59.3M
          -0.1014005039375375f,
127
59.3M
          -0.10140050393753768f,
128
59.3M
          -0.10140050393753768f,
129
59.3M
          -0.10140050393753759f,
130
59.3M
          -0.10140050393753763f,
131
59.3M
          -0.10140050393753741f,
132
59.3M
      },
133
59.3M
      {
134
59.3M
          0.0,
135
59.3M
          0.0,
136
59.3M
          0.40670075830260755f,
137
59.3M
          0.44444816619734445f,
138
59.3M
          0.0,
139
59.3M
          0.0,
140
59.3M
          0.19574399372042936f,
141
59.3M
          0.2929100136981264f,
142
59.3M
          -0.40670075830260716f,
143
59.3M
          -0.19574399372042872f,
144
59.3M
          0.0,
145
59.3M
          0.11379074460448091f,
146
59.3M
          -0.44444816619734384f,
147
59.3M
          -0.29291001369812636f,
148
59.3M
          -0.1137907446044814f,
149
59.3M
          0.0,
150
59.3M
      },
151
59.3M
      {
152
59.3M
          0.0,
153
59.3M
          0.0,
154
59.3M
          -0.21255748058288748f,
155
59.3M
          0.3085497062849767f,
156
59.3M
          0.0,
157
59.3M
          0.4706702258572536f,
158
59.3M
          -0.1621205195722993f,
159
59.3M
          0.0,
160
59.3M
          -0.21255748058287047f,
161
59.3M
          -0.16212051957228327f,
162
59.3M
          -0.47067022585725277f,
163
59.3M
          -0.1464291867126764f,
164
59.3M
          0.3085497062849487f,
165
59.3M
          0.0,
166
59.3M
          -0.14642918671266536f,
167
59.3M
          0.4251149611657548f,
168
59.3M
      },
169
59.3M
      {
170
59.3M
          0.0,
171
59.3M
          -0.7071067811865474f,
172
59.3M
          0.0,
173
59.3M
          0.0,
174
59.3M
          0.7071067811865476f,
175
59.3M
          0.0,
176
59.3M
          0.0,
177
59.3M
          0.0,
178
59.3M
          0.0,
179
59.3M
          0.0,
180
59.3M
          0.0,
181
59.3M
          0.0,
182
59.3M
          0.0,
183
59.3M
          0.0,
184
59.3M
          0.0,
185
59.3M
          0.0,
186
59.3M
      },
187
59.3M
      {
188
59.3M
          -0.4105377591765233f,
189
59.3M
          0.6235485373547691f,
190
59.3M
          -0.06435071657946274f,
191
59.3M
          -0.06435071657946266f,
192
59.3M
          0.6235485373547694f,
193
59.3M
          -0.06435071657946284f,
194
59.3M
          -0.0643507165794628f,
195
59.3M
          -0.06435071657946274f,
196
59.3M
          -0.06435071657946272f,
197
59.3M
          -0.06435071657946279f,
198
59.3M
          -0.06435071657946266f,
199
59.3M
          -0.06435071657946277f,
200
59.3M
          -0.06435071657946277f,
201
59.3M
          -0.06435071657946273f,
202
59.3M
          -0.06435071657946274f,
203
59.3M
          -0.0643507165794626f,
204
59.3M
      },
205
59.3M
      {
206
59.3M
          0.0,
207
59.3M
          0.0,
208
59.3M
          -0.4517556589999482f,
209
59.3M
          0.15854503551840063f,
210
59.3M
          0.0,
211
59.3M
          -0.04038515160822202f,
212
59.3M
          0.0074182263792423875f,
213
59.3M
          0.39351034269210167f,
214
59.3M
          -0.45175565899994635f,
215
59.3M
          0.007418226379244351f,
216
59.3M
          0.1107416575309343f,
217
59.3M
          0.08298163094882051f,
218
59.3M
          0.15854503551839705f,
219
59.3M
          0.3935103426921022f,
220
59.3M
          0.0829816309488214f,
221
59.3M
          -0.45175565899994796f,
222
59.3M
      },
223
59.3M
      {
224
59.3M
          0.0,
225
59.3M
          0.0,
226
59.3M
          -0.304684750724869f,
227
59.3M
          0.5112616136591823f,
228
59.3M
          0.0,
229
59.3M
          0.0,
230
59.3M
          -0.290480129728998f,
231
59.3M
          -0.06578701549142804f,
232
59.3M
          0.304684750724884f,
233
59.3M
          0.2904801297290076f,
234
59.3M
          0.0,
235
59.3M
          -0.23889773523344604f,
236
59.3M
          -0.5112616136592012f,
237
59.3M
          0.06578701549142545f,
238
59.3M
          0.23889773523345467f,
239
59.3M
          0.0,
240
59.3M
      },
241
59.3M
      {
242
59.3M
          0.0,
243
59.3M
          0.0,
244
59.3M
          0.3017929516615495f,
245
59.3M
          0.25792362796341184f,
246
59.3M
          0.0,
247
59.3M
          0.16272340142866204f,
248
59.3M
          0.09520022653475037f,
249
59.3M
          0.0,
250
59.3M
          0.3017929516615503f,
251
59.3M
          0.09520022653475055f,
252
59.3M
          -0.16272340142866173f,
253
59.3M
          -0.35312385449816297f,
254
59.3M
          0.25792362796341295f,
255
59.3M
          0.0,
256
59.3M
          -0.3531238544981624f,
257
59.3M
          -0.6035859033230976f,
258
59.3M
      },
259
59.3M
      {
260
59.3M
          0.0,
261
59.3M
          0.0,
262
59.3M
          0.40824829046386274f,
263
59.3M
          0.0,
264
59.3M
          0.0,
265
59.3M
          0.0,
266
59.3M
          0.0,
267
59.3M
          -0.4082482904638628f,
268
59.3M
          -0.4082482904638635f,
269
59.3M
          0.0,
270
59.3M
          0.0,
271
59.3M
          -0.40824829046386296f,
272
59.3M
          0.0,
273
59.3M
          0.4082482904638634f,
274
59.3M
          0.408248290463863f,
275
59.3M
          0.0,
276
59.3M
      },
277
59.3M
      {
278
59.3M
          0.0,
279
59.3M
          0.0,
280
59.3M
          0.1747866975480809f,
281
59.3M
          0.0812611176717539f,
282
59.3M
          0.0,
283
59.3M
          0.0,
284
59.3M
          -0.3675398009862027f,
285
59.3M
          -0.307882213957909f,
286
59.3M
          -0.17478669754808135f,
287
59.3M
          0.3675398009862011f,
288
59.3M
          0.0,
289
59.3M
          0.4826689115059883f,
290
59.3M
          -0.08126111767175039f,
291
59.3M
          0.30788221395790305f,
292
59.3M
          -0.48266891150598584f,
293
59.3M
          0.0,
294
59.3M
      },
295
59.3M
      {
296
59.3M
          0.0,
297
59.3M
          0.0,
298
59.3M
          -0.21105601049335784f,
299
59.3M
          0.18567180916109802f,
300
59.3M
          0.0,
301
59.3M
          0.0,
302
59.3M
          0.49215859013738733f,
303
59.3M
          -0.38525013709251915f,
304
59.3M
          0.21105601049335806f,
305
59.3M
          -0.49215859013738905f,
306
59.3M
          0.0,
307
59.3M
          0.17419412659916217f,
308
59.3M
          -0.18567180916109904f,
309
59.3M
          0.3852501370925211f,
310
59.3M
          -0.1741941265991621f,
311
59.3M
          0.0,
312
59.3M
      },
313
59.3M
      {
314
59.3M
          0.0,
315
59.3M
          0.0,
316
59.3M
          -0.14266084808807264f,
317
59.3M
          -0.3416446842253372f,
318
59.3M
          0.0,
319
59.3M
          0.7367497537172237f,
320
59.3M
          0.24627107722075148f,
321
59.3M
          -0.08574019035519306f,
322
59.3M
          -0.14266084808807344f,
323
59.3M
          0.24627107722075137f,
324
59.3M
          0.14883399227113567f,
325
59.3M
          -0.04768680350229251f,
326
59.3M
          -0.3416446842253373f,
327
59.3M
          -0.08574019035519267f,
328
59.3M
          -0.047686803502292804f,
329
59.3M
          -0.14266084808807242f,
330
59.3M
      },
331
59.3M
      {
332
59.3M
          0.0,
333
59.3M
          0.0,
334
59.3M
          -0.13813540350758585f,
335
59.3M
          0.3302282550303788f,
336
59.3M
          0.0,
337
59.3M
          0.08755115000587084f,
338
59.3M
          -0.07946706605909573f,
339
59.3M
          -0.4613374887461511f,
340
59.3M
          -0.13813540350758294f,
341
59.3M
          -0.07946706605910261f,
342
59.3M
          0.49724647109535086f,
343
59.3M
          0.12538059448563663f,
344
59.3M
          0.3302282550303805f,
345
59.3M
          -0.4613374887461554f,
346
59.3M
          0.12538059448564315f,
347
59.3M
          -0.13813540350758452f,
348
59.3M
      },
349
59.3M
      {
350
59.3M
          0.0,
351
59.3M
          0.0,
352
59.3M
          -0.17437602599651067f,
353
59.3M
          0.0702790691196284f,
354
59.3M
          0.0,
355
59.3M
          -0.2921026642334881f,
356
59.3M
          0.3623817333531167f,
357
59.3M
          0.0,
358
59.3M
          -0.1743760259965108f,
359
59.3M
          0.36238173335311646f,
360
59.3M
          0.29210266423348785f,
361
59.3M
          -0.4326608024727445f,
362
59.3M
          0.07027906911962818f,
363
59.3M
          0.0,
364
59.3M
          -0.4326608024727457f,
365
59.3M
          0.34875205199302267f,
366
59.3M
      },
367
59.3M
      {
368
59.3M
          0.0,
369
59.3M
          0.0,
370
59.3M
          0.11354987314994337f,
371
59.3M
          -0.07417504595810355f,
372
59.3M
          0.0,
373
59.3M
          0.19402893032594343f,
374
59.3M
          -0.435190496523228f,
375
59.3M
          0.21918684838857466f,
376
59.3M
          0.11354987314994257f,
377
59.3M
          -0.4351904965232251f,
378
59.3M
          0.5550443808910661f,
379
59.3M
          -0.25468277124066463f,
380
59.3M
          -0.07417504595810233f,
381
59.3M
          0.2191868483885728f,
382
59.3M
          -0.25468277124066413f,
383
59.3M
          0.1135498731499429f,
384
59.3M
      },
385
59.3M
  };
386
387
59.3M
  const HWY_CAPPED(float, 16) d;
388
177M
  for (size_t i = 0; i < 16; i += Lanes(d)) {
389
118M
    auto pixel = Zero(d);
390
2.01G
    for (size_t j = 0; j < 16; j++) {
391
1.89G
      auto cf = Set(d, coeffs[j]);
392
1.89G
      auto basis = Load(d, k4x4AFVBasis[j] + i);
393
1.89G
      pixel = MulAdd(cf, basis, pixel);
394
1.89G
    }
395
118M
    Store(pixel, d, pixels + i);
396
118M
  }
397
59.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
62.2M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
62.2M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
62.2M
  size_t afv_x = afv_kind & 1;
404
62.2M
  size_t afv_y = afv_kind / 2;
405
62.2M
  float dcs[3] = {};
406
62.2M
  float block00 = coefficients[0];
407
62.2M
  float block01 = coefficients[1];
408
62.2M
  float block10 = coefficients[8];
409
62.2M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
62.2M
  dcs[1] = (block00 + block10 - block01);
411
62.2M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
62.2M
  HWY_ALIGN float coeff[4 * 4];
414
62.2M
  coeff[0] = dcs[0];
415
311M
  for (size_t iy = 0; iy < 4; iy++) {
416
1.24G
    for (size_t ix = 0; ix < 4; ix++) {
417
996M
      if (ix == 0 && iy == 0) continue;
418
933M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
933M
    }
420
249M
  }
421
62.2M
  HWY_ALIGN float block[4 * 8];
422
62.2M
  AFVIDCT4x4(coeff, block);
423
311M
  for (size_t iy = 0; iy < 4; iy++) {
424
1.24G
    for (size_t ix = 0; ix < 4; ix++) {
425
996M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
996M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
996M
    }
428
249M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
62.2M
  block[0] = dcs[1];
431
311M
  for (size_t iy = 0; iy < 4; iy++) {
432
1.24G
    for (size_t ix = 0; ix < 4; ix++) {
433
996M
      if (ix == 0 && iy == 0) continue;
434
933M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
933M
    }
436
249M
  }
437
62.2M
  ComputeScaledIDCT<4, 4>()(
438
62.2M
      block,
439
62.2M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
62.2M
            pixels_stride),
441
62.2M
      scratch_space);
442
  // IDCT4x8.
443
62.2M
  block[0] = dcs[2];
444
311M
  for (size_t iy = 0; iy < 4; iy++) {
445
2.24G
    for (size_t ix = 0; ix < 8; ix++) {
446
1.99G
      if (ix == 0 && iy == 0) continue;
447
1.92G
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
1.92G
    }
449
249M
  }
450
62.2M
  ComputeScaledIDCT<4, 8>()(
451
62.2M
      block,
452
62.2M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
62.2M
      scratch_space);
454
62.2M
}
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
713k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
713k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
713k
  size_t afv_x = afv_kind & 1;
404
713k
  size_t afv_y = afv_kind / 2;
405
713k
  float dcs[3] = {};
406
713k
  float block00 = coefficients[0];
407
713k
  float block01 = coefficients[1];
408
713k
  float block10 = coefficients[8];
409
713k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
713k
  dcs[1] = (block00 + block10 - block01);
411
713k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
713k
  HWY_ALIGN float coeff[4 * 4];
414
713k
  coeff[0] = dcs[0];
415
3.56M
  for (size_t iy = 0; iy < 4; iy++) {
416
14.2M
    for (size_t ix = 0; ix < 4; ix++) {
417
11.4M
      if (ix == 0 && iy == 0) continue;
418
10.7M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
10.7M
    }
420
2.85M
  }
421
713k
  HWY_ALIGN float block[4 * 8];
422
713k
  AFVIDCT4x4(coeff, block);
423
3.56M
  for (size_t iy = 0; iy < 4; iy++) {
424
14.2M
    for (size_t ix = 0; ix < 4; ix++) {
425
11.4M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
11.4M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
11.4M
    }
428
2.85M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
713k
  block[0] = dcs[1];
431
3.56M
  for (size_t iy = 0; iy < 4; iy++) {
432
14.2M
    for (size_t ix = 0; ix < 4; ix++) {
433
11.4M
      if (ix == 0 && iy == 0) continue;
434
10.7M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
10.7M
    }
436
2.85M
  }
437
713k
  ComputeScaledIDCT<4, 4>()(
438
713k
      block,
439
713k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
713k
            pixels_stride),
441
713k
      scratch_space);
442
  // IDCT4x8.
443
713k
  block[0] = dcs[2];
444
3.56M
  for (size_t iy = 0; iy < 4; iy++) {
445
25.6M
    for (size_t ix = 0; ix < 8; ix++) {
446
22.8M
      if (ix == 0 && iy == 0) continue;
447
22.1M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
22.1M
    }
449
2.85M
  }
450
713k
  ComputeScaledIDCT<4, 8>()(
451
713k
      block,
452
713k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
713k
      scratch_space);
454
713k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
799k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
799k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
799k
  size_t afv_x = afv_kind & 1;
404
799k
  size_t afv_y = afv_kind / 2;
405
799k
  float dcs[3] = {};
406
799k
  float block00 = coefficients[0];
407
799k
  float block01 = coefficients[1];
408
799k
  float block10 = coefficients[8];
409
799k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
799k
  dcs[1] = (block00 + block10 - block01);
411
799k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
799k
  HWY_ALIGN float coeff[4 * 4];
414
799k
  coeff[0] = dcs[0];
415
3.99M
  for (size_t iy = 0; iy < 4; iy++) {
416
15.9M
    for (size_t ix = 0; ix < 4; ix++) {
417
12.7M
      if (ix == 0 && iy == 0) continue;
418
11.9M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
11.9M
    }
420
3.19M
  }
421
799k
  HWY_ALIGN float block[4 * 8];
422
799k
  AFVIDCT4x4(coeff, block);
423
3.99M
  for (size_t iy = 0; iy < 4; iy++) {
424
15.9M
    for (size_t ix = 0; ix < 4; ix++) {
425
12.7M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
12.7M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
12.7M
    }
428
3.19M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
799k
  block[0] = dcs[1];
431
3.99M
  for (size_t iy = 0; iy < 4; iy++) {
432
15.9M
    for (size_t ix = 0; ix < 4; ix++) {
433
12.7M
      if (ix == 0 && iy == 0) continue;
434
11.9M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
11.9M
    }
436
3.19M
  }
437
799k
  ComputeScaledIDCT<4, 4>()(
438
799k
      block,
439
799k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
799k
            pixels_stride),
441
799k
      scratch_space);
442
  // IDCT4x8.
443
799k
  block[0] = dcs[2];
444
3.99M
  for (size_t iy = 0; iy < 4; iy++) {
445
28.7M
    for (size_t ix = 0; ix < 8; ix++) {
446
25.5M
      if (ix == 0 && iy == 0) continue;
447
24.7M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
24.7M
    }
449
3.19M
  }
450
799k
  ComputeScaledIDCT<4, 8>()(
451
799k
      block,
452
799k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
799k
      scratch_space);
454
799k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
670k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
670k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
670k
  size_t afv_x = afv_kind & 1;
404
670k
  size_t afv_y = afv_kind / 2;
405
670k
  float dcs[3] = {};
406
670k
  float block00 = coefficients[0];
407
670k
  float block01 = coefficients[1];
408
670k
  float block10 = coefficients[8];
409
670k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
670k
  dcs[1] = (block00 + block10 - block01);
411
670k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
670k
  HWY_ALIGN float coeff[4 * 4];
414
670k
  coeff[0] = dcs[0];
415
3.35M
  for (size_t iy = 0; iy < 4; iy++) {
416
13.4M
    for (size_t ix = 0; ix < 4; ix++) {
417
10.7M
      if (ix == 0 && iy == 0) continue;
418
10.0M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
10.0M
    }
420
2.68M
  }
421
670k
  HWY_ALIGN float block[4 * 8];
422
670k
  AFVIDCT4x4(coeff, block);
423
3.35M
  for (size_t iy = 0; iy < 4; iy++) {
424
13.4M
    for (size_t ix = 0; ix < 4; ix++) {
425
10.7M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
10.7M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
10.7M
    }
428
2.68M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
670k
  block[0] = dcs[1];
431
3.35M
  for (size_t iy = 0; iy < 4; iy++) {
432
13.4M
    for (size_t ix = 0; ix < 4; ix++) {
433
10.7M
      if (ix == 0 && iy == 0) continue;
434
10.0M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
10.0M
    }
436
2.68M
  }
437
670k
  ComputeScaledIDCT<4, 4>()(
438
670k
      block,
439
670k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
670k
            pixels_stride),
441
670k
      scratch_space);
442
  // IDCT4x8.
443
670k
  block[0] = dcs[2];
444
3.35M
  for (size_t iy = 0; iy < 4; iy++) {
445
24.1M
    for (size_t ix = 0; ix < 8; ix++) {
446
21.4M
      if (ix == 0 && iy == 0) continue;
447
20.7M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
20.7M
    }
449
2.68M
  }
450
670k
  ComputeScaledIDCT<4, 8>()(
451
670k
      block,
452
670k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
670k
      scratch_space);
454
670k
}
dec_group.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
751k
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
751k
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
751k
  size_t afv_x = afv_kind & 1;
404
751k
  size_t afv_y = afv_kind / 2;
405
751k
  float dcs[3] = {};
406
751k
  float block00 = coefficients[0];
407
751k
  float block01 = coefficients[1];
408
751k
  float block10 = coefficients[8];
409
751k
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
751k
  dcs[1] = (block00 + block10 - block01);
411
751k
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
751k
  HWY_ALIGN float coeff[4 * 4];
414
751k
  coeff[0] = dcs[0];
415
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
416
15.0M
    for (size_t ix = 0; ix < 4; ix++) {
417
12.0M
      if (ix == 0 && iy == 0) continue;
418
11.2M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
11.2M
    }
420
3.00M
  }
421
751k
  HWY_ALIGN float block[4 * 8];
422
751k
  AFVIDCT4x4(coeff, block);
423
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
424
15.0M
    for (size_t ix = 0; ix < 4; ix++) {
425
12.0M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
12.0M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
12.0M
    }
428
3.00M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
751k
  block[0] = dcs[1];
431
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
432
15.0M
    for (size_t ix = 0; ix < 4; ix++) {
433
12.0M
      if (ix == 0 && iy == 0) continue;
434
11.2M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
11.2M
    }
436
3.00M
  }
437
751k
  ComputeScaledIDCT<4, 4>()(
438
751k
      block,
439
751k
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
751k
            pixels_stride),
441
751k
      scratch_space);
442
  // IDCT4x8.
443
751k
  block[0] = dcs[2];
444
3.75M
  for (size_t iy = 0; iy < 4; iy++) {
445
27.0M
    for (size_t ix = 0; ix < 8; ix++) {
446
24.0M
      if (ix == 0 && iy == 0) continue;
447
23.2M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
23.2M
    }
449
3.00M
  }
450
751k
  ComputeScaledIDCT<4, 8>()(
451
751k
      block,
452
751k
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
751k
      scratch_space);
454
751k
}
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
14.8M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
14.8M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
14.8M
  size_t afv_x = afv_kind & 1;
404
14.8M
  size_t afv_y = afv_kind / 2;
405
14.8M
  float dcs[3] = {};
406
14.8M
  float block00 = coefficients[0];
407
14.8M
  float block01 = coefficients[1];
408
14.8M
  float block10 = coefficients[8];
409
14.8M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
14.8M
  dcs[1] = (block00 + block10 - block01);
411
14.8M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
14.8M
  HWY_ALIGN float coeff[4 * 4];
414
14.8M
  coeff[0] = dcs[0];
415
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
296M
    for (size_t ix = 0; ix < 4; ix++) {
417
237M
      if (ix == 0 && iy == 0) continue;
418
222M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
222M
    }
420
59.3M
  }
421
14.8M
  HWY_ALIGN float block[4 * 8];
422
14.8M
  AFVIDCT4x4(coeff, block);
423
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
296M
    for (size_t ix = 0; ix < 4; ix++) {
425
237M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
237M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
237M
    }
428
59.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
14.8M
  block[0] = dcs[1];
431
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
296M
    for (size_t ix = 0; ix < 4; ix++) {
433
237M
      if (ix == 0 && iy == 0) continue;
434
222M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
222M
    }
436
59.3M
  }
437
14.8M
  ComputeScaledIDCT<4, 4>()(
438
14.8M
      block,
439
14.8M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
14.8M
            pixels_stride),
441
14.8M
      scratch_space);
442
  // IDCT4x8.
443
14.8M
  block[0] = dcs[2];
444
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
533M
    for (size_t ix = 0; ix < 8; ix++) {
446
474M
      if (ix == 0 && iy == 0) continue;
447
459M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
459M
    }
449
59.3M
  }
450
14.8M
  ComputeScaledIDCT<4, 8>()(
451
14.8M
      block,
452
14.8M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
14.8M
      scratch_space);
454
14.8M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<1ul>(float const*, float*, unsigned long)
Line
Count
Source
401
14.8M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
14.8M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
14.8M
  size_t afv_x = afv_kind & 1;
404
14.8M
  size_t afv_y = afv_kind / 2;
405
14.8M
  float dcs[3] = {};
406
14.8M
  float block00 = coefficients[0];
407
14.8M
  float block01 = coefficients[1];
408
14.8M
  float block10 = coefficients[8];
409
14.8M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
14.8M
  dcs[1] = (block00 + block10 - block01);
411
14.8M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
14.8M
  HWY_ALIGN float coeff[4 * 4];
414
14.8M
  coeff[0] = dcs[0];
415
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
296M
    for (size_t ix = 0; ix < 4; ix++) {
417
237M
      if (ix == 0 && iy == 0) continue;
418
222M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
222M
    }
420
59.3M
  }
421
14.8M
  HWY_ALIGN float block[4 * 8];
422
14.8M
  AFVIDCT4x4(coeff, block);
423
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
296M
    for (size_t ix = 0; ix < 4; ix++) {
425
237M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
237M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
237M
    }
428
59.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
14.8M
  block[0] = dcs[1];
431
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
296M
    for (size_t ix = 0; ix < 4; ix++) {
433
237M
      if (ix == 0 && iy == 0) continue;
434
222M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
222M
    }
436
59.3M
  }
437
14.8M
  ComputeScaledIDCT<4, 4>()(
438
14.8M
      block,
439
14.8M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
14.8M
            pixels_stride),
441
14.8M
      scratch_space);
442
  // IDCT4x8.
443
14.8M
  block[0] = dcs[2];
444
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
533M
    for (size_t ix = 0; ix < 8; ix++) {
446
474M
      if (ix == 0 && iy == 0) continue;
447
459M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
459M
    }
449
59.3M
  }
450
14.8M
  ComputeScaledIDCT<4, 8>()(
451
14.8M
      block,
452
14.8M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
14.8M
      scratch_space);
454
14.8M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<2ul>(float const*, float*, unsigned long)
Line
Count
Source
401
14.8M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
14.8M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
14.8M
  size_t afv_x = afv_kind & 1;
404
14.8M
  size_t afv_y = afv_kind / 2;
405
14.8M
  float dcs[3] = {};
406
14.8M
  float block00 = coefficients[0];
407
14.8M
  float block01 = coefficients[1];
408
14.8M
  float block10 = coefficients[8];
409
14.8M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
14.8M
  dcs[1] = (block00 + block10 - block01);
411
14.8M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
14.8M
  HWY_ALIGN float coeff[4 * 4];
414
14.8M
  coeff[0] = dcs[0];
415
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
296M
    for (size_t ix = 0; ix < 4; ix++) {
417
237M
      if (ix == 0 && iy == 0) continue;
418
222M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
222M
    }
420
59.3M
  }
421
14.8M
  HWY_ALIGN float block[4 * 8];
422
14.8M
  AFVIDCT4x4(coeff, block);
423
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
296M
    for (size_t ix = 0; ix < 4; ix++) {
425
237M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
237M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
237M
    }
428
59.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
14.8M
  block[0] = dcs[1];
431
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
296M
    for (size_t ix = 0; ix < 4; ix++) {
433
237M
      if (ix == 0 && iy == 0) continue;
434
222M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
222M
    }
436
59.3M
  }
437
14.8M
  ComputeScaledIDCT<4, 4>()(
438
14.8M
      block,
439
14.8M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
14.8M
            pixels_stride),
441
14.8M
      scratch_space);
442
  // IDCT4x8.
443
14.8M
  block[0] = dcs[2];
444
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
533M
    for (size_t ix = 0; ix < 8; ix++) {
446
474M
      if (ix == 0 && iy == 0) continue;
447
459M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
459M
    }
449
59.3M
  }
450
14.8M
  ComputeScaledIDCT<4, 8>()(
451
14.8M
      block,
452
14.8M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
14.8M
      scratch_space);
454
14.8M
}
enc_ac_strategy.cc:void jxl::N_AVX2::(anonymous namespace)::AFVTransformToPixels<3ul>(float const*, float*, unsigned long)
Line
Count
Source
401
14.8M
                          float* JXL_RESTRICT pixels, size_t pixels_stride) {
402
14.8M
  HWY_ALIGN float scratch_space[4 * 8 * 4];
403
14.8M
  size_t afv_x = afv_kind & 1;
404
14.8M
  size_t afv_y = afv_kind / 2;
405
14.8M
  float dcs[3] = {};
406
14.8M
  float block00 = coefficients[0];
407
14.8M
  float block01 = coefficients[1];
408
14.8M
  float block10 = coefficients[8];
409
14.8M
  dcs[0] = (block00 + block10 + block01) * 4.0f;
410
14.8M
  dcs[1] = (block00 + block10 - block01);
411
14.8M
  dcs[2] = block00 - block10;
412
  // IAFV: (even, even) positions.
413
14.8M
  HWY_ALIGN float coeff[4 * 4];
414
14.8M
  coeff[0] = dcs[0];
415
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
416
296M
    for (size_t ix = 0; ix < 4; ix++) {
417
237M
      if (ix == 0 && iy == 0) continue;
418
222M
      coeff[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2];
419
222M
    }
420
59.3M
  }
421
14.8M
  HWY_ALIGN float block[4 * 8];
422
14.8M
  AFVIDCT4x4(coeff, block);
423
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
424
296M
    for (size_t ix = 0; ix < 4; ix++) {
425
237M
      pixels[(iy + afv_y * 4) * pixels_stride + afv_x * 4 + ix] =
426
237M
          block[(afv_y == 1 ? 3 - iy : iy) * 4 + (afv_x == 1 ? 3 - ix : ix)];
427
237M
    }
428
59.3M
  }
429
  // IDCT4x4 in (odd, even) positions.
430
14.8M
  block[0] = dcs[1];
431
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
432
296M
    for (size_t ix = 0; ix < 4; ix++) {
433
237M
      if (ix == 0 && iy == 0) continue;
434
222M
      block[iy * 4 + ix] = coefficients[iy * 2 * 8 + ix * 2 + 1];
435
222M
    }
436
59.3M
  }
437
14.8M
  ComputeScaledIDCT<4, 4>()(
438
14.8M
      block,
439
14.8M
      DCTTo(pixels + afv_y * 4 * pixels_stride + (afv_x == 1 ? 0 : 4),
440
14.8M
            pixels_stride),
441
14.8M
      scratch_space);
442
  // IDCT4x8.
443
14.8M
  block[0] = dcs[2];
444
74.1M
  for (size_t iy = 0; iy < 4; iy++) {
445
533M
    for (size_t ix = 0; ix < 8; ix++) {
446
474M
      if (ix == 0 && iy == 0) continue;
447
459M
      block[iy * 8 + ix] = coefficients[(1 + iy * 2) * 8 + ix];
448
459M
    }
449
59.3M
  }
450
14.8M
  ComputeScaledIDCT<4, 8>()(
451
14.8M
      block,
452
14.8M
      DCTTo(pixels + (afv_y == 1 ? 0 : 4) * pixels_stride, pixels_stride),
453
14.8M
      scratch_space);
454
14.8M
}
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
211M
                                        float* scratch_space) {
461
211M
  using Type = AcStrategyType;
462
211M
  switch (strategy) {
463
18.0M
    case Type::IDENTITY: {
464
18.0M
      float dcs[4] = {};
465
18.0M
      float block00 = coefficients[0];
466
18.0M
      float block01 = coefficients[1];
467
18.0M
      float block10 = coefficients[8];
468
18.0M
      float block11 = coefficients[9];
469
18.0M
      dcs[0] = block00 + block01 + block10 + block11;
470
18.0M
      dcs[1] = block00 + block01 - block10 - block11;
471
18.0M
      dcs[2] = block00 - block01 + block10 - block11;
472
18.0M
      dcs[3] = block00 - block01 - block10 + block11;
473
54.2M
      for (size_t y = 0; y < 2; y++) {
474
108M
        for (size_t x = 0; x < 2; x++) {
475
72.3M
          float block_dc = dcs[y * 2 + x];
476
72.3M
          float residual_sum = 0;
477
361M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.44G
            for (size_t ix = 0; ix < 4; ix++) {
479
1.15G
              if (ix == 0 && iy == 0) continue;
480
1.08G
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
1.08G
            }
482
289M
          }
483
72.3M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
72.3M
              block_dc - residual_sum * (1.0f / 16);
485
361M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.44G
            for (size_t ix = 0; ix < 4; ix++) {
487
1.15G
              if (ix == 1 && iy == 1) continue;
488
1.08G
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
1.08G
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
1.08G
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
1.08G
            }
492
289M
          }
493
72.3M
          pixels[y * 4 * pixels_stride + x * 4] =
494
72.3M
              coefficients[(y + 2) * 8 + x + 2] +
495
72.3M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
72.3M
        }
497
36.1M
      }
498
18.0M
      break;
499
0
    }
500
16.3M
    case Type::DCT8X4: {
501
16.3M
      float dcs[2] = {};
502
16.3M
      float block0 = coefficients[0];
503
16.3M
      float block1 = coefficients[8];
504
16.3M
      dcs[0] = block0 + block1;
505
16.3M
      dcs[1] = block0 - block1;
506
48.9M
      for (size_t x = 0; x < 2; x++) {
507
32.6M
        HWY_ALIGN float block[4 * 8];
508
32.6M
        block[0] = dcs[x];
509
163M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.17G
          for (size_t ix = 0; ix < 8; ix++) {
511
1.04G
            if (ix == 0 && iy == 0) continue;
512
1.01G
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
1.01G
          }
514
130M
        }
515
32.6M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
32.6M
                                  scratch_space);
517
32.6M
      }
518
16.3M
      break;
519
0
    }
520
15.8M
    case Type::DCT4X8: {
521
15.8M
      float dcs[2] = {};
522
15.8M
      float block0 = coefficients[0];
523
15.8M
      float block1 = coefficients[8];
524
15.8M
      dcs[0] = block0 + block1;
525
15.8M
      dcs[1] = block0 - block1;
526
47.4M
      for (size_t y = 0; y < 2; y++) {
527
31.6M
        HWY_ALIGN float block[4 * 8];
528
31.6M
        block[0] = dcs[y];
529
158M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.13G
          for (size_t ix = 0; ix < 8; ix++) {
531
1.01G
            if (ix == 0 && iy == 0) continue;
532
980M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
980M
          }
534
126M
        }
535
31.6M
        ComputeScaledIDCT<4, 8>()(
536
31.6M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
31.6M
            scratch_space);
538
31.6M
      }
539
15.8M
      break;
540
0
    }
541
14.8M
    case Type::DCT4X4: {
542
14.8M
      float dcs[4] = {};
543
14.8M
      float block00 = coefficients[0];
544
14.8M
      float block01 = coefficients[1];
545
14.8M
      float block10 = coefficients[8];
546
14.8M
      float block11 = coefficients[9];
547
14.8M
      dcs[0] = block00 + block01 + block10 + block11;
548
14.8M
      dcs[1] = block00 + block01 - block10 - block11;
549
14.8M
      dcs[2] = block00 - block01 + block10 - block11;
550
14.8M
      dcs[3] = block00 - block01 - block10 + block11;
551
44.6M
      for (size_t y = 0; y < 2; y++) {
552
89.2M
        for (size_t x = 0; x < 2; x++) {
553
59.5M
          HWY_ALIGN float block[4 * 4];
554
59.5M
          block[0] = dcs[y * 2 + x];
555
297M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.19G
            for (size_t ix = 0; ix < 4; ix++) {
557
952M
              if (ix == 0 && iy == 0) continue;
558
892M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
892M
            }
560
238M
          }
561
59.5M
          ComputeScaledIDCT<4, 4>()(
562
59.5M
              block,
563
59.5M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
59.5M
              scratch_space);
565
59.5M
        }
566
29.7M
      }
567
14.8M
      break;
568
0
    }
569
17.8M
    case Type::DCT2X2: {
570
17.8M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
17.8M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
17.8M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
17.8M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
17.8M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
161M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.28G
        for (size_t x = 0; x < kBlockDim; x++) {
577
1.14G
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
1.14G
        }
579
143M
      }
580
17.8M
      break;
581
0
    }
582
6.71M
    case Type::DCT16X16: {
583
6.71M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
6.71M
                                  scratch_space);
585
6.71M
      break;
586
0
    }
587
13.0M
    case Type::DCT16X8: {
588
13.0M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
13.0M
                                 scratch_space);
590
13.0M
      break;
591
0
    }
592
13.4M
    case Type::DCT8X16: {
593
13.4M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
13.4M
                                 scratch_space);
595
13.4M
      break;
596
0
    }
597
6.36k
    case Type::DCT32X8: {
598
6.36k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
6.36k
                                 scratch_space);
600
6.36k
      break;
601
0
    }
602
7.75k
    case Type::DCT8X32: {
603
7.75k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
7.75k
                                 scratch_space);
605
7.75k
      break;
606
0
    }
607
2.67M
    case Type::DCT32X16: {
608
2.67M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
2.67M
                                  scratch_space);
610
2.67M
      break;
611
0
    }
612
2.83M
    case Type::DCT16X32: {
613
2.83M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
2.83M
                                  scratch_space);
615
2.83M
      break;
616
0
    }
617
1.70M
    case Type::DCT32X32: {
618
1.70M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.70M
                                  scratch_space);
620
1.70M
      break;
621
0
    }
622
23.9M
    case Type::DCT: {
623
23.9M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
23.9M
                                scratch_space);
625
23.9M
      break;
626
0
    }
627
15.5M
    case Type::AFV0: {
628
15.5M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
15.5M
      break;
630
0
    }
631
15.6M
    case Type::AFV1: {
632
15.6M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
15.6M
      break;
634
0
    }
635
15.5M
    case Type::AFV2: {
636
15.5M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
15.5M
      break;
638
0
    }
639
15.5M
    case Type::AFV3: {
640
15.5M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
15.5M
      break;
642
0
    }
643
774k
    case Type::DCT64X32: {
644
774k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
774k
                                  scratch_space);
646
774k
      break;
647
0
    }
648
548k
    case Type::DCT32X64: {
649
548k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
548k
                                  scratch_space);
651
548k
      break;
652
0
    }
653
323k
    case Type::DCT64X64: {
654
323k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
323k
                                  scratch_space);
656
323k
      break;
657
0
    }
658
54
    case Type::DCT128X64: {
659
54
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
54
                                   scratch_space);
661
54
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
21
    case Type::DCT128X128: {
669
21
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
21
                                    scratch_space);
671
21
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
27
    case Type::DCT256X256: {
684
27
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
27
                                    scratch_space);
686
27
      break;
687
0
    }
688
211M
  }
689
211M
}
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
25.1M
                                        float* scratch_space) {
461
25.1M
  using Type = AcStrategyType;
462
25.1M
  switch (strategy) {
463
3.26M
    case Type::IDENTITY: {
464
3.26M
      float dcs[4] = {};
465
3.26M
      float block00 = coefficients[0];
466
3.26M
      float block01 = coefficients[1];
467
3.26M
      float block10 = coefficients[8];
468
3.26M
      float block11 = coefficients[9];
469
3.26M
      dcs[0] = block00 + block01 + block10 + block11;
470
3.26M
      dcs[1] = block00 + block01 - block10 - block11;
471
3.26M
      dcs[2] = block00 - block01 + block10 - block11;
472
3.26M
      dcs[3] = block00 - block01 - block10 + block11;
473
9.80M
      for (size_t y = 0; y < 2; y++) {
474
19.6M
        for (size_t x = 0; x < 2; x++) {
475
13.0M
          float block_dc = dcs[y * 2 + x];
476
13.0M
          float residual_sum = 0;
477
65.3M
          for (size_t iy = 0; iy < 4; iy++) {
478
261M
            for (size_t ix = 0; ix < 4; ix++) {
479
209M
              if (ix == 0 && iy == 0) continue;
480
196M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
196M
            }
482
52.2M
          }
483
13.0M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
13.0M
              block_dc - residual_sum * (1.0f / 16);
485
65.3M
          for (size_t iy = 0; iy < 4; iy++) {
486
261M
            for (size_t ix = 0; ix < 4; ix++) {
487
209M
              if (ix == 1 && iy == 1) continue;
488
196M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
196M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
196M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
196M
            }
492
52.2M
          }
493
13.0M
          pixels[y * 4 * pixels_stride + x * 4] =
494
13.0M
              coefficients[(y + 2) * 8 + x + 2] +
495
13.0M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
13.0M
        }
497
6.53M
      }
498
3.26M
      break;
499
0
    }
500
1.47M
    case Type::DCT8X4: {
501
1.47M
      float dcs[2] = {};
502
1.47M
      float block0 = coefficients[0];
503
1.47M
      float block1 = coefficients[8];
504
1.47M
      dcs[0] = block0 + block1;
505
1.47M
      dcs[1] = block0 - block1;
506
4.42M
      for (size_t x = 0; x < 2; x++) {
507
2.94M
        HWY_ALIGN float block[4 * 8];
508
2.94M
        block[0] = dcs[x];
509
14.7M
        for (size_t iy = 0; iy < 4; iy++) {
510
106M
          for (size_t ix = 0; ix < 8; ix++) {
511
94.3M
            if (ix == 0 && iy == 0) continue;
512
91.4M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
91.4M
          }
514
11.7M
        }
515
2.94M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
2.94M
                                  scratch_space);
517
2.94M
      }
518
1.47M
      break;
519
0
    }
520
990k
    case Type::DCT4X8: {
521
990k
      float dcs[2] = {};
522
990k
      float block0 = coefficients[0];
523
990k
      float block1 = coefficients[8];
524
990k
      dcs[0] = block0 + block1;
525
990k
      dcs[1] = block0 - block1;
526
2.97M
      for (size_t y = 0; y < 2; y++) {
527
1.98M
        HWY_ALIGN float block[4 * 8];
528
1.98M
        block[0] = dcs[y];
529
9.90M
        for (size_t iy = 0; iy < 4; iy++) {
530
71.3M
          for (size_t ix = 0; ix < 8; ix++) {
531
63.3M
            if (ix == 0 && iy == 0) continue;
532
61.4M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
61.4M
          }
534
7.92M
        }
535
1.98M
        ComputeScaledIDCT<4, 8>()(
536
1.98M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
1.98M
            scratch_space);
538
1.98M
      }
539
990k
      break;
540
0
    }
541
50.7k
    case Type::DCT4X4: {
542
50.7k
      float dcs[4] = {};
543
50.7k
      float block00 = coefficients[0];
544
50.7k
      float block01 = coefficients[1];
545
50.7k
      float block10 = coefficients[8];
546
50.7k
      float block11 = coefficients[9];
547
50.7k
      dcs[0] = block00 + block01 + block10 + block11;
548
50.7k
      dcs[1] = block00 + block01 - block10 - block11;
549
50.7k
      dcs[2] = block00 - block01 + block10 - block11;
550
50.7k
      dcs[3] = block00 - block01 - block10 + block11;
551
152k
      for (size_t y = 0; y < 2; y++) {
552
304k
        for (size_t x = 0; x < 2; x++) {
553
202k
          HWY_ALIGN float block[4 * 4];
554
202k
          block[0] = dcs[y * 2 + x];
555
1.01M
          for (size_t iy = 0; iy < 4; iy++) {
556
4.05M
            for (size_t ix = 0; ix < 4; ix++) {
557
3.24M
              if (ix == 0 && iy == 0) continue;
558
3.04M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
3.04M
            }
560
811k
          }
561
202k
          ComputeScaledIDCT<4, 4>()(
562
202k
              block,
563
202k
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
202k
              scratch_space);
565
202k
        }
566
101k
      }
567
50.7k
      break;
568
0
    }
569
3.06M
    case Type::DCT2X2: {
570
3.06M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
3.06M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
3.06M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
3.06M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
3.06M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
27.6M
      for (size_t y = 0; y < kBlockDim; y++) {
576
220M
        for (size_t x = 0; x < kBlockDim; x++) {
577
196M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
196M
        }
579
24.5M
      }
580
3.06M
      break;
581
0
    }
582
554k
    case Type::DCT16X16: {
583
554k
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
554k
                                  scratch_space);
585
554k
      break;
586
0
    }
587
987k
    case Type::DCT16X8: {
588
987k
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
987k
                                 scratch_space);
590
987k
      break;
591
0
    }
592
1.35M
    case Type::DCT8X16: {
593
1.35M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
1.35M
                                 scratch_space);
595
1.35M
      break;
596
0
    }
597
6.36k
    case Type::DCT32X8: {
598
6.36k
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
6.36k
                                 scratch_space);
600
6.36k
      break;
601
0
    }
602
7.75k
    case Type::DCT8X32: {
603
7.75k
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
7.75k
                                 scratch_space);
605
7.75k
      break;
606
0
    }
607
270k
    case Type::DCT32X16: {
608
270k
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
270k
                                  scratch_space);
610
270k
      break;
611
0
    }
612
408k
    case Type::DCT16X32: {
613
408k
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
408k
                                  scratch_space);
615
408k
      break;
616
0
    }
617
470k
    case Type::DCT32X32: {
618
470k
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
470k
                                  scratch_space);
620
470k
      break;
621
0
    }
622
9.08M
    case Type::DCT: {
623
9.08M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
9.08M
                                scratch_space);
625
9.08M
      break;
626
0
    }
627
713k
    case Type::AFV0: {
628
713k
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
713k
      break;
630
0
    }
631
799k
    case Type::AFV1: {
632
799k
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
799k
      break;
634
0
    }
635
670k
    case Type::AFV2: {
636
670k
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
670k
      break;
638
0
    }
639
751k
    case Type::AFV3: {
640
751k
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
751k
      break;
642
0
    }
643
19.0k
    case Type::DCT64X32: {
644
19.0k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
19.0k
                                  scratch_space);
646
19.0k
      break;
647
0
    }
648
35.1k
    case Type::DCT32X64: {
649
35.1k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
35.1k
                                  scratch_space);
651
35.1k
      break;
652
0
    }
653
120k
    case Type::DCT64X64: {
654
120k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
120k
                                  scratch_space);
656
120k
      break;
657
0
    }
658
54
    case Type::DCT128X64: {
659
54
      ComputeScaledIDCT<128, 64>()(coefficients, DCTTo(pixels, pixels_stride),
660
54
                                   scratch_space);
661
54
      break;
662
0
    }
663
12
    case Type::DCT64X128: {
664
12
      ComputeScaledIDCT<64, 128>()(coefficients, DCTTo(pixels, pixels_stride),
665
12
                                   scratch_space);
666
12
      break;
667
0
    }
668
21
    case Type::DCT128X128: {
669
21
      ComputeScaledIDCT<128, 128>()(coefficients, DCTTo(pixels, pixels_stride),
670
21
                                    scratch_space);
671
21
      break;
672
0
    }
673
0
    case Type::DCT256X128: {
674
0
      ComputeScaledIDCT<256, 128>()(coefficients, DCTTo(pixels, pixels_stride),
675
0
                                    scratch_space);
676
0
      break;
677
0
    }
678
0
    case Type::DCT128X256: {
679
0
      ComputeScaledIDCT<128, 256>()(coefficients, DCTTo(pixels, pixels_stride),
680
0
                                    scratch_space);
681
0
      break;
682
0
    }
683
27
    case Type::DCT256X256: {
684
27
      ComputeScaledIDCT<256, 256>()(coefficients, DCTTo(pixels, pixels_stride),
685
27
                                    scratch_space);
686
27
      break;
687
0
    }
688
25.1M
  }
689
25.1M
}
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
186M
                                        float* scratch_space) {
461
186M
  using Type = AcStrategyType;
462
186M
  switch (strategy) {
463
14.8M
    case Type::IDENTITY: {
464
14.8M
      float dcs[4] = {};
465
14.8M
      float block00 = coefficients[0];
466
14.8M
      float block01 = coefficients[1];
467
14.8M
      float block10 = coefficients[8];
468
14.8M
      float block11 = coefficients[9];
469
14.8M
      dcs[0] = block00 + block01 + block10 + block11;
470
14.8M
      dcs[1] = block00 + block01 - block10 - block11;
471
14.8M
      dcs[2] = block00 - block01 + block10 - block11;
472
14.8M
      dcs[3] = block00 - block01 - block10 + block11;
473
44.4M
      for (size_t y = 0; y < 2; y++) {
474
88.9M
        for (size_t x = 0; x < 2; x++) {
475
59.3M
          float block_dc = dcs[y * 2 + x];
476
59.3M
          float residual_sum = 0;
477
296M
          for (size_t iy = 0; iy < 4; iy++) {
478
1.18G
            for (size_t ix = 0; ix < 4; ix++) {
479
949M
              if (ix == 0 && iy == 0) continue;
480
889M
              residual_sum += coefficients[(y + iy * 2) * 8 + x + ix * 2];
481
889M
            }
482
237M
          }
483
59.3M
          pixels[(4 * y + 1) * pixels_stride + 4 * x + 1] =
484
59.3M
              block_dc - residual_sum * (1.0f / 16);
485
296M
          for (size_t iy = 0; iy < 4; iy++) {
486
1.18G
            for (size_t ix = 0; ix < 4; ix++) {
487
949M
              if (ix == 1 && iy == 1) continue;
488
889M
              pixels[(y * 4 + iy) * pixels_stride + x * 4 + ix] =
489
889M
                  coefficients[(y + iy * 2) * 8 + x + ix * 2] +
490
889M
                  pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
491
889M
            }
492
237M
          }
493
59.3M
          pixels[y * 4 * pixels_stride + x * 4] =
494
59.3M
              coefficients[(y + 2) * 8 + x + 2] +
495
59.3M
              pixels[(4 * y + 1) * pixels_stride + 4 * x + 1];
496
59.3M
        }
497
29.6M
      }
498
14.8M
      break;
499
0
    }
500
14.8M
    case Type::DCT8X4: {
501
14.8M
      float dcs[2] = {};
502
14.8M
      float block0 = coefficients[0];
503
14.8M
      float block1 = coefficients[8];
504
14.8M
      dcs[0] = block0 + block1;
505
14.8M
      dcs[1] = block0 - block1;
506
44.4M
      for (size_t x = 0; x < 2; x++) {
507
29.6M
        HWY_ALIGN float block[4 * 8];
508
29.6M
        block[0] = dcs[x];
509
148M
        for (size_t iy = 0; iy < 4; iy++) {
510
1.06G
          for (size_t ix = 0; ix < 8; ix++) {
511
949M
            if (ix == 0 && iy == 0) continue;
512
919M
            block[iy * 8 + ix] = coefficients[(x + iy * 2) * 8 + ix];
513
919M
          }
514
118M
        }
515
29.6M
        ComputeScaledIDCT<8, 4>()(block, DCTTo(pixels + x * 4, pixels_stride),
516
29.6M
                                  scratch_space);
517
29.6M
      }
518
14.8M
      break;
519
0
    }
520
14.8M
    case Type::DCT4X8: {
521
14.8M
      float dcs[2] = {};
522
14.8M
      float block0 = coefficients[0];
523
14.8M
      float block1 = coefficients[8];
524
14.8M
      dcs[0] = block0 + block1;
525
14.8M
      dcs[1] = block0 - block1;
526
44.4M
      for (size_t y = 0; y < 2; y++) {
527
29.6M
        HWY_ALIGN float block[4 * 8];
528
29.6M
        block[0] = dcs[y];
529
148M
        for (size_t iy = 0; iy < 4; iy++) {
530
1.06G
          for (size_t ix = 0; ix < 8; ix++) {
531
949M
            if (ix == 0 && iy == 0) continue;
532
919M
            block[iy * 8 + ix] = coefficients[(y + iy * 2) * 8 + ix];
533
919M
          }
534
118M
        }
535
29.6M
        ComputeScaledIDCT<4, 8>()(
536
29.6M
            block, DCTTo(pixels + y * 4 * pixels_stride, pixels_stride),
537
29.6M
            scratch_space);
538
29.6M
      }
539
14.8M
      break;
540
0
    }
541
14.8M
    case Type::DCT4X4: {
542
14.8M
      float dcs[4] = {};
543
14.8M
      float block00 = coefficients[0];
544
14.8M
      float block01 = coefficients[1];
545
14.8M
      float block10 = coefficients[8];
546
14.8M
      float block11 = coefficients[9];
547
14.8M
      dcs[0] = block00 + block01 + block10 + block11;
548
14.8M
      dcs[1] = block00 + block01 - block10 - block11;
549
14.8M
      dcs[2] = block00 - block01 + block10 - block11;
550
14.8M
      dcs[3] = block00 - block01 - block10 + block11;
551
44.4M
      for (size_t y = 0; y < 2; y++) {
552
88.9M
        for (size_t x = 0; x < 2; x++) {
553
59.3M
          HWY_ALIGN float block[4 * 4];
554
59.3M
          block[0] = dcs[y * 2 + x];
555
296M
          for (size_t iy = 0; iy < 4; iy++) {
556
1.18G
            for (size_t ix = 0; ix < 4; ix++) {
557
949M
              if (ix == 0 && iy == 0) continue;
558
889M
              block[iy * 4 + ix] = coefficients[(y + iy * 2) * 8 + x + ix * 2];
559
889M
            }
560
237M
          }
561
59.3M
          ComputeScaledIDCT<4, 4>()(
562
59.3M
              block,
563
59.3M
              DCTTo(pixels + y * 4 * pixels_stride + x * 4, pixels_stride),
564
59.3M
              scratch_space);
565
59.3M
        }
566
29.6M
      }
567
14.8M
      break;
568
0
    }
569
14.8M
    case Type::DCT2X2: {
570
14.8M
      HWY_ALIGN float coeffs[kDCTBlockSize];
571
14.8M
      memcpy(coeffs, coefficients, sizeof(float) * kDCTBlockSize);
572
14.8M
      IDCT2TopBlock<2>(coeffs, kBlockDim, coeffs);
573
14.8M
      IDCT2TopBlock<4>(coeffs, kBlockDim, coeffs);
574
14.8M
      IDCT2TopBlock<8>(coeffs, kBlockDim, coeffs);
575
133M
      for (size_t y = 0; y < kBlockDim; y++) {
576
1.06G
        for (size_t x = 0; x < kBlockDim; x++) {
577
949M
          pixels[y * pixels_stride + x] = coeffs[y * kBlockDim + x];
578
949M
        }
579
118M
      }
580
14.8M
      break;
581
0
    }
582
6.15M
    case Type::DCT16X16: {
583
6.15M
      ComputeScaledIDCT<16, 16>()(coefficients, DCTTo(pixels, pixels_stride),
584
6.15M
                                  scratch_space);
585
6.15M
      break;
586
0
    }
587
12.0M
    case Type::DCT16X8: {
588
12.0M
      ComputeScaledIDCT<16, 8>()(coefficients, DCTTo(pixels, pixels_stride),
589
12.0M
                                 scratch_space);
590
12.0M
      break;
591
0
    }
592
12.0M
    case Type::DCT8X16: {
593
12.0M
      ComputeScaledIDCT<8, 16>()(coefficients, DCTTo(pixels, pixels_stride),
594
12.0M
                                 scratch_space);
595
12.0M
      break;
596
0
    }
597
0
    case Type::DCT32X8: {
598
0
      ComputeScaledIDCT<32, 8>()(coefficients, DCTTo(pixels, pixels_stride),
599
0
                                 scratch_space);
600
0
      break;
601
0
    }
602
0
    case Type::DCT8X32: {
603
0
      ComputeScaledIDCT<8, 32>()(coefficients, DCTTo(pixels, pixels_stride),
604
0
                                 scratch_space);
605
0
      break;
606
0
    }
607
2.40M
    case Type::DCT32X16: {
608
2.40M
      ComputeScaledIDCT<32, 16>()(coefficients, DCTTo(pixels, pixels_stride),
609
2.40M
                                  scratch_space);
610
2.40M
      break;
611
0
    }
612
2.42M
    case Type::DCT16X32: {
613
2.42M
      ComputeScaledIDCT<16, 32>()(coefficients, DCTTo(pixels, pixels_stride),
614
2.42M
                                  scratch_space);
615
2.42M
      break;
616
0
    }
617
1.23M
    case Type::DCT32X32: {
618
1.23M
      ComputeScaledIDCT<32, 32>()(coefficients, DCTTo(pixels, pixels_stride),
619
1.23M
                                  scratch_space);
620
1.23M
      break;
621
0
    }
622
14.8M
    case Type::DCT: {
623
14.8M
      ComputeScaledIDCT<8, 8>()(coefficients, DCTTo(pixels, pixels_stride),
624
14.8M
                                scratch_space);
625
14.8M
      break;
626
0
    }
627
14.8M
    case Type::AFV0: {
628
14.8M
      AFVTransformToPixels<0>(coefficients, pixels, pixels_stride);
629
14.8M
      break;
630
0
    }
631
14.8M
    case Type::AFV1: {
632
14.8M
      AFVTransformToPixels<1>(coefficients, pixels, pixels_stride);
633
14.8M
      break;
634
0
    }
635
14.8M
    case Type::AFV2: {
636
14.8M
      AFVTransformToPixels<2>(coefficients, pixels, pixels_stride);
637
14.8M
      break;
638
0
    }
639
14.8M
    case Type::AFV3: {
640
14.8M
      AFVTransformToPixels<3>(coefficients, pixels, pixels_stride);
641
14.8M
      break;
642
0
    }
643
755k
    case Type::DCT64X32: {
644
755k
      ComputeScaledIDCT<64, 32>()(coefficients, DCTTo(pixels, pixels_stride),
645
755k
                                  scratch_space);
646
755k
      break;
647
0
    }
648
513k
    case Type::DCT32X64: {
649
513k
      ComputeScaledIDCT<32, 64>()(coefficients, DCTTo(pixels, pixels_stride),
650
513k
                                  scratch_space);
651
513k
      break;
652
0
    }
653
203k
    case Type::DCT64X64: {
654
203k
      ComputeScaledIDCT<64, 64>()(coefficients, DCTTo(pixels, pixels_stride),
655
203k
                                  scratch_space);
656
203k
      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
186M
  }
689
186M
}
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
25.1M
                                              float* JXL_RESTRICT scratch) {
695
25.1M
  using Type = AcStrategyType;
696
25.1M
  HWY_ALIGN float warm_block[4 * 4];
697
25.1M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
25.1M
  switch (strategy) {
699
987k
    case Type::DCT16X8: {
700
987k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
987k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
987k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
987k
      break;
704
0
    }
705
1.35M
    case Type::DCT8X16: {
706
1.35M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.35M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.35M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.35M
      break;
710
0
    }
711
554k
    case Type::DCT16X16: {
712
554k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
554k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
554k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
554k
      break;
716
0
    }
717
6.36k
    case Type::DCT32X8: {
718
6.36k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
6.36k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
6.36k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
6.36k
      break;
722
0
    }
723
7.75k
    case Type::DCT8X32: {
724
7.75k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
7.75k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
7.75k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
7.75k
      break;
728
0
    }
729
270k
    case Type::DCT32X16: {
730
270k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
270k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
270k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
270k
      break;
734
0
    }
735
408k
    case Type::DCT16X32: {
736
408k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
408k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
408k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
408k
      break;
740
0
    }
741
470k
    case Type::DCT32X32: {
742
470k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
470k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
470k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
470k
      break;
746
0
    }
747
19.0k
    case Type::DCT64X32: {
748
19.0k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
19.0k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
19.0k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
19.0k
      break;
752
0
    }
753
35.1k
    case Type::DCT32X64: {
754
35.1k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
35.1k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
35.1k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
35.1k
      break;
758
0
    }
759
120k
    case Type::DCT64X64: {
760
120k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
120k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
120k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
120k
      break;
764
0
    }
765
54
    case Type::DCT128X64: {
766
54
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
54
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
54
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
54
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
21
    case Type::DCT128X128: {
778
21
      ReinterpretingDCT<
779
21
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
21
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
21
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
21
      break;
783
0
    }
784
0
    case Type::DCT256X128: {
785
0
      ReinterpretingDCT<
786
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
787
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
788
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 16);
789
0
      break;
790
0
    }
791
0
    case Type::DCT128X256: {
792
0
      ReinterpretingDCT<
793
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
794
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
795
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 16 * 32);
796
0
      break;
797
0
    }
798
27
    case Type::DCT256X256: {
799
27
      ReinterpretingDCT<
800
27
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
27
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
27
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
27
      break;
804
0
    }
805
9.08M
    case Type::DCT:
806
12.1M
    case Type::DCT2X2:
807
12.2M
    case Type::DCT4X4:
808
13.1M
    case Type::DCT4X8:
809
14.6M
    case Type::DCT8X4:
810
15.3M
    case Type::AFV0:
811
16.1M
    case Type::AFV1:
812
16.8M
    case Type::AFV2:
813
17.6M
    case Type::AFV3:
814
20.8M
    case Type::IDENTITY:
815
20.8M
      llf[0] = dc[0];
816
20.8M
      break;
817
25.1M
  };
818
25.1M
}
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
25.1M
                                              float* JXL_RESTRICT scratch) {
695
25.1M
  using Type = AcStrategyType;
696
25.1M
  HWY_ALIGN float warm_block[4 * 4];
697
25.1M
  HWY_ALIGN float warm_scratch_space[4 * 4 * 4];
698
25.1M
  switch (strategy) {
699
987k
    case Type::DCT16X8: {
700
987k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/kBlockDim,
701
987k
                        /*LF_ROWS=*/2, /*LF_COLS=*/1, /*ROWS=*/2, /*COLS=*/1>(
702
987k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
703
987k
      break;
704
0
    }
705
1.35M
    case Type::DCT8X16: {
706
1.35M
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
707
1.35M
                        /*LF_ROWS=*/1, /*LF_COLS=*/2, /*ROWS=*/1, /*COLS=*/2>(
708
1.35M
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
709
1.35M
      break;
710
0
    }
711
554k
    case Type::DCT16X16: {
712
554k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
713
554k
                        /*LF_ROWS=*/2, /*LF_COLS=*/2, /*ROWS=*/2, /*COLS=*/2>(
714
554k
          dc, dc_stride, llf, 2 * kBlockDim, warm_block, warm_scratch_space);
715
554k
      break;
716
0
    }
717
6.36k
    case Type::DCT32X8: {
718
6.36k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/kBlockDim,
719
6.36k
                        /*LF_ROWS=*/4, /*LF_COLS=*/1, /*ROWS=*/4, /*COLS=*/1>(
720
6.36k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
721
6.36k
      break;
722
0
    }
723
7.75k
    case Type::DCT8X32: {
724
7.75k
      ReinterpretingDCT</*DCT_ROWS=*/kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
725
7.75k
                        /*LF_ROWS=*/1, /*LF_COLS=*/4, /*ROWS=*/1, /*COLS=*/4>(
726
7.75k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
727
7.75k
      break;
728
0
    }
729
270k
    case Type::DCT32X16: {
730
270k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/2 * kBlockDim,
731
270k
                        /*LF_ROWS=*/4, /*LF_COLS=*/2, /*ROWS=*/4, /*COLS=*/2>(
732
270k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
733
270k
      break;
734
0
    }
735
408k
    case Type::DCT16X32: {
736
408k
      ReinterpretingDCT</*DCT_ROWS=*/2 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
737
408k
                        /*LF_ROWS=*/2, /*LF_COLS=*/4, /*ROWS=*/2, /*COLS=*/4>(
738
408k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
739
408k
      break;
740
0
    }
741
470k
    case Type::DCT32X32: {
742
470k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
743
470k
                        /*LF_ROWS=*/4, /*LF_COLS=*/4, /*ROWS=*/4, /*COLS=*/4>(
744
470k
          dc, dc_stride, llf, 4 * kBlockDim, warm_block, warm_scratch_space);
745
470k
      break;
746
0
    }
747
19.0k
    case Type::DCT64X32: {
748
19.0k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/4 * kBlockDim,
749
19.0k
                        /*LF_ROWS=*/8, /*LF_COLS=*/4, /*ROWS=*/8, /*COLS=*/4>(
750
19.0k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 4);
751
19.0k
      break;
752
0
    }
753
35.1k
    case Type::DCT32X64: {
754
35.1k
      ReinterpretingDCT</*DCT_ROWS=*/4 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
755
35.1k
                        /*LF_ROWS=*/4, /*LF_COLS=*/8, /*ROWS=*/4, /*COLS=*/8>(
756
35.1k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 4 * 8);
757
35.1k
      break;
758
0
    }
759
120k
    case Type::DCT64X64: {
760
120k
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
761
120k
                        /*LF_ROWS=*/8, /*LF_COLS=*/8, /*ROWS=*/8, /*COLS=*/8>(
762
120k
          dc, dc_stride, llf, 8 * kBlockDim, scratch, scratch + 8 * 8);
763
120k
      break;
764
0
    }
765
54
    case Type::DCT128X64: {
766
54
      ReinterpretingDCT</*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/8 * kBlockDim,
767
54
                        /*LF_ROWS=*/16, /*LF_COLS=*/8, /*ROWS=*/16, /*COLS=*/8>(
768
54
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 8);
769
54
      break;
770
0
    }
771
12
    case Type::DCT64X128: {
772
12
      ReinterpretingDCT</*DCT_ROWS=*/8 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
773
12
                        /*LF_ROWS=*/8, /*LF_COLS=*/16, /*ROWS=*/8, /*COLS=*/16>(
774
12
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 8 * 16);
775
12
      break;
776
0
    }
777
21
    case Type::DCT128X128: {
778
21
      ReinterpretingDCT<
779
21
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
780
21
          /*LF_ROWS=*/16, /*LF_COLS=*/16, /*ROWS=*/16, /*COLS=*/16>(
781
21
          dc, dc_stride, llf, 16 * kBlockDim, scratch, scratch + 16 * 16);
782
21
      break;
783
0
    }
784
0
    case Type::DCT256X128: {
785
0
      ReinterpretingDCT<
786
0
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/16 * kBlockDim,
787
0
          /*LF_ROWS=*/32, /*LF_COLS=*/16, /*ROWS=*/32, /*COLS=*/16>(
788
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 16);
789
0
      break;
790
0
    }
791
0
    case Type::DCT128X256: {
792
0
      ReinterpretingDCT<
793
0
          /*DCT_ROWS=*/16 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
794
0
          /*LF_ROWS=*/16, /*LF_COLS=*/32, /*ROWS=*/16, /*COLS=*/32>(
795
0
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 16 * 32);
796
0
      break;
797
0
    }
798
27
    case Type::DCT256X256: {
799
27
      ReinterpretingDCT<
800
27
          /*DCT_ROWS=*/32 * kBlockDim, /*DCT_COLS=*/32 * kBlockDim,
801
27
          /*LF_ROWS=*/32, /*LF_COLS=*/32, /*ROWS=*/32, /*COLS=*/32>(
802
27
          dc, dc_stride, llf, 32 * kBlockDim, scratch, scratch + 32 * 32);
803
27
      break;
804
0
    }
805
9.08M
    case Type::DCT:
806
12.1M
    case Type::DCT2X2:
807
12.2M
    case Type::DCT4X4:
808
13.1M
    case Type::DCT4X8:
809
14.6M
    case Type::DCT8X4:
810
15.3M
    case Type::AFV0:
811
16.1M
    case Type::AFV1:
812
16.8M
    case Type::AFV2:
813
17.6M
    case Type::AFV3:
814
20.8M
    case Type::IDENTITY:
815
20.8M
      llf[0] = dc[0];
816
20.8M
      break;
817
25.1M
  };
818
25.1M
}
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_